Circular bounding Box

I came across an old tweet of mine today that lead to an article about centering the play button icon:

It got me thinking that while I use the bounding box dozens of times a day, it seems like a circular bounding box would be exceptionally helpful as well. Especially in two use cases:

  1. For determining the rotational maximums of movements about a center point.
  2. For understanding where non-area specific centroidal points live within a circular space.

Would be curious to hear if this is of interest. Maybe I can write a script that does this as a prototype.

1 Like

Ok, I finally got around to making a script. It works best with rectilinear objects, but can do arbitrary geometry as well. Consider this v1.0 – works in Rhino Version 7 SR36

RhinoBoundingCircle_v1.rvb (1.7 KB)

Load this script. It will prompt you to select your geometry.
Next it will create a bounding rectangle on the c-plane.
User has the option to circumscribe or inscribe the circle.

I can’t get it (yet) to use the area centroid vs the gumball location to reference the center. However, if you had, say, a pyramid, it would create the circumscribed version of that pyramid from the gumball center so you can rotate the object 360º without hitting anything. My next task is to then have a prompt for an offset so clearances can be indicated in the command line.

Also, a spherical version of this would be useful as well.

dear @gmathews
your script is creating a world-aligned boundingbox - and finally a circle at Z=0 that is inscribed or circumscribed on the rectangle of the boundingbox.

This method will in many cases not find the smallest circle that circumscribes a given geometry
(but this is, what I would expect by the title of the topic)
… just for others not to expect it from the script

kind regards -tom

1 Like

Yeah, that’s totally correct. I had about 20 minutes to play around in ChatGPT and it was the best I could have it generate. Not extraordinarily useful, but might help someone somehow. I still want a script that is tighter to the bounds of the represented option.