What this is about...
This program is basically just a cut manager. Create artwork in Inkscape, save with the supplied hpgl_output extension, and cut or plot with this program. The program does provide some useful functions, but it is by no means a fully featured solution. I do use it exclusively, and it currently satisfies my needs.
Why I did this...
I was an early adopter of using Inkscape for vinyl cutting. My boss bought a 2nd hand Roland CAMM-1 PNC-950, basically an older version of a Roland GX-24. Reduced feature set, but similar hardware specifications. It's turned out to be a really nice servo cutter, especially for the price. Of course the provided software was inadequate, and my boss certainly wasn't going to spend any more money for standard sign software. I eventually found Inkscape, and worked to get it to cooperate with the vinyl cutter. At the time there was very little information, more or less a good working solution for Win32. This program represents all of my efforts to date.
As a thanks to the Inkscape community, I'm posting this for anyone who might find it useful. I will be watching the vinyl cutter topic at inkscapeforum.com for feedback. Unfortunately I have little time to offer anyone help. This program sends raw CAMM-GL (Rolland's reduced instruction set of HPGL) to a vinyl cutter via the Windows spooler service.
Future...
I would like to see some improvements and new features, but I have little time to invest in this project. I'm not a software developer, and I do not have the necessary skills to advance this project much further. Maybe someone would like to hijack it, or cooperate? I will gladly give up the source code to anyone seriously interested.
The name needs changed, as there is no "extension" component anymore. My extension broke--for some reason--on 0.47, and I found the updated hpgl_output extension--with a few modifications--superior to what I had.
I've been modifying this website recently. Switched from lighttpd to nginx. lighttpd hasn't made any advances in awhile, and nginx is the latest and greatest. Seems a little faster, and still has the small foot print that I want. Configuration syntax is way different, but fairly simple. I've added Google Analytics, +1, and AdSense. Trying to become familure with Google's products. This site is receiving hits--not as many as I would like. I will continue to change this site around, hopefully make it a little more attractive, get some fresh content.
I would like to start a dialog with those people who are using this program. Get some feedback for improvements. You will find a contact me link at the bottom of the page. Send me a message tell me what you think.
Screenshots...
- #0 These images are from some numbers I cut for a friends boat. Black numbers layered on yellow and purple vinyl.
- #1 General screenshot with file loaded. 1" fixed grid. Dots represent coordinate pairs in pen commands. Dots are colored from red to violet to indicate the order in which the cut will be performed. Zoomed 1:1
- #2 Zoomed out.
- #3 List panels dialog. Select individual paths to cut. You can do a simple sort so the paths cut in a sensible manner. This is a simple bubble sort based on the coordinates of the first point in the paths, lowest X-axis first. I would like to reorder a paths points to make the penup movements between paths as short as possible. Finally, I changed the list box's text to display the coordinates of the first point of the path.
- #4 Paths reordered. Compare with #2.
- #5 Paths removed to cut one layer of vinyl. Compare with #2.
- #6 Modify menu. Self-explanatory.
Tips...
- I have modified Aaron Spike's hpgl_output.py extension to work with my program. I have add sys.setrecursionlimit(7500) to prevent the recursive bezier subdivides from bombing on large artwork. This number is arbitrary, I increase it anytime I have problems. I have also swapped the coordinate pairs at self.hpgl.append. I choose to use the X-axis of the drawing as in and out on the cutter. Think of the cutter as 24" high not 24" wide. This makes the most sense for my sign work. Pieces smaller than the width of your cutter should be rotated 90 degrees to save vinyl. Hopefully these changes could make it back to the original version.
- Do create artwork in full scale. Do not save a 4"x3" graphic and expect to scale it up to 4'x3'--unless it's nothing more than straight lines. Curves in the original SVG file are actually divided up into small line segments. More line segments means a smoother curve. The scale function is best for reductions or slight tweaks.
- Add a weeding border to ease weeding. Cut inside the border with a knife after weeding the center. Add 2 borders to give a nice frame for centering vinyl during application. Do not use for extra large cuts where there may be tracking problems
- I like to cut slow. Put a VS5; in the initialization string under cutter settings to slow down cutting. This does not effect pen up moves on my cutter. I'm thinking of adding a feature to insert a series of PU commands to slow it down. This is necessary for cutting thin films like window tint. If your cutter requires a pen select add it here.
- The serial interface has been completely removed. The program will send raw HPGL to the print queue. This should allow the program to work with any parallel, serial, or USB interface. The correct print driver isn't even required. The Generic Text/Only driver should work as long as it is configured with the proper port.
- The panel system works, mostly. Load a file, get it the way you want, click panels, select the horizontal and vertical panel count, then click an item in the list box. Go back to the main window, and it will show that panel. Cut as usual but leave the panel dialog open. Go back to the dialog to select a different panel to cut. The panel will already have a border cut around it, so usually no need too add a weeding border. Pay attention while weeding, it's very easy to get confused, and remove the wrong parts. I really need to fix the registration marks, they are way too small. I don't use panels to cut large graphics very often, so I still have some issues to work through. I generally cut transparent vinyl where seems are undesirable. Usually I will add registration marks in Inkscape, and use list paths to divide the graphic for cutting, or create a layer for each vinyl color in Inkscape. 1" squares with a 3/4" circle in the center makes a nice registration mark for alignment, or the registration mark SVG in my links works well too.
- Transforms. Be sure to view the XML editor in Inkscape. Look for any transforms. hpgl_output does not process them. Get rid of them. Sometimes grouping and ungrouping does the trick. Sometimes copying and pasting into a new document. Need to come up with a sure fire procedure. It will not matter if the graphic does not line up with Inkscape's origin. Paths are automatically setup for the cutters origin. Just watch out for paths that are not located where they belong. This is not a problem with UniConvertor.
- Panning with the middle mouse button kind of sucks. Logic is flawed. I can't find a good example of how to implement it correctly. Zooming with the mouse wheel works well enough.
- More...when time permits.
Credits...
- Micro Ugly - Thanks for the forum.
- Aaron Spike - Thanks for hpgl_output. Much better than my original CAMM-GL extension.
- Kevin Lindsey's Intersection.js - Made the panel feature possible.
- Simple Beauty by Pikanai.com - The template for this site found at Open Source Web Design
- jQuery and Fancybox.