Making slightly different objects...

 From:  Michael Gibson
245.3 In reply to 245.1 
> After that, I pick both objects (curve and solid) and copy them to an other
> place because I want to change something. The solid doesn't move
> separetely from the curve.
> The problem is that now, the new solids are not connected to the curves
> as they should be (since they moved together).

Copy is different than moving as far as history is concerned - copy doesn't replicate the history of an object, instead the copy is itself another action that is part of the history chain.

Some actions have history updating turned off by default - copy is one of those, but you can enable it by selecting the object and doing Edit/History and click Enable updates.

So in this instance, after you copy the curve and the solid to a new location, select the newly copied curve and solid and do Edit/History and click Enable update. Now go back and move a point of the original curve - you will see the original solid update, plus the copied curve and copied solid will update as well. This is because the history of the copy operation is being applied.

So Transform/Copy allows you to set up clones of an object that will update when the original is edited.

There is a way for you to get the kind of copy with an individual replicating of the history though, that is by using Edit/Copy and then Edit/Paste instead - this doesn't create a new action in the history chain like Transform/Copy. So for example, select the curve and the solid, do Edit/Copy, then move the curve to your new location (the solid will follow it due to history), then do paste, and you should have two independent updating versions like you want.

> Also, the connection is lost when I use boolean operations...

Right, boolean operations are one of those operations that implicitly involve deleting an object and replacing it with a new one. This is different than extrude for example, which involves only creation and no deletion.

Here's the steps for why the boolean breaks history, the history looks something like this:

Curve object#1

Extrude - uses Curve object#1, produces Solid object#1

Boolean - uses Solid object#1 and solid object #2 - Deletes Solid object #1 & #2, and produces Solid object #3.

Ok, so now you are left with Curve object#1 and Solid object #3. Now when you edit the curve, MoI will look and see if there are any objects available that use it directly. It looks at Solid object#3, but it doesn't find curve object#1 referenced by it. It was only referenced by the objects that were deleted. This is the reason why operations that involve deleting objects break the history chain.

Please let me know if this doesn't make sense.

- Michael