BOX SELECTION - ruby request
-
Yes, booltools is a more direct way to do the intersect with model actions.
So if you are still interested in a 3d selection tool, that should be do-able. a sphere might be too complex for now though,
Chris
-
Thinking about this, bounding boxes always work on the x,y,z axis, right? So it won't work because the bounding box of a cube that is drawn off axis, will not actually match its faces.
Chris
-
Make a virtual one out of the vertices?
-
Nah, because if you add your 8 vertices to it, it will still align itself to the global axes, and not to the vertices. This is from the API
@unknownuser said:
Bounding boxes are three-dimensional boxes (eight corners), aligned with the global axes, that surround entities within your model
.Hmm, but thinking about it, components bounding boxes rotate with them. So is there a way to rotate a bounding box, or at least use a rotated component's bounding box for the selection testing? That might be promising.
Chris
-
Nope, I just tested it. A rotated compenent appears to have a rotated bounding box, but that is just a visual thing. When you get the component.bounds, it is not rotated, it is still aligned to the world axes.
EDIT: Which just means that using .bounds won't work for this 3d selection box idea, but it should still be possible.
Chris
-
Isn't there a
local_bounds
method? -
Not that I'm seeing in the API. That would sure be handy though!
-
I remember it being mentioned in the initial SU API Blog of the SU7 announcement. Though not what it was related to.
-
sure enough:
Measure your groups regardless of their transform
untransformed_bb = my_group.local_bounds
That should be interesting to play with. I've gotta get some sleep though.
-
Only for groups it turns out. From the Docs:
@unknownuser said:
The local_bounds method returns the BoundingBox object that defines the size of the group in an untransformed state. Useful for determining the original width, height, and depth of a group regardless of its current position or scale. For components, you can get a similar result by checking my_instance.definition.bounds.
-
... So, make a temporary group of the instance and get the local_bounds if that, then explode it back as it was...
Advertisement