ZTW Inskape Engraving Tutorial (For Total Beginners)

As promised, here’s the method that I’ve come up with to use G-code Tools to generate engraving patterns with Mach3 (and a CNC Zen Toolworks router).  I’m very new to Inkscape (and CNC machining in general), so if my methods look crude, please let me know what I’m doing wrong in the comments.  So without further ado, here’s how you generate code to print out “JCO.”

1. Download and install Inkscape

2. Download and install G-code tools

3. Setup your drawing to whatever units you’re using and the size of your table.  You can also set it up to the size of what you’re working on and adjust your zero points to start at different areas.  Also, choose what units you’ll be working in.  I’ve setup my router to work in millimeters.

4. Type out what you want to say (“JCO” in this case) using the text command.

5.  Select “Path”, then “Object to Path” with your inscription selected.  To select an object, you use the top tool that looks like a mouse pointer.  Once you’ve turned everything into a path, use the tool just under it to select individual nodes.  This was a bit confusing for me at first.

6. Using the path selection tool, click on one of the letters.  You should see little square dots called nodes.  If they’re grey, they’re not selected; if they’re blue they are.  If you sweep the mouse over everything with the left button held down, you’ll get everything in grey.  Press Alt + A to select everything.  All nodes should be selected in blue.

7. G-code tools could be used to generate a path from this right now, but my results have been a bit suspect when using curves.  Instead, I add more nodes to smooth everything out and generate a path using all lines.  Inkscape gives you contextual menus, so with the node tool selected as seen below, a bunch of extra node tools will appear.  Use the tool right above the “mouse pointer” icon to add nodes (between those that are selected in blue).

8.  With everything still selected in blue, go to Extensions-Gcodetools-PathtoGcode.  A dialog box like the one listed below should come up.  Set the preferences tab to something writeable if you haven’t, and make sure the units match up with what you want.  Once this is done, click on the “Path to Gcode” tab and hit Apply.

9. You should now have a G-code file that you can run on your router.  As mentioned before, I used a ZTW 7×12 model with Mach3.  I’ve included the G-code generated by this process at the very end of this article (for what it’s worth).  Note that there are no arcs in it, only straight lines.

If you’d rather do shapes, and not letters, the same basic process can be used.  If you’ve got a picture you’d like to outline, click on File-Import.  Once you’ve got this image up, click on Path-Trace Bitmap.  There’s several ways to work with this, but by clicking on “edge detection” it should give you an outline of most shapes.  Use the same process outlined above for converting everything, and you should be good to go.

I’m no expert in any of this, so definitely check your code before you run it.  I generally test out the code by setting my Z-axis 0 point well above the work surface and run everything.  As always, use your own judgement when working with CNC equipment, especially if you’re trying to follow along with this site.


  1. Use the paramaterize gcode post processor. makes it much prettier.

  2. Curing “Crop Circles” with Mach3 and Inkscape | JCOPRO.NET - pingback on September 26, 2011 at 9:08 pm
  3. Generating CNC Wooden Gears The Easy Way | JCOPRO.NET - pingback on October 19, 2011 at 5:33 pm
  4. Turn Your Favorite Logo into a DXF for Engraving | JCOPRO.NET - pingback on December 13, 2011 at 9:29 pm
  5. A CNC-Made 3D Topo Map | JCOPRO.NET - pingback on May 13, 2012 at 6:40 pm
  6. CNC Engraving Using Inkscape | JCOPRO.NET - pingback on May 13, 2012 at 9:00 pm
  7. Quick Project: How to Make a Clock from an Old Hard Drive - pingback on August 17, 2012 at 10:18 pm
  8. Review of the Coast HP3 Pen Light - pingback on March 7, 2013 at 6:30 am
  9. VERY NICE 😀 it was very helping 🙂

  10. Hi!

    With gcodetools there’s no need to subdivide path (like you did at the 7th step).
    Gcodetools approximates paths with biarks so the path should be smooth no mater of subdivisions. Also you can define automatic subdivision in Gcodetools to reach the tolerance you need.

    See biarc interpolation tolerance and maximum subdivision at your step 8.

    • Nick, thanks for writing in! Per your domain, are you the author of this software?

      It’s crazy how much I’ve learned since that post, but that’s what worked for me at the time. I generally use CAMBam now, but GCodetools is really a great extension for Inkscape.

Trackbacks and Pingbacks: