wmayer wrote: ↑Sat Apr 09, 2022 6:24 pm
Even if the original shape is returned there is still the problem that it's still a compound. Somehow the kernel (often) makes a difference if an input shape is a solid or a compound of a single solid.
As per the documentation (
https://dev.opencascade.org/doc/refman/ ... ml#details),
For Boolean operation FUSE all arguments should have equal dimensions;
So this just sounds like implementation details. I am unsure what they would consider to be the "dimension" of a compound, since it can contain absolutely any shape.
This doesn't seem to be a problem. I have checked the source code of BOPAlgo_Options (that's the base class that stores the fuzzy value). The default value is set to Precision::Confusion() and the SetFuzzyValue method doesn't allow to set a smaller value.
Indeed there isn't any problem, at least for now. As I said
Precision::Confusion() is just for the rounding errors, so by definition a smaller value should not be allowed. For the "fuzzy value" let me give my understanding through an example of an air conditioner. We set the AC to give us around a temperature of 24, so the unit will do something only if it detects the ambient temperature to be too different.
Precision::Confusion() is equivalent to the least count of the thermometer used to check the temperature, say 0.5 degrees C. The "fuzzy value" is basically saying: we are fine if the temperature is, say 26, but if it gets to 27 or so the unit should be activated to suck heat out. It could the stay active till we reach a temperature of 22 so it doesn't have to start again too soon.