File Icon
 
 

978

 

34060

 

14

GcodePlot

Extension to export paths to 3-axis gcode for a 3D printer or CNC router with a plotter/cutter attachment. For instructions, see the external link.

Inkscape Extensions

Size
211.4 KB
Created
Revisions
12
Type
application/zip
General Public License v2 (GPLv2)

Link

murat wrote :

How to download the GcodePlot plugin we will download. I could not see any connection way.

Alexander Pruss wrote :

I hate the trend for websites and apps using confusing symbols rather than text. The download link is the down-arrow under the photo.

Maren Hachmann wrote :

@Alexander: if you would like to see a change, come over here: https://gitlab.com/inkscape/inkscape-web ;-)

Palingenesis wrote :

Hi Alexander.
A very nice Extension, I was looking for something like this for a while, with others I seem to have issues.

I don't have a DaVinci so the file created as you have it don't work for me though.

This was not a problem for me as I just edited your code slightly for my use.
And it works lovely for me.

I have a suggestion so others will be able to use it and make it more universal.

it looks to me like the gcode DaVinci uses is not standard gcode.
What I changed is the way the command lines ended and comments are separated.

It would be nice if you had an option for the two different outputs, it would not be hard to do, I think I only changed 6 lines in the script.

Your typical output line looks like this:
G1 F1200.000 X100.000 Y100.000; draw !!Xleft+100.000 Ybottom+100.000

My output gives this:
G01 F1200.000 X100.000 Y100.000 (comments inside brackets)

I have a zero in front of the 1.
I don't end command with a ';'.
All comments are enclosed in brackets.

Also:
I just need this in the header:
G21 (Set to mm)
G90 (Set to Absolute positioning)
G00 Z5.0 (Set to Up Position)
M05 P500.0 (Up / off.)
G00 F1200.0 X0.0 Y0.0 (or what ever feed rate is set)

I also changed the pen position command.
I found using the Z positon works well for those machines that have a Z axis, positive number for pen up and a negative number for pen down.
I have no Z axis on my pen plotter so I use the M03 and M05 command for pen up and down.

So where Pen state changes, I now output.
M03 (pen down)
M05 (pen up)

Also, it would be nice if you had an option to put in a footer.

I do hope you don't mind what I have done to get you script to work for me?
It's a very nice piece of work thank you.
I hope my suggestions are useful and you understand what I have done.

I do hope you make the changes so more people can use it.(not just those with a DaVinci)

I have a 3d printer. I used it to make a complete pen plotter rather than mod my 3d machine. :)

https://www.youtube.com/watch?v=B2m1Wbl22Ww
https://goo.gl/photos/288vgRQNWNX7D6br6
https://www.youtube.com/watch?v=93KrV255FzI

Alexander Pruss wrote :

It's not so much DaVinci as Repetier firmware. Anyway, I can add options to change some of this stuff. Email me at arpruss@gmail.com for testing changes.

Palingenesis wrote :

Will do Alexander

Vitalie Cartera wrote :

Alexander Pruss, did you ever released the version for servo pen plotter you've modified for Palingenesis? (servo M3/M5 instead of z axis)

Alexander Pruss wrote :

No. I've made some changes, but not all of them.

kjsinclair wrote :

This is a great extension. After much searching, this was the solution needed to create high accuracy vinyl cuts with my modified FFCP (https://www.thingiverse.com/thing:1410425). Other software/extension (including the one suggested for the "thing") weren't able to take into account the geometry of a blade offsets. This extension fixed that.

The only issue I encountered was that with "inside-out sorting" enabled during cutting, cuts at the start of new paths are off. I ended up switching the order of tool offset processing (processPath) and path sorting (safeSorted) in order to have the extension do both (without any repercussions that I can see). Or if, you don't want to play with the python, I think you can just turn off the sorting (check box under cutting settings). So Alexander would suggest taking a look at switching those capabilities.

I also ended up adding my own custom start/stop gcode to the .py, but it worked great for me otherwise. Nice work!

pyrosthenes wrote :

Banging my head on the desk.

What needs to be done to make the SVG file usable for creating a g-code program?

Alexander Pruss wrote :

Well, it needs to have lines in it, rather than just filled regions.

Peter Bismuti wrote :

I'm a huge fan of Linux, primarily KDE, and I support all of the projects that the men and women behind the scenes.
I hated reading that INKSCAPE is not as sophisticated and advanced as Adobe Illustrator. I hope that this will not be true for much longer. I haven't the need for INKSCAPE yet, but I am looking forward to learning it. I am also curious as to what roll OpenGL plays if any. Any art could potentially benefit from CG in theory.

salvatore.siciliano90 wrote :

Good evening. I downloaded the extension and it works correctly. I have a problem during printing: the drawings are created at random. I would rather follow the order from left to right. Is it possible to do this?

Alexander Pruss wrote :

It's not at random: it's optimized to reduce movement time. If you use the script manually as a python script, you can turn off the optimized with the -o0 flag.

Aryn42 wrote :

HI, I am new to this and when I try saving the file in the gcode format an error message appears saying "No module named evaluate". please help

Ng1963 wrote :

How can I download the software to my home made eggbot please let me know.

divreig wrote :

This add-on plug-in is awesome! Thank you. I don't code so this may be a stupid question. But why have the pen lift upfor all the shading movements? Wouldn't it be faster to just have the pen down on the paper, like the first layer on a 3D print or a hand drawing

Alexander Pruss wrote :

There is a difference between a shaded region and a region that is both shaded and has an outline. If it's just a shaded region, this doesn't draw the outline. If the pen stayed down, it would draw small bits of the outline while shading, which would make the shading look weird around the edges. If the outline is drawn, the pen does stay down while shading.

divreig wrote :

Got it thank you. It looks like For whatever reason inkscape is only creating shaded regions without outline.

Also want to increase the timeout. I found something in the script that says timeout= optimization/2. If I just put in a number?And if so I. Seconds?

marlon glodo wrote :

hi Mr. Alexander, iam having trouble saving gcode please help sir, thank you
Traceback (most recent call last):
File "gcodeplot.py", line 1090, in <module>
penData = parseSVG(svgTree, tolerance=tolerance, shader=shader, strokeAll=strokeAll, pens=pens, extractColor=extractColor)
File "gcodeplot.py", line 581, in parseSVG
for path in parser.getPathsFromSVG(svgTree)[0]:
File "C:\Program Files\Inkscape\share\extensions\svgpath\parser.py", line 693, in getPathsFromSVG
getPaths(paths, matrix, svg, path.SVGState(), {})
File "C:\Program Files\Inkscape\share\extensions\svgpath\parser.py", line 587, in getPaths
getPaths(paths, matrix, child, state, savedElements)
File "C:\Program Files\Inkscape\share\extensions\svgpath\parser.py", line 587, in getPaths
getPaths(paths, matrix, child, state, savedElements)
File "C:\Program Files\Inkscape\share\extensions\svgpath\parser.py", line 587, in getPaths
getPaths(paths, matrix, child, state, savedElements)
File "C:\Program Files\Inkscape\share\extensions\svgpath\parser.py", line 587, in getPaths
getPaths(paths, matrix, child, state, savedElements)
File "C:\Program Files\Inkscape\share\extensions\svgpath\parser.py", line 549, in getPaths
path = parse_path(tree.attrib['d'], matrix=matrix, svgState=state)
File "C:\Program Files\Inkscape\share\extensions\svgpath\parser.py", line 252, in parse_path
segments.append(path.Line(scaler(current_pos), scaler(start_pos)))
File "C:\Program Files\Inkscape\share\extensions\svgpath\parser.py", line 197, in <lambda>
scaler=lambda z : applyMatrix(matrix, z)
File "C:\Program Files\Inkscape\share\extensions\svgpath\parser.py", line 173, in applyMatrix
return complex(z.real * matrix[0] + z.imag * matrix[1] + matrix[2],
AttributeError: 'NoneType' object has no attribute 'real'

Bill Lawrence wrote :

great extension for ink tracing plots it is not gcode for machining though could be edited thanks for contributing

brynn wrote :

Hello,
Thank you for providing this extension for Inkscape users!

This is just to let you know that most 3rd party Inkscape extensions, like this one, probably will not work with the upcoming new Inkscape version, the long-awaited version 1.0.

Here is the info you need to update this extension, so that it will work with 1.0 and future versions.
https://wiki.inkscape.org/wiki/index.php?title=Updating_your_Extension_for_1.0

If you have further questions, you can contact Inkscape developers via mailing lists (https://lists.inkscape.org/postorius/lists/?all-lists), forum (https://inkscape.org/forums/extensions/), or the chatroom (https://chat.inkscape.org/channel/team_devel)

If you have already updated it, please disregard this message.

All best,
brynn

Марат Минибаев wrote :

HELP!!!

gcodeplot.py:456: SyntaxWarning: "is not" with a literal. Did you mean "!="?

Please log in to leave a comment!