arpruss / gcodeplot

Use a 3-axis machine as a pen plotter
Other
167 stars 60 forks source link

[Bug] KeyError: 'd' #26

Open chepo92 opened 3 years ago

chepo92 commented 3 years ago
 File "svg2cookiecutter.py", line 232, in svgToCookieCutter
    for superpath in parser.getPathsFromSVGFile(filename)[0]:
  File "C:\Users\Axel\AppData\Roaming\inkscape\extensions\svgpath\parser.py", line 699, in getPathsFromSVGFile
    return getPathsFromSVG(ET.parse(filename).getroot())
  File "C:\Users\Axel\AppData\Roaming\inkscape\extensions\svgpath\parser.py", line 693, in getPathsFromSVG
    getPaths(paths, matrix, svg, path.SVGState(), {})
  File "C:\Users\Axel\AppData\Roaming\inkscape\extensions\svgpath\parser.py", line 587, in getPaths
    getPaths(paths, matrix, child, state, savedElements)
  File "C:\Users\Axel\AppData\Roaming\inkscape\extensions\svgpath\parser.py", line 587, in getPaths
    getPaths(paths, matrix, child, state, savedElements)
  File "C:\Users\Axel\AppData\Roaming\inkscape\extensions\svgpath\parser.py", line 549, in getPaths
    path = parse_path(tree.attrib['d'], matrix=matrix, svgState=state)
KeyError: 'd'

I Attach file to reproduce error camion.zip

arpruss commented 3 years ago

I think the cause of the error is: <path style="fill:#000000;stroke:none;stroke-width:0.264583" id="path57" cx="51.671551" cy="96.268814" r="1.4382441" /> in your svg.

This doesn't look like a valid path. I think it's meant to be a circle instead.

chepo92 commented 3 years ago

Thanks I'll review the file, at first I couldn't find which path was having trouble, i erased one by one and randomly appearing the error. I added a try/except block to parser.py and it passed with no errors, may PR later, but first I'll identify the path

arpruss commented 3 years ago

It's the one without d=.