Editing User:Xuwei/DevLog2019


Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 153: Line 153:
* Randomly picking files from openscad/testdata/dxf to check geometry and coordinates.
* 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 figure out if the data structure is actually storing the correct data.
===June 26th===
* 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.
===June 27th===
* More data extracting continue from yesterday.
* Try to start integrating openscad and dxf-g.cc just for circle entities.
===June 28th===
* 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.
===July 1st===
* Added structs for each geometry for storing the data.
* Some minor fixes for original data type point_t.
===July 2nd===
* storing all the data parsed to the respect vectors.
** Except polyline is a bit tricky, not done yet.
===July 3rd===
* Added polyline struct and the storing part.
* Added code for passing circle entity information to openscad and openscad draw it.
** Having trouble with compilation.
===July 4th===
* Added arc, line, points, lwpolyline.
** Still have some problems with lwpolyline.
===July 5th===
* fix lwpolyline.
* Added ellipse.
* Found problem with mesh.
===July 8th===
* Trying to fix mesh
===July 9th===
* 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.
===July 10th===
* Fix the mesh problem and now the code can properly import a single dxf file.
** For some reason, the data is store and fill in the next polygon if the second dxf is imported.
===July 11th===
* Fix the data leakage between document.
* Now the code is passing all the test file except nothing decimal comma and transform insert.
** the reader has an issue with insert entity
===July 12th===
* Trying to figure out how to fix the insert.
* Learning the insert spec from dxf manual
===July 14th===
* Fix the block list and curr_block is not storing value properly
* There is an infinite loop caused by the file offset in the process_enitites_unknown
** It jumps to the previous line but does not jump back
* Continue on fixing insert
===July 15th===
* Clean up most of the commented code in dxf.cc and dxf.h
* fix the curr_block memory issue by using a global variable indx that indicate the position of the block in block_list
* Continue on fixing insert
===July 16th===
* Adding back_file_offset to state_data to have the program jump back
** Still getting the wrong result, the geometries are scattered but shapes are the same.
* Continue on fixing insert
===July 17th===
* replace all memory allocation function related to insert with new and delete
** valgrind now output no error or warning
* Continue on fixing insert
===July 18th===
* Download and build brlcad to test out what's the difference and if it can output the correct result
** There is no problem with the curr_state->file_offset
* Continue on fixing insert
===July 19th===
* Found that the brlcad xform is different than my version.
** Can't figure out why it's different
* Continue on fixing insert
===July 20th===
* Found the BU_LIST_POP actually assign curr_state to the last element of the list
** This fix the infinity loop and remove back_file_offset.
* Continue on fixing insert
===July 21st===
*By switching the push_back and new_state = curr_state this fix the xform problem.
** Insert is fixed but it looks there is an issue with different compiler
===July 22nd===
*Cleaning up dxf.cc, import-dxf.cc, dxf.h.
===July 23rd===
*Finished cleaning up dxf.cc, import-dxf.cc, dxf.h.
* Make [https://github.com/openscad/openscad/pull/3005 #pr3005] to test in various platform.
===July 24th===
*Fix scale, xyorigin, layername problem.
*Test result [https://github.com/openscad/openscad/pull/3006]
===July 25th===
* Starting working on spline entity.
* Reading spline related code on QCAD.
* Learning dxf spline entity spec.
===July 26th===
* QCAD is using an external library opennurbs to deal with the spline.
* Reading spline related code on BRL-CAD.
** BRL-CAD code can be implemented on openscad.
===July 29th===
* Replicate and integrate brlcad spline code to openscad.
===July 30th===
* Continue integrating blrcad spline code to openscad.
===July 31st===
* Testing brlcad code with openscad, comparing with brlcad and qcad.
** Creating test cases using AutoCAD.
** Both brlcad and qcad seems to not supporting the spline created by autocad properly due to dxf version problem.
** brlcad encounter segmentation fault with one of the spline test cases.
===August 1st===
* Switch to reading LibreCAD spline related code.
** LibreCAD 2.x version is using their own code.
* Also reading openscad bezier curve related code.
===August 2nd===
* LibreCAD can handle the spline created by autocad unlike brlcad and qcad.
* OpenSCAD code can handle degree 2, 3 normal spline(Beizer curve) properly.
** Starting adding openscad code to import_dxf.
===August 3rd===
* Modified openscad code and integrated it to import_dxf.
===August 4th===
* Testing the spline import of openscad
** Able to import 3 control points for degree 2 spline and 4 for degree 3 spline.
** Fail to generate continuous bezier curve.
===August 5th===
* Trying to figure an algorithm or a way to generate continuous bezier curve like this [https://www.algosome.com/articles/continuous-bezier-curve-line.html article].
===August 6th===
* OpenSCAD is now able to import degree 1-3 spline with certain numbers of control points.
** spline knots, weights, fit points are ignored.
===August 7th - 14th===
* Family trip.
* Originally from 7th-12th, due to the riots in Hong Kong airport and the typhoon in Osaka, flight got cancelled and delayed. ** Due to the typhoon, updated flight time is 16th.
===August 15th===
* Starting working on polyline entity.
===August 16th===
* Rearrange code and fix error in storing polyline vertex in the importer.
* On the flight home
===August 17th===
* Integrate 2D polyline entity to openscad ignoring 3D polyline features and curve-fit.
===August 18th===
* Improve polyline with the spline-fit flag, can generate by both spline vertex and control points.
* Test polyline.
* Add test cases to the test suite.

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)