Difference between revisions of "User:Xuwei/DevLog2019"
|Line 191:||Line 191:|
* Added ellipse.
* Added ellipse.
* Found problem with mesh.
* Found problem with mesh.
Revision as of 13:57, 9 July 2019
- 1 Coummunity Bonding Period
- 2 Coding Period
- 2.1 May
- 2.2 June
- 2.2.1 June 3rd
- 2.2.2 June 4th
- 2.2.3 June 5th
- 2.2.4 June 6th
- 2.2.5 June 7th
- 2.2.6 June 8th
- 2.2.7 June 10th
- 2.2.8 June 11th
- 2.2.9 June 12th
- 2.2.10 June 13th
- 2.2.11 June 14th
- 2.2.12 June 15th
- 2.2.13 June 17th
- 2.2.14 June 18th
- 2.2.15 June 19th
- 2.2.16 June 20th
- 2.2.17 June 21st
- 2.2.18 June 24th
- 2.2.19 June 25th
- 2.2.20 June 26th
- 2.2.21 June 27th
- 2.2.22 June 28th
- 2.3 July
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.
- Start to check the checklist.
- Agreement sent.
- Dev log created.
- My Profile created.
- Had four of my wisdom teeth extracted. The progress for the following week may be slow due to teeth extraction.
- 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.
- 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.
- 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.
- 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++.
- Continue on searching for the potential library.
- Looking at and Compile libdxfrw code base which is used by LibreCAD.
- Will be out of town for the next two days.
- 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).
- 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.
- 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
- 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
- Had to go the dentist this morning, will catch up the afternoon and at night.
- Keep browsing for more information for those four libraries.
- Reading DXF standard to learn how DXF format works
- Searching more information for potential libraries.
- Add more information that found to the comparison page.
- Learning how to integrate the library from the instruction written by QCAD.
- We stick with using BRL-CAD's code for now.
- Try to implement the circle entity.
- Push few commits on import_dxf branch.
- Basically create a new import_dxf() function that replace the old dxfdata.cc
- Implement a simple geometry to test out the function
- Modify the code committed yesterday to output a simple circle.
- Trying to understand layer, block.
- Created a new branch prototype on brlcadDXF repo.
- Trying to clean up the code so that it could compile independently.
- Switch some functions and datatype and continue on cleaning up the code.
- Spend most of my day studying the exam tonight. Will make up the time tomorrow.
- Walked through the whole file line by line and cleaned up as much as I can so far. There are still many details that I need to learn to clean up the rest.
- Made changes to dxf-g.c according to the answer from brlcad.
- fix bu_list with std::list and related functions, etc.
- Add functions for circle eclipse from vmath.h, color.h.
- Added more functions from dependencies.
- uploaded a file that records to-do list, question, notes, etc.
- few fixes on dxf-g.cc.
- Study for the midterm tonight for the most of the day will make up the hours tomorrow.
- Finished converting all bu_list data structure to std::list except in one function drawmtext().
- drawmtext() may be removed later.
- Finished fixing all bu_vert_tree structure.
- Started on fixing vls a bit.
- Finished fixing all vls except those in the main().
- Finished most of the parts of dxf-g.c.
- Create a new branch test for testing and commented out some less necessary functions to test.
- Upload test files from openSCAD testdata/dxf
- Need to fix the segmentation fault.
- Fixed numbers of segmentation faults mainly caused by malloc.
- Fix strncmp function error
- Tested with circle, ellipse, failed at block section.
- Tried to reconstruct block_list, block_head data structure.
- Fix block_list data structure
- Now dxf-g.cc can go through the whole dxf file and spit out data to file output
- Done basic testing with circle, ellipse, polygons, lwpolyline. files from openscad testdata/dxf.
- Found the correct geometry.
- coordinates of the vertices are correct.
- Randomly picking files from openscad/testdata/dxf to check geometry and coordinates.
- Trying to figure out if the data structure is actually storing the correct data.
- Trying to extract data from the data structure to test if it's reading correct data.
- For circle, extract cirlce_pts.
- For line, extract line_pts.
- For lwpolyline, extract polyline_vertice.
- For elllipse, center and majorAxis
- For point, pt.
- More data extracting continue from yesterday.
- Try to start integrating openscad and dxf-g.cc just for circle entities.
- Run openscad together with dxf-g.cc.
- Implemented circle entities using dxf-g.cc called a openscad function.
- Later the day discussion concluded that this is not the preferred way. deprecated.
- Added structs for each geometry for storing the data.
- Some minor fixes for original data type point_t.
- storing all the data parsed to the respect vectors.
- Except polyline is a bit tricky, not done yet.
- Added polyline struct and the storing part.
- Added code for passing circle entity information to openscad and openscad draw it.
- Having trouble with compilation.
- Added arc, line, points, lwpolyline.
- Still have some problems with lwpolyline.
- fix lwpolyline.
- Added ellipse.
- Found problem with mesh.
- Trying to fix mesh
- Change the structure of the entire code to use the code of dxfdata to fix the mesh problem
- The code still not able to produce the correct polygon yet.