Cut 3d "spline" on CNC router

I have the 3d shape (“spline”) defined in Rhino that I need to cut from plywood using a 3-axis CNC router table. To do that the 3d shape has to be converted to a 2d outline. I believe that UnrollSrf will do that but I worry about the one intersection where the 2 upper paths cross over the lower path. The oval part shape is 80" in diameter and will not not fit on a single 304x608mm/12x24" panel. So it will need to be subdivided. In order to not waste material I would like to optimally cut the path into lengths and nest them to minimize waste on each board.

Looking for suggestions on best way to implement.

Did you try _Silhouette in Top view?
Then clean up the result using _CurveBoolean.

Thank you for the reply. Two issues - the length will be wrong and don’t want to overlapping paths to be joined as they are on different z levels

If I am getting you, the z differences are very small (just enough for one piece to pass under the other one) and you want to cut it with a 3 axis cnc without losing too much material.

If that is the case, there is just no way to cut one piece.
My course would be to cut two pieces and joining them like in the image.
(piece b can be cut mirrored by the way if it creates a better cutting pattern if the plywood is the same from both sides)

Hello, the z gap between the “red” and “blue” lines in your drawing is about 12". In my original question I said the curves would be segments to fit on several much smaller pieces of plywood for cnc routing. I’m not trying to preserve the curve as a single large piece. It’s over 80" in diameter.

I think I get you now. This is what you’re talking about?


erase.gh (14.8 KB)

EDIT: I just noticed: I put 9 points (as many as the pieces) so as to know which piece is which but because they are right on the seams, they get mapped 2 times each but I think it’s a happy accident.
That way you also know where is the start and the end on each piece (0,1) (2,3) (3,4) etc.

1 Like

Seems I don’t really understood what you need.
Can you explain a bit further?

Thank you, I’ll give it a look

That’s tricky (most notably at Phase2),

Phase1:

Assume (for simplicity) that we start from some sort of Axis (a Curve) that (Offset at +/- d) yields 2 pieces that yield a BrepFace. Then we have a standard (or more) piece of material (say: metal, marine plywood, glass or whatever). In order to find what fits to where we need a Bounce Solver Algo : a thing that starts from some sort of value and a step and then goes forward/backward while each change of “direction” yields a half step. The question obviously is: if a given piece in a given search state fits to the standard piece (minus some clearance).

If we use this sort of logic we have this:

BTW: See what clearance means:

Where pieces are the shown BrepFaces, Black rectangles are the standard piece in place relative to the piece found, red is the same at 0,0,0 and the red circle (see info panel) informs you that a small piece is found (skipped - who cares about a piece 0.07 m? not the C# i confess).

Phase 2:

Then … there’s the packing (i.e. min waste) matter. But it’s highly unlikely that you can find code for that (search Internet: the available solutions are not at all suitable for real-life) for more than obvious reasons: similar solutions are critical in real-life.

2 Likes