Just as an update, I'll be staying at same place as @sliptonic at the following hostel from Thursday 30/1 to Sunday 2/2.
https://www.meininger-hotels.com/en/hot ... ty-center/
His work-flow depends on the following tool-chain that is theoretically available in FreeCAD but is not good enough at the moment to use: (1) DXF loading, (2) Area grouping (cuts and pen marks), (3) Nesting, (4) G-code/plotter code output.
I'd like to make contributions into each of these components, starting with the DXF loading.
Last time I looked at this I found a "legacy" Python DXF importer and an unfinished C++ DXF importer that was being developed under the assumption that the Python code was too slow. For example, when I tried out a 700kB DXF file from the sailmaker the Python code took 4 minutes to load, but the C++ version took only 8 seconds (but it ignored splines so was incomplete).
Then I made my own Python macro based it on the external library ezdxf, and it took about 16 seconds to load, including getting the colours and layers right:
https://github.com/goatchurchprime/tran ... rs.FCMacro
This seems conclusive. However, I remembered Yorik's challenge about the C++ importer being able to painlessly swallow 50Mb DXF files: https://forum.freecadweb.org/viewtopic. ... 93#p271139
The only 50Mb DXF file I could find is one here made of triangular facets:
Because it's 3D and I don't know which mesh surface to use, I've loaded this example outside of FreeCAD on this notebook:
https://github.com/goatchurchprime/tran ... 50Mb.ipynb
Complete parsing the 50Mb file with ezdxf takes 35 seconds, and converting the points into a mesh takes 12 seconds. All pure un-optimized Python. The right algorithm eats raw code speed for breakfast.
If this goes well, the next chapter is to look again at the area-grouping in Sketcher, and whether we can pick out the regions that are extruded like you can in other CAD packages.