On one hand, I am not really comfortable with having a poor precision solver and decreasing the precision of the intersection calculation to compensate for it. On the other hand, I understand that the situation is not uncommon.davidosterberg wrote: ↑Tue Feb 02, 2021 9:02 amI left a proposed fix for bug G in the github discussion. After that I am happy from the functionality point of view. I have not read the code, but others have so it should be fine.
Aside from those considerations, the fix you propose relies in the tool (seekTrimPoints) detecting at least one end. In the specific example, it is detecting only the other end that is not 35e-6 mm apart. It would not work in a more contrived example in which the other end is open. Because of this, the trim mode is also not properly detected (it uses and endtrim operation when a deletetrim would be the right one). But, I do agree to the general idea that reducing the precision would be a workaround (probably requiring implementing it inside seekTrimPoints).
I think that in this case it is possible to attack the root cause of the problem instead of circumventing it and probably we would gain more by doing so, as having this poor precision will give problems with certain other constraints. It is way too low. I will try to work to make FreeCAD converting point on curve + tangency into point-to-edge-tangency. This is already currently done for coincident+tangency, so it may not be hard to do.
I am not merging it right now. I will investigate further.