Problema di denominazione topologica
Introduzione
Il problema di denominazione topologica in FreeCAD si riferisce al problema di una forma che cambia il suo nome interno dopo l'esecuzione di un'operazione di modellazione (pad, taglio, unione, smusso, raccordo, ecc.). Questo si riflette sulle altre funzioni parametriche che dipendono da quella forma e ha come conseguenze che le interrompe o le calcola in modo errato. Questo problema interessa tutti gli oggetti di FreeCAD, ma è particolarmente importante quando si costruiscono solidi con PartDesign e quando si dimensionano questi solidi con TechDraw.
- In PartDesign, se una funzione è supportata su una faccia (o bordo o vertice), la funzione può interrompersi se il solido sottostante cambia dimensione o orientamento, in quanto la faccia originale (o il bordo o vertice) può essere rinominata internamente.
- In TechDraw, se una dimensione misura la lunghezza di un bordo proiettato, la dimensione potrebbe interrompersi se il modello 3D viene modificato, poiché modificando il bordo misurato i vertici possono essere rinominati.
Il problema di denominazione topologica è un problema complesso nella modellazione CAD che deriva dal modo in cui le routine interne di FreeCAD gestiscono gli aggiornamenti delle forme geometriche create con il kernel OCCT. A partire da FreeCAD 0.18 ci sono sforzi in corso per migliorare la gestione di base delle forme al fine di ridurre o eliminare tali problemi.
Il problema di denominazione topologica influisce molto spesso e confonde i nuovi utenti di FreeCAD. In PartDesign, l'utente è invitato a seguire le migliori pratiche discusse nella pagina Editazione delle funzioni. Si consiglia vivamente l'uso di oggetti di riferimento come i piani ed i sistemi di coordinate locali per produrre modelli che non sono facilmente soggetti a tali errori topologici. In TechDraw, si consiglia all'utente di aggiungere le quote solo quando il modello 3D è completo e non sarà ulteriormente modificato.
Esempio
1. In PartDesign, creare un Corpo, poi usare Nuovo schizzo e selezionare il piano XY per disegnare lo schizzo di base; quindi eseguire un Pad per creare un primo solido.
2. Selezionare la faccia superiore del solido precedente, quindi usare Nuovo schizzo per disegnare un altro schizzo; quindi eseguire un secondo pad.
3. Selezionare la faccia superiore dell'estrusione precedente e creare nuovamente uno schizzo e un pad.
4. Ora, fare doppio clic sul secondo schizzo e modificarlo in modo che la sua lunghezza sia lungo la direzione X; facendo questo si rigenera il secondo pad. Il terzo schizzo e il pad rimangono nello stesso posto.
5. A questo punto, fare nuovamente doppio clic sul secondo schizzo e regolarne i punti in modo che una parte di esso sia fuori dai limiti definiti dal primo pad. In questo modo, il secondo pad viene ricalcolato correttamente, tuttavia, guardando nella vista ad albero, nel terzo pad viene indicato un errore.
6. Rendendo visibile il terzo schizzo e pad, è chiaro che il calcolo del nuovo solido non è stato eseguito correttamente. Il terzo schizzo, invece di essere supportato dalla faccia superiore del secondo pad, appare in un posto strano, con la sua normale orientata verso la direzione X. Ciò si traduce in un pad non valido, in quanto questo pad sarebbe scollegato dal resto del Corpo, che non è consentito.
Il problema sembra essere che quando il secondo schizzo è stato modificato, la faccia superiore del secondo pad è stata rinominata da Face13
a Face14
. Il terzo schizzo è collegato a Face13
come era in origine, ma poiché questa faccia è ora sul lato (e non più in alto), lo schizzo segue il suo orientamento e ora è posizionato in modo errato.
7. Per risolvere il problema, il terzo schizzo deve essere nuovamente associato alla faccia superiore. Selezionare lo schizzo, fare clic sui puntini di sospensione (tre punti) accanto alla proprietà DatiMap Mode e scegliere di nuovo la faccia superiore del secondo pad. Quindi lo schizzo si sposta in cima al solido esistente e il terzo pad viene generato senza problemi.
La rimappatura di uno schizzo in questo modo può essere eseguita ogni volta che si verifica un errore di denominazione topologica, ma questo può essere noioso se il modello è complicato e vi sono molti schizzi che devono essere modificati.
Soluzione
Il Grafico delle dipendenze è uno strumento utile per osservare le relazioni tra i diversi corpi nel documento. L'utilizzo del flusso di lavoro di modellazione originale rivela la relazione diretta esistente tra gli schizzi e i pad. Come una catena, è facile vedere che questa dipendenza diretta è soggetta a problemi di denominazione topologica se uno qualsiasi dei collegamenti nella sequenza cambia.
Come spiegato nella pagina Editazione delle funzioni, una soluzione a questo problema consiste nel supportare gli schizzi non sulle facce ma sui piani di riferimento che sono sfalsati rispetto ai piani principali di Origine del Corpo di PartDesign
1. Selezionare l'origine del Corpo di PartDesign e accertarsi che sia visibile. Quindi selezionare il piano XY e fare clic su Piano di riferimento. Nella finestra di dialogo Offset di associazione, assegnargli un offset nella direzione Z in modo che il piano di riferimento sia complanare con la faccia superiore del primo pad.
2. Ripetere il processo ma questa volta aggiungere uno scostamento maggiore in modo che il secondo piano di riferimento sia complanare con la faccia superiore del secondo pad.
3. Selezionare il secondo schizzo, fare clic sui puntini di sospensione accanto alla proprietà DatiMap Mode, quindi selezionare il primo piano di riferimento. Il piano di riferimento è già sfalsato rispetto al piano XY del corpo, quindi per lo schizzo non è richiesto un ulteriore spostamento Z.
4. Ripetere il processo con il terzo schizzo e selezionare il secondo piano di riferimento come supporto. Di nuovo, non è necessario alcun ulteriore spostamento in Z.
5. Il grafico delle dipendenze ora mostra che gli schizzi ed i pad sono supportati dai piani di riferimento. Questo modello è più stabile in quanto tutti gli schizzi possono essere modificati essenzialmente indipendentemente l'uno dall'altro.
6. Fare doppio clic sul secondo schizzo e modificare la forma. Il secondo pad dovrebbe aggiornarsi immediatamente senza causare problemi topologici con il terzo schizzo e il terzo pad.
7. In effetti, ogni schizzo può essere modificato senza interferire con i pad degli altri. Fino a quando i pad hanno una lunghezza di estrusione sufficiente, in modo che si tocchino e formino un solido contiguo, l'intero corpo rimane valido.
Note finali
L'aggiunta di oggetti di riferimento implica più lavoro per l'utente, ma alla fine produce modelli più stabili che sono meno soggetti al problema di denominazione topologica.
Naturalmente, gli oggetti di riferimento possono essere creati prima che vengano disegnati gli schizzi e vengano prodotti i pad. Questo può essere utile per visualizzare la forma e le dimensioni approssimative del corpo finale.
I piani di riferimento possono anche essere basati su altri piani di riferimento. Ciò crea una catena di dipendenze che potrebbe anche portare a problemi topologici; tuttavia, poiché i piani di riferimento sono oggetti molto semplici, il rischio di avere questi problemi è inferiore rispetto a quando viene utilizzata la faccia di un oggetto solido come supporto.
Gli oggetti di riferimento, punti, linee, piani, ed i sistemi di coordinate, possono anche essere utili come geometrie di riferimento, ovvero come ausili visivi per mostrare le funzioni principali del modello, anche se nessuno schizzo è direttamente collegato ad essi.
Link
Progetto Denominazione: sviluppo e progettazione per implementare un sistema di denominazione topologica robusta (persistente e coerente) in FreeCAD.
Video
- Perché i miei modelli FreeCAD si rompono? - "Problema di denominazione topologica": Una spiegazione video dei problemi sottostanti al Problema di denominazione topologica
- FreeCAD è sostanzialmente danneggiato! - E adesso... Aiutami a decidere...: Un video di 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, 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, Redraw Page, Print All Pages
- Views: Insert View, Insert Active View, Insert Projection Group, Insert Section View, Insert Complex Section View, Insert Detail View, Insert Draft Workbench Object, Insert Arch Workbench Object, Insert Spreadsheet View, Insert Clip Group, Share View, Project Shape
- Stacking: Move view to top of stack, Move view to bottom of stack, Move view up one level, Move view down one level
- Decorations: Hatch Face using Image File, Apply Geometric Hatch to Face, Insert SVG Symbol, Insert Bitmap Image, Turn View Frames On/Off
- Dimensions: Insert Length Dimension, Insert Horizontal Dimension, Insert Vertical Dimension, Insert Radius Dimension, Insert Diameter Dimension, Insert Angle Dimension, Insert 3-Point Angle Dimension, Insert Horizontal Extent Dimension, Insert Vertical Extent Dimension, Link Dimension to 3D Geometry, Insert Balloon Annotation, Insert Axonometric Length Dimension, Insert Landmark Dimension, Adjust Geometric References of Dimension
- 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: 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, Create Arc Length Dimension, Insert '⌀' Prefix, Insert '〼' Prefix, Remove Prefix, Increase Decimal Places, Decrease Decimal Places
- Export: Export Page as SVG, Export Page as DXF
- 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 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: Migrate, 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: 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, Attachment
- Boolean: Make compound, Explode Compound, Compound Filter, Boolean, Cut, Fuse, Common, Connect, Embed, Cutout, Boolean fragments, Slice apart, Slice, XOR