Do not make sketches over complex with alot of constraints in order to drive a single feature. It is better to break the design down into many features that are based on simple sketches.
With regard to Booleans, I invite methodology advise on the following:
I work in aircraft. The parts, such as front and rear spar, for example, are common to contour on the top and bottom flanges. Most of the stiffeners are orthogonal to the web; some may be canted. The webs (pocket floors) have pad-ups, and the flanges and stiffeners have steps that generally don't line-up with the pad-up steps in the floor. Using the features within the main body to create these complex machined pockets very often results in an inability to fillet afterwards and split lines where these features come together to form the steps in the flanges and stiffeners. I have found that creating separate part-bodies that are pocket features that have been split to the contours, canted planes and step locations, filleted, and then 'assembled' into the main part body, which removes the material as a pocket, works well and results in a more simple tree...??
What are some other good methods for these complex parts?
l3ob,
Yes, in your case booleans are necessary for the performance and stability of your part.
I think that the initial admonitions against the use of booleans have more to do with using features, as jackk points out. In V4, we used to subtract a cylinder to create a hole. We used to subtract a cuboid or prism to create a simple pocket. In V5 it is preferable to use Hole or Pocket for these simple shapes. Obviously, in more complex situations are definitely necessary.
The real point is to use whichever tools are easiest and most stable to accomplish the job. Don't go out of your way to avoid booleans. But don't go out of your way to create them either.
In your response to l3ob you mention the "stability" of part models. Can you elaborate on what you mean by model stability? How can the use of booleans affect stability?
Sometimes fillets work better on external corners than they do on internal corners. In this case, you would create a "negative" Body for the pocket, fillet it, and then assemble or subtract that from the main body.
Other times you may find in a very large solid that your performance will be faster if you can group features together (like in V4 with the "horizontal tree").
Still other times, it might be easier to create a bunch of bodies and then assemble them to the main body. Then if you change one of them, you don't have to update the entire tree, just the branch that you changed (and anything below in the main branch). Take for example a part with 100 holes. If you create the Pad, then create each hole one at a time (pretend for the moment that a Pattern doesn't work). You end up with a "vertical" tree that has no boolean operations. Then, if you change one hole near the top of the tree, the entire part has to update. This can take a very long time. Or what if you need to delete the first hole? If you had taken the common approach of selecting the functional surface of the solid for each hole, your entire solid will blow up - since each hole below relies on the functional surface of the hole above, which was deleted. In this case, creating a bunch of negative bodies outside of the primary body will leave each of the holes independant of the others. Another solution here, of course, is to extract the face of the solid first and tie each hole to that extracted face.