Inkscape is a Free and Open Source vector drawing program oriented towards the creation of SVG (scalable vector graphics). It can export to DXF for use in other CAD/CAM software, or directly to G-code using the Gcodetools extension. It has a broad variety of import and export formats, so is useful to have for conversion, even if one doesn't use it to draw. See pstoedit for further conversion tools.
Be sure to read the section on Bézier Curves at the top of the CAD page.
- 1 Download
- 2 Configuration
- 3 Useful Extensions for CNC Operators
- 4 Utility programs for SVG files
- 5 Tutorials and Examples
- 6 Brief notes for new users
Inkscape is freely available for Windows, OSX, and Linux from inkscape.org.
The only configuration issue documented thus far is reconciling the units used in InkScape with those expected by MakerCAM as noted here and in the discussion "Inkscape to makercam dims off? - Change the preferences!".
The default is to include stroke width in object dimensions. It is more straight-forward if such is not included. One can either work w/ objects which have no stroke, but fill only, or change the preference:
Edit | Preferences --- under Tools choose the radio button to use Geometric bounding box (this excludes stroke width from the size, making calculation, placement and sizing easier)
In order to see how the files are actually constructed and will be imported by your CAM tool, do View | Display Mode | Outline.
As that view indicates, type, set as type will not be usable, it must be converted to a path using the command:
Path | Object to Path
Ungroup and rework as needed.
Scaling Factor for SVG Files
SVG files will include a statement which notes how many internal (file) units there are per inch. Different programs use different numbers --- most programs on import will ignore this value and instead directly map to their own (possibly different) value. Values for some programs:
- 90 --- Adobe Illustrator
- 72 --- Inkscape
MakerCAM has a preference for handling this on import.
- Dupe the paths: Edit | Select All, Edit | Copy, Edit | Paste in Place
- offset them in the appropriate direction by half the bit diameter, for profiles this is out (Path | Outset), for pockets, in (Path | Inset) Unfortunately, Inkscape doesn't afford one much control over this --- you'll have to do it multiple times (seems to be 1 pixel each time) until you get close --- draw in an appropriately sized circle first. FYI Dynamic offset is buggy and may be removed.
- set the stroke to the width of the bit and rounded ends and corners. Object | Fill and Stroke --- set Width appropriately, Join and cap should be the middle (rounded) options.
Useful Extensions for CNC Operators
Listing of Inkscape extensions with commentary: https://gist.github.com/su-v/9965739
(To be included with versions of Inkscape 0.49 and higher)
Gcodetools provides Inkscape with several operations for generating G-code which you can send to your ShapeOko. Inkscape and Gcodetools together can replace the traditional CAD/CAM workflow entirely.
Warning: When creating G-code to use with GRBL, always choose the "Round all values to 4 digits" Post-processor in the "Preferences" tab! Without this option selected, codes will often exceed the 50- or 70-character-per-line limit present in GRBL, resulting in deformed shapes on the machine.
Esp. see the tutorial (linked below): http://www.shapeoko.com/wiki/index.php/User:BHSPitMonkey/Inkscape_and_Gcodetools_Tutorial
Bit angles are handled oddly. Fortunately the default, w, is a 90 degree V-bit.
Source on GitHub: https://github.com/cnc-club/gcodetools
This extension generates tabbed pieces for building boxes whose sides interlock together. Visit the link above for a better explanation with pictures.
See also T-Slot Boxmaker which allows the use of screws instead of glue.
Homepage: Hershey Text
Hershey Text is an extension that generates CNC-friendly text paths using special engraving fonts.
Interface w/ OpenSCAD
Export to TikZ
There is an extension which will export from Inkscape to TikZ, a programmatic diagramming language, which will allow re-use of InkScape paths: Inkscape to TikZ exporter
Export to DXF
Modifications of Better Better DXF Output, Big Blue Saw's DXF Export For Inkscape. Fixes for v0.91: http://www.shapeoko.com/forum/viewtopic.php?f=6&t=5506
See also Better DXF Output.
Note that DXF export must resolve Inkscape using Bezier curves while DXF uses NURBS, requiring a path approximation for anything but perfect circles and arcs.
http://sourceforge.net/projects/dxf-svg-convert/ --- A dxf to svg converter. Can be used to create pure svg files or Inkscape svg files with extra information like layers.
Simplistic extension which will directly maps the points on paths to straight lines, necessitating that one add additional points to approximate curves: http://wiki.linuxcnc.org/cgi-bin/wiki.pl?InkscapeHowto
MakerBot Unicorn G-Code Output for Inkscape Plugin
Vinyl cutting utility for Inkscape Win32.
Plugin to generate g-Code for a 2D wirecutter with a turning table . http://sourceforge.net/projects/wirecutter-inkscape-plugin
Utility programs for SVG files
https://jakearchibald.github.io/svgomg/ --- will remove / clear empty paths
Tutorials and Examples
- Gear Coaster --- Video tutorial.
- User:BHSPitMonkey has begun an Inkscape and Gcodetools_Tutorial which covers drawing shapes and cutting them out
- The Melbourne hackerspace made Inkscape G-Code Tools
- http://wiki.linuxcnc.org/cgi-bin/wiki.pl?InkscapeHowto --- covers gcodetools and gcode extension
- Tutorial CAD/CAM 3D Diamond-Circle-Square InkScape/MakerCAM
- Forum discussion showing a typical part drawn naïvely in Adobe Illustrator and how to fix it using InkScape: Re: Wooden gear DFX/DWG file to cut using Makercam. --- includes general guidelines on drawing vector paths.
A game to learn about forming Bézier curves: http://bezier.method.ac/#
Brief notes for new users
Files which come in from .dxfs will often be separate, discrete paths, as opposed to closed paths. In some instances this can be fixed by selecting everything and choosing Path | Combine.
Only closed paths are suitable for use w/ profile and pocket commands in most CAM programs.
Combining overlapping objects
To combine over-lapping objects (this includes text in script fonts)
- Path | Object to Path <control>C (that includes a <shift>)
- Path | Union
You can verify what MakerCAM will see using:
- View | Display mode | Outline
That's an important view for vector work --- usually one shifts in and out of it constantly.
The Path commands are even more important and one needs to understand all of the options:
- Cut path
work and how stacking order interplays w/ them in order to accomplish anything non-trivial w/o going to a lot of unnecessary work.