Split Brep by curves, avoid flatten tree

Hello,
I have a question about Split Brep Multiple. I’m trying to split surfaces with curves in preparation for cutting. The cutters are using Flutten, so the operation takes longer. How can I rename the trees so they all have the same name to avoid the flutten?
Please see attachment GH file.

cut outs in plates.gh (13.5 KB)

Best regards
Olek

I don’t know if I understood your request correctly.

Thanks, but that’s not quite what I need. There are two separate data lists here: one for cutouts and one for rectangular surfaces. When I try to cut out a surface using the “Split Breadp Multiple” feature, I have to create a “flutten tree” for the cutouts, and that takes a long time because there are so many objects. So my question is, is it possible to rename the cutout data tree to match the names in the rectangular surface data tree so that the Split Break Multiple function works faster without using the Flutten tree.

2. Also, if there is a tree of the same name for cutouts and rectangular surfaces, you can use the “Boundary surface” function instead of “Split Breadp Multiple” and this will save working time.

This is how I would do it



cut outs in plates_01.gh (31.1 KB)
And please mark “Solution” if it solved your problem

1 Like

This is the solution. Thank you very much.

Could you answer one more question? The algorithm uses (Tree branch renumber) which renumbers the tree path starting from zero, but if the initial lists have different sequences and gaps in the X and Y coordinates, the algorithm doesn’t work (see attachment).
For example, is it possible to rename the tree by the X and Y coordinates sequentially so that the tree levels match?

cut outs in plates_02.gh (15.5 KB)

I would also consider the option to reduce calculation times by not splitting the surfaces, but using Boundary Surface directly into the flattened list of all your inside/outside boundary curves: BoundarySrf component will take care of everything else, and wherever there’s a boundary there will also be a cutting curve you can use (like with SrfEdge):

the only downside is that you don’t get a sorting order of the surfaces anymore… but you can order/sort them accordingly with whatever you want and Sort, or sort the paths with Replace Paths

cut outs in plates_02_inno.gh (19.7 KB)

2 Likes

Thanks for the solution, but how can I rename them so that when adding thickness to the surfaces the lists match?

cut outs in plates_03.gh (19.0 KB)

you can use for instance Pull Point to find back which final Surface represents which original curve:


cut outs in plates_03_inno.gh (20.0 KB)

depending on the amount and complexity of your shapes, this might be faster even if “dirty”
…what I mean by “dirty” is that, by doing this way, you lose your original data structure and then use a geometrical operation (Pull Point) to rebuild it: with 20 rectangles and 12 cutters, this is certainly fast… if you have six-thousands shapes and 4 million cutters, this might not be the best approach because you probably want to keep the data tree well sorted all the time

if you want to maintain the data tree of the rectangles intact, you can assign/relate the cutters to each different rectangle branch somehow… the following is a similar approach where each circle center gets assigned to the rectangle that is the closest to its center point:


cut outs in plates_03_inno_2.gh (22.4 KB)

consider that your original shape sorting order does not obey any general rule, they look like sorted by ascending X coordinate, but then items with same X coordinate are sorted sometimes along Y, other times along -Y:

2 Likes

Thank you very much for the advice. It solves the problem. Every time I learn more and more about the grasshopper.

1 Like