005348b8a94a46934b4d013fcfb93f6399de8c63
ZTools datum planes now use FreeCAD's built-in attachment engine instead of setting MapMode='Deactivated' with manual placement. This means datums automatically update when source geometry changes on recompute. Each datum type maps to a vanilla MapMode: offset_from_face -> FlatFace + AttachmentOffset.Base.z = distance offset_from_plane -> FlatFace + AttachmentOffset.Base.z = distance midplane -> FlatFace on face1 + offset = half gap distance 3_points -> ThreePointsPlane (3 vertex refs) normal_to_edge -> NormalToEdge + MapPathParameter for position angled -> FlatFace + AttachmentOffset.Rotation for angle tangent_cylinder -> manual fallback (TangentPlane needs vertex ref) The C++ AttachExtension handles: automatic recompute via extensionExecute(), dependency tracking via PropertyLinkSubList, topology change handling, and live preview via extensionOnChanged(). Non-Body datums (Part::Plane) lack AttachExtension and continue to use manual placement as before. Other changes: - New _configure_attachment() helper sets MapMode, AttachmentSupport, AttachmentOffset, and MapPathParameter on datum objects - _setup_ztools_datum() accepts optional attachment parameters and falls back to manual placement when not provided - DatumEditTaskPanel.on_param_changed() writes to AttachmentOffset and MapPathParameter for live editing instead of TODO stubs - AttachmentSupport added to hidden properties list - Spreadsheet links target AttachmentOffset.Base.z instead of Placement.Base.z for attached datums - ZTools metadata (ZTools_Type, ZTools_Params, ZTools_SourceRefs) preserved for edit UI and styling
Description
No description provided
Languages
Python
98.6%
Makefile
1.4%