Tuesday, April 23, 2013

Extrude fixes for Release mode

Over the past few days I investigated the issues we have with release mode and found that in some cases, in release mode, the IsNull property of a TopoDS_Shape was true, even if the shape was valid and the other properties were correct. Another property that had wrong values was context.HasOpenedContext.

Here is a short demo with Extrude performed on complex shapes, ran in Release mode:

The next issue to fix is the selection: when selecting a circle in release mode, the center point is returned as selected - this could be because the Context's selection is wrongly set, or the comparison method is incorrect.

Wednesday, April 17, 2013

Code changes integration finished and demo

Yesterday I finished the integration of code changes up to NaroCAD 1.7.6 into the solution containing the new wrappers and today I started testing.
The application works well in Debug mode, but there is a bug causing selection not to work in Release mode. Here is a small demo ran in Debug mode:

I will continue investigating the cause for the differences between Release and Debug mode and test it to make sure that the new version has the same functionality as 1.7.6.

Wednesday, April 10, 2013

NaroHost improvements

Today I worked on improving NaroHost and including the additional scripts I used into it, so there'll be fewer steps when we want to generate new wrappers. I also set the main structure for a tutorial on how to generate new wrappers, which will be published when all the code changes are done.

Monday, April 8, 2013

New wrappers built successfully

Today I successfully built the new wrappers in Debug and Release mode, ran NaroCAD using these new wrappers without crashes, and created the installer and ran it:

and here is the Process Explorer view, where we can check that no debug dlls are used:

The next step is to clean up the generation code, include all the external scripts I used into NaroHost and prepare a tutorial on how to generate the wrappers and how to add new wrappers.

Wednesday, April 3, 2013

Building wrapper on old .api file

Over the past few days I've tried to build the NaroOccCore.dll file using the files generated by the old OccWrappers.api file, to make sure that the base classes used by Naro are correct and that the build process is correct, and when I have an identical .dll file, build from that to create the new .dll file.

Unfortunately, even if the built dll file seems to be the same as the one found in the repository, there are some differences that cause it to crash.

Things I checked:

- the exports from both files using dumpbin: /exports, /imports and /dependents and they are the same, only the /rawdata results are different.
- the other files are the same and that replacing only the dll file causes the application to work correctly or crash, depending on the dll version.
- other versions of the code from different revisions, to make sure there weren't any changes that were used when building, but were commited later
- other branches for changes that weren't added to the main branch
- Qt version and install

I am now checking if there are differences in the compile options or other settings that might have remained uncommited.