3
$\begingroup$

I have downloaded car models where each model consists of multiple meshes including some modifiers. I would like to determine the dimension of the set of all these objects (window, bumper, trunk, ...). I know I can get the dimension of a single object in the transform panel. And I know I can apply all modifiers, join the objects and get the dimension of the resulting object and then undo the joining etc. But isn't there a more straight forward way?

In the end I would like to position the car model such that the center of it's bounding box coincides with the origin. Doing a plain Object > Transform > Geometry to Origin and then selecting "Bounds Center" usually destroys the model unless I apply modifiers and join the objects first.

$\endgroup$
  • $\begingroup$ I've got a feeling you might need a script to do this effectively $\endgroup$ – VRM Apr 28 '15 at 15:01
  • 2
    $\begingroup$ parent them to something at the center then move it to the origin $\endgroup$ – Chebhou Apr 28 '15 at 15:08
  • $\begingroup$ @Chebhou Indepedent of that I do need the dimension of the set of all objects. $\endgroup$ – user1225999 Apr 29 '15 at 7:35
  • $\begingroup$ you don't need it for this just select all and snap cursor to selected , if you wan't the dimension of all objects : Shift+D then Ctrl+j and you'll have the dimension in the property panel $\endgroup$ – Chebhou Apr 29 '15 at 21:43
3
$\begingroup$

As Chebhou already pointed out in his comment, what people usually do when transforming a disjoint model is have an EMPTY at the centre or wherever you want it (you can use it as a pivot), and then PARENT all objects with the empty. Then you would simply transform the empty and everything should stay in the same position relative to it.

You can have a hierarchy of empties if you want to be able to move some objects separately (say wheels, doors, etc.)

I am not sure how getting the dimensions of all objects would help you solve your problem, but if that is what you want you will have to write a simple script (something like that):

for each object in selected
  print object.getDimensions()

But then you will have to go through them manually unless you don't attach it to some other script.

$\endgroup$
  • $\begingroup$ Ok this would solve the original problem. However, I do need the overall dimension - not just the dimension of each component. $\endgroup$ – user1225999 Apr 28 '15 at 16:12
  • $\begingroup$ Oh you can do that, by getting the bounding box of the selected objects, and it will have the overall dimension. $\endgroup$ – G.Rassovsky Apr 28 '15 at 16:19
  • $\begingroup$ And how does this work for multiple selected objects? $\endgroup$ – user1225999 Apr 29 '15 at 6:23
  • $\begingroup$ If blender doesn't still support this feature out of the box, then have a look at this excellent answer by gandalf3 blender.stackexchange.com/a/6131/5341 , you need it as far as getting the dimensions of each object. You don't need to actually construct the box. Have an array of the extreme values, eg: zMin, yMin, xMin, zMax, yMax, xMax, and simply compare the current object's values against these extremes, if the object has a 'more extreme' value, then save it in these extreme variables... at the end you will have the dimensions of bbox around your selected objects. $\endgroup$ – G.Rassovsky Apr 29 '15 at 8:27
  • $\begingroup$ I know what you mean. However, since these bounding boxes are rotated, the overall bounding-box will most likely be a bit larger than necessary. $\endgroup$ – user1225999 Apr 30 '15 at 7:07

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.