feat(silo): DAG extraction engine -- extract_dag, classify_type, properties_hash #214
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Implement the core DAG extraction functions that walk a FreeCAD document and produce the node/edge payload defined in
docs/MULTI_USER_CLIENT.mdSection 2.Deliverables
classify_type(type_id)Map FreeCAD TypeId strings to DAG node types (sketch, pad, pocket, fillet, chamfer, body, part, datum). Return
Nonefor non-feature objects.compute_properties_hash(feature_obj)SHA-256 hex digest of a feature's parametric inputs. Must cover Sketch (geometry/constraints), Pad/Pocket (length, type, reversed, profile), Fillet/Chamfer (size/angle), and any property that would trigger recomputation.
extract_dag(doc)Walk
doc.Objects, classify each, compute hash, and build edge list viaobj.InList(dependency parents). Return(nodes, edges)matching the payload in Section 2.1.Location
New file:
mods/silo/freecad/dag.pyRef
docs/MULTI_USER_CLIENT.mdSections 2-4