OCC 7.2 improvements

Info about new community or project announcements, implemented features, classes, modules or APIs. Might get technical!
PLEASE DO NOT POST HELP REQUESTS OR OTHER DISCUSSIONS HERE!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
User avatar
DeepSOIC
Veteran
Posts: 7896
Joined: Fri Aug 29, 2014 12:45 am
Location: used to be Saint-Petersburg, Russia

OCC 7.2 improvements

Post by DeepSOIC »

I am reading through OCC 7.2 release notes, and I want to share some things.
This post will probably grow, as I discover more.

==for users==
1. Improved 3d offset. It can now do this:
3d offset improved.png
3d offset improved.png (53.69 KiB) Viewed 1753 times
I don't know, since when it became possible. You should tick "Intersection" in dialog/properties for this to work. YAY!



==for coders==
1. New object for storage of shape history, BRepTools_History. Should be a good thing for toponaming.
2. ShapeUpgrade_UnifySameDomain got some fixes. I don't know if FC still uses Tanderson's algorithm... if it still is, I think it's time to expose toe opencascade's algo to see if it's any better.
3. BOPAlgo_Tools::WiresToFaces allows creating planar faces from the planar wires. In general, the input wires are non-manifold and may be not closed, but should share the coinciding parts. The wires located in the same plane and completely included into other wires will create holes in the faces built from bigger wires.
Time to ditch FaceMakerBullseye, with its toponaming instability?
4. Gluing operation.
The Gluing mode is a new option for Boolean operations (BOPs). It should massively speed up fusions when objects just touch. It does so by omitting the slowest part of algo - searching and computing face-face intersection curves.
5. There is now an OCC replacement for Part Slice (which I hacked up from generalfuse), BOPAlgo_Splitter.
6. Refactored BOP error-and-warning reporting mechanism.
▪ Methods HasErrors() and HasWarnings() can be used to check for the presence of error and warning alerts;
▪ DumpErrors/DumpWarnings methods can be used to dump the error and warning messages as text.
▪ Method GetReport() provides access to all alerts; see class Message_Report for details.
damian
Posts: 583
Joined: Sun May 31, 2015 6:16 pm

Re: OCC 7.2 improvements

Post by damian »


Orientation of the shapes in the container

The following methods allow reorienting shapes in the containers:

BOPTools_AlgoTools::OrientEdgesOnWire correctly orients edges on the wire;
BOPTools_AlgoTools::OrientFacesOnShell correctly orients faces on the shell.
https://www.opencascade.com/doc/occt-7. ... po_tools_3
User avatar
tanderson69
Veteran
Posts: 1626
Joined: Thu Feb 18, 2010 1:07 am

Re: OCC 7.2 improvements

Post by tanderson69 »

DeepSOIC wrote: Mon Apr 16, 2018 9:02 pm 2. ShapeUpgrade_UnifySameDomain got some fixes. I don't know if FC still uses Tanderson's algorithm... if it still is, I think it's time to expose toe opencascade's algo to see if it's any better.
SUUSD = ShapeUpgrade_UnifySameDomain

As far as I know it still does. The last time I checked SUUSD, there were still about 5 test cases that didn't pass where model refine did. That was for occt 6.9.1. The tests and a log file are located in */data/tests/ModelRefineTests. You could use those tests in DRAWEXE and see where SUUSD stands. I am thinking SUUSD is good enough. I know there are some cases where SUUSD works better. I just came across one the other night. https://forum.freecadweb.org/viewtopic. ... 10#p227755 model refine won't join across different surface types, but SUUSD will and worked for that file.
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: OCC 7.2 improvements

Post by NormandC »

tanderson69 wrote: Mon Apr 16, 2018 11:30 pm I just came across one the other night. https://forum.freecadweb.org/viewtopic. ... 10#p227755 model refine won't join across different surface types, but SUUSD will and worked for that file.
Interesting.

DeepSOIC wrote: Mon Apr 16, 2018 9:02 pm ==for users==
Hidden line removal algorithms (HLR) got a lot of improvements that are very useful to TechDraw. Projected views are a lot more reliable.

There's also cool stuff in TechDraw not possible with lesser OCCT versions, not sure it's thanks to what OCCT stuff exactly:
FC017_TechDraw_Perspective_View_01.png
FC017_TechDraw_Perspective_View_01.png (12.66 KiB) Viewed 1691 times
Oops, missing edge!
Post Reply