|SolidWorks Featured Author Blog - July 2012|
Effectively using the Fill Feature
Like I’ve describe many times to my colleagues at SolidWorks, I like to refer to the Fill Feature as the “Crown Jewel” of SolidWorks advanced modeling functionality. The Fill feature was first introduced in SW2001 and then later enhanced in SW2007 to create curve continuous Boundary conditions. It has been updated with other useful enhancements, like “Fix up Boundary”, “Merge Result” and “Try to Form Solid. It is unmatched amongst its competition in giving the user the ability to “fill in” and area with any number of sides (boundaries) with (optionally) a tangent or curve continuous surface patch. Known in the industry as an N-sided patch, the user picks any number of surface edges or sketches and then has the ability to define whether the Fill surface will match tangent or not (contact) with each individual edge boundary. If this were not enough, the user also has the option to use constraint points or curves to further define the “interior” area of the Fill patch.
This feature is very important for consumer product designers, or anyone, who designs complex shapes. It is also very important to mold designers who often times need to fill in or repair import geometry with such a patch. For both product and mold designers, sometimes shapes call for areas to be filled that cannot be accomplish by a loft of sweep surface. It is comforting to know that these challenging are handled easily by the Fill Feature.
Why does the Fill Feature success when Loft and Boundary cannot? – primarily because Fill can patch surface which contains 3 or 5 or more edges. Users who try to create a Loft or Boundary surface between 6 sides will soon discover that it simply is not possible because for these surface functions to work properly they require a 2 directional approach, namely a first and second direction which are roughly perpendicular to one another and where the first and second direction edges are discontinuous (not tangent) to one another. The Fill feature does not have this restriction because in order to determine its UV direction (natural internal flow of the surface) it does not necessary derive its direction from the adjacent faces. Nowhere is that more evident when you compare creating a 3 sided boundary surface as compared to a 3-sided fill surface (see figure 1)
Notice how the Boundary surface derives its UV flow from the adjacent faces, while the Fill feature assigns an arbitrary UV direction for the patch, even when made tangent or continuous to the edges that it is filling; this is the key difference between the two. You see, you would never want to, in practice, create a three-sided Boundary or Loft surface because of the “convergence” that occurs at one corner of the patch. This creates a point of “degeneracy” which is undesirable both aesthetically (unexpected knotting of the surface) and functionally (downstream features will fail like offset surface and shelling.)
What some users have notice is that the Fill feature, as powerful as it is, can sometimes be very unruly and the application of it results in something out of the movie “the Perfect Storm” (see figure 2.)
This can be caused by one of three preexisting conditions; A) if the user tries to create a fill surface with tangent or curve continuous edges applied to its boundaries and the preexisting edges themselves are not tangent or curve continuous to one another at their intersections, then the Fill feature cannot resolve this discrepancy and will do a “best-fit”. B) More often is the case that users are creating a Fill surface with “contact” boundary conditions. Often times this does work effectively, but what is an important aspect to note is that Fill is greatly dependent on the existing boundary face normals in order to drive the internal flow of the fill feature surface patch. In other words, unlike Boundary, which has a general first and second direction built-in to its nature, Fill’s UV direction initially is arbitrarily set and requires important directional information from the surround surfaces. When boundaries are set to contact, the Fill only has the edge itself as information to create the result patch. For this reason, if you take a look at many of my models that use Fill, more often than not, there exist more “reference surfaces” that actual model surfaces. This is because I create reference surfaces in order to drive my Fill surfaces. Finally C) if a user tries to use more than two constraint curves or points, this can “overload” Fill with too much information to drive the internal shape of the surface. It is best to limit Fill to one or two Constraint curves or points to further define the internal shape.
Take the following simple example; in figure 3 I’ve create a fill surface between a network of 3Dsketch curves. Because all the boundaries have no adjacent surfaces, all boundaries are “contact.” Looks pretty good but upon closer examination ( figure 4 )I’ve rotated the view to show an unexpected bulge in the surface. Now take the alternative (figure 5), where I reapply the fill feature, only this time I use reference surfaces that I’ve create (from the 3D sketch curves and used them to derive tangency for the Fill feature boundary definition. Look again at the same rotated view (figure 6) of the surface – the bulge no longer exists because the Fill feature interior UV flow is better driven by the tangency conditions of the surrounding surfaces.
When it comes to reference surfaces, I have a quick method of doing this where I will create a simple 3D sketch with two straight lines that are made tangent to the existing adjacent boundary edges (see figure 7), then I use the adjacent sketch curve, along with the two 3D sketch lines to build a Boundary surface as a reference surface to drive tangency for a soon-to-follow Fill Surface (see figure 8.)
Now instead of just the 3D sketch curve, I use the surface edge which has tangency information that can better drive the shape of the fill surface. I’ve found that there is almost no shape I cannot create using these practices. I hope that you too can take advantage of the power of the Fill feature and master the “taming of the shrew”!
A few quick tips to more effectively use the Fill Surface:
Selection - When making selections for Fill, instead of click selecting every single boundary edge, click one edge and RMB (right mouse button) and choose “Open Loop.” If the collection of surrounding surfaces or faces is knitted, it will automatically gather up the proper edges in one click.
Fix up Boundary – sometimes patching open areas with Fill will not work because there exists small edges (microscopic) that prevent the Fill to complete. Fix-up-Boundary automatically tries to jump these gaps allowing the Fill feature to complete.
Try to Form Solid – often times the workflow when using Fill, is to repair a solid model in a temporary surface body state. Checkmarking this option combines a knit and thicken to Solid along with the Fill Feature.
Optimize Surface – on by default this option tries first to create a “Coon’s patch” type of surface. If there is one direction or two direction conditions (like I’d mentioned that is appropriate for Loft or Boundary) Fill will detect this and apply this type of surface to make Fill more efficient. You might want to at times experiment with this option because you can get slightly different results based on your current selection.
A degreed Industrial Designer, Mark has worked in the product design industry for over 25 years for such companies as Atari, Hewlett Packard and IDEO. Joining SW in 2004 as a Product Manager, he currently is Senior Product Manager for Definition.