The topological naming problem in FreeCAD refers to the issue of a shape changing its internal name after a geometrical modelling operation (pad, cut, fuse, chamfer, fillet, etc.) is performed. This will result in other parametric features that depend on that shape to break or be incorrectly computed. This issue affects all objects in FreeCAD but is especially notable when building solids with the PartDesign Workbench, and when dimensioning those solids with the TechDraw Workbench.
- In PartDesign, if a feature is supported on a face (or edge or vertex), the feature may break if the underlying pad changes size or orientation, as the original face (or edge or vertex) may be internally renamed.
- In TechDraw, if a dimension is measuring the length of a projected edge, the dimension may break if the 3D model is changed in such a way that it affects the edge.
The topological naming issue is a complex problem in CAD modelling that stems from the way the FreeCAD core routines handle updates to the shapes created with OCCT geometrical operations. As of FreeCAD 0.18 there is ongoing efforts to reduce or eliminate such topological issues. These new developments may eventually be included in future versions of FreeCAD.
The topological naming problem most often affects and confuses new users to FreeCAD. Careful modelling and use of supporting datum objects like planes and local coordinate systems is advisable to produce stable models that aren't easily subject to such errors.
1. In the PartDesign Workbench, create a PartDesign Body, then use PartDesign NewSketch and select the XY plane to create a sketch; then perform a PartDesign Pad to create a first solid.
2. Select the top face of the previous solid, and then use PartDesign NewSketch to draw another sketch; then perform a second pad.
3. Select the top face of the previous extrusion, and once again create a sketch, and a pad.
4. Now, the second sketch will be modified so that the length is towards the X direction; doing this will recreate the second pad. The third pad will stay in the same place.
5. Now, modify again the second sketch, so that it leaves the limits defined by the first pad. By doing this, the second pad will recompute correctly, however, when looking at the tree view, an error will be indicated in the third pad.
6. By making visible the third sketch and pad, it is clear that the computation did not proceed correctly. The third sketch, instead of being supported by the top face of the second pad, appears in a strange orientation, resulting in an invalid pad, as this pad would be disconnected from the rest of the PartDesign Body.
As explained in the feature editing page, a solution to this problem is to support sketches not on faces but on datum planes which are themselves offset from the main XY plane of the PartDesign Body.
In this manner, it doesn't matter if the second sketch changes, as the modified second pad will not affect the support of the third sketch.
Adding datum objects is more modelling work for the user, but ultimately produces more stable models that are less subject to the topological naming problem.
- Pages: New Default, New Pick
- Views: New View, New Projection Group, New Section, New Detail, New Annotation, New Draft, New Arch, Spreadsheet
- Clips: Clip, ClipPlus, ClipMinus
- Dimensions: New Length, New Horizontal, New Vertical, New Radius, New Diameter, New Angle, New Angle3Pt, New Links, New Balloon
- Decoration: Hatch Area, Geometric Hatch, New Symbol, New Image, Toggle Frames
- Modeling tools
- Datum tools: Create a datum point, Create a datum line, Create a datum plane, Create a local coordinate system, Create a shape binder, Create a clone
- Additive tools: Pad, Revolution, Additive loft, Additive pipe, Additive box, Additive cone, Additive cylinder, Additive ellipsoid, Additive prism, Additive sphere, Additive torus, Additive wedge
- Subtractive tools: Pocket, Hole, Groove, Subtractive loft, Subtractive pipe, Subtractive box, Subtractive cone, Subtractive cylinder, Subtractive ellipsoid, Subtractive prism, Subtractive sphere, Subtractive torus, Subtractive wedge
- Modifying objects: Booleans, Union, Common, Cut, Join features, Connect, Embed, Cutout
- Splitting tools: Boolean fragments, Slice a part, Slice, XOR, Part Defeaturing
- Compound: Make compound, Explode Compound, Compound Filter; Extrude, Fillet, Revolve, Section, Cross sections, Chamfer, Mirror, Ruled Surface, Sweep, Loft
- Offset tools: 3D Offset, 2D Offset, Thickness, Projection on surface
- Other tools: Import CAD, Export CAD, Shape from Mesh, Convert to solid, Reverse shapes, Create simple copy, Create transformed copy, Create shape element copy, Refine shape, Check geometry, Measure, Attachment
- Installation: Unix, Windows, Mac; Getting started
- Basics: About FreeCAD, Workbenches, Preferences, Document structure, Interface Customization, Properties, Mouse Model; Tutorials
- Workbenches: Std Base; Arch, Draft, FEM, Image, Inspection, Mesh, OpenSCAD, Part, PartDesign, Path, Plot, Points, Raytracing, Reverse Engineering, Robot, Ship, Sketcher, Spreadsheet, Start, Surface workbench, TechDraw, Test Framework, Web
- Scripting: Introduction to Python, FreeCAD scripting tutorial, FreeCAD Scripting Basics, How to install macros, Gui Command, Units Modules: Builtin modules, Workbench creation, Installing more workbenches Meshes: Mesh Scripting, Mesh Module Parts: The Part Module, Topological data scripting, PythonOCC, Mesh to Part Coin scenegraph: The Coin/Inventor scenegraph, Pivy Qt interface: PySide, Using the FreeCAD GUI, Dialog creation Parametric objects: Scripted objects Other: Code snippets, Line drawing function, Embedding FreeCAD, FreeCAD vector math library, Power users hub, Python, Macros, FreeCAD Scripting Basics, Topological data scripting