Trouble creating one open curve from multiple closed curves

Hello, I’m trying to create one open curve from multiple closed cuves i have. is there a way to connect them all not manually? there is a big amount of joins to make so i’m looking for the best way to do it.
(the file needs to be G code- therefor the open curve).

atteching picture to demonstrate,

Thank you!

Hello - curves cannot be joined to more than one other curve at each end… no Y joining for example. What is the end goal here, why do you need to do this?


Are they overlapping or in different heights? Do they intersect? Maybe you could also attach the file.
Thank you

they are overlapping, they are currently in the same height but if it will help I can put them in different heights. The file is for 3d clay printing, so I just need to export one open toolpath… atteching the file here.

(236.8 KB) toolpath

Hi, thank you for replying. The end goal is aimed for 3d clay printing, therefore I need one open toolpath… I could put them in different heights if it will help? or trim some unnecessary lines? although this will be manually I assume… the can be in a certain spiral perhaps ?

Hello - off hand, I think the only way to do this and stay sane is to do one set of concentric shapes at a tome and figure out a good way to combine them - can the printer stop and start or must it be printing on the entire path?


yes, that sounds like the sane way to do so. will try and see how it goes.
Unfortunately, it can not stop. so I will need to find a way to connect all of them.

Thank you

Hi, from your description I´m assuming the clay, in the system at your disposal, gets extruded by a syringe and the graphic you have created is to be exported as a .ai vector drawing for the “cnc” system to be used as a toolpath… correct?

In that case I´m afraid that as beautiful that composition is, it is slightly flawed in the thought process. What you need is a spiralized contour and you are not going to get it by intersecting offsetted shapes. Once the printing process has started the material gets extruded constantly, which means that all movement leaves extruded material behind. If your composition is not made by a single line from start to finish the “nozzle” will travel from one line to the other leaving material behind, and if you don´t tweak the gcode there is no real telling in what print sequence it´ll do so. Also to consider is that since you are printing in 3D, meaning that the material has thickness, you cannot have a portion of the line overlapping another, it´ll eather smear through the passing of the “nozzle” or by the additional material extruded… so if you want a toolpath to “go back” you will have to know the extrusion line width and draw accordingly so to make the the line run parallel to itself.

I hope my formulation was clear enough, it´s not always easy since English is my 3rd language.


Oh I forgot, It´s also crucial that you consider the “homing” position of the machine for the start and the end of the line… that travel will also leave extruded material behind and you don´t want a diagonal line running under or over your composition.


Thanks Ricardo, the overlapping serves my goal in this case. this lines are meant to fall on another printed part and the overlaps are meant to create holes in the model, because go the different high of each layer.

The printer is wasp delta, I’m assuming that what you described is what it can do, regarding the vector toolpath… do you know if I can send it in several closed circles? or only one toolpath?
also, is there a way technically to make all this lines spiral?

See this discussion

I also did that.

It converts in a single line but it overlaps. So I am not sure there is a solution to your problem without overlapping or without removing some paths.

thanks, it is a great help!

another idea for a quick solution could be to pipe all curves with a low diameter and use meshoutline. if you can live with an outlines and the curves can be disconnected. that will be a bit more work for the cutter or whatever you need it for of course.

Intersting idea. thank you

I tried with your curves to apply my algorithm.
First I had to cut all the curves at the intersection, I reuse a script from @HS_Kim from here

Then apply my algorithm (I changed a value inside that limit the calculation time
=> open the program and put a big number near test

I’ll try to implement another logic “At each intersection try turn right”. So it must spiral a bit more.

interesting! I’m not good enough in grasshopper so I’m still trying to understand all the different plug ins… thank you for trying. is it now 4 different toolpath from what I can understand in the picture?

Here the script
shortestpathforCNC single milling (66.1 KB)
The logic is simple. I take a first curve, go to the end search a new curve, the closest from the end point. If the closest is too far I go up, then straight, then down. At the end you’ll have just one curve/path.

The biggest part of the plugin is to split the curves then to put some color.

You could also suppress duplicated curves.

I think that for your problem you must find a strategy to do exactly what you want. I am quite sure plugins will no be enough.

I had a much more primitive system in mind… Anyhow a great solution was suggested. doesn´t get any better than that. :slight_smile: