Boolean difference / solid difference for cnc

Hi All,
I am working on creating a 3d model of a CNC panel which has multiple grooves.
I am trying to create a solid difference between multiple sweep shapes on a solid box but it fails. I have tried solid difference and mesh difference and but are not as per the desired result.
I am attaching the script and rhino files of the same. Thanks for your time in helping me.




3d of panels with cuts.gh (448.1 KB)

you didnt internalise the base curve of the box and i used a little bit smaller curve which worked perfectly fine so i would recommend to extend the sweep rails or shrink the box base curve. alternativly you could “solid union” the sweep shapes befor “Solid difference” this also sometimes helps. or if all of this doesnt work i would recommend the Dendro plugin which has, based on my experience with it so far, super solid boolean operations on meshes.
Dendro | Food4Rhino

1 Like

Your sweeps have many self intersections and those cause problems when you’re attempting to do any kind of boolean operation.

For CNC milling, the most straight forward and practical way to get this done is to load the curve you already have as a toolpath.

To visualize the result, you have multiple options.

Render the sweeps it in Keyshot with a cutaway material. Takes not much time but until @BrianJ and the developers create a cutaway material in Rhino, you need Keyshot. Here’s an example from another topic:

Do you have access to Rhino 8? If yes, you can use ShrinkWrap to create a mesh which ignores the self intersections and subtract this from your base. This takes some time to compute however.

Another way to visualize the result is by using a loop and incrementally subtracting cones along your paths. This also takes time.

3 Likes

@martinsiegrist, despite the following post of you being around 1 year old, it still mesmerize me (I have bookmarked it as “the brain explodes” :+1: )

I have the feeling that the very same principle of finding self-intersections in the curve might be somehow used in these cases, to split different portions of the very same toolpath in such a way to get small portions that do not self-intersect anymore, will try to elaborate more on that, but you are the firestarter :sunglasses:

1 Like

Hahahaha this makes me smile thank you @inno