Using Inkscape with the Laser Cutter

From ATXHackerspace

Jump to: navigation, search


ATX HackerSpace Pages relating to
the Blue Laser Cutter
Laser cutter icon.png
Blue Laser Cutter PLS 6.60
Red Laser Cutter XL1200
Epilog Legend EXT36 75W
Laser Cutter Materials
Laser Cutter Settings
Laser Cutter Supplies
Laser Operation Class
Advanced Laser Class
Using Inkscape with the Laser Cutter
Laser Cleaning
Laser Cutter Manuals
Laser Calendar
Laser Committee
Edit this template

We generally operate the Blue Laser Cutter from within Corel Draw. But because Corel Draw costs $400 for the mainstream version and $99 for the student edition - you'll probably want to do your design work in some other piece of software. One good/cheap option is to make your drawings in SVG format from "Inkscape" which is free/OpenSourced and runs well under Windows, Mac and Linux.

Unfortunately, you can't drive the laser directly from within Inkscape because it rasterizes all of the vector data before sending it to the device. Hence if you want to do your design in Inkscape, you have to import the resulting SVG files into CorelDraw for lasering. Since you'll need to transfer the files to the laser cutter's PC (which has a copy of CorelDraw) - this is no big deal.

However, there are a few "gotchas" to be aware of. To be fair, none of these are Inkscapes' fault - but rather shortcomings in either the SVG file format, in CorelDraw or in the Laser Cutter drivers themselves.

I have made dozens of designs using Inkscape - and with the following precautions taken, they have all cut flawlessly on the ATXHS laser cutter.

Designing objects in Inkscape

  • Set the File/DocumentProperties "Custom size" units to inches, set the Width to 32" and the Height to 18" to match the size/shape of the lasers' cutting area.
Inkscape page size.png
  • Place your drawing in the top-left corner of that region - to correspond to the far-left corner of the cutter's work area.
  • Keep the drawing at least 1/8" (3mm) away from the edge of the work area because sometimes the laser is out of calibration and won't cut that close to the edge.
Inkscape image positioning.png
  • Draw your 'cut' lines in red, and 'etch' lines in blue or green. Anything you want to raster should be in monochrome/greyscale. (Advanced users can use more colors for more things...but if you know enough to do this, then you don't need me to tell you how!)
  • Beware of Inkscape filters. These are not a standard part of SVG and are ignored by CorelDraw. Either the filter will get dropped when exporting to a non-Inkscape SVG or the filtered object will be rasterized on export - neither is likely to be what you wanted. If you're getting Inkscape files from elsewhere, you might want to use "Edit/SelectAll" and then "Filters/RemoveFilters" to be sure you got rid of them.

Exporting to SVG

Note: As of Inkscape 0.92 the default resolution has been changed to 96dpi to match the CSS standard and now matches that of CorelDraw. The information on scaling may be needed only if using an older version of Inkscape.

  • Within Inkscape, you can work in any units you like (inches, centimeters, etc). However, the SVG standard requires that dimensions, positions, etc are stored in abstract units ("pixels") - not real-world units like inches or centimeters. In order to allow you to work in real-world units, programs have to assume some arbitrary number of pixels-per-inch (PPI) for the device you are using. Unfortunately, Inkscape uses 90 ppi and CorelDraw uses 96 ppi. So if you draw a 1 inch long line in Inkscape - it'll be stored as a 90 pixel line in SVG, which CorelDraw will convert to 0.9375" (90 pixels/96 ppi) as it loads it. Hence everything that you draw in Inkscape comes out about 6% too small in CorelDraw. To fix this (when exact dimensions matter), you have to scale everything by the ratio of the two PPIs - scaling everything up by 106.667%. The simplest way to do this in Inkscape is to use "Edit/SelectAll" then "Object/Transform..." select the "Scale" tab, set the units to be "%" then enter 106.667 as the scale factor. Check the "Scale proportionately" box and make sure that "Apply to each object separately" is NOT set. Then hit "Apply". You could do this in CorelDraw instead...your call.
Inkscape scale.png

  • Note that when you rescale, the 'page boundary' size that you set up earlier will be about 6% too small - you can fix that by resetting the document size to 34.13" by 19.20" - but you really needn't bother because CorelDraw ignores the page size stuff on import anyway. Line widths also get ~6% thinner - but that doesn't matter for Laser cutting where anything under 0.001" is 'good enough'.

  • If you have raster images in your design, check the "embed" option when you save the file - that way the raster image is stored inside the SVG file rather than being linked to as an external file - you don't have to do that (and it does make for much larger SVG files) - but it makes life a lot easier and less error-prone when shuffling files between your computer and the one that drives the laser cutter.
Inkscape embed image.png
  • Sometimes raster images fail to resize correctly - especially if the aspect ratio is not preserved in the resizing. If this is a problem, the only work-around I have is to rescale the image in a paint program (GIMP/Photoshop/whatever) and re-import the image so that I don't have to rescale it. This sucks - but it's not unique to Corel Draw - I've seen similar issues in both Firefox and Chrome web browsers.
  • The version of Corel Draw that we use has a bug in the SVG import mechanism that treats all <path> commands as being in "absolute" coordinates. Since Inkscape outputs data using "relative" coordinates by default, this means that some designs that look just fine when viewed in Inkscape, Firefox, Chrome, etc, come out totally screwed up in Corel Draw. To work around this bug, go into File/InkscapePreferences - select "SVG output" from the list on the left and make sure that "Allow relative coordinates" is NOT checked. This becomes the default for all inkscape files - so you only need to do it once.
Inkscape absolute coordinates flag.png
  • There is an issue in Inkscape that when you change your SVG output settings, that change does not affect existing files - so if you save a file with the "wrong" settings, then change Inkscape's settings and load up the file - then re-save it, the change to the settings has no effect. I find that I have to select the entire drawing, move it a little - then move it back again (not using "Undo") and THEN re-save it for the SVG output settings to have an effect. This isn't a problem when using Inkscape on your own machine because once you change the settings, they are changed forever. However, on the ATX hackerspace machines (notably, the one that's driving the laser cutter), the settings are reset every time the machine is rebooted - so you have to change them all over again. Argh!
  • I have seen (rarely) problems with grouped objects. It's possible in Inkscape to group a set of objects that have different colors (or other properties) and then select the entire group and use the Fill & Stroke dialog to set (for example) just the line width or just the opacity. When you do that, Inkscape attaches the altered property to the group (<g>) record inside the SVG file instead of to each individual path (<path>) record. Having fill and stroke properties in both the group and path records seems to confuse CorelDraw and can cause some issues. Almost all of the time, it gets it right - but once in a long while I see problems. Hence, if you have problems with the Inkscape-to-CorelDraw step - then just do an "Edit:Select All" in Inkscape, then hit the "Object:Ungroup" menu item a bunch of times. That's fixed a few issues for me in the past, but YMMV.

Design "gotchas"

  • The laser cutter tries to draw all lines that are wider than about 0.001" by repeatedly over-drawing the line to get it wide enough. This is almost never what you want, and in extreme cases could set fire to the material you're cutting(!) - so be sure to EITHER:
    • Set the line width to 0.001" in Inkscape...OR...
    • After importing the image into Corel, select the object properties tab and set the width to "Hairline".
  • (NOTE: When editing with 0.001" lines, they are drawn very faintly in Inkscape and web browsers. Hence it may be easier to use (say) 1 pixel-wide lines while editing and then do an "Edit/SelectAll" and "Object/FillAndStroke..." to set the line width down to 0.001" just before you export.
Inkscape stroke width.png
  • It is very easy to accidentally nudge the "Opacity" slider or the "A" (alpha) slider in Inkscapes "Fill and Stroke" menu and wind up with lines that are only 99.89% opaque. This is annoying because those lines look solid in Corel - but the laser cutter drivers ignore lines that aren't absolutely 100% opaque.
  • It is also quite easy to accidentally select colors that are not 255 units of Red, Green or Blue. A line that's only 254 red - or which is 255 red plus 1 unit of blue or green. is treated as black(!) by the laser cutters' drivers - which means that it'll get rastered instead of properly vector rendered. If you see this happening - then go back to Inkscape and carefully set those colors to 255/0/0. Don't set colors in HSL,CMYK,Wheel or CMS modes because those get converted into RGB and teeny-tiny roundoff errors can result in colors that are not pure red, green or blue.
Inkscape rgb.png

Transferring files from your computer into the Laser Cutter computer.

  • It's really easy to forget whether you already fixed up your design for export to Corel - so I recommend saving the original file from Inkscape (eg 'myDesign.svg'), then rescaling it by 106.667% and setting the line widths to 0.001" - then saving it again under 'myDesign_COREL.svg' to export to Corel.
  • When it comes time to transfer the design from your computer and into the Laser Cutter's PC - you can either mess around with memory sticks and such - or you can upload your SVG files to a suitable Wiki (this one for example - using the 'Wiki:Upload Files' menu) and download them back into the laser cutters' PC using either Firefox or Chrome.

Importing to CorelDraw

  • The layers of designs that are imported from Inkscape/SVG seem to come up "locked" by default in Corel Draw - so you have to "unlock" them before you can edit them. However, if all you need to do is hit "Print..." then it's not necessary to unlock the layers.

Printing to the Laser

  • When you finally hit "Print" in CorelDraw, then click on the laser cutter's driver icon to bring up the control panel - take a moment to ensure that there are no missing lines or lines being drawn in black when you expect them to be red or blue. Those are indicative of issues described above that you need to take care of before proceeding to cut out the design.