Problema de denominación topológica
Introducción
El problema de denominación topológica en FreeCAD se refiere a la cuestión de que una forma cambie su nombre interno después de que se realice una operación de modelado (almohadilla, corte, unión, chaflán, filete, etc.). Esto dará lugar a que se rompan o se calculen incorrectamente otras características paramétricas que dependen de esa forma.
Este problema afecta a todos los objetos de FreeCAD, pero es especialmente notable cuando se construyen sólidos con el
Ambiente de trabajo DiseñoPieza, y al dimensionar esos sólidos con el
Ambiente de trabajo DibujoTécnico.
- En
DiseñoPieza, si un rasgo se apoya en una cara (o borde o vértice), el rasgo puede romperse si el sólido subyacente cambia de tamaño u orientación, ya que la cara (o borde o vértice) original puede ser renombrada internamente.
- En
DibujoTécnico, si una dimensión está midiendo la longitud de un borde proyectado, la dimensión puede romperse si se cambia el modelo 3D, ya que los vértices pueden ser renombrados cambiando así el borde medido.
El problema de la denominación topológica es un problema complejo en el modelado CAD que se deriva de la forma en que las rutinas internas de FreeCAD manejan las actualizaciones de las formas geométricas creadas con el OCCT kernel. A partir de FreeCAD 0.19 se están realizando esfuerzos para mejorar el manejo del núcleo de las formas con el fin de reducir o eliminar tales problemas.
- Hilo del foro: Denominación Topológica, Mi Toma
Starting with FreeCAD 0.19 there are ongoing development efforts to improve the core handling of shapes in order to reduce the impact of these issues. The naming algorithm described in forum thread Topological Naming, My Take is designed to reduce manual effort, sometimes by automatically fixing up problems, and other times presenting a likely solution, or at least clearly showing what caused the problem. The first stable release of FreeCAD to feature this new naming algorithm will be 1.0. Over time, this algorithm will be applied to more parts of FreeCAD, and more automatic and assisted repair will be added in later versions.
El problema de la denominación topológica afecta y confunde con mayor frecuencia a los nuevos usuarios de FreeCAD. En DiseñoPieza, se aconseja al usuario que siga las mejores prácticas discutidas en la página edición de características. Se recomienda encarecidamente el uso de objetos de referencia de apoyo como planos y sistemas de coordenadas locales para producir modelos que no estén fácilmente sujetos a tales errores topológicos. En DibujoTécnico, se aconseja al usuario que añada dimensiones sólo cuando el modelo 3D esté completo y no se modificará más.
Ejemplo
1. En la Ambiente de trabajo DiseñoPieza, crear un
DiseñoPieza Cuerpo, luego use
DiseñoPieza NuevoBoceto y seleccionar el plano XY para dibujar el boceto base; luego realizar un
DiseñoPieza Pad para crear un primer sólido.
2. Seleccione la cara superior del sólido anterior y, a continuación, utilice DiseñoPieza NuevoBoceto para dibujar otro boceto; a continuación, realice una segunda almohadilla.
![]() |
![]() |
3. Selecciona la cara superior de la extrusión anterior, y una vez más crea un boceto, y un pad.
4. Ahora, haz doble clic en el segundo croquis, y modifícalo para que su longitud sea a lo largo de la dirección X; haciendo esto se recreará el segundo pad. El tercer croquis y la almohadilla permanecerán en el mismo lugar.
![]() |
![]() |
5. Ahora, haz doble clic en el segundo croquis de nuevo, y ajusta sus puntos para que una parte de él esté fuera de los límites definidos por el primer pad. Al hacer esto, el segundo pad volverá a calcular correctamente, sin embargo, al mirar la vista de árbol, se indicará un error en el tercer pad.
![]() |
![]() |
6. Al hacer visibles el tercer croquis y la pastilla, queda claro que el cálculo del nuevo sólido no se ha realizado correctamente. El tercer croquis, en lugar de apoyarse en la cara superior del segundo pastilla, aparece en un lugar extraño, con su normal orientada hacia la dirección X. Esto da lugar a un pastilla no válido, ya que este pastilla estaría desconectado del resto del DiseñoPieza Cuerpo, lo que no está permitido.
El problema parece ser que cuando se modificó el segundo croquis, la cara superior de la segunda pastilla pasó de llamarse Face13
a Face14
. El tercer croquis está unido a Face13
como lo estaba originalmente, pero como esta cara está ahora en el lateral (no en la parte superior), el croquis sigue su orientación y ahora está colocado incorrectamente.
![]() |
![]() |
7. Para solucionar el problema, el tercer croquis debe ser mapeado a la cara superior de nuevo. Seleccione el croquis, haga clic en la elipsis (tres puntos) junto a la propiedad DatosMap Mode y vuelva a elegir la cara superior del segundo pastilla. Entonces el croquis se mueve a la parte superior del sólido existente, y el tercer pastilla se genera sin problemas.
![]() |
![]() |
Reasignar un boceto de esta manera puede hacerse cada vez que haya un error de denominación topológica, sin embargo, esto puede ser tedioso si el modelo es complicado y hay muchos bocetos de este tipo que necesitan ser ajustados.
Solución

El grafo de dependencia es una herramienta útil para observar las relaciones entre los distintos cuerpos del documento. El uso del flujo de trabajo de modelado original revela la relación directa que existe entre los bocetos y las almohadillas. Al igual que una cadena, es fácil ver que esta dependencia directa estará sujeta a problemas de nomenclatura topológica si cambia alguno de los eslabones de la secuencia.
Como se explica en la página edición de características, una solución a este problema es admitir bocetos no en las caras sino en los planos de referencia que están desplazados de los planos principales del DiseñoPieza cuerpo Origen.
1. Seleccione el origen del DiseñoPieza Cuerpo y asegúrese de que es visible. A continuación, seleccione el plano XY y haga clic en DiseñoPieza Plano. En el cuadro de diálogo de desplazamiento del accesorio, dele un desplazamiento en la dirección Z para que el plano de referencia sea coplanario con la cara superior del primer pad.
2. Repita el proceso pero esta vez añada un desplazamiento mayor para que el segundo plano de referencia sea coplanario con la cara superior de la segunda almohadilla.
![]() |
![]() |
3. Seleccione el segundo croquis, haga clic en la elipsis junto a la propiedad DatosModo mapa y, a continuación, seleccione el primer plano de referencia. El plano de referencia ya está desplazado desde el plano XY del cuerpo, por lo que no es necesario un desplazamiento Z adicional para el croquis.
4. Repita el proceso con el tercer croquis y seleccione el segundo plano de referencia como soporte. De nuevo, no es necesario ningún otro desplazamiento Z.
5. El gráfico de dependencia muestra ahora que los croquis y los pads se apoyan en los planos de referencia. Este modelo es más estable, ya que cada croquis puede modificarse de forma esencialmente independiente de los demás.
6. Haz doble clic en el segundo croquis y modifica la forma. El segundo pad debería actualizarse inmediatamente sin causar problemas topológicos con el tercer croquis y el tercer pad.
7. De hecho, cada boceto puede ser modificado sin interferir con los pads de los demás. Siempre que los pads tengan una longitud de extrusión suficiente, de modo que se toquen y formen un sólido contiguo, todo el cuerpo será válido.
Tradeoffs
Añadir objetos de datos supone más trabajo para el usuario, pero en última instancia produce modelos más estables que están menos sujetos al problema de los nombres topológicos.
Naturalmente, los objetos de referencia pueden crearse antes de dibujar los bocetos y producir las almohadillas. Esto puede ser útil para visualizar la forma y las dimensiones aproximadas del cuerpo final.
Los planos de referencia también pueden basarse en otros planos de referencia. Esto crea una cadena de dependencias que también podría dar lugar a problemas topológicos; sin embargo, como los planos de referencia son objetos muy simples, los riesgos de tener estos problemas son menores que si se utiliza la cara de un objeto sólido como soporte.
Los objetos Datum, puntos, líneas, planos, y sistemas de coordenadas, también pueden ser útiles como geometría de referencia, es decir, como ayudas visuales para mostrar las características importantes en el modelo, incluso si no se adjunta ningún croquis directamente a ellos.
Topological naming algorithm
Realthunder's topological naming algorithm selected to reduce the impact of this problem has been widely described as "fixing the topological naming problem," which has unintentionally misled many users into thinking that it will no longer be helpful to use techniques like datums, explicit sketch placement, and Feature editing to make models more stable. The algorithm is not intended to fix every failure introduced by topological naming ambiguity. Rather, it has three purposes.
- The first and most important purpose is, whenever possible, to identify broken references from topological changes and display an error to the user. Instead of having to work through a series of operations to find the first operation that diverges from the design intent, the operation that changes the names will normally be flagged with an error, making it much easier to manually fix model problems introduced by changes to operations or parameters.
- Sometimes, FreeCAD will be able to identify a likely fix for a broken reference, so that when the user is manually fixing up the flagged broken reference, a candidate will be presented for them to accept or change. A common example of this is dress-up operations like fillets and chamfers, where user might have to to edit the operation and either accept the proposed replacement feature selection or change it to correct it.
- In some cases, FreeCAD will be able to automatically resolve the broken reference, because enough information about the reference is stored to have high confidence that the replacement is correct. For example, when sketching directly on a face, the algorithm will frequently (but not always) correctly repair the reference to the face when the underlying geometry is changed parametrically. (When changing the structure, such as by adding or deleting operations in the middle of a Part Design Body, this kind of automatic repair will be less likely.) However, FreeCAD will do this only with high confidence in the correctness of the repair, because an incorrect automatic repair may re-introduce the problem of having to hunt for where a problem was introduced in order to repair a model after a modification. First, do no harm.
The goal for FreeCAD 1.0 is that the implementation of this algorithm in the official FreeCAD release has reached feature parity with Realthunder's "Linkstage 3" fork, where he originally developed the algorithm, as of the time the integration work started. There are new FreeCAD features that could use the algorithm but do not yet, and there will always be more opportunities to add candidate fixes and automatic repair. The initial work has provided a framework to use for these additional improvements over time, both in core FreeCAD and in Addons.
Enlaces
- PartDesign Redondeo - Denominación topológica
- Topological Naming, My Take, a possible solution, by realthunder.
- Proyecto de denominación topológica: idea para resolver el problema, por ickby.
- Scripting de datos topológicos
- Edición de artículos: contiene consejos alternativos para las técnicas de modelado estable.
Vídeos
- Why do my FreeCAD models break? - "Topological Naming Problem": Una explicación en vídeo de los problemas subyacentes de Problema de denominación topológica
- ¡FreeCAD Está Fundamentalmente Roto! - ¿Ahora qué?... Ayudame a decidir...: Un video de Maker Tales

- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Assembly, BIM, CAM, Draft, FEM, Inspection, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub
- Pages: Insert Default Page, Insert Page using Template, Update template fields, Redraw Page, Print All Pages, Export Page as SVG, Export Page as DXF
- Views:
- TechDraw views: Insert View, Insert Broken View, Insert Section View, Insert Complex Section View, Insert Detail View, Insert Projection Group, Insert Clip Group, Insert SVG Symbol, Insert Bitmap Image, Share View, Turn View Frames On/Off, Project Shape
- Views from other workbenches: Insert Active View, Insert Draft Workbench Object, Insert BIM Workbench Object, Insert Spreadsheet View
- Stacking: Move view to top of stack, Move view to bottom of stack, Move view up one level, Move view down one level
- Dimensions: Insert Dimension, Insert Length Dimension, Insert Horizontal Dimension, Insert Vertical Dimension, Insert Radius Dimension, Insert Diameter Dimension, Insert Angle Dimension, Insert 3-Point Angle Dimension, Insert Area Annotation, Create Arc Length Dimension, Insert Horizontal Extent Dimension, Insert Vertical Extent Dimension, Create Horizontal Chain Dimensions, Create Vertical Chain Dimensions, Create Oblique Chain Dimensions, Create Horizontal Coordinate Dimensions, Create Vertical Coordinate Dimensions, Create Oblique Coordinate Dimensions, Create Horizontal Chamfer Dimension, Create Vertical Chamfer Dimension, Insert Balloon Annotation, Insert Axonometric Length Dimension, Insert Landmark Dimension, Dimension Repair, Link Dimension to 3D Geometry
- Hatching: Hatch Face using Image File, Apply Geometric Hatch to Face,
- Annotations: Insert Annotation, Add Leaderline to View, Insert Rich Text Annotation, Add Cosmetic Vertex, Add Midpoint Vertices, Add Quadrant Vertices, Add Centerline to Faces, Add Centerline between 2 Lines, Add Centerline between 2 Points, Add Cosmetic Line Through 2 points, Add Cosmetic Circle, Change Appearance of Lines, Show/Hide Invisible Edges, Add Welding Information to Leader, Add Surface Finish Symbol, Add Hole or Shaft Tolerances
- Extensions:
- Attributes and modifications: Select Line Attributes, Cascade Spacing and Delta Distance, Change Line Attributes, Extend Line, Shorten Line, Lock/Unlock View, Position Section View, Position Horizontal Chain Dimensions, Position Vertical Chain Dimensions, Position Oblique Chain Dimensions, Cascade Horizontal Dimensions, Cascade Vertical Dimensions, Cascade Oblique Dimensions, Calculate the area of selected faces, Calculate the arc length of selected edges, Customize format label
- Centerlines and threading: Add Circle Centerlines, Add Bolt Circle Centerlines, Add Cosmetic Thread Hole Side View, Add Cosmetic Thread Hole Bottom View, Add Cosmetic Thread Bolt Side View, Add Cosmetic Thread Bolt Bottom View, Add Cosmetic Intersection Vertex(es), Add an offset vertex, Add Cosmetic Circle, Add Cosmetic Arc, Add Cosmetic Circle 3 Points, Add Cosmetic Parallel Line, Add Cosmetic Perpendicular Line
- Dimensions: Insert '⌀' Prefix, Insert '□' Prefix, Insert 'n×' Prefix, Remove Prefix, Increase Decimal Places, Decrease Decimal Places
- Miscellaneous: Remove Cosmetic Object
- Additional: Line Groups, Templates, Hatching, Geometric dimensioning and tolerancing, Preferences
- Structure tools: Part, Group
- Helper tools: Create body, Create sketch, Attach sketch, Edit sketch, Validate sketch, Check geometry, Create a shape binder, Create a sub-object(s) shape binder, Create a clone, Create a datum plane, Create a datum line, Create a datum point, Create a local coordinate system
- Modeling tools:
- Additive tools: Pad, Revolution, Additive loft, Additive pipe, Additive helix, Additive box, Additive cylinder, Additive sphere, Additive cone, Additive ellipsoid, Additive torus, Additive prism, Additive wedge
- Subtractive tools: Pocket, Hole, Groove, Subtractive loft, Subtractive pipe, Subtractive helix, Subtractive box, Subtractive cylinder, Subtractive sphere, Subtractive cone, Subtractive ellipsoid, Subtractive torus, Subtractive prism, Subtractive wedge
- Boolean: Boolean operation
- Dress-up tools: Fillet, Chamfer, Draft, Thickness
- Transformation tools: Mirrored, Linear Pattern, Polar Pattern, Create MultiTransform, Scaled
- Extras: Sprocket, Involute gear, Shaft design wizard
- Context menu: Set tip, Move object to other body, Move object after other object, Appearance, Color per face
- Preferences: Preferences, Fine tuning
- Primitives: Box, Cylinder, Sphere, Cone, Torus, Tube, Create primitives, Shape builder
- Creation and modification: Create sketch, Extrude, Revolve, Mirror, Scale, Fillet, Chamfer, Make face from wires, Ruled Surface, Loft, Sweep, Section, Cross sections, 3D Offset, 2D Offset, Thickness, Projection on surface, Color per face
- Boolean: Make compound, Explode compound, Compound Filter, Boolean, Cut, Union, Intersection, Connect objects, Embed object, Cutout for object, Boolean fragments, Slice apart, Slice to compound, Boolean XOR, Check geometry, Defeaturing
- Other tools: Import CAD file, Export CAD file, Box selection, Create shape from mesh, Create points object from geometry, Convert to solid, Reverse shapes, Create simple copy, Create transformed copy, Create shape element copy, Refine shape, Attachment
- Preferences: Preferences, Fine tuning