Slicer is the software that will convert something like this:
to this:
There are some open source software available for 3d printers. One of them is http://slic3r.org/ that is also open source you can find the source here:Â https://github.com/alexrj/Slic3r
The code should work mostly for concrete printers but require some new methods for infill, custom commands for pause and ask for human actions, like installing reinforcements or ducts.