Wednesday, March 4, 2009

Feature Recognition and Direct Editing

Three dimensional automatic feature recognition technologies have been around for at least 20 years.  There are many uses for feature recognition in our industry.  Makers of parametric history-based modeling systems have attempted to use feature recognition capabilities to turn “dumb” imported solid models into feature-based solids.  CAM vendors have used feature recognition to automatically identify holes, slots, pockets and bosses in 3D geometry to help automate the process of tool path generation.

While useful for the two cases mentioned above, feature recognition is critical to good direct editing and history-free design.  Direct editing functions require that a face or collection of faces be passed to the edit function (for some functions, it may be edges).  There are a variety of ways that a face or collection of faces can be identified.  Certainly you can select one face at a time.  Some systems allow for a viewport box select.  There is also what I call conditional recognition, where geometry is selected based on conditions such as tangent, adjacent, coincident and so on. And then there is feature recognition. Robust, predictictable feature recognition can greatly speed the process of direct editing.

Automatic feature recognition will require the user to select a single face; some call this the seed face.  The feature recognition algorithm will start with the seed face and walk through the topology of a solid model looking for very specific conditions and regularities in the topology to identify a useful collection of faces, perhaps representing a hole, a boss, a pocket or perhaps a rib or slot.  The term “Automatic” should already tell you that the results may not always align with expectations, but good robust feature recognition should deliver predictable results.

The above images show a fairly complex rib in a portable drill case. With one pick on a side face of the rib, the feature recognition algorithm walks through the topology to find specific conditions and then provides the highlighted results. In this situation the algorithm has recognized all of the other faces associated with the rib, even though the rib intersects with multiple other faces. Without this capability the user would have to try to box select the entire rib, most likely getting too many other faces from the same region, or perhaps select each face individually. Now that these faces are selected they can be passed to, or consumed by, an edit function – perhaps move it, taper it, make it thicker or thinner, copy and paste it somewhere else, or even remove it. It just depends on what direct edit functions are available in the system and how robust they are. Since feature recognition is topology based, it will work the same for any 3D geometry format such as IGES, STEP, SAT or native.

Each CAD system today has different concepts and capabilities of feature recognition. With parametric history-based CAD systems, multiple face selection really does not apply as modifications are done through preexisting parameters and feature definitions. However it certainly can apply and be very useful for the direct editing functions, depending on the direct editing capabilities. Most of these systems do have direct editing capabilities now, but very few of them have useful tools like feature recognition to help with face selection. NX seems to have a reasonable collection of conditional and feature recognition capabilities and I am sure we will see others follow.

For history-free systems, feature recognition becomes very important. With all history-free CAD systems you will drive many edits by selecting the geometry to edit and then specify the modification, (an exception may be when driving change through parameters and/or dimensions). The geometry selection process can be simplified with good feature recognition. CoCreate Modeling, SpaceClaim and KeyCreator all have good feature recognition capabilities, although there are some significant differences in how they work and how robust they are. These systems also come with a good variety of conditional recognition capabilities.

It is a bit interesting to see how differently these algorithms actually work from one system to the other. If you are considering direct editing within a parametric history-based system as an important tool for your product design process, or perhaps considering history-free design, it would be good to spend a bit of time evaluating this capability. Good feature recognition can save a fair amount of time while making those needed modifications. Don’t forget to check it out.



Anonymous said...

I think feature recognition and parametrization are key for direct editing CAD.

I've been a long time user of CoCreate. Started with its predecessor ME10/ME30 when our Lake Stevens Division of HP was involved with developing mechanical CAD. I've used both Solidworks and CoCreate over the years and for me CoCreate seems a much more natural way to design. I like that Solidworks captures the design intent with parameters, but hate that it drags along the history as well. The history tree and design intent are not the same and Solidworks needs it strictly because of it's implementation.

I enjoy ready your blog. Thanks.

Anonymous said...

"NX seems to have a reasonable collection of conditional and feature recognition capabilities and I am sure we will see others follow."

I wish I knew of someone who was using NX CAM's feature recognition as it looks to be the most powerful CAM feature recognition that I've seen.

The problems seems to be that production and prototype machining job shops don't want to pay a skilled CAM programmer/machinist the money it takes to build a sophisticated database of their machining strategies so that CAM programming can be automated.

Here is a link that should give anyone an idea of just how incredibly powerful NX CAM's feature recognition appears to be:

Jon Banquer
San Diego, CA