6
$\begingroup$

While precision modelling, I often encounter the need to use exact distances. Blender's keyboard input is fantastic for this. What I haven't figured out yet is how to keep distances between certain vertices/edges of different objects fixed while editing or transforming one of them.

Here's a pretend example:

constraint example image

We have cubes A, B, C and D. We need to keep the distance between A and B to 1, and the distance from B to C to 2. We don't care about any other distance (such as C to D).

Editing or moving A, B or C without further tools is a though proposition, since the constraints will be invalidated, and, in the worse case, you'll end up having to move all other cubes to make things right again.

Is there a way to keep these distances fixed while editing/transforming?

Note that I don't want to constraint the distances between the object's centers, but from actual vertices/edges - or possible the object's bounding boxes.


I know about parenting, but that only works in one direction (you can't have loops in the parent graph).

I also know about the object limit distance constraint, but there's no way to specify that the distance is aligned to an axis, so it ends up bringing the objects out of alignment. Also, having to create vertex groups is really tedious.

$\endgroup$
1
$\begingroup$

As you said parenting goes 1 way, but stil: you can parent an object to a vertice. Select 2 object. Go into edit mode. (This will be on the active object). Ctrl-p and select make vertex parent.

When creating vertex groups for the constraints, perhaps it will be a help for you to paint the groups in weight paint mode.

$\endgroup$
1
$\begingroup$

Well Blender won't let you link the objects like you want. Even if you try to cross-constrain them with ChildOf or Transformation constraints and then drive their influences by object.select property so only the selected object constrains others it won't work.

Instead you should group those objects and add them to the scene as Group Instance. When you transform the group all the objects relations will be kept and if you want to transform each object individually do it inside the group.

I don't know for what application you need this to work, but for transforming other objects/meshes when you move another mesh and vice-versa you would need to write a script (a scene_update_post() handler).

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.