Hi, I’m trying to find a practical Rhino workflow for building a more intelligent reusable component library. What I mean is a way for a block or object to carry not only geometry, but also its own orientation, information about which axis should be treated as the main length, hole center locations for mounting, and maybe also some cutting or machining reference planes. My main use case is furniture, transport/flight cases, CNC panel parts, and profiles where I would like to define a length axis and possibly end cuts. The idea is that if I replace one component with another, I would like to keep its orientation and, if possible, update hole spacing or simple cutouts in the host geometry with as little manual work as possible. I know Rhino has blocks, user text, Grasshopper, and custom scripting, but I’m curious whether anyone here has already built a solid workflow for something like this. I’m not looking for full Inventor-style behavior, just a practical Rhino-based method for making reusable components a bit smarter and easier to replace later. Has anyone done something similar with blocks, Grasshopper, Python/C#, or any plugin?
You can get a block instance’s local orientation from the Rhino.DocObjects.InstanceObject property (apply the xform to World XY plane).
alternatively: rhinoscriptsyntax.BlockInstanceXform(object_id)
Thanks, this is helpful. So if I understand correctly, this solves the orientation part, because I can derive a local plane / local axes of the block instance from its transform. What I’m still interested in is the next step: has anyone built a practical workflow on top of that, where a block also carries some reusable reference data such as defined hole locations, mounting points, or machining reference planes, so that replacing one component with another could also help update related cutouts or drilling in the host geometry? That is the part I’m mainly trying to figure out.
This has been done extensively with user text for many years, but does require particular skills.
Start at about 55:30
GH2 does have tranformable planes, but is not ready for production yet.
There will be a Rhino plug-in released in a few weeks by the developers of Elefront that will allow more interaction in the Rhino environment with less usage of Grasshopper.