cutter control discussion
I have not seen any posts on this topic for a week or so.
I would like to help but I am terribly slow to get things done.
I am just wondering if we could hammer out what needs to be done so I can add it to my "to-do list" volume 3
I could buy a cutter in July or August and I should be able to finish reverse engineering the command protocol sometime in the fall.
I know there are different formats used to send information to the cutters, would it be good to work on a more robust DXF export option too? I don't know the first thing out GSD, does does someone want to work on this ?
I am unfamiliar with Inkscape internals, if I provided the commands could someone integrate this into Inkscape? Or do we even want to do this? Is there a better way?
Thanks-Patrick
Patrick wrote: ...<cut>...
I could buy a cutter in July or August and I should be able to finish reverse engineering the command protocol sometime in the fall.
Are you talking about a Graphtec plotter like the Craft ROBO or any of its derivations?
I know there are different formats used to send information to the cutters, would it be good to work on a more robust DXF export option too? I don't know the first thing out GSD, does does someone want to work on this ?
I had thought inkscape read & saved DXF already.
Regarding GSD - there are people talking about this. I think the current efforts are outside of inkscape and involve translating to and from GSD. But I don't know if anyone has working code.
http://wiki.inkscape.org/wiki/index.php/BlueprintCutterControl
On the other hand - I don't even bother w/GSD files. I just pipe inkscape's postscript output to a modified python script which does the translation. If that's a postscript to GSD translation, it is a fairly simple process. However, I understand it was mostly base on reverse engineering. That is, we know what to send the Graphtec cutters given a post script command (like pen down or cut to here). Or, in other words, I don't think we have the slightest idea what's inside a GSD file.
The down side to this is that the process is not integrated into inkscape. I have spent a lot of time explaining the installation process only to have people give up when it finally occurs to them they need to install python and glade and some other packages (oh, and the above solution is really only for Linux).
I am unfamiliar with Inkscape internals, if I provided the commands could someone integrate this into Inkscape? Or do we even want to do this? Is there a better way?
Thanks-Patrick
I am trying to clear this up for my self as well. If you want to be wow'ed Ted posted a link to a graphic representation of some inkscape inner workings:
http://inkscape.modevia.com/doxygen/html/classInkscape_1_1Extension_1_1Print...
I doubt the inkscape project wants to directly integrate a particular cutter into it's code. It's more likely a plug in approach might be considered (to keep the two software components apart).
How are you getting the commands? Are you sniffing the USB? If you are, I'd like to know about the commands associated with the optical pick up. I think that is a unique feature of these small cutters. Or can large cutters look for registration markings as well?
...thanks
Hey Stuart
I think I worded that last email incorrectly. I am not presently snooping commands yet, I don't own a cutter. I am not sure which one will be the best to buy either but I figure I will just ask for suggestions on which one will be best for Inkscape and then I will check my wallet's opinion.
Inkscapes DXF export does not produce a fully featured DXF, I think most CAD programs cannot open it, it is a minimalist DXF just for the robocutter community.
Thanks for the links-Patrick
stuart wrote:
Patrick wrote: ...<cut>...
I could buy a cutter in July or August and I should be able to finish reverse engineering the command protocol sometime in the fall.
Are you talking about a Graphtec plotter like the Craft ROBO or any of its derivations?
I know there are different formats used to send information to the cutters, would it be good to work on a more robust DXF export option too? I don't know the first thing out GSD, does does someone want to work on this ?
I had thought inkscape read & saved DXF already.
Regarding GSD - there are people talking about this. I think the current efforts are outside of inkscape and involve translating to and from GSD. But I don't know if anyone has working code.
http://wiki.inkscape.org/wiki/index.php/BlueprintCutterControl
On the other hand - I don't even bother w/GSD files. I just pipe inkscape's postscript output to a modified python script which does the translation. If that's a postscript to GSD translation, it is a fairly simple process. However, I understand it was mostly base on reverse engineering. That is, we know what to send the Graphtec cutters given a post script command (like pen down or cut to here). Or, in other words, I don't think we have the slightest idea what's inside a GSD file.
The down side to this is that the process is not integrated into inkscape. I have spent a lot of time explaining the installation process only to have people give up when it finally occurs to them they need to install python and glade and some other packages (oh, and the above solution is really only for Linux).
I am unfamiliar with Inkscape internals, if I provided the commands could someone integrate this into Inkscape? Or do we even want to do this? Is there a better way?
Thanks-Patrick
I am trying to clear this up for my self as well. If you want to be wow'ed Ted posted a link to a graphic representation of some inkscape inner workings:
http://inkscape.modevia.com/doxygen/html/classInkscape_1_1Extension_1_1Print...
I doubt the inkscape project wants to directly integrate a particular cutter into it's code. It's more likely a plug in approach might be considered (to keep the two software components apart).
How are you getting the commands? Are you sniffing the USB? If you are, I'd like to know about the commands associated with the optical pick up. I think that is a unique feature of these small cutters. Or can large cutters look for registration markings as well?
...thanks
Patrick wrote:
Inkscapes DXF export does not produce a fully featured DXF, I think most CAD programs cannot open it,
We need bug reports filed in launchpad to support assertations like this before they are useful. Anything else is just FUD.
it is a minimalist DXF just for the robocutter community.
This is very true.
Aaron Spike
Hi Aaron and fellow Inkscapers
Thanks for your cutter posts today Aaron. I have never been part of an open source project and I would really like to help with this feature and if I can manage it, improving the DXF output too.
I went to submit a bug regarding the fact that Autocad cannot open the DXF. However there is already a bug that is similar: https://bugs.launchpad.net/inkscape/+bug/197765
Can anyone suggest a Vinyl Cutter that would be good as the first to add support for? I was hoping to spend under $500. Once I know which one would be good I will likely search for a used one. Perhaps someone on the Inkscape user list would like to sell me one of their old ones or if not there are several online auctions.
If no one has a preference I will likely just buy a small one as that's all I need(I am planning on using it to make stencils for Airbrushing)
ThX-Patrick
Aaron Spike wrote:
Patrick wrote:
Inkscapes DXF export does not produce a fully featured DXF, I think most CAD programs cannot open it,
We need bug reports filed in launchpad to support assertations like this before they are useful. Anything else is just FUD.
it is a minimalist DXF just for the robocutter community.
This is very true.
Aaron Spike
Guys, I'm actually looking into buying a vynil / sticker cutter right now. knowing whats most supported and whats in need of testing will help with my decision.
Finding where to buy the actual things in south east asia is quite hard also. seems both the US and UK are the only places to buy. Andy
Andy Fitzsimon wrote:
Guys, I'm actually looking into buying a vynil / sticker cutter right now. knowing whats most supported and whats in need of testing will help with my decision.
Finding where to buy the actual things in south east asia is quite hard also. seems both the US and UK are the only places to buy. Andy
Note: Looking for low end less then $500 cutter, read on... other wise skip.
I'm only familiar with the old (blue) wishblade and the like. These represent the bottom of the Graphtec line and are usually less then $500 (more like $300). They are for craft work and are mainly used for cutting paper. They have a small format and can only cut to the width of a standard sheet of notebook paper (about 7 1/2 inches). Their blades are not articulated (i.e. they rotate freely but are not controlled by a motor). So sharp turns will nick the media.
Wishblade's are marketed by Xyron in the US. This company has a terrible reputation for late product introduction. Add to that, Xyron is not a technically savvy company. They are "scarppers" and shipped me static sensitive supplies in plastic bags that were certainly not plated with nickel. Wishblade's PC based software does not allow for importing DXF files. It only works with GSD files.
In the rest of the world (perhaps in your part as well) I think Graphtec markets something called a Robo CRAFT. This is essentially the same cutter however the software allows for importing DXF files.
Xyron markets a newer version of the wishblade that is pink. I don't know what the differences are. The first people who buy it will be scrappers. No offense, but they are not likely to be able to comment on technical aspects (i.e. does the plotter under stand anything beyond pen up/down and move to here).
From this list and my experience, inkscape can produce DXF files that the Robo CRAFT PC based software can import and send to a Robo CRAFT plotter. Note, the Robo CRAFT PC based software will not talk to a wishblade - probably by design (i.e. cripple ware). Also, it has been mentioned in this list that inkscape's DXF format isn't (completely??) compatible with other software.
I think the blue wishblade software support from Xyron is dwindling (i.e. no path forward to Vista AFAIK). If you get this type of cutter I would use inkscape on a Linux platform with a modified version of graphtecprint. You can get graphtecprint here along with the instructions to modify it to work with both a wishblade and Robo CRAFT cutter (the down loadable version only works with a Robo CRAFT): http://vidar.gimp.org/graphtecprint/.
...hope this helps.
P.S. Hey, there's a good comment here regarding these cutters. They recommend (I assume because vinyl cutting is thin) you go with the next version up of graphtec cutters or a Roland:
http://www.specialty-graphics.com/index.asp?PageAction=VIEWPROD&ProdID=2...
Attached is a summary of what I have seen so far (from a purely software point of view) with respect to the use of Inkscape .dxf files in desktop cutting :
- the 'Desktop Cutting' export option supports two basic types of object : lines and cubic Bezier splines.
- it may sometimes be necessary to use the menu option 'Path | Object to Path', to convert rectangles, or ellipses, or text, before exporting to .dxf.
- the exported .dxf file complies with the Autodesk dxf spec to the extent that it can be viewed using Autodesk software such as Volo View Express 2.01 and DWG TrueView R17 (2008).
- the exported .dxf file can be both edited and viewed using QCad from RibbonSoft.
- the desktop cutting software program Winplot V6.8 from Summa has been tested on .dxf files. It will load .dxf files, but it does not render the spline correctly : a cubic Bezier spline consisting of four points will be rendered as a combination of a circular arc based on the first three points, and a straight-line segment based on the last two points. The developers at Winplot have been made aware of this issue, but it is not likely that it will be addressed, see https://bugs.launchpad.net/inkscape/+bug/192923/comments/36 . Luckily, in this case there is a workaround, namely use 'Postscript via Cairo' export, which can be read properly by Winplot, see https://bugs.launchpad.net/inkscape/+bug/168411/comments/17 .
- the desktop cutting software program ROBO Master-Pro Version 4.3 from Graphtec has been tested on .dxf files. It can read .dxf files, and as far as I can tell, it is also rendering them correctly on the screen. However, any attempt to edit a spline that originated from a .dxf file will immediately lead to a software crash. Also, even if this file is saved as a native .GSD format file, and then reloaded as a .GSD file, it will still crash when attempting to edit the spline : which suggests that this is not specifically a .dxf issue, but a more general problem. Also, the ROBO Master software supports the creation and editing of a spline starting from scratch, but the mathematical form of the spline they generate does not appear to be compatible with the cubic Bezier spline that Inkscape uses. I am attaching a .GSD file with both types of spline present. The cubic Bezier spline is not editable (you'll be sorry if you try), but the native ROBO spline is editable. However, no matter how hard I try, I cannot make the two curves superimpose on each other, and I believe they are mathematically incompatible. I have emailed ROBO Master concerning this issue, and will await their response.
- I should not speculate, but I suspect that this mathematical incompatibility may be the source of some of the mechanical stuttering that has been reported. In any event, it would be a relatively simple matter to produce a reasonable approximation of one spline curve to another, based on matching slopes and curvatures at vertices, but before this is done we need a mathematical description of the shape of the curve that ROBO Master uses.
Alvin Penner http://www.nabble.com/file/p17843712/demo.GSD demo.GSD
Alvin Penner wrote:
Attached is a summary of what I have seen so far (from a purely software point of view) with respect to the use of Inkscape .dxf files in desktop cutting :
Excellent summary! Everyone please read this twice. :-)
- the 'Desktop Cutting' export option supports two basic types of object :
lines and cubic Bezier splines.
- it may sometimes be necessary to use the menu option 'Path | Object to
Path', to convert rectangles, or ellipses, or text, before exporting to .dxf.
I think some motivated hacker should investigate adding an option for output extensions so that they can optionally convert objects and text to paths. This will solve all these problems in one place for all sorts of output extensions.
- the exported .dxf file complies with the Autodesk dxf spec to the extent
that it can be viewed using Autodesk software such as Volo View Express 2.01 and DWG TrueView R17 (2008).
- the exported .dxf file can be both edited and viewed using QCad from
RibbonSoft.
Again, if someone is aware of software that will not open our simple DXFs please file a bug report on launchpad with all relevant example files and error messages.
- the desktop cutting software program Winplot V6.8 from Summa has been
tested on .dxf files. It will load .dxf files, but it does not render the spline correctly : a cubic Bezier spline consisting of four points will be rendered as a combination of a circular arc based on the first three points, and a straight-line segment based on the last two points. The developers at Winplot have been made aware of this issue, but it is not likely that it will be addressed, see https://bugs.launchpad.net/inkscape/+bug/192923/comments/36 . Luckily, in this case there is a workaround, namely use 'Postscript via Cairo' export, which can be read properly by Winplot, see https://bugs.launchpad.net/inkscape/+bug/168411/comments/17 .
I do not believe DXF supports any sort of bezier curve, at least not the mathematical model we are familiar with in Inkscape and most other design oriented software. DXF supports NURB splines. Yes, the curves created by our beloved cubic beziers are a subset of the curves that can be represented by NURBs but many many more curves are possible in the NURB world. Most importantly the on disk representation and the model of interaction are different. (Someone with math-fu please correct me if I've misspoke.)
Anyway for software that cannot interpret DXF SPLINE directives properly we should offer an approximate polyline output. There is python code around to do this polyline approximation (flatten.py), but it could be improved.
- the desktop cutting software program ROBO Master-Pro Version 4.3 from
Graphtec has been tested on .dxf files. It can read .dxf files, and as far as I can tell, it is also rendering them correctly on the screen. However, any attempt to edit a spline that originated from a .dxf file will immediately lead to a software crash. Also, even if this file is saved as a native .GSD format file, and then reloaded as a .GSD file, it will still crash when attempting to edit the spline : which suggests that this is not specifically a .dxf issue, but a more general problem. Also, the ROBO Master software supports the creation and editing of a spline starting from scratch, but the mathematical form of the spline they generate does not appear to be compatible with the cubic Bezier spline that Inkscape uses. I am attaching a .GSD file with both types of spline present. The cubic Bezier spline is not editable (you'll be sorry if you try), but the native ROBO spline is editable. However, no matter how hard I try, I cannot make the two curves superimpose on each other, and I believe they are mathematically incompatible. I have emailed ROBO Master concerning this issue, and will await their response.
- I should not speculate, but I suspect that this mathematical
incompatibility may be the source of some of the mechanical stuttering that has been reported. In any event, it would be a relatively simple matter to produce a reasonable approximation of one spline curve to another, based on matching slopes and curvatures at vertices, but before this is done we need a mathematical description of the shape of the curve that ROBO Master uses.
As I said above, DXF and GSD use NURB splines; SVG uses polycurves comprised of line segments, quadratic beziers, cubic beziers and elliptical arcs. Some conversion is necessary. I believe conversion from SVG paths to NURB splines can maintain the curve perfectly but from what I can understand some approximation may be necessary coming back to SVG from NURB.
The method of conversion I'm currently using in the DXF export is this. Everything in svg is a line or a cubic bezier (cubic beziers can represent all quadratic beziers and elliptical arcs are approximated by a few cubic beziers). SVG cubic beziers are converted to a NURB representation by the method described at the bottom of NURB Curves: A Guide for the Uninitiated By Philip J. Schneider: http://devworld.apple.com/dev/techsupport/develop/issue25/schneider.html
I have a hunch about the issue with DXF->RoboMaster->GSD. The splines in our DXF are a subset of NURBs that prefectly represent cubic beziers. In GSD files and DXF files it is possible to represent any and all NURB curves. The RoboMaster drawing code can draw any NURB but the editing code only understands the subset of NURB curves that their editing interface can create.
That is actually one of the places I got stuck with my GSD exploration. I don't understand NURB curves well enough to have a real solid handle on the NURB representation inside of the GSD file. I can see it. And it makes some sense to me, but not enough to so anything about it. I would like to find a person with sufficient understanding of NURB math to:
1) examine the storage of NURBs in GSD files and explain it so that mortals can implement reading and writing it. 2) examine the editing interface in RoboMaster and postulate what special properties are possessed by the subset of NURBs it will create and edit 3) Provide a method of approximating our cubic bezier NURB subsets with RoboMaster NURB subsets. 4) Provide a method for round tripping NURBs to and from SVG
I think 2Geom can probably provide much help in this area but I haven't found any one interested in working with it yet.
The second issue where I got stuck with my exploration of GSD files is that I don't really know how to program an object model for reading and writing GSD files or any other sort of files. I assume there isn't much magic involved and this is just my inexperience and lack of time showing. I'd love to have some pointers and some help.
Aaron Spike
Aaron Spike wrote:
Alvin Penner wrote:
However, no matter how hard I try, I cannot make the two curves superimpose on each other, and I believe they are mathematically incompatible.
I should also point out that I believe a single NURB spline should be able to represent any SVG Path. But we are currently using a single NURB spline to represent each cubic bezier path segment. If you were using a single NURB to represent each bezier segment in RoboMaster I bet it would be much easier to make them match within a reasonable error.
Aaron Spike
thanks for the kind comments, this is getting very interesting... just one more parting shot concerning .GSD files. I hate to be a pessimist, but these are the most unusual "vector-based" files I have ever seen, which worries me a bit concerning how to support them. First of all they are binary, not readable, which is uncommon for a vector representation. Secondly, it is not even entirely clear that they are vector-based. I once did an experiment where I took a single spline with four points, modified just one end point just for fun, and then compared the two .GSD files. The two files were different in many different physical locations in the file, not just one point, which kind of suggests some kind of crunched raster image, not very encouraging if trying to reverse-engineer the format.
On Sat, 2008-06-14 at 15:22 -0700, Alvin Penner wrote:
thanks for the kind comments, this is getting very interesting... just one more parting shot concerning .GSD files. I hate to be a pessimist, but these are the most unusual "vector-based" files I have ever seen, which worries me a bit concerning how to support them. First of all they are binary, not readable, which is uncommon for a vector representation. Secondly, it is not even entirely clear that they are vector-based. I once did an experiment where I took a single spline with four points, modified just one end point just for fun, and then compared the two .GSD files. The two files were different in many different physical locations in the file, not just one point, which kind of suggests some kind of crunched raster image, not very encouraging if trying to reverse-engineer the format.
I wouldn't say that myself. In fact, most vector formats I've used have been binary.
Just exactly *how* the files are changing is probably important. Especially since GSD files are used for cutters, chances are very very high that they are some "cut along this curve" approach, rather than a "punch out all black dots" raster format.
Jon A. Cruz wrote:
high that they are some "cut along this curve" approach, rather than a "punch out all black dots" raster format.
yes, that sounds reasonable, so you mean like a multi-segmented polyline. that probably would not be that hard to confirm, if one didn't mind getting one's hands dirty with some brute force dumping of raw data.
Alvin Penner wrote:
Jon A. Cruz wrote:
high that they are some "cut along this curve" approach, rather than a "punch out all black dots" raster format.
yes, that sounds reasonable, so you mean like a multi-segmented polyline. that probably would not be that hard to confirm, if one didn't mind getting one's hands dirty with some brute force dumping of raw data.
That's what my project Cuft was about. It dumps the binary data from GSD files into human readable XML or TXT.
http://code.google.com/p/cuft/
If you dump a gsd file to a txt document you will see the various comments I have smattered around for what I think the structures in the file represent.
There are a few reasons that the file changes in more than one place. NURBs are more complex moving an endpoint probably doesn't just move two control points like it does with beziers. And each drawing object in GSD stores a number of data items including the curve data and the bounding box. Changing the curve usually changes the bounding box too.
Please check out Cuft. :-)
Aaron Spike
Aaron Spike-2 wrote:
Please check out Cuft. :-)
Hello Aaron, just for fun, tried to run the file gsd2txt.py. Downloaded various files from cuft and used my own little demo file http://www.nabble.com/file/p17849064/line.GSD line.GSD . I get the message : C:\Python25\MyDXF\CuFT>gsd2txt.py line.gsd Traceback (most recent call last): File "C:\Python25\MyDXF\CuFT\gsd2txt.py", line 34, in <module> g.fromGSD(file) File "C:\Python25\MyDXF\CuFT\cuft\gsd.py", line 605, in fromGSD index, group, type, count, data = lexer.next() File "C:\Python25\MyDXF\CuFT\cuft\gsd.py", line 418, in lexer if TYPEKEY[type]: IndexError: list index out of range
Am I perhaps missing a dependency of some sort?
Alvin Penner wrote:
Aaron Spike-2 wrote:
Please check out Cuft. :-)
Hello Aaron, just for fun, tried to run the file gsd2txt.py. Downloaded various files from cuft and used my own little demo file http://www.nabble.com/file/p17849064/line.GSD line.GSD . I get the message : C:\Python25\MyDXF\CuFT>gsd2txt.py line.gsd Traceback (most recent call last): File "C:\Python25\MyDXF\CuFT\gsd2txt.py", line 34, in <module> g.fromGSD(file) File "C:\Python25\MyDXF\CuFT\cuft\gsd.py", line 605, in fromGSD index, group, type, count, data = lexer.next() File "C:\Python25\MyDXF\CuFT\cuft\gsd.py", line 418, in lexer if TYPEKEY[type]: IndexError: list index out of range
Am I perhaps missing a dependency of some sort?
Nope. When the error happens with your file type is 15 and I've never seen that value before. So the code doesn't know what to do with it.
I'll see what I can figure out.
Aaron
Aaron Spike wrote:
Alvin Penner wrote:
Aaron Spike-2 wrote:
Please check out Cuft. :-)
Hello Aaron, just for fun, tried to run the file gsd2txt.py. Downloaded various files from cuft and used my own little demo file http://www.nabble.com/file/p17849064/line.GSD line.GSD . I get the message : C:\Python25\MyDXF\CuFT>gsd2txt.py line.gsd Traceback (most recent call last): File "C:\Python25\MyDXF\CuFT\gsd2txt.py", line 34, in <module> g.fromGSD(file) File "C:\Python25\MyDXF\CuFT\cuft\gsd.py", line 605, in fromGSD index, group, type, count, data = lexer.next() File "C:\Python25\MyDXF\CuFT\cuft\gsd.py", line 418, in lexer if TYPEKEY[type]: IndexError: list index out of range
Am I perhaps missing a dependency of some sort?
Nope. When the error happens with your file type is 15 and I've never seen that value before. So the code doesn't know what to do with it.
I'll see what I can figure out.
svn up to revision 4. I've improved the handling of unexpected input. It doesn't crash anymore but your file appears to be entirely different than any other GSD file I've ever run through my script. Where did you get it? Perhaps you should try a few GSD files from the web, or I could send you some that I've tested my script with before just so you can see it working.
Aaron Spike
Aaron Spike wrote:
It doesn't crash anymore but your file appears to be entirely different than any other GSD file I've ever run through my script. Where did you get it? Perhaps you should try a few GSD files from the web, or I could send you some that I've tested my script with before just so you can see it working.
Or I could test it on some old files and find that I get the same errors. How embarrassing! Let me try to dig up some old versions of the script and see if they work anymore.
Aaron
Hi, Unfortunately, I did a bit of house-cleaning on my computer yesterday, so I have lost some of the original downloaded files, but here is my 'backtrace': - the .GSD file was generated by me by drawing a straight line in ROBO Master-Pro Version 4.30 - I believe the original download site was : http://222.146.7.157/support/software/robo_master_pro_ce540.html - on this site I clicked on the link name : RMP_ProS-UPDL01E.EXE - this particular download was chosen more or less at random, based on the fact that this was the first link I found that did not require a password to get in.
hth, Alvin
Alvin Penner wrote:
Hi, Unfortunately, I did a bit of house-cleaning on my computer yesterday, so I have lost some of the original downloaded files, but here is my 'backtrace':
- the .GSD file was generated by me by drawing a straight line in ROBO
Master-Pro Version 4.30
- I believe the original download site was :
http://222.146.7.157/support/software/robo_master_pro_ce540.html
- on this site I clicked on the link name : RMP_ProS-UPDL01E.EXE
- this particular download was chosen more or less at random, based on the
fact that this was the first link I found that did not require a password to get in.
Here is one of the GSD examples I used to break down the basic structure of the files: http://www.ekips.org/comp/inkscape/inx/Turkey.GSD
And here is my original script (which still seems to work): http://www.ekips.org/comp/inkscape/inx/chunky.py
That old script seems to make it most of the way through your line.GSD file. I'll have to dig deeper to see what I broke when I converted to using lxml.
Aaron Spike
Aaron Spike-2 wrote:
Here is one of the GSD examples
yes, thanks, the turkey.gsd file was both viewable and editable in my version of ROBO Master with no problem, and the chunky.py file ran perfectly. Wow, haven't seen that much hex code in a long time. I have some limited access to Auto CAD Lite at work, so I am going to investigate what kind of options are available when generating dxf splines, since I 'believe' that there are other varieties than the one we are currently using.
Alvin
Ok cuft is fixed now. Please svn up and test it on all your wildest GSD files. :-)
I should probably explain the text output a bit. For each line after the header and padding there are 6 columns. col 1: intrasection line code (most often it is like a line number) in hex col 2: section code in hex col 3: data type code in hex col 4: count in hex col 5: parsed data output col 6: annotation for what I believe the value signifies
The data type codes are as follows:
1: 1 byte signed int 2: 2 byte signed int 3: 4 byte signed int 4: 8 byte float 5: string
There are two places that don't fit this data type rule line 5 of section 11 and lines 10-15 inclusive of section 14.
Here is a python dictionary holding all of the line by line annotations I have so far. The keys of the outer dict are the sections and the inner dict holds line codes.
GSD_DICT = { '03':{ '01':'Number of Drawing Objects' }, '04':{ '00':'Drawing Object', '01':'Drawing Object Type', '0A':'2D Point', '0B':'Polyline Length', '0C':'Polyline Point', '14':'Sweep (radians)', '15':'Ecentricity?', '16':'(0=Open/1=Closed)', '40':'Bbox (Upper Left)', '41':'Bbox (Upper Right)', '42':'Bbox (Lower Right)', '43':'Bbox (Lower Left)', '44':'Rotation' }, '05':{ '21':'Group' }, '07':{ '02':'Number of Line Styles?' }, '0A':{ '00':'Page Style?' }, '0B':{ '00':'Line Style?' }, '0E':{ '00':'Registration Mark Settings', '01':'Use Marks', '0A':'Size', '0B':'Width', '0C':'Origin X', '0D':'Origin Y', '0E':'Distance (1-2)', '0F':'Distance (2-3)' }, '0F':{ '00':'Grid Settings', '01':'Show', '02':'Type', '03':'Spacing', '04':'Snap' } }
Aaron Spike
Aaron Spike-2 wrote:
Ok cuft is fixed now. Please svn up and test it on all your wildest GSD files. :-)
Thanks, I just ran the new version of gsd2txt.py on the file demo.GSD and it produced lots of interesting output, I'll check it out.
Alvin
Thanks so much for your comments Stuart.
those look like what I want. Then we'll at least have one cutter to test format support with.
Andy
P.S. Hey, there's a good comment here regarding these cutters. They recommend (I assume because vinyl cutting is thin) you go with the next version up of graphtec cutters or a Roland:
http://www.specialty-graphics.com/index.asp?PageAction=VIEWPROD&ProdID=2...
stuart wrote:
Regarding GSD - there are people talking about this. I think the current efforts are outside of inkscape and involve translating to and from GSD. But I don't know if anyone has working code.
There is no one working on GSD at the moment. If anyone wants to start working on it, come talk to me. I have info you want. Some of it can be found at:
http://code.google.com/p/cuft/
Aaron Spike
Patrick wrote:
I have not seen any posts on this topic for a week or so.
I've been on vacation.
I would like to help but I am terribly slow to get things done.
I think that is pretty common. But anything you do does help. So don't worry about it and just do as much as you desire.
I am just wondering if we could hammer out what needs to be done so I can add it to my "to-do list" volume 3
I could buy a cutter in July or August and I should be able to finish reverse engineering the command protocol sometime in the fall.
This is really what needs to happen. Not that you need to buy one, but these cutters need to get into the hands of technical people who are open source minded and want to help. Right now there doesn't seem to be much cross over between the cutter communities and the OSS community.
I know there are different formats used to send information to the cutters, would it be good to work on a more robust DXF export option too? I don't know the first thing out GSD, does does someone want to work on this ?
We've made some simple improvements to DXF recently and more can be made I'm sure. We just need to be more specific with what the problems are so that we can find solutions. Thanks to everyone who has worked on it lately.
I started looking into GSD perhaps a year or more ago. I was able to figure out some things, but my lack of need and infancy as a programmer have hindered me. I'm not a GSD user and I have no need for it but I would be happy to help anybody with interest learn more about the format. I've published my code at:
http://code.google.com/p/cuft/
Aaron Spike
Aaron Spike-2 wrote:
I know there are different formats used to send information to the cutters, would it be good to work on a more robust DXF export option too? I don't know the first thing out GSD, does does someone want to work on this ?
We've made some simple improvements to DXF recently and more can be made I'm sure. We just need to be more specific with what the problems are so that we can find solutions. Thanks to everyone who has worked on it lately.
Just wondering if there is a reason to decode the graphtec format when .ps files can be piped directly to the plotter? So far anything I draw is cut just fine without converting to curves.
The steps to get to cut are more than I like, but it works just fine. Largest so far was 44" tall and over 30 feet long stencil for painting a gym floor.
I really want to help get a "PLOT" button on Inkscape. With the extensions, it seems the ability to cut vinyl could just be an add-on. I'm here and willing to try out things until they work. Just really uneasy about DXF - I've had problems with that format for about 16 years now...
Bruce Westfall wrote:
Aaron Spike-2 wrote:
I know there are different formats used to send information to the cutters, would it be good to work on a more robust DXF export option too? I don't know the first thing out GSD, does does someone want to work on this ?
We've made some simple improvements to DXF recently and more can be made I'm sure. We just need to be more specific with what the problems are so that we can find solutions. Thanks to everyone who has worked on it lately.
Just wondering if there is a reason to decode the graphtec format when .ps files can be piped directly to the plotter? So far anything I draw is cut just fine without converting to curves.
There is a large body of existing work in the GSD and DXF formats. Ability to work with these files gives our users instant access to these assets. Also DXF is used as a interchange format for many applications. Properly supporting DXF (or even improperly supporting as we do now) gives our users the ability to interoperate with much of their other software.
The steps to get to cut are more than I like, but it works just fine. Largest so far was 44" tall and over 30 feet long stencil for painting a gym floor.
I really want to help get a "PLOT" button on Inkscape. With the extensions, it seems the ability to cut vinyl could just be an add-on. I'm here and willing to try out things until they work. Just really uneasy about DXF - I've had problems with that format for about 16 years now...
I don't believe it will remove the utility of supporting non-SVG file formats, but being able to cut directly from Inkscape is a fantastic goal. I invite you to research the issues, make some mockups, and experiment. There are a large number of users who would appreciate your work.
Aaron Spike
participants (7)
-
Aaron Spike
-
Alvin Penner
-
Andy Fitzsimon
-
Bruce Westfall
-
Jon A. Cruz
-
Patrick
-
stuart