View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002205||FreeCAD||Feature||public||2015-08-03 14:25||2016-01-19 02:06|
|Platform||PC||OS||Debian||OS Version||Testing 64bit|
|Target Version||Fixed in Version||0.16|
|Summary||0002205: Draft - Recode a DXF importer in C++|
|Description||The current importer is way too slow for big files.|
Maybe borrow dxf import code from heekscad:
see HDxf.cpp (reimplements/extends dxf.cpp)
|Tags||No tags attached.|
The main problem I had with big files and DXF export has been that FreeCAD consumes insane amounts of memory, which probably is more related to the algorithm then to the programming language. I was wondering if ezdxf by Manfred Moitzi http://bitbucket.org/mozman/ezdxf might be a suitable base for future DXF support. Did anybody look into this?
I notice that you wrote only about import, while I wrote about export, but I guess support for both should come from the some codebase if possible.
The problem of the amount of memory is indeed not related to the programming language, but the speed is. Python is notoriously slow at treating huge lists of objects, which is exactly the case of a dxf file...
In any case recoding this from scratch with a simpler and faster code is the way to go,and doing it in C++ even better.
The ezdxf module you mention is pretty similar to the one we currently use, that comes from blender... There shouldn't be much difference in efficiency.
Export is actually less of a problem, because 1) You usually work with far less objects in FreeCAD and 2) We already have pretty fast dxf export code in the Drawing WB, it could just be extended...
||Almost done, still missing: dimensions support|
|2015-08-03 14:25||yorik||New Issue|
|2015-08-03 14:25||yorik||Status||new => assigned|
|2015-08-03 14:25||yorik||Assigned To||=> yorik|
|2015-08-04 13:40||lambda||Note Added: 0006266|
|2015-08-04 13:54||yorik||Note Added: 0006267|
|2015-08-10 22:56||yorik||Changeset attached||=> FreeCAD Master master d5f80ff6|
|2015-08-12 13:26||yorik||Changeset attached||=> FreeCAD Master master 51cff8f0|
|2015-08-13 18:56||yorik||Changeset attached||=> FreeCAD Master master 9d10f3e0|
|2016-01-03 19:14||yorik||Note Added: 0006664|
|2016-01-04 20:01||yorik||Changeset attached||=> FreeCAD Master master 273131c0|
|2016-01-04 20:01||yorik||Status||assigned => closed|
|2016-01-04 20:01||yorik||Resolution||open => fixed|
|2016-01-19 02:06||yorik||Fixed in Version||=> 0.16|