Trying to clean up the code so that it could compile
independently.
June 7th
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.
June 8th
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.
June 10th
Made changes to dxf-g.c according to the answer from brlcad.
June 11th
fix bu_list with std::list and related functions, etc.
June 12th
Add functions for circle eclipse from vmath.h, color.h.
June 13th
Added more functions from dependencies.
uploaded a file that records to-do list, question, notes, etc.
June 14th
few fixes on dxf-g.cc.
Study for the midterm tonight for the most of the day will make up
the hours tomorrow.
June 15th
Finished converting all bu_list data structure to std::list except
in one function drawmtext().
drawmtext() may be removed later.
June 17th
Finished fixing all bu_vert_tree structure.
Started on fixing vls a bit.
June 18th
Finished fixing all vls except those in the main().
June 19th
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.
June 20th
Fixed numbers of segmentation faults mainly caused by malloc.
June 21st
Fix strncmp function error
Tested with circle, ellipse, failed at block section.
Tried to reconstruct block_list, block_head data structure.
June 24th
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.
June 25th
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.
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
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.
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
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
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.