Eric, Thanks for the help.
Jon, When could this be put in the CVS tree? After some more testing sure, but how would it best fit it? It should go under extensions, but should it be compiled with all the rest of Inkscape or only if someone wants the functionality?
Please package all of your files under one directory (the ./README in your zip unpacks above the rest of your tree.)
Done
What files are you using for testing? Could you please post them?
They are commercial but here some URL's that I have tested. Screen shots are on my webpage. http://ucsu.colorado.edu/~squiresm/
http://newfocus.com/product/techinfo_mod.cfm?productlineid=4&modelgroupi... http://newfocus.com/product/techinfo_mod.cfm?productlineid=4&modelgroupi...
get segfaults and hangs with several of mine.
I reproduced that and I think fixed it.
Seems lwpolylines in particular are a problem.
Yes they were badly broken, but I think they are better now.
You also have a memory-limit issue. It looks like you're slurping the entire dxf into memory and building all of your data-structures before starting to work, which causes it to run up to 1.2GB and abort on some of my larger files. To get around this, you have to use a smaller-footprint strategy such as the one (involving seek()) in my CAD::DXF module.
The huge file still kills my program, but it also kills Crimson Editor and CadStd Lite when I tried loading it. Not that they are garanteed software, but a little more used than dxf2svg. Do you have a big, but not huge (maybe < 30 MB) file?
There are also some issues with 3D entities. I haven't found any references to "normal" or codes 210,220,230 in your code. You should probably ignore entities with non-Z normal vectors (the spec calls them "extrusion direction") in converting to 2D.
Correct, I have completely ignored the z dimension, extrusions, and all the like because Inkscape is very 2D. I have thought that at a later date it would be cool to extract the third dimention somehow into the layers. Not this week!
Matt