Page 1 of 1
Visual diff (Restored)
Posted: Mon Jul 01, 2024 12:15 pm
by sarge
We have been using Boolean Operations to compare surfaces imported via vrml. The idea is to present visually deviation of a scanned object from the designed exact surface.
We get exceptions in Boolean operations regularly. Is there a better way to do this?
Thank You
Re: Visual diff (Restored)
Posted: Mon Jul 01, 2024 12:17 pm
by Prashant Kande
Hi
To be brief, comparing surfaces like you do needs a specifically designed algorithm. Boolean Operations are too complicated and hence not robust enough for the purpose. See below. The diff on the other hand is not that complicated and can be very robust.
Most likely you are trying to compare objects which have close geometry, nearly coinciding. This is very difficult case because the first thing Boolops do is calculation of the intersection curve(s). When surfaces simply (nearly) touch one another the calculation becomes unreliable simply because the intersection is not well defined: very small change in angle can make them coincide completely, where normal intersection does not work and another algorithm is executing.
This should be handled, but situation is very complicated and there are situations which we did not catch yet. If you see something happening consistently, we would like to see it.
Generally Boolean Operations are very complicated to handle any arbitrary input. We have spent a lot of time handling the coplanar situation above and the case when intersection curves actually merge into a bunch. My guess is that to get it working without an error in say 1000 operations in a row in your satiation can take about two years. Will this investment pay off for us? I am not sure at the moment.
Nick
Update July 2024
Posted: Mon Jul 01, 2024 12:21 pm
by Prashant Kande
This was an early thread. Since then, we have revisited Boolean Operations on meshes, used in this particular application, several times and they are pretty robust now.
For completeness: Boolean operations on BRep geometries are implemented in the Open Cascade engine and are as solid as it gets.
Regards
Re: Visual diff (Restored)
Posted: Thu Jul 04, 2024 3:14 am
by sarge
Is it possible to cut a hole in a mesh with a brep cylinder created via IStdShape_DG or other means?
Re: Visual diff (Restored)
Posted: Thu Jul 04, 2024 3:17 am
by Prashant Kande
Sure.
When at least one of the objects in a Boolean operation is a mesh, the result will be a mesh also.
If both are brep the result is brep.
Cheers