# How to recognize trimed surface in grasshopper? Holes on the shape

Hello, we made this waffle structure that can’t trim like shape we need on a rhino. How to do it? I add you all files so you can understand better what is going on. We need holes in this structure like on rhino shape, so that grasshopper recognizee the trimmed surface What could be the possible solution?

Superfice (2).3dm (246.5 KB) Pannelli (3).gh (30.5 KB)

In general, booleans are tricky! In your case, you need to organise your data better.
You can for instance have all your modules - that you want to subtract from - in a flat list. Before feeding it feed it to the `A` input of a SDiff (Solid Difference) you want to graft it! Let’s say you have one 100 of these. By grafting the flat list, you’ll end up with a tree of 100 branches (i.e. `{0;0}` to `{0;99}`) with one module each.
Now for the `B` input, you need the four cutting objects of each module in a similar tree. You can for instance find these by probing which cutting objects intersect a certain module. Since, this is a quite expensive operations, you can probably deduce a better way. May be your existing data is already structure in a way that you can find these more easily?
For the 100 branch of the tree provided to input `A`, you now need to provide an equal amount of branches with four cutting geometries each two the `B` input.
This way there at least are no geometries that don’t even intersect each other, but are tested for possible boolean differences either-way, which can be problematic!
Other than that, you’re geometry looks clean enough that you should succeed.

1 Like

I would recommend against solid difference whenever you possibly can. And in this case you can. You could use Solid trim to cut the surface models of the chips instead and thicken them after that.

Can you send some example? cause I dont understand what you mean

Pannelli (4).gh (32.4 KB)

1 Like

No sorry, you didnt understand…I need to make holes in the structure…so people can pass…need to trim surface

Trims break surface topology. Take a look at my file. UV coordinates inherently extend to the full domain of the underlying surface. A trimmed surface is actually a `Brep` class and not a `Surface` class

Depending on how you want to reduce those wafers at the cut-open, you may do something similar to what I have and “dispatch” out the ones lying “outside” of the surface trim. It’s a start, but you may get a jagged edge if the wafer is too big.

forum_trims.gh (149.0 KB)

1 Like