sci-bots / microdrop

Microdrop is a graphical user interface for an automated Digital Microfluidics control system.
BSD 3-Clause "New" or "Revised" License
24 stars 12 forks source link

Problem importing svg file (Trac #78) #82

Closed cfobel closed 7 years ago

cfobel commented 7 years ago

I get the following error when importing a device from an svg. It would be helpful if the parser would tell me which line of the svg is causing the problem. I'm not sure why the "l" (lowercase L) command is being used since inkscape has been set to use absolute commands.

(<class 'svg_model.svgload.path_parser.ParseError'>, ParseError(u'unsupported svg path command: l',), <traceback object at 0x02F9CC10>) {} File "C:\Documents and Settings\User\My Documents\dev\microdrop\microdrop\gui\ dmf_device_controller.py", line 290, in on_import_dmf_device app.dmf_device = DmfDevice.loadsvg(filename) File "C:\Documents and Settings\User\My Documents\dev\microdrop\microdrop\dmf device.py", line 78, in load_svg path_group = PathGroup.load_svg(svgpath) File "C:\Documents and Settings\User\My Documents\dev\microdrop\microdrop\svg model\path_group.py", line 29, in load_svg svg = parser.parse(svgpath) File "C:\Documents and Settings\User\My Documents\dev\microdrop\microdrop\svg model\svgload\svg_parser.py", line 86, in parse id, path = parser.parse(pathtag) File "C:\Documents and Settings\User\My Documents\dev\microdrop\microdrop\svg model\svgload\path_parser.py", line 222, in parse loops = tracer.to_loops(pathtuple) File "C:\Documents and Settings\User\My Documents\dev\microdrop\microdrop\svg model\svgload\path_parser.py", line 160, in toloops self.onBadCommand(action) File "C:\Documents and Settings\User\My Documents\dev\microdrop\microdrop\svg model\svgload\path_parser.py", line 125, in onBadCommand raise ParseError(msg)

Migrated from http://microfluidics.utoronto.ca/microdrop/ticket/78

{
    "status": "closed", 
    "changetime": "2014-04-17T19:39:43", 
    "description": "I get the following error when importing a device from an svg. It would be helpful if the parser would tell me which line of the svg is causing the problem. I'm not sure why the \"l\" (lowercase L) command is being used since inkscape has been set to use absolute commands.\n\n(<class 'svg_model.svgload.path_parser.ParseError'>, ParseError(u'unsupported svg path command: l',), <traceback object at 0x02F9CC10>) {}\n File \"C:\\Documents and Settings\\User\\My Documents\\dev\\microdrop\\microdrop\\gui\\\ndmf_device_controller.py\", line 290, in on_import_dmf_device\n   app.dmf_device = DmfDevice.load_svg(filename)\n File \"C:\\Documents and Settings\\User\\My Documents\\dev\\microdrop\\microdrop\\dmf_\ndevice.py\", line 78, in load_svg\n   path_group = PathGroup.load_svg(svg_path)\n File \"C:\\Documents and Settings\\User\\My Documents\\dev\\microdrop\\microdrop\\svg_\nmodel\\path_group.py\", line 29, in load_svg\n   svg = parser.parse(svg_path)\n File \"C:\\Documents and Settings\\User\\My Documents\\dev\\microdrop\\microdrop\\svg_\nmodel\\svgload\\svg_parser.py\", line 86, in parse\n   id, path = parser.parse(path_tag)\n File \"C:\\Documents and Settings\\User\\My Documents\\dev\\microdrop\\microdrop\\svg_\nmodel\\svgload\\path_parser.py\", line 222, in parse\n   loops = tracer.to_loops(path_tuple)\n File \"C:\\Documents and Settings\\User\\My Documents\\dev\\microdrop\\microdrop\\svg_\nmodel\\svgload\\path_parser.py\", line 160, in to_loops\n   self.onBadCommand(action)\n File \"C:\\Documents and Settings\\User\\My Documents\\dev\\microdrop\\microdrop\\svg_\nmodel\\svgload\\path_parser.py\", line 125, in onBadCommand\n   raise ParseError(msg)", 
    "reporter": "ryan", 
    "cc": "", 
    "resolution": "fixed", 
    "_ts": "1397763583719301", 
    "component": "microdrop", 
    "summary": "Problem importing svg file", 
    "priority": "minor", 
    "keywords": "", 
    "version": "0.1", 
    "time": "2012-03-16T23:46:09", 
    "milestone": "Microdrop 1.0", 
    "owner": "cfobel", 
    "type": "defect"
}
cfobel commented 7 years ago

Trac update at 20120316T23:46:34:

DXF file

cfobel commented 7 years ago

Trac update at 20120316T23:46:54:

Inkscape generated SVG file

cfobel commented 7 years ago

Trac update at 20120323T16:06:07: christian@fobel.net commented:

commit 753dd95e84e0a25f7faec2e7771c7077d399815e Author: Christian Fobel christian@fobel.net Date: Thu Mar 22 16:00:52 2012 -0400

Parse path as loop where first/last points equal

This fixes importing for "tests/svg files/test device 0.svg".
The fix needs to be verified (with test cases) before closing ticket #82.
See #82.
cfobel commented 7 years ago

Trac update at 20120323T17:22:45: ryan commented:

As of commit 753dd95e84e0a25f7faec2e7771c7077d399815e, the dmf_device_controller throws an exception if the electrode color is None. The SVG importer should assign a default color.

cfobel commented 7 years ago

Trac update at 20120323T23:07:39:

commit 3ac4c3c187ca56d2a3de30d8efa697ae0d81f2ed Author: Christian Fobel christian@fobel.net Date: Fri Mar 23 18:16:09 2012 -0400

[SUBMODULE] Fix device import for test SVG files

[SUBMODULE] Fix device import for test SVG files (Fixes #82).
Rename test SVG files, replacing spaces with underscores.
Assign the colour blue to any imported SVG paths that do not have a colour
assigned.
  • christian@fobel.net changed resolution from "" to "fixed"
  • christian@fobel.net changed status from "new" to "closed"
cfobel commented 7 years ago

Trac update at 20140417T19:39:43: ryan changed component from "core" to "microdrop"