-
Notifications
You must be signed in to change notification settings - Fork 156
Creating a parametric object that survives restart
Gaël Écorchard edited this page Mar 5, 2021
·
1 revision
I order to have a parametric object survive FreeCAD restart, a few points must be respected. By "surviving", I mean that even after restarting FreeCAD you can change the properties of the parametric object and the shape will adapt accordingly. If you don't do this, you have a parametric object that has dynamic properties when you create it but looses them after and only retains its immutable shape after restart.
- write the core of your macro in a separate module. For example, for a macro named
GreatParametricObject, put this code in thegreat_parametric_object.pyin thegreat_parametric_objectdirectory alongside your macro withGreatParametricObjectbeing the class creating your object and callfrom great_parametric_object.great_parametric_object import GreatParametricObjectin the FCMacro file, which becomes a thin-wrapper to the core functionality. - do not forget to adapt the
__Files__metadata variable accordingly. - put other resources into the
great_parametric_objectdirectory, e.g.great_parametric_object/resources/user_confirmation_dialog.uiand ``great_parametric_object/resources/confirm_icon.svg. This keeps things clean and tidy. The only icon that should remain at the same hierarchy level of the macro is its icon, in our caseGreatParametricObject.svg` (with the same case). - wherever possible, try to separate the UI from the rest, so that the core of your macro is callable from other scripts, possibly without GUI.
As of writing, there are two good examples for this in the ParametricObjectCreation directory: GeodesicDome.FCMacro and HoneycombSolid.FCMacro.