wmayer wrote:As you can see the scaling also affects the tolerance of a shape and this can lead to serious problems because it could break the topology
Actually, it's exactly the opposite in this case, IMO.
The purpose of tolerances is to provide some margin against imprecise nature of floating-point numbers. And the precision of double
is a constant fraction of the number's magnitude, about 2e-16.
If I make a cube 100km in size, the tolerance of double
comes close to the precision::confusion. If I add a couple more orders of magnitude, the parametrically generated cube will break (assuming it keeps the fixed tolerance all the way up to this large a cube). Well maybe it won't break as-is, but it will break as soon as it gets rotated for example. Because endpoints of its edges will be mismatched beyond the tolerance.
In contrast, scaling the tolerances proportionally to the size of the cube will not cause topology breakage. That is, scaling behaves correctly and is less dangerous.
Now on to trying this in FreeCAD...