Firstly, I realize this question should probably be on the Mecsoft forum, but since their forum is basically broken and I can’t log in or create a new login, maybe someone here can help me. I would like to use geometry within a block as a drive region for CAM in RhinoCAM. I am running Rhino6 and Rhino7 with RhinoCAM 2019. I am unable to select that geometry unless I explode the block, defeating the point of having a block that I can update across multiple instances of that block. Is this intrinsic to the way blocks work that you can’t select geometry within them, or is there something that could be done on Mecsoft’s end to enable selecting geometry within a block to drive a tool path?
I don’t think that Mecsoft considers blocks to be “real” geometry, so I don’t think this would be possible, no. Instead of using blocks, you might consider having a parent object and making copies with History on, so that if you update the parent, the copies update as well…
One of the problems is how blocks are actually handled/referenced in Rhino. Everything in Rhino has an ID (GUID), and it is this GUID that one uses to find the object. However, subobjects and block members do not have individual ID’s, they are ‘components’ of the parent object.
You can test this by making a block with several objects. Select first the block and look at the ID in Properties>Details; then Ctrl+Shift subselect one of the block members - you will see it has the same ID. The same thing happens when subselecting a face in a polysurface for example.
So, there is no easy way of referencing the individual member’s geometry of a block instance. It is theoretically possible though, with a little more programming effort - I think.
Thanks for the reply. That is a good idea. I haven’t dove into using history really. That would work within a single file, but one of the main things I am looking for is defining components,( ie a hinge pocket, cabinet hardware hole patterns, etc) that I can update in a referenced file when changes need to be made and subsequently update the geometry in all the instances of that component. Copying the updated block, then exploding it can work, but is prone for errors when you are making fractions of mm changes.