Brep split not working? ( shoe design )

Hi,

I have 2 breps. 1 is a shoe model, the other is a group of cylinders who needs to be carved out from the shoe. I tried Brep split and Boolean difference, my laptop keeps crashing. What is going on ? Is this because the cylinders are not extruded far enough to recognize 2 different geometries to split ? ( Render is the idea behind the project )

Shoe working projection.gh (703.2 KB)

first thing I would try is to make the cylinders extremely longer than the brep they should be subtracted from

The thing is; the cylinders are extruded towards the inside with a negative parameter. I can not extrude both sides at the same time with extrude component. So basically i need to extrude negative and positive, but extrude component only has 1 input.

This turned out to be uglier than I had hoped. but it seems to work.

bb1.gh (356.8 KB)

1 Like

Thanks. I opened your file and the last component split is not showing in rhino. I does not compute.

I’m using Rhino8 - when I loaded your GH file I got an error message about an obsolete component, so I’m not surprised you found a compatibility problem with my file. I’ll check on what the last component is and let you know. Right now my guess is that it is a BrepJoin.

Rhino 9 WIP

1 Like

Bilan Gumus

Thanks. I opened your file and the last component split is not showing in rhino.

The last component is SDiff - Solid DIfference.

Martin Siegrist

Rhino 9 WIP

Yup, I tried R9 WIP a month or so ago. It worked with no problems on several of my R8 files. But the warning message about “if you save this with R9 it might not work again with R8” scared me because I often go back to old files and tweak them to make some geometry change, and/or pull parts out to start something new. So I deleted R9 and figured it’s safer to wait for the first production version.

PS: I really don’t like the aft end of my GH file and my guess is I’m missing some simple concept that would clean it up. Might you have a suggestion on what would be a better/simpler solution?

Mapping hole center points instead of cylinders would be an alternative:

bb2.gh (353.9 KB)

1 Like

Ah yes, much nicer. Thanks for sharing.

2 Likes

Nice, thank you. It’s a clean method. May i ask you something: you can see in the file that i did Cull Pattern for 4 edges. I was wondering, is it possible to only Cull 2 edges not 4 ? I tried something but it failed. You can see in the image bellow where i tried List Item and select the 2 edges to cull, it doesn’t work. You look genius level, if you could help. Thanks.

You can calculate the dot product between the edges and x or y vector…

Provide another perspective for your reference.
SolidDifference.gh (345.5 KB)

3 Likes

Very interesting solution - thanks for posting it. I’ve made a number of 3D printed objects with various types of holes in them, but never used meshes for any of them. So I have some questions about your method:

  1. I thought Trimesh used triangles for the mesh, but your MEdges shows hexagons and pentagons, not triangles. Where did the triangles go?
  2. Your Rulsrf produces open cylinders, yet SDiff treats them like solid cylinders. I thought SDiff required solid cutters, not open ones. Is this a new SDiff feature?
  3. Is the CPoly component part of Trimesh? I’ve not seen that component before. Plus, at least in this example, the Shift component isn’t needed if the Nurbs Periodic parameter is set to True. So it’s not clear to me what the Shift is actually shifting.

Finally, I like how brief and concise your solution is, but I’m somewhat stuck on the hexagon/pentagon issue. I understand why the pentagons are there (thanks to Bucky), but the net result is differently sized holes. Maybe this is just a nit that normal people wouldn’t notice. But if the objective was window glass for a big building it seems tome couldn’t it be a deal breaker?

It’s still here, but this case uses the vertics of the triangular mesh as the center points for scaling the hexagons and pentagones.

BooleanDifference, like in Rhino, does not require a fully enclosed object to be executed. For details, pls refer to the detail in Rhino Help and Grasshopper Help

No, Control Polygon is native component,

Shift is used here to remove overlapping points, more details are here :backhand_index_pointing_down:

1 Like

Great information - thanks.

Thanks to everybody. Solid difference in grasshopper did not work well, my computer always crashed, so i did Brep Split in the Rhino interface instead. Final result.