<p>I have seen this behavior a lot in CuraEngine slices. Mostly older versions of the slicer. Not sure if they actually improved it.
You could see this a lot in long and complicated forms. I also don't like this. Not only for unnecessary moves, but also for imperfections due the start in the middle. Sometimes you can tell where the filling started and which segments were printed separately.</p>

<p>I think it comes down to several issues here:
1.) Starting from the middle saves a move at the beginning of the fill. It probably starts the fill where is stopped printing the perimeter. If the change you want would be implemented, a move after the fill printing would become necessary to start at the right position. So therefore the benefit of faster printing might be gone already.</p>

<p>2.) For the sclicer implementation it is hard to do. The algorithm that computes the print moves for the fill just knows the start point (end position of last perimeter line) and the points that define the area. It does not know if the area is round or square or shaped like a "C" or like a "Y". Usually the slicers have a preferred direction that changes with every layer. This way the fill lines of different layers cross each other and that probably increases stability.
I have seen slices where the fill started several times in "C" shaped prints.
Also if you think about the "Y" shape. If you start at the bottom then you can print horizontal lines and fill the form until you reach the split. Now you have to decide which arm to print fist. And then you have to do the other arm separately.
As you can see a perfect way to fill all possible shapes in one go is impossible.
And defining an algorithm that can fill any shape with only knowing the outline is already hard. I assume the solution has to do with splitting a form into segments and to then fill each segment after the other. Even your example form has probably more sections than only the two obvious ones.</p>

<p>What could be done would be to "optimize" the sequence used to fill the segments. Basically adding a computing step that checks if by introducing a move to the best starting point the fill of the segments could be done in one move.</p>

<p>Again that is probably rather hard to do, but CuraEngine and other slicers are open source, so if you or somebody else would like to invest some time to get this feature that would be great!</p>

CC BY-SA 4.0
2019-12-05T00:07:11.740Z
I like your answer.  There is a lot to think about in it.  In the simple case of a circle one might argue that it is a simplification to start in the middle again as it is a smaller distance than traversing the chord that takes you 90 degrees away from the endpoint to start the next layer.    And you need to think about printing the outer shell.   "Oh my aching head"
EvilTeach
CC BY-SA 4.0
2019-12-03T19:59:54.877Z
2019-12-03T19:59:54.877Z
Lars Pötter
<p>It doesn’t really have much of effect in the actual print. I’m pretty sure the setting can be modified either in the GUI or through gcode. Usually it’s just the standard process when filling in a flat surface. There could be some minor benefits that are quality related. But my main assumption would be for ironing if you have that setting enabled. It would allow it to smooth it better starting from the middle.</p>

CC BY-SA 4.0
2019-12-02T07:15:19.883Z
2019-12-02T07:15:19.883Z
Tim Li
<p>To date I have used <a href="http://replicat.org/" rel="nofollow noreferrer">RepG</a> and <a href="https://www.repetier.com/" rel="nofollow noreferrer">Repetier with CuraEngine</a> to do my slicing.  In various instances when printing a layer of a cylinder it will start in the middle and head out toward either side.  Then it moves the nozzle back to the center and prints toward the other side.</p>

<p>Knowledge of <a href="https://en.wikipedia.org/wiki/Travelling_salesman_problem" rel="nofollow noreferrer">TSP</a> suggests the print would go a lot quicker if the travel operation back to the middle were omitted.  Here is an <a href="https://www.youtube.com/watch?v=hjGYc03HGU8&amp;feature=youtu.be" rel="nofollow noreferrer">example</a>.</p>

<p>By that I mean that to fill the layer of a cylinder from one edge, across the middle to the edge on the right.</p>

<p>My question is why is this done?   <strong>What advantage does printing it in two passes have over printing it in one pass?</strong></p>

CC BY-SA 4.0
2019-12-02T08:19:39.363Z
Could you add some pictures of what you mean? How does it print the infill, what do you mean with start in the middle, moves back and prints to the other side? If you print a cylinder it will deposit the walls first and then proceed to the infill.
0scar
CC BY-SA 4.0
2019-12-02T21:08:00.467Z
0scar.  The example link will take you to a short video demonstrating the symptom.
EvilTeach
<ultimaker-cura><slicing>
Does CuraEngine get some advantage slicing cylinders to move the head back to the center twice on each layer?
EvilTeach
# Does CuraEngine get some advantage slicing cylinders to move the head back to the center twice on each layer?

(Asked by: username_0 on 2019-12-01)

To date I have used [RepG](http://replicat.org/) and [Repetier with CuraEngine](https://www.repetier.com/) to do my slicing. In various instances when printing a layer of a cylinder it will start in the middle and head out toward either side. Then it moves the nozzle back to the center and prints toward the other side.

Knowledge of [TSP](https://en.wikipedia.org/wiki/Travelling_salesman_problem) suggests the print would go a lot quicker if the travel operation back to the middle were omitted. Here is an [example](https://www.youtube.com/watch?v=hjGYc03HGU8&feature=youtu.be).

By that I mean that to fill the layer of a cylinder from one edge, across the middle to the edge on the right.

My question is why is this done? **What advantage does printing it in two passes have over printing it in one pass?**

**Tags:** ultimaker-cura, slicing
> **Comments:**
> **username_1**: Could you add some pictures of what you mean? How does it print the infill, what do you mean with start in the middle, moves back and prints to the other side? If you print a cylinder it will deposit the walls first and then proceed to the infill.  
> **username_0**: 0scar.  The example link will take you to a short video demonstrating the symptom.  

---

## 2 answers

### Answer by username_2 on 2019-12-03. Score: 3

I have seen this behavior a lot in CuraEngine slices. Mostly older versions of the slicer. Not sure if they actually improved it.
You could see this a lot in long and complicated forms. I also don't like this. Not only for unnecessary moves, but also for imperfections due the start in the middle. Sometimes you can tell where the filling started and which segments were printed separately.

I think it comes down to several issues here:
1.) Starting from the middle saves a move at the beginning of the fill. It probably starts the fill where is stopped printing the perimeter. If the change you want would be implemented, a move after the fill printing would become necessary to start at the right position. So therefore the benefit of faster printing might be gone already.

2.) For the sclicer implementation it is hard to do. The algorithm that computes the print moves for the fill just knows the start point (end position of last perimeter line) and the points that define the area. It does not know if the area is round or square or shaped like a "C" or like a "Y". Usually the slicers have a preferred direction that changes with every layer. This way the fill lines of different layers cross each other and that probably increases stability.
I have seen slices where the fill started several times in "C" shaped prints.
Also if you think about the "Y" shape. If you start at the bottom then you can print horizontal lines and fill the form until you reach the split. Now you have to decide which arm to print fist. And then you have to do the other arm separately.
As you can see a perfect way to fill all possible shapes in one go is impossible.
And defining an algorithm that can fill any shape with only knowing the outline is already hard. I assume the solution has to do with splitting a form into segments and to then fill each segment after the other. Even your example form has probably more sections than only the two obvious ones.

What could be done would be to "optimize" the sequence used to fill the segments. Basically adding a computing step that checks if by introducing a move to the best starting point the fill of the segments could be done in one move.

Again that is probably rather hard to do, but CuraEngine and other slicers are open source, so if you or somebody else would like to invest some time to get this feature that would be great!

> **Comments:**
> **username_0**: I like your answer.  There is a lot to think about in it.  In the simple case of a circle one might argue that it is a simplification to start in the middle again as it is a smaller distance than traversing the chord that takes you 90 degrees away from the endpoint to start the next layer.    And you need to think about printing the outer shell.   "Oh my aching head"  

---

### Answer by username_3 on 2019-12-02. Score: 0

It doesn’t really have much of effect in the actual print. I’m pretty sure the setting can be modified either in the GUI or through gcode. Usually it’s just the standard process when filling in a flat surface. There could be some minor benefits that are quality related. But my main assumption would be for ironing if you have that setting enabled. It would allow it to smooth it better starting from the middle.


---

