We have a variety of CAD & CAM associativity from solids. Robustness varies with the magnitude of the solid change, and the selection type used.


  • CAM operations machining a solid are linked to a specific solid ID.
  • Every modeling operation creates a new solid with a new solid ID.

Solids have CAD associativity through their history tree. With varying robustness. Some modeling operations select a solid (like booleans), some select faces (unstitch), and some select edges (like rounding).

Modeling operations that select entire bodies are very robust, face selections less so (because changes may effect face IDs if the number of faces change), and edge selections least so (because it is common for modeling changes to change the number of edges and edge IDs.) These are not GibbsCAM limitations, but rather limitations of solid modeling associativity in general.

The simplest and least automatic way to machine a different solid (new import or modified since machined) is to double click operations and make a new selection on the new solid, one process group at a time.

More automatic is to apply the entire op list to the new solid. In v7.7 (version 8 and above see Model Associativy Plug-In secion below) and earlier, maintaining the CAM linkage to a solid requires careful editing of the solid history tree, so that the solid ID machined doesn't change ids (top solid in the tree). Simple machining of an imported solid is best done by doing a 0 translate, creating a history tree, and machining the new solid. You can import another solid (an update to the first), use Swap or Replace to edit it into the tree, rebuild the Solid.

Rebuilding a solid preserves all solid IDs in the tree. So the top solid is now based on the new import, but has the same ID machined before. Redo All Ops will machine the modified solid. More information about using Swap and Replace and the Rebuild functions can be found in the SolidSurfacer manual.

Just as solid modeling associativity robustness varies with selection type, so does a CAM Process' associativity robustness:

  • Select the entire solid - very robust; for pocketing, entry drilling and lace cutting.
  • Contour SP/EP markers are tied to face IDs and will fail with Face ID changes.
  • Profiler - is sensitive to the Z depth of the profile and uses face IDs to know which profiles you selected, and for Contour markers.
  • Face selection - less robust, relies on face IDs staying the same. Edge selection - even less robust, as edges can change easily
  • Extracted geometry - no associativity with solid.

Model Associativity Plug-In - In GibbsCAM v8 and later there is a plug-in that can simplify this process called Model Associativity. Its usage is pretty straight-forward. More information can be found in the Plug-Ins Guide.

Geometry in general - CAM operations link to a geometry shape via it's workgroup#, Start Feature# and End Feature#. Editing geometry shapes in a way that changes any of these three items, breaks CAM associativity. Geometry Expert goes out of it's way to protect SF# & EF#. Simply deleting a SF element (line or circle) and creating another feature, and connecting it in, makes no effort to produce a new feature of the same ID number (feature label).

It's easy to edit geometry so that it breaks CAM associativity. You cannot change a start feature from a line to a circle and maintain associativity, as if the SF# was L12, C5 is not going to work as a new SF#.

Double clicking on an operation will check to see if you have broken CAM associativity. If a solid or geometry comes up properly selected, you haven't. If no solid or geoemtry comes up selected, it's because CAM associativity has been broken.

Face and Edge IDs are changed by the modeling processes. If you are machining two different solids from different sources, there is little chance their face and edge IDs will match (unless the CAD users work to make it so, as they might for an internal family of parts), so Face and Edge ID selections are pretty useless for general application.

Similarly, they are useless when the number of features is changing between models, different number of pockets, etc. However they can be very useful when dealing with revisions of the same solid. Many modeling changes do not effect face and edge IDs; scaling, rotation, dimension changes, etc. Face and edge ID changes in areas not machined also have no effect.

Some parts can be machined from an entire solid selection, relying on Stock and Material Only to produce efficient toolpaths with subsequent operations. Where suitable, this approach supports large solid changes and still works well. It is not sensitive to solid face or edge ID changes. You may have to adjust Process Z+- if the model changes in this dimension. You should shrink wrap the new solid. This is similar to Saved Processes and their reuse on new solids.

In summary, we can have powerful family of parts style associativity ... IF your part can be machined using only full solid selection. If you need to rely on face and edge selection, your CAM associativity will only be 100% for solid modifications that do not change the face and edge IDs.

If you are machining from extracted geometry you will have to re-extract the geometry and re-apply the machining. If you want to optimize CAM associativity for geometry extraction in the current version, you could always extract into an empty workgroup and only machine from that workgroup . Geometry should be created in selected edge ID order (not selection order). An empty workgroup will start creating with P1, L1, C1, etc. So, if you select the same edges each time, and extract into the same empty workgroup , and machine geometry in that workgroup , the workgroup #, SF#, and EF# s/match that last machined and you should pass the op double click test.