Close

A journey of a thousand miles begins with a single step

A project log for Improve tool path planning in Cura

Use OR solver to optimize tool path in slicer.

ricky-zhangRicky Zhang 06/03/2018 at 10:090 Comments

Background

Because I got frustrated at the frame design of hexapod I worked on,  I started to look into different approach: design and build parts in 3D printer by myself. That's how I start my addiction to 3D printing.

I bought an entry level 3D printer, used Fusion 360 to design parts and then ran open source slicing engine called Cura to generate G code. But from time to time, I got so frustrated at the print quality of the parts I designed. 

At the first sight, I'd blame my 3D printer. But in fact it is not my 3D printer's fault even though it is cheap. It did do an amazing job in some print. One of major source of the low quality print usually comes from sub par 3D printing path. My conclusion comes from my observation of irrational (crazy) physical move of nozzle and also benchmark test on different version of Cura.


So who generate that sub par tool path ? Well, it is slicing engine, a.k.a slicer.

I'm an analytical software developer.  I tried to figure out the way to improve it. So I quickly pick up the general idea of software stack in consumer grade FDM based 3D printing. 

From triangle mesh to G Code is done by slicer. From G Code to physical motion is done by firmware in 3D printer.

I'm an advocate of freedom software. The slicer Cura is open source. Perhaps I can contribute back with my expertise. 

What's next

First, I need to get some basic understanding of slicing engine pipeline from this SIGGRAPH lecture. Then I cloned Cura repo into my home server and read their source code with cross referencing software called lxr.

I published my source code study notes on my Github wiki

The more I read in Cura source code, the more I understand the importance of slicer in 3D printing. As I said before, I'm an advocate of freedom software. I personally believe that any open source software project should not be owned nor dictated by any hardware company whose sole interest is to promote their hardware sales. Cura engine is a good case in point. It is back by Ultimaker a 3D printer company in Netherland.

I'm not against any for-profit company like FSF. But I just don't feel comfortable with this. There is a serious ethical problem here that complicates the whole thing.

In any case, I forked Cura engine in github and started to work on tool path planning improvement on my own in a complete different branch. That's how this hackaday project starts.

Discussions