Friday, October 30, 2009
Fixes over cut, serializing, and others
We are close with that bugs but we aren't still to do a release. This means that we will want to make it in some days next week, who knows, maybe Monday but also we want that you to not find big crashes or miss of functionality. In fact the functionality that splits faces that gives problems is a huge gain from user point of view to define islands and sections of a shape.
Thursday, October 29, 2009
Magic point improvements
Point on a position that continues an edge:
Point on edge detection:
Tuesday, October 27, 2009
As main directions that remained to be fixed are:
- the Undo Redo still needs fixing,
- the magic points needs improvements so that the solver detects edges and surfaces (improvements are needed especially at curves like arc, surfaces like cylindrical),
- because of the parametric propagation a node that references another node (like Extrude is referring a Rectangle node) is using a hidden node named SubShape node that describes the referenced node. We have to find and implement a guideline to establish when a node that references another node should hide the target. Ex: Extrude when applied on a rectangle should hide the referenced rectangle, when applied on the face of another Extrude should not hide it.
Currently in the bug list there are 12 more bugs and 7 bugs with enhancement priority (the enhancements will be not closed for this beta release). Closed around 49 bugs.
Thursday, October 22, 2009
Code cleanup and bug fix
Also the construction: Dependency.Child(id) is replaced with Dependency[id] everywhere in code. It does the same but the construction is shorter.
At the end there was a bug that applying fillet on two lines will make that the logic of auto-face to not work. Right now the code was made to be specific per shape and permit that fillet lines to be considered as a part of auto-face logic. Also it makes easy to add another shapes as part of auto-face logic (I will try to add arc as the next shape to be considered).
New wrappers for BRepCheck_Analyzer, several fixes
The Hidden On/Off works now. This tool is useful, when the model is displayed as wireframe the user can see how the model looks inside after several operations that affects its structure.
Fixed bugs at Fillet 3D, Fillet2D on wires, fixed exceptions thrown by the parallel line solver algorithm.
Will continue with fixing issues related to magic points on curves, Fillet2d applied on the edges of a Face.
Wednesday, October 21, 2009
Hopefully the last Undo-Redo bug fixed
Undo-Redo have no known bugs for some time. At least not in areas like: computing diff between the previous Undo point and the actual point. Still, because some constructions were able to have some complex cases, like: the dependencies should be deserialized first before the shape itself, a lot of functionality was exposed and sometimes with some very good side effects, but sometimes with unexpected ones.
This last bug was really tricky and it was like this: every time an attribute is changed in the Naro document tree, there is an emit of an notification. This can be very useful to make propagations. Sometimes, this thing is not desirable, in case of Cut Through All operation, some changes may turn as an infinite loop. That makes that some attributes were able to be disabled to be notified. Without knowing, disabling this, makes that another operation to not happen. To be more precise, the diff marking. The Undo operation is implemented to not query the entire tree every time, but only the nodes that emits notifications of changing. By doing this, there is a big performance increase in complex nodes setup.
Based on this, hopefully this more complex Undo/Redo setups are fixed and it gives the status of making Undo-Redo operations more reliable.
Arc fixing, improved face picker
Improved a lot the face picking mechanism: instead of selected faces mechanism now it uses highlighted faces mechanism to detect the face that the mouse is over. Picking a shape with a tool like Extrude that uses the FacePicker is improved. Added also code to change color of the faces that are targeted by the face picker.
Tuesday, October 20, 2009
Fixed Spline and update issues
I will continue to work on bug fixing regarding Undo/Redo and any document related issues.
Monday, October 19, 2009
Continue working on Undo-Redo cycle
Saturday, October 17, 2009
Bug fixing on document/tree data
Thursday, October 15, 2009
Wednesday, October 14, 2009
Improving open code...
Right now the applying of Undo/Redo or File/Open will do it in case of references to deserialize in advance the references, by this will remove one more assumption and it's following problems. Anyway, there are still bugs there, but I hope to address them today.
Monday, October 12, 2009
Review splitter functionality cause of bug fixing
Fixed the translation code. Translating from property grid and the translation tool work properly even if applied on models depending on other models. Also at Undo the transformations are applied correctly and the proper object position is restored.
Will continue with improving and fixing the shape intersection algorithm and integration with tools. Will also improve the Cut functionality and fix bugs related to it.
Friday, October 9, 2009
So based on this, if you still have crash on starting Naro, you may use the installer from here: https://sourceforge.net/projects/narocad/
Also, this build is a snapshot of current nightly build, so a lot of small crashes that you've encountered in your past, are fixed. Based on this, this version appears to be the recommended install version for now and a good way to report other errors based on this.
Working at fixing bugs at the most important tools. Fixed Cut to depth. Fixed some of the propagation errors.
We're starting to get close to a beta release.
Thursday, October 8, 2009
Face splitter and propagation fixes
It happen that because of various refactors, the propagation had an explosion of regenerations when happen a parametric propagation. This was caused that are two entities that store the shape that are equivalent form (the TopoDSInterpreter which stores the OpenCascade shape and NamedShapeInterpreter which stores the OCC View corresponding AIS_Shape). Right now it will happen only one of them, so right now just model notifications are emited for propagation purposes.
IronPython was removed as Lua offer everything that IPy has, only just Lua is better integrated, so there is no point to keep both.
Wednesday, October 7, 2009
By starting with the idea of bxtrx, I've implemented eventually and the transforms are back again working.
Remove internal wires
Tried to implement a remove internal wire/face algorithm.
The DrawTestHarness solution found until now that seems to work well:
circle c1 0 0 0 50
circle c2 0 0 0 25
circle c3 0 0 0 10
mkedge ec1 c1 0 2*pi
mkedge ec2 c2 0 2*pi
mkedge ec3 c3 0 2*pi
wire wc1 ec1
wire wc2 ec2
wire wc3 ec3
mkplane p1 wc1
mkplane p2 wc2
mkplane p3 wc3
bcut result p1 p2
bfuse aux p1 p2
bfuse result aux p3
RemoveIntWires t result 7853
The equivalent wrapper code:
// Calculate the result shape area
var prop = new OCGProp_GProps();
var mass = prop.Mass();
// Remove internal area on the resulted shape
OCShapeUpgrade_RemoveInternalWires shapeUpgrade = new OCShapeUpgrade_RemoveInternalWires(finalShape);
if (shapeUpgrade.Status(OCShapeExtend_Status.ShapeExtend_DONE1) ||
// If operation succeeded replace the result shape with
// the one with no internal wires
finalShape = shapeUpgrade.GetResult();
The wrapper code doesn't work for the moment, it generates the same shape as the original one. Will move to solve higher priority bugs and come back at this algorithm soon.
Tuesday, October 6, 2009
Today I've clean up a big file at least removing the calls to command line that are no longer used.
Extrude tool improvement
Worked at improving the Face intersection algorithm and its integration with other tools. Refactored Extrude and added better integration with shape intersection, extruded Faces that are not intersected with other Faces are removed from the intersection candidate list.
Still thinking how to handle the situation when some shapes are intersected and one of the intersection results is extruded, currently all shapes remain in the scene nothing is hidden.
Saturday, October 3, 2009
Updated installer to 1.2PRE2
The issue was that the 1.2 uses Tcl/Tk libraries and they were added to installer. Anyone who has installed OpenCascade was able to run NaroCAD 1.2PRE without problems, but for the rest of users, it was a startup crash, hopefully it will not happen.
Take the 1.2PRE2 release from Sourceforge: https://sourceforge.net/projects/narocad/
I will work after this to fix the transformation issues and with your feedback we will make NaroCAD 1.2 to rock!
Friday, October 2, 2009
Installer issues in 1.2PRE
Just if you will want to use 1.2PRE installer and you don't have installed OpenCascade, please download it from here: http://www.opencascade.org/getocc/download/ (registration required). If supposedly it still do not start with your machine, you may need to download Visual C++ Runtime 2008 SP1.
NaroCAD installer comes with a mini distribution of OpenCascade, but seems that adding extra code features to current codebase may increased the dependencies and make it to not be enough what is bundled.
I still work on this issue and I really hope to be solved tomorrow.