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 |
Reporter | yorik | Assigned To | yorik | ||
Priority | normal | Severity | minor | Reproducibility | N/A |
Status | closed | Resolution | fixed | ||
Platform | PC | OS | Debian | OS Version | Testing 64bit |
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: https://github.com/Heeks/heekscad/tree/master/src see HDxf.cpp (reimplements/extends dxf.cpp) | ||||
Tags | No tags attached. | ||||
FreeCAD Information | |||||
|
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 |
FreeCAD: master d5f80ff6 2015-08-11 00:55:59 Details Diff |
Draft: Starting a C++ DXF importer - issue 0002205 |
Affected Issues 0002205 |
|
add - src/Mod/Draft/App/AppDraftUtils.cpp | Diff File | ||
add - src/Mod/Draft/App/AppDraftUtilsPy.cpp | Diff File | ||
add - src/Mod/Draft/App/CMakeLists.txt | Diff File | ||
add - src/Mod/Draft/App/DraftDxf.cpp | Diff File | ||
add - src/Mod/Draft/App/DraftDxf.h | Diff File | ||
add - src/Mod/Draft/App/PreCompiled.cpp | Diff File | ||
add - src/Mod/Draft/App/PreCompiled.h | Diff File | ||
add - src/Mod/Draft/App/dxf.cpp | Diff File | ||
add - src/Mod/Draft/App/dxf.h | Diff File | ||
mod - src/Mod/Draft/CMakeLists.txt | Diff File | ||
FreeCAD: master 51cff8f0 2015-08-12 15:23:55 Details Diff |
Draft: Added blocks support to the new dxf importer 0002205 |
Affected Issues 0002205 |
|
mod - src/Mod/Draft/App/DraftDxf.cpp | Diff File | ||
mod - src/Mod/Draft/App/DraftDxf.h | Diff File | ||
mod - src/Mod/Draft/App/dxf.cpp | Diff File | ||
mod - src/Mod/Draft/App/dxf.h | Diff File | ||
FreeCAD: master 9d10f3e0 2015-08-13 15:06:43 Details Diff |
Draft: Added text support to new DXF importer - issue 0002205 |
Affected Issues 0002205 |
|
mod - src/Mod/Draft/App/DraftDxf.cpp | Diff File | ||
mod - src/Mod/Draft/App/DraftDxf.h | Diff File | ||
FreeCAD: master 273131c0 2016-01-04 21:01:34 Details Diff |
Draft: finished new DXF importer - fixes 0002205 |
Affected Issues 0002205 |
|
mod - src/Mod/Draft/App/DraftDxf.cpp | Diff File | ||
mod - src/Mod/Draft/App/DraftDxf.h | Diff File | ||
mod - src/Mod/Draft/App/dxf.cpp | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
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 |