Difference between revisions of "User:Xuwei/DevLog2019"

From BRL-CAD
(May 29th)
(May 29th)
Line 60: Line 60:
 
*Continue reading dxfdata.cc
 
*Continue reading dxfdata.cc
 
==May 29th==
 
==May 29th==
*Found one existing integration with dxflib that I can use it as reference.[https://github.com/CauldronDevelopmentLLC/CAMotics/tree/master/src CAMotics]
+
*Found another one existing integration with dxflib that I can use it as reference.[https://github.com/CauldronDevelopmentLLC/CAMotics/tree/master/src CAMotics]
 
*Continue on reading dxflib and import.cc, dxfdata.cc.
 
*Continue on reading dxflib and import.cc, dxfdata.cc.
 
**Keep trying to write some code that may help understanding how to integrate the library.
 
**Keep trying to write some code that may help understanding how to integrate the library.
 
*Fill out the comparison [https://github.com/openscad/openscad/wiki/DXF-Library-overview wiki page]
 
*Fill out the comparison [https://github.com/openscad/openscad/wiki/DXF-Library-overview wiki page]

Revision as of 09:16, 29 May 2019

Coummunity Bonding Period

  • Set up the Development log
  • Set up the development environment such as OS.
  • Start to look at the different potential libraries code base.
  • Discuss with mentors which external library to choose.

May 16th

  • Start to check the checklist.
    • Agreement sent.
    • Dev log created.
    • My Profile created.

May 17th

  • Had four of my wisdom teeth extracted. The progress for the following week may be slow due to teeth extraction.

May 19th

  • Looking at Coin3D/Dime code base, a possible library for DXF import/export.
    • It has no external dependency.
    • It supports all past and should support the future version of DXF format.
    • It compiles on Windows, Linux, MacOS, etc.
    • But it only loads DXF files into Dime object hierarchies and saves Dime object hierarchies as files conforming to DXF format.
    • Seems only support 3D.

May 20th

  • Looking at BRL-CAD DXF import/export code. Trying to understand how it works and see if it is suitable for OpenSCAD.
    • It converts DXF format to .g and .g to DXF which is a BRL-CAD format.
    • It seems that BRL-CAD does not support the entire format, only the part that is relative to solid-model.

May 21st

  • Looking at dxflib which is used by QCAD and works fine, but it only supports 2D which is not ideal since OpenSCAD is already supporting 2D.
    • Maybe we can add the 3D part. But not sure how hard it is to add that.

May 22nd

  • Searching for a library that supports both 3D and 2D DXF import/export.
    • Libraries above are for either 2D or 3D.
    • Found some libraries support both but they are written in python instead of C++.

May 23rd

  • Continue on searching for the potential library.

May 24th

  • Looking at and Compile libdxfrw code base which is used by LibreCAD.
  • Will be out of town for the next two days.

Coding Period

May 27th

  • Looking at both libdxfrw(libdxfrw.h, dxfreader.cpp) and OpenSCAD(dxfdata.cc, dxfdim.cc, import.cc) relative code.
    • Comparing the differences between these two on how they handle DXF data.
    • Trying to form a connection between these two.
    • dxfdata.cc seems a bit complicated. Need some time to digest.
    • The way that libdxfrw reads DXF file is kind of mixing with DRW code.
    • libdxfrw encounters problems when dealing with elevated arcs(no response yet).[1]
  • Looking at dxflib code base as well.
    • dxflib does not store any entities, only pass supported entities.
    • A useful link for understanding dxflib data structure.[2]

May 28th

  • Move on to reading dxflib code for now
    • Continue reading the link about the data structure of dxflib above.
    • Trying to understand form the connection between dxflib and OpenSCAD code base.
  • Continue reading dxfdata.cc

May 29th

  • Found another one existing integration with dxflib that I can use it as reference.CAMotics
  • Continue on reading dxflib and import.cc, dxfdata.cc.
    • Keep trying to write some code that may help understanding how to integrate the library.
  • Fill out the comparison wiki page