In the application I am developing I decided to change the default tolerance value to 0.5 (for buildings 0.5 mm should be an adequate value). I used BRepBuilderAPI::Precision to set that value. The issues begin when I start using the Fuse operation (most likely all booleans cause the same problem). The new shapes produced by the Fuse operation have a higher tolerance than the one I specified initially (1.2 was the maximum I saw). In a short drawing session, one of the vertices became 1.9 mm off the Z direction from the value it should have had. As a result, the drawing ends up being useless because many operations that depend on that precision will reject the current shapes, as well as OpenCASCADE's own algorithms.
Is there anything I could do so the tolerances don't change that much?