posts tagged with the keyword ‘inkscape’



I wanted to document how I did the artwork and toolpaths for the MAKE thing I make on the Shapeoko CNC router at BAMspace recently…


I started with my old MAKE design in Inkscape and set it to the size I wanted. I also placed it on the canvas as if it were on the piece of stock, knowing that the lower left corner would be the home position on the CNC router.


After I saved out my SVG file, I loaded it into MakerCam. Now, you can go to and use that, or you can load up the SWF, and save it locally to run on your own machine. (Flash is required either way. I guess the source code is also available, but you probably need Adobe’s Flash development tools to do anything with it.)

If you’re using Inkscape, you need to set the prefs to 90ppi instead of 72ppi before you open your SVG file. Oh, make sure you check out the MakerCam tutorial, help, and about pages.


In MakerCam I created two profiles, one to cut the inside pieces, and one to cut the outside of the entire piece.


These setting worked fairly well. I wouldn’t up the feedrate or the step down on our machine if using 1/2″ HDPE. This job definitely took a while to run…


Once I had the toolpaths all set in MakerCam I exported the G-Code into a single file, and then loaded that file into OpenSCAM to run a simulation. (Looks like OpenSCAM recently rebranded as CAMotics… guess I should grab the latest version!) Running the simulation allows you to see the toolpaths and check how many passes it will take to cut through the material. I guess you could also use math, but sometimes I prefer visualizations…

That’s pretty much my workflow for 2.5D toolpaths; create art in Inkscape, load it into MakerCam and generate G-Code, load G-Code into OpenSCAM (CAMotics) and see how it looks.



There comes a time when every designer who designs things in two dimensions that get assembled into something that has three dimensions wants to have a diagram with some… dimensions.

Above is a dimensional illustration of the parts of the mount for the shaft for the machine I am building.

If I were to provide assembly instructions I’d probably want such a drawing. Here are some notes on the process, so I can do it again next time.

Parts in Inkscape

In Inkscape, each piece must be an object. The ‘holes’ cannot be separate objects, but must be cut out (differenced) from the main object. (This is the same method needed when bringing a 2D drawing into OpenSCAD, so nothing new there.)

Sadly, Rhino cannot import SVG files. (Mini-rant: I’m always surprised at the number of applications that do not support SVG. The SVG specification has been an open standard from the WC3 since 1999!) Rhino can import PDF files, so export your Inkscape file as a PDF. Your PDF should be a vector PDF, by default. Inkscape should do the right thing unless you’ve done something silly to your file. (Which is possible, I’ve done it.)

Parts in Rhino

Our vector file is now in Rhino! Double-check to make sure each line/object did not get doubled-up. I’ve had it happen a few times but could not conclusively determine what causes it. It may be the width of the stoke of the objects in Inkscape.

You can now extrude your object(s) in Rhino. I make them the height of the material I am using. Oh, I’ll be laser cutting these pieces with 4.45mm acrylic. YMMV.

Solids in Rhino

Change the view in Rhino from wireframe to solid and you’ll see your new 3D object(s)…

Extruded in Rhino

Make sure the holes are really holes! If not, re-read the part above about objects and holes and such. You need to difference any cut out things!

Make2D in Rhino

Now you can move your new object(s) because the original vector lines we imported in are probably sitting right underneath them. Swing your object(s) into the view you want… get that angle just right, and then choose “Make 2-D Drawing” from the “Dimension” menu.

2D from 3D

You should now have a 2D version of your 3D object. Rhino should also select it by default, so you can use the “Export Selection” menu to save it out as… A DXF file. :( Sadly, Rhino cannot export as an SVG or vector PDF, or even an EPS file. Rhino can export as an Illustrator file (.ai) but Inkscape cannot open those. The AI file it exports starts with “%!PS-Adobe-3.0″ which is probably a format from that was popular in the 1990s.

3D/2D in Inkscape

Anyway, we can certainly import that DXF file back into Inkscape and work with it, and make it look like a nice vector drawing. Mostly. Sort of. I mean, if you want to just fill it with a color or change the stroke, it’s not quite that easy. If you just want a line drawing that isn’t too fancy, mission accomplished!

Oh, and not that I want to turn Inkscape in a 3D application, but I could see great value in being able to extrude and change the view angle of a vector drawing… maybe through an extension?

Note: Lots of comments about this post are on Facebook.


It’s been a few years since I’ve posted about laser cut files, and by that I mean, the files I prepare to be used for laser cutting, so I thought I’d do an update.

Right now I typically use a few different laser cutters in the Milwaukee area. At Milwaukee Makerspace there’s a 60 watt ULS and 50 watt ULS, but using a Windows PC with CorelDraw for control, and at Brown Dog Gadgets there’s a 90 watt Chinese laser cutter using CorelDraw (and LaserCut 5.3) though it seems to be a much newer version than used at the Makerspace. I also use a 40 watt Epilog Zing at UWM’s DCRL. The Zing uses Rhino instead of CorelDraw, which may sound weird, but it works.

I’ve got a file workflow that can work with all of these machines… which I’ll explain below.

Panel Mount

Here’s what my vector art looks like in Inkscape. You’ll notice that the inside lines are blue, and the outside lines are black. This is so we can set a manual cut order for machines that don’t automatically cut inside lines first. (Some software is smart, and always makes inside cuts first, other software… is not.)


I should note that while doing the design work I may end up with multiple layers. Often I’ll use layers to hold pieces or revisions of a design. For our final file though, we want a single layer.

Let’s pretend my design file is named “Panel Mount.svg”, and it has more than one layer. When I’m happy with my work, and have all the things that will be cut on one layer, I’ll save that file, duplicate it, renaming the dupe to “Panel Mount LC.svg” and then open that file. My original design file (Panel Mount.svg) is now safe and sound, but my new file (Panel Mount LC.svg) is about to get altered.


I usually set all the objects to have no fill. This may not be required for all workflows, but I like to be consistent.


For the stroke I’ll set the outside lines to black… (This may be different depending on your laser cutter software.)


And I’ll set the inside lines to blue. Again, this may depend on the laser cutter software & driver you use. Some allow you to set the order of colors, and some may not. If I need more colors I can use red, green, etc. (Also, if you’re working with a laser cutter operator who is colorblind, ask them what colors they prefer.)

If you want to selectively cut things and only have one color, you can use this trick: Load the file into the laser cutter software (CorelDraw, or whatever) and delete the parts you don’t want to cut, then cut. Then “undo” until all parts are back on the screen, then delete other parts, cut again, and repeat. Not the cleanest method, but it totally works. Don’t move any parts, though you may have to ungroup them, and obviously do not move the thing you are cutting.)

Stroke 0.03mm

Once I’ve applied all the colors, you can select everything and set the stroke. I set it to 0.03mm. This should set it to “hairline” when you import it into CorelDraw. Rhino also seems to do the right thing. If your stroke is too thick it can cause issues. (Always check for the lines to be set to “hairline” after you import your PDF.)


After you change the stroke the lines may appear very faint. If you can barely see them switch the Display Mode to “outline” which makes every stroke appear a black and sort of beefs up the lines.

At this point I run down the checklist…

  1. The file has one layer (If it had more, I duped the file and then adjusted the dupe to have just one layer.)
  2. The file has all objects set to no fill.
  3. The file has all objects set to 0.03mm stroke.
  4. The file has different colors for inside and outside cut lines.

Obviously you can do all the file prep stuff (line colors, stroke, etc.) in your master file, and then dupe that one and delete any extra layers. The order isn’t the most important thing here.

PDF Export

Once we’ve made all the changes, we can save our “LC” version of the file. After that, it’s time to use the File menu’s Save a Copy… command to save it as a PDF file. Note that “Convert texts to paths” is selected. This should create a PDF that does not rely on any fonts being installed. If you used text in your file, this is helpful. It does however mean that you cannot edit any text when you import the PDF into other software, as it will have been converted to lines.


Oh, one more thing! Some older versions of CorelDraw seem to have issues importing PDF files created in Inkscape. On Mac OS X, I just open the PDF that Inkscape created, and export it. It somehow fixes the PDF so CorelDraw likes it. Whatever… it works, so I do it!

Simple Dual Axis Solar Tracker

(BTW, the piece I used an as example was for the Simple Dual Axis Solar Tracker from Brown Dog Gadgets.)



A big part of the work I do is the process, and trying to find tools that fit the way I work, and are also available. “Available” may mean open source, or free (as it beer) or multi-platform, or some other criteria I come up with.

In my Digital Craft class we’ve used RhinoCAM to generate the G-code needed to run the 4×8 CNC router in the DCRL. RhinoCAM has a lot of options, as it should for a full-on commercial package. Meanwhile, I’ve been working on a Shapeoko2, which is a small and affordable hobby-level CNC machine. For a machine like this, I’d like to use a workflow that doesn’t require expensive commercial software, because at some point I may not have access to Rhino and I’ll need tools I can afford.

(I should note that I have used CamBam in the past, but being commercial software that is Windows-only doesn’t entice me to want to use it again.)

I’ve played a little bit with Easel from our friends at Inventables, but I’m also not a fan of hosted solutions that can disappear, or start charging for access, etc. At this point I start to sound extremely picky, but really, I’m just looking for tools I can rely on, that are not expensive, and run on the platforms I use. (Easel is actually really nice, and while it’s easy to use, I think that comes at the price of hiding some of the complexity and advanced features I want to learn. Still, if you just want to cut/carve/engrave, check it out.)

I stumbled up MakerCAM, and there’s a bunch more info about it on the Shapeoko wiki. Basically it’s a Flash application (!) that you can use online, or download and run offline, which provides all the basic needs of a CAM application. And it actually works.


I started as I often do, drawing a 2D vector file in Inkscape. (Oh, I should mention there is an extension for Inkscape called Gcodetools, but we’ll skip that for now.) Once I had my Inkscape file I saved it as an SVG, as you normally would with Inkscape.


I then loaded the SVG into MakerCAM. Note that if you load an SVG from Inkscape you need to set the px/inch to 90 in the preferences. Once in MakerCAM it’s fairly easy to create the toolpaths and generate the G-code. If in doubt, check out the help page and the tutorial page for all the info.


After exporting my G-code file I was able to load it into the Grbl Controller and run it on the Shapeoko. Now, Grbl Controller is no Mach3, but it’s also open source, and multi-platform, so there’s that. (Yes, I know the image above does not match the first two images, that’s because I went crazy with the hatch fill from the Egg-Bot extension for Inkscape. Just pretend you know what I’m talking about.)

Oh, if you want to “run” your G-code before you run your G-code to make sure it’s doing what you think it’s doing, check out OpenSCAM, which is a nice little simulator.

(And yes, I know of Chilipeppr for Grbl, but I’ve not dug into it yet.)


Encoding Discs

While Inkscape is a great and powerful open source vector editing application, sometimes it can’t do it all. Since I primarily use it for creating files for laser cutters, vinyl cutters, the Egg-Bot, etc. I need to have lines. No fills, no objects sitting on top of other objects, no crazy intersections of paths, just lines.

I’ve found that on occasion it’s actually easier to export a raster image, re-import it, and trace it to get the needed vector file. I’ve done this for many files from because they weren’t created with CNC uses in mind, but that’s what I use them for.

Back when I wrote my rotary encoding post I mentioned a perl script that could create encoding disks. It’s simple to use, and outputs an SVG file that I can open in Inkscape. Sadly, it’s not exactly what I need, but it’s pretty close, and easy to fix.

Encoding Disc

Here’s the disk that was created, which uses some neat SVG capabilities to generate it, but makes it quite difficult to edit using Inkscape. You can’t ungroup it, or break it apart, or use union or difference commands on it.

Encoding Disc

I’ve placed a smaller disk on top of it, Right now it’s gray (just so you can see it) but I’m going to fill it with white and give it no stroke. (Normally I would place one object on top of the other and use the difference command to cut a hole in the larger object. In this case, that can’t be done.)

Export at PNG

Once that’s done it looks like I want it to look, but it’s not all lines. It’s really overlapping objects. As long as it looks like I want it to look, I can export it as a bitmapped file. (A PNG file, to be precise.)

Import PNG

Here’s the PNG file. It’s raster, not vector, and again, it looks just like I want it to look. Excellent! Let’s go back to Inkscape and import the PNG file.

Trace Bitmap

Once imported I can use the Trace Bitmap command to easily change this black and white image into a vector file. (Yes, make sure it’s just pure black and white, so it can easily separate the two colors and create the needed path.)


After the bitmap has been traced I’ve got nice vector lines, shown here in outline mode, and it’s ready to be cut with a CNC machine. (Oh, I’ll probably add a center mounting hole, as the encoding disk eventually does need to attach to something.)

« Older Entries |

buy the button:

Buy The Button

top recent artists: