Future directions: visual non-destructive programming and construction

 From:  Michael Gibson
5971.6 In reply to 5971.4 
Hi Andrew,

> I think the trickiest part of it will be handling selections when the thing being selected
> underneath has changed in geometry. <...>

Yes, this is one of the generally tricky areas in history based modeling, if the model structure changes too much it can get difficult to figure out pieces of the changed model should have the further operations applied to them. It's most tricky when things change in such a way that what was one edge before is now split up into multiple edges and things like that.


> I also just saw another post where it showed the kind of non-destructive construction I am
> talking about with the revolve tool, so thanks Michael for already starting on this stuff!

Yes, there is some basic stuff in place already - after you have done any surface creation command you can usually edit the curves and the surface will regenerate.

These can be chained together to a certain extent as well, like you can generate a curve offset, enable history updates on the offset result (select the offset and run Edit > History > "Enable update"), and then do an extrusion from the offset, and then when you edit the original curve the offset will update and then the extrusion of the offset will update as well.

The main limitation is that all objects in the chain must be in the current model - many operations like booleans or trimming are the equivalent of deleting the current object and then putting in a new one in place of it, those kinds of operations will break the chain.

In the future if I can store a sequence of operations and old versions of objects in a kind of centralized history file it will help to avoid this limitation. But the tricky part is that the history list will probably tend to grow to be a pretty large file, and things that handle large amounts of data usually need careful planning and execution in order for them to work well.

- Michael