law function fillet

blobfish

CAD community veteran
After many hours/days/weeks, I had to share my first fillet from a manually created law function. It is a linear law fillet around the top.

lawFunctionFillet.png
 

Quaoar

Administrator
Staff member
That's looking nice. Can you compare it to the variable-radius fillets of our good old OpenCascade? If I remember well, they also have something similar. How have you achieved G1 continuity across the edges?
 

blobfish

CAD community veteran
That's looking nice. Can you compare it to the variable-radius fillets of our good old OpenCascade? If I remember well, they also have something similar. How have you achieved G1 continuity across the edges?
I probably should have been more clear. I am using ChFi3d_FilBuilder for construction. As far as I can tell, the law function interface was never completed and so didn't work. I hacked a few methods so I can feed my own law function into ChFi3d_FilBuilder instead of one being interpreted.
 

Quaoar

Administrator
Staff member
Ah, okay, so you discovered one of these "extension points" where the lib was interrupted and never got finished. Is this modification available in your fork of OpenCascade?
 

blobfish

CAD community veteran
Ah, okay, so you discovered one of these "extension points" where the lib was interrupted and never got finished. Is this modification available in your fork of OpenCascade?
Not yet, but that is the goal. I need to run it through the occt public regression test grid. I haven't done that yet because I am not ready to ruin the afterglow of some actual forward progress. :)
 

blobfish

CAD community veteran
Only 327 regressions. :cry: I couldn't believe it, so I checked out and built the official branch 7.6.2 branch. The tests there also had 327 regressions. I was doing this on a debug build with '-DBUILD_WITH_DEBUG=True'. That causes algos to spontaneously dump info to std::cout. I think the test grid was interpreting that spontaneous output as errors and failing the test. Once I tested a release build I didn't have any regressions. :)
 

Quaoar

Administrator
Staff member
That could also mean that it wasn't really tested. Were you able to identify how many tests on ChFi3d exist?
 

blobfish

CAD community veteran
That could also mean that it wasn't really tested. Were you able to identify how many tests on ChFi3d exist?
Good point. Just now, using text search, came up with this:
Code:
draw commands that use ChFi3d_FilBuilder
  via FilletSurf_Builder
    blend1                                          BRepTest_FilletCommands.cxx:753         0 hits in blend folder
  via BRepFilletAPI_MakeFillet
    blend                                           BRepTest_FilletCommands.cxx:147         391 hits in blend folder
    mkevol                                          BRepTest_FilletCommands.cxx:257         111 hits in blend folder
    boptopoblend                                    BRepTest_FilletCommands.cxx:333         0 hits in the blend folder
I am sure those numbers are wrong. Is there a better way to check that? I was thinking of trying something with running DRAWEXE through gdb, but just the idea makes me cringe. Another thing that crossed my mind while running the testgrid, Is there a way to get DRAWEXE to show the full path to the currently loaded occt shared objects? I Just want some assurance that my environment is correct and that I am testing the correct libraries.
 

Quaoar

Administrator
Staff member
Well, searching for these command names in the Tcl scripts located in the /tests/ directory is definitely a good start to assess the tests coverage. Not sure if Draw can print any info on the loaded shared libs. That's interesting to investigate.

Btw, how your fork is going to evolve? Are you merging all the latest OpenCascade releases into it or did you decide to forget about officials?
 

blobfish

CAD community veteran
Btw, how your fork is going to evolve? Are you merging all the latest OpenCascade releases into it or did you decide to forget about officials?
Oh no, I will not go it alone. I am only semi-delusional. I plan on keeping a pristine set of commits on my branch that mainly concentrate on minor bugs or the ignored parts of library and rebase it on the official releases.
 
Top