I think I wrote this a bit misleading (especially the word “editing”)
I’m talking about changing the whole shape of one step before (or while) generating the (general shape of the) parametric object. In the staircase example: I really want to define how my single steps (or whatever part I’m modifying is right now) will look. Maybe i want some steel-grid steps, Some out of whole wood, etc…
Same for heads of screws, shape of the single wood-pieces in a fence, window-borders, etc…
The optimal way would be to already have this as a option in the generation/option-dialog (i.e. “What type of xxx do you want”) or by creating an extra mesh and ‘linking’ it into the parametric mesh somehow. Dunno how the second way could be possibly implemented code- and interface-wise though.
I know that some parametric geometry can only be achieved by generating them via script, but there are lot’s of cases where “using a template mesh” should work fine. The Array modifier shows quite well what i mean (although in a different way)
When the shape is final the conversion into lower level representations can be done (if needed).
Didn’t try Spyder yet, so I’m not sure how it works and what you are talking about here
An example of a (very simple) parametric stairway:
(Select something else and then the stairway to get a popup with the parameters.)
Update: New version of the file where the object now preserves it’s settings (in an ID property group) in the dialog.
2 things that would be really cool to have in Blender (-Python API) in order to create good (modifiable) parametric objects:
- [preferable] A way to trigger a linked script on “selecting” or otherwise triggering (e.g. the [P] key is pressed or similar) an object or
- alternatively make it possible to attach (link) scripts to object but never execute them (we do this manually).
Or is any of this possible already?
That’s because right now I have one script liked to the scene that does all of the object handling - which is kinda bad for easy adding of completely new parts (with different code needed to modify/generate it) by simply placing it in the file.