Intersecting with imported blocks containing other blocks


I’m trying to work out the correct way of solving an intersection between a surface and a solid defined in a block instance of an externally-defined block. My issue is that the intersection command seems to return curves for intersections of all layers in the block instance - irrespective of the visibility state of the layer(s) concerned.

Our workflow is this: individual components are defined in files with (at least) two layers: one called “curves” and the other called “3d”. Once the designer has finished a part, they hide all non-3d layers and save; that file then becomes available to others for integration into larger, sub-assemblies - which can, in turn, be further nested into larger assemblies…There are several layers of nesting involved in creating the final machine.

In trying to resolve where parts clash - or don’t obey clearance design rules - in the top-level assembly I’ve created surfaces around protected areas and (using Bongo) animated the whole assembly. I can step Bongo to ticks of interest where I see parts visually penetrating the “protection surface”. To record the scale of the clash, I would like to simply do an intersect of the sub-assembly in question and the protection surface.

Unfortunately, if I try that I get a set of intersection curves which includes not only the (wanted) set of curves between the surface and the visible 3d part, but also a much larger, and unwanted, set of intersections between the surface and the data on any of the other layers in the referenced, and sub-referenced, blocks.

Short of importing the blocks wholesale into the macro assembly and manually deleting the unwanted layers, I can’t see any way of obtaining the desired outcome. Needless to say, doing that as part of the workflow seems unwise as it just begs for out-of date part problems…

In my simple world I’d like to be able to see a set of curves from the intersect command which are the result of the (locally defined) surface and the (externally defined) items on the visible layers only of externally-defined blocks.

I’m sure I’m being dumb - can anyone point me in the right direction to get the desired behaviour?

Hi Grunter - what comes to mind as a dumb but effective way is to duplicate the instance, ExplodeBlock one of these and then intersect the bits you want with the surface, Copy the curves to the clipboard and then Undo back to before duplicating the block instance then Paste the curves back in.


Hi Pascal,

Thanks for that - a pragmatic way around the issue.

I can’t help feeling the current behaviour is unhelpful at best, and a bug at worst?

Hi Grunter - it’s a … limitation, let’s say, in V5, but it is raised, I think, to Bug status in V6/WIP where it is possible to ctrl-shift select objects within a block instance - currently even with this type of selection the entire contents of the block are intersected.