November 30, 2012 at 6:22 am #21023
It would have been kind of you to contact us for assistance before getting to the point–years later –that you’re calling it a “beast.” Ouch.
To begin with, try downloading the current version of Inkscape (0.48.2), and release 2.2.1 of the Eggbot extensions (zip file): http://code.google.com/p/eggbotcode/downloads/detail?name=Eggbot2.2.1.zip
Make sure that you only have one copy of these extensions on your computer, restart inkscape, and try our “hello world” example file.
While we used Ubuntu to develop the Eggbot extensions for Inkscape (and then ported to Windows and Mac), I do not have direct experience with Gentoo. However, we have not heard any other reports of trouble with Gentoo, nor of the “logic_error” that you’re describing in this or other contexts.
I’m not sure what the root cause could be. That error is not thrown by our extension, or by Inkscape when it runs other extensions. So we know that Inkscape is mostly working, and that the python subsystem that it uses is mostly working. We also know that the error is not being generated within our extension, but somehow by something that our extension is doing that the others are not– which could be the use of pyserial, or scanning for serial ports, or perhaps something about the parameters that the extension takes.
If your eggbot enumerates to /dev/ttyACM0 under Gentoo, that’s the same base string as under Ubuntu, and so it should– in principle –be able to find it there. However, I wonder if the “sys.platform” variable returned is different under Gentoo, and this is somehow causing a problem.
Could you check what the sys.platform variable actually is on your OS? To do so, run python from the command line, type “import sys” and then “sys.platform” .
The OS is detected in the eggbot_scan.py file, one of the the Eggbot extensions. It normally checks for a platform of ‘linux2’ and if your sys.platform is (for example) linux3, you may be able to fix it by changing the line that reads
elif platform == 'linux2':
to instead read:
elif platform == 'linux2' or platform == 'linux3':
Otherwise, I may need to set up a computer here to figure out what the issue is.