Inkscape extension for outputting G-Code for the MakerBot Unicorn Pen Plotter
Switch branches/tags
Nothing to show
Latest commit 24d80d5 Jul 19, 2015 @martymcguire Merge pull request #9 from jinschoi/master
Added missing self argument for make_ellipse_path().
Failed to load latest commit information.
src Added missing self argument for make_ellipse_path(). Jul 19, 2015
LICENSE It's alive! Jan 30, 2011 update README Feb 5, 2011

MakerBot Unicorn G-Code Output for Inkscape

This is an Inkscape extension that allows you to save your Inkscape drawings as G-Code files suitable for plotting with the MakerBot Unicorn Pen Plotter.

Author: Marty McGuire



  • Marty McGuire pulled this all together into an Inkscape extension.
  • Inkscape is an awesome open source vector graphics app.
  • Scribbles is the original DXF-to-Unicorn Python script.
  • The Egg-Bot Driver for Inkscape provided inspiration and good examples for working with Inkscape's extensions API.


Copy the contents of src/ to your Inkscape extensions/ folder.

Typical locations include:

  • OS X - /Applications/
  • Linux - /usr/share/inkscape/extensions
  • Windows - C:\Program Files\Inkscape\share\extensions


  • Size and locate your image appropriately:
    • The CupCake CNC build platform size is 100mm x 100mm.
    • Setting units to mm in Inkscape makes it easy to size your drawing.
    • The extension will automatically attempt to center everything.
  • Convert all text to paths:
    • Select all text objects.
    • Choose Path | Object to Path.
  • Save as G-Code:
    • File | Save a Copy.
    • Select MakerBot Unicorn G-Code (*.gcode).
    • Save your file.
  • Preview
    • For OS X, Pleasant3D is great for this.
    • For other operating systems... I don't know!
  • Print!
    • Open your .gcode file in ReplicatorG
    • Set up your Unicorn and pen.
    • Center your build platform.
    • Click the Build button!


  • Rename *PolyLine stuff to *Path to be less misleading.
  • Formalize "home" to be a reasonable place to change pages/pens.
  • Parameterize smoothness for curve approximation.
  • Use native curve G-Codes instead of converting to paths?
  • Include example templates?