Pigaso - SVG to gcode coverter

For about a month I've been working on a SVG parser, which translates the SVG primitves to gcode, for the use with 3d printer. I started developing the Pigaso so I can easly plot PCBs with my 3D printer. Unfortunately for me, there wasn't any application, which would easily enable me to generate gcode from SVG image, or any image in that matter. So I though of making my own application to do just that. My main goal, is to develop a converted which is easy to use, and specialized for generating gcode, no hacking required. Continue reading for a demonstration.

As of now the application has the following features:

  • Nearly all primitves of SVG can be drawn
  • Transformations like scale, rotate, translate, matrix have been implemented
  • GUI for rearrenging the object on the platform
  • Recursive best effort longest path searching algorithm

There are still many features I would like to implement and I belive are quite mandatory for succesful project:

  • Filling
  • Support line width, could be viewed as filling algorithm
  • Automatic line invisibility test (detect where lines shouldn't be visible
  • Scaling of the image
  • Construct gcode from not only vector graphics images, but also from rastra, like JPEG, GIF, PNG.
  • Improved longest path algorithm, for example use djekstra algorithm to find the longest path
  • Construct a new algorithm to detect the shortest path between multiple elements
  • Support of multiple pictures in one workspace

The application is written in C++ with Qt framework, which enables it to be compiled basically on any OS available. So no worries, I won't be discriminating against linux or mac users.

Soon I'll publish the projects source in one of the open source version control systems, like sourceforge or github. Until then you can enjoy the video of the Pigaso generated gcode in action:

Source code is available on github


Related Articles


  • James J

    James J in Simple library for driving 20x4 LCD with 4bits

    Very good writeup. I thought had been fighting my code for a week or two and confirmed what I was dooing was right. This overview is the best I have seen for doing the code. You may wish to add one thing though that I have found on another website. Urge people to check the contrast dial on...

    Helpful friend

    Helpful friend in MEMS (Part 1) - Guide to using accelerometer ADXL345

    Start with reading about C language, proceed to reading about Arduino platform/ide proceed to reading about i2c bus proceed to reading about adxl345. Rather not the other way round, although that's probably also possible, but it will be more demanding, as you have already...

    Chris Sparks

    Chris Sparks in Simple TLS/SSL SMTP client for Qt5

    qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization failed

    Edward Martin

    Edward Martin in Introduction to data encryption

    The introduction to the data encryption is very much helpful as you will get to know about the data encryption procedure which might help you to protect the files and folders. You can check the 


    bean in DIY 3D printer, AKA RepRap

    The 3D printer creates the dimensional object and with the features of the 3D printer, it executes the process if need further query then visit fix error code 0xc004f074...

    preter jack

    preter jack in Single Cycle MIPS CPU in VHDL

    Single-cycle CPU is more improved than the normal and usual CPUs and it has a lot of advantages and all you can get from fix


    henrydevid in nRF51 Makefile with Qt Creator

    It is great for all, I have some different tricks if you want to know it then for that I have some different tricks, for that, you want to learn to code. For that, if you want to know it then for that you just visit some tutorial. And from there it is great for all. If you faced any type...