13 Sep

Inkscape and Plotters, the 3rd

WINDOWS users please note:
Under Windows the described installation method of Pyserial does not work at the moment due to an update of Pyserial.

Please download pyserial-2.7.tar.gz instead of the file described in Inkscape and follow the rest of the instructions as usual.

And the saga continues!!!

After my extension was officially bundled with Inkscape 0.91 i added a couple of new features which will be released with the upcoming release Inkscape 0.92. If you are impatient just download the newest “Developer Version”.

See two related posts here: Inkscape and Plotters, the 2nd and Your (Cutting) Plotter and Inkscape.

Added support for Pen Plotters with multiple colors

This is a neat feature for old pen plotters supporting multiple pens (Colors, thicknesses, etc.), so you can produce colorful drawings for… whatever. Honestly i don’t know why someone would use Pen Plotters today anyway, but since this feature was requested multiple times i added it. I had to refactor quite a lot of code to get this to work.

To use it you have to create a layer for each pen number (HPGl doesn’t support color or anything, just pen numbers corresponding to pen slots on the plotter), and name the layer something like “Pen 1” or “MyCoolLayerName Pen 1” or “Bla Pen 1 Bla”.
The number after “Pen” is the pen slot to use, and if you write something besides the pen information it has to be separated by a space character.
Now just put the portion of your drawing you want to use this pen with in the according layer and you are done.

Added support for a very small fraction of plotters (I think less than 1%) not working with standard serial settings (8bits, 1stopbit)

This may be confusing for newbees and i hope they read the help texts for these commands by hovering over the settings, but apparently there are some plotters (in 3 years i supported users with multiple problems i only encountered one!) that don’t use standard settings for “Byte size”, “Stop bits” and “Parity”, so i had to add these settings in the “Connection Settings” tab.


Ideas for new features / needed changes (Thanks for the suggestions added by users!)

  • Add support for “window” type plotters (Like the NEON Plotter) that can only plot in Xcm wide parts: NEON Plotter
  • Add a option to plot a box around the drawing to make weeding easier.
  • Scale Overcut and Tool offset correction separate for each axis, atm it is done by a common scale factor. some thought has to be put into this.
  • Change the cutting order from smallest to biggest parts to avoid stripped off parts of small text characters. This could impact CPU performance.
  • Preview functionality. The extension is prepared for it, but it needs support from the Inkscape side (C/C++) i cannot provide. Help from a C++ programmer would be greatly appreciated!
  • Make use of a measurement feature of Roland plotters to determine if the used workpiece is big enough for the plot before starting the plot. Since i don’t have a Roland plotter i need someone to test my code.
  • Add option to set final point to move to above drawing instead of 0 point, to allow to cut of the piece of vinyl with the drawing instantly and plot again.

If you want more features or have problems leave me a comment below.

Have Fun!

73 thoughts on “Inkscape and Plotters, the 3rd

  1. I just want to say thanks! I am the proud owner of a HP 7475A plotter and appreciate the new support for multiple pens. In case you are curious, I own it because we have a gain phase analyzer that could use a friend to talk to.

  2. Hello. Thanks for all the work you put into this extension!
    I’m trying to get this extension to work on a xubuntu (16.04) system with a Graphtec ce5000-60 and when I’m trying to print to to the device /dev/usb/lp0 it’s coming back with an error “Inappropriate ioctl for device”. I’ve verified the permission on the device is correct (as bad permissions show up with a different error).

    Anyhow.. I’ve spent a a few hours on it now and I figure I would see if anybody here solved this already. Any help would be appreciated.

    • Hi Scott,

      unfortunately i didn’t notice it when i approved your post, but actually it seems like you try to talk to a device with a printer port (parallel port, LPT), can that be?

      If that is the case it will never work since Inkscape can only plot to serial ports (virtual or real ones).

      if your plotter really has no serial port maybe you can buy an adapter from serial to parallel port.

      Sorry that i didn’t notice before…

  3. Just started playing around with this extension and my plotter and so far I love it. Thanks for creating this. Two minor things I’d love to see in a future version, rather than the “pen” returning to the home position after done, I’d like to have the option to advance it x number of inches.. With most vinyl cutters once the cut is done you advance the vinyl another few inches, cut off what you just created and are ready to go for the next design. I’d also like to have the ability to have the “pen” move to the max size prior to cutting. I do this to make sure that my design will fit on the piece of vinyl I have loaded.

    Thanks again for you work on this.

    • hi, i added your first wish to the todo list above, but the second one i actually cannot fulfill, the extension system in Inkscape does not allow to do actions other than running the main extension functionality itself, to achieve that i would have to write another extension that does just that.


      • Bummer about the second option, oh well. I’ve been using this extension exclusively for cutting the last month, and love it. Thanks for your work on this.

  4. Hello to all,

    thank you for this wonderful extension.
    I use it to plot on a HP 7475A but i have some issues, it plots only a part of the image and then stops or draws straight lines with the pen down.. Anyone could point me what i am doing wrong ?


  5. Hello Timewaster, I am struggling with a UScutter and have been dialoging a bit on the Inkscape forum, but they have sent me here noting your experience. My goal is to use the Vinyl cutter with Inkscape, using linux mint.

    I am starting from scratch:
    1.  New installation of Inkscape – I went to the newest version 0.92.1
    2.  My Vinyl cutter is a UScutter – model SC 801 – a 34″ wide cutter – newly purchased
    3. I am using Linux Mint 17.1, cinnamon, on an i7 processor
    4. No 9 pin serial port on this machine, only USB – wanting to use USB.

    I am not sure – but I think the first step is to ensure that my UScutter is recognized.  I did the following below:
    ~ $  dmesg | grep tty
    [    0.000000] console [tty0] enabled
    [    0.912127] 00:0b: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
    [    8.291735] usb 3-4: FTDI USB Serial Device converter now attached to ttyUSB0

    I think this means the device is attached. 

    I go into Inkscape – draw a simple square with no fill
    go to Path > Object to Path
    Extensions > Export > Plot…     a new menu pops up with 3 tabs, Connection Settings, Plotter Settings, and Plot Features
        Connection settings – Serial Port :         COM1 – I am not sure how to reconcile USB0 to COM1
                                           Serial Baud:        9600
       Plotter settings           – I left these as default, mostly pen force, speed, etc until I can get activity

    I say – “Apply” and get an error window
    Traceback (most recent call last):
      File “plotter.py”, line 268, in
      File “/usr/share/inkscape/extensions/inkex.py”, line 283, in affect
      File “plotter.py”, line 98, in effect
      File “plotter.py”, line 199, in sendHpglToSerial
        if ‘ould not open port’ in inst.strerror:
    TypeError: argument of type ‘NoneType’ is not iterable

    I am think this has to do with configuration of serial ports but I do not understand it and must research in more detail.  If someone understands this and can point me, I would greatly appreciate it.

    • since you are on linux the serial port is never “COMx”, but in your case most likely “/dev/ttyUSB0”. please try that and report back.

      the error message you see is actually an error itself, normally a human readable message should be shown, i will investigate this.

      as a general help for the future, you can always hover with your mouse over an option to see an explanation text for this option.

      have fun with your plotter,

  6. Amazing work! I am having an issue with an AIP 0720 plotter than my university team has had around for while. It plots fine with the extension but the cutting head isn’t returning to the origin after each cut and there doesn’t seem to be a limit switch on the plotter itself so it doesn’t know when the cutting head has reached the end. Any idea would be appreciated!

    • hi bagelhater (how can you ^^),

      there is always a “return to zero point” command at the end of the command chain sent to the plotter, if this command is not executed it can be a sign that you are using the wrong “Serial flow control” setting, either look in the manual for this plotter (if there is any) or try different settings here.
      if that does not help we can go into deeper debugging, but for that i would contact you via email.

      that your plotter has no “limit” or “end point” switch is normal, i know of no plotter that has that (although there might be some), you have to make sure yourself your drawing is not bigger than the drawing area itself.

      • Thanks for the help! I’m new to plotters so that makes sense. Software serial control is the only one that seems to actually allow plotting but it still doesn’t return to the origin. However I can now manually move the cutting head to the origin with the buttons on the plotter which wouldn’t do anything before (which is good enough for what I am doing).

        • can you please try the following (i presume you are using HPGL, when not please tell me):

          – close inkscape
          – open the file ??/inkscape/share/extensions/plotter.py
          – replace this line:
          self.hpgl = hpglInit + self.hpgl + ';SP0;PU0,0;IN; '
          with this line:
          self.hpgl = hpglInit + self.hpgl + ';PU0,0;SP0;IN; '
          – save and start inkscape

          and try it out that way?

          • In windows 8 Seiki plotter works fine with USB in SCAL and Flexistarter10
            In Inkshape (HPGL) it works also fine but by return to the origin point I must put the reset swith,
            otherwise the plotter is making a noise like it is not ready with the cutting job
            Can you help me

          • can you please try out the procedure i described one comment above your comment, and report back to me if it works with that? thx

          • ok, then i will add this change to Inkscape, this will then be released with the next Inkscape version.

            Thx for testing!

  7. I Have a Houston Instruments Pen plotter DMP60 for which I have lost the driver ( in a house fire) Could I use your Pyserial 2.7
    The plotters talks in DMPL. I can not find any driver for it.
    Thanks and best regards

    • As long as you are able to connect the plotter with your computer and your computer sees the serial connection, yes.
      If this plotter is connected via usb and you lost the driver for that usb connection (and there is a driver needed), no.

      i would just try it out and if it is not working try to find the drivers online.

  8. Hi

    Stumbled across this site in search for an affordable cut program. In the earlier posts there was a printscreen with tool offset.
    Cannot find it in the 0.92.1 version? Has it been removed or am I missing something? How about perforated cuts, could that be a
    nice feature to implement.


    • You’ll find it in the “Plot Features” tab as “Tool Offset Correction”.

      You can easily do perforated cuts by creating a path with dashes (with “Fill and Stroke” -> “Stroke Style” -> “Dashes”) and then using the “Convert to Dashes” extension: “Extensions” -> “Modify Path” -> “Convert to Dashes”.

  9. Please help i am new to inkscape when i try to cut my design inkscape tells me this .

    Debug information



    DMPL data:


Leave a Reply

Your email address will not be published. Required fields are marked *