Can't snap Intersection where two arcs cross in Draft WB

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
User avatar
mfro
Posts: 662
Joined: Sat Sep 23, 2017 8:15 am

Re: Can't snap Intersection where two arcs cross in Draft WB

Post by mfro »

Syres wrote: Thu Aug 11, 2022 8:26 am Just purely the visual cursor bug with snapping in general was triggered at Git Revision 0.21.29715 on the master branch so any build before that will be OK with regard to that. I've asked Werner to give me some pointers on how to revert the commit in whole or part to fix the regression. Other bugs in the create of the geometry I can't comment on.
I doubt that this is related. As I'm currently investigating the visual cursor thing, I have a local build that reverts that said commit (still investigating what's wrong with it as it basically looks like an innocent cosmetic change). It has the same behaviour (i.e. does not snap to the intersection although the visual cursor is fixed).
Cheers,
Markus
Syres
Veteran
Posts: 2893
Joined: Thu Aug 09, 2018 11:14 am

Re: Can't snap Intersection where two arcs cross in Draft WB

Post by Syres »

mfro wrote: Thu Aug 11, 2022 8:33 am I doubt that this is related.
I thought the same but, using Werner's git commit 2b5b7cd fix and creating a new file of two overlapping Draft arcs, I can snap the intersection and draw a line as I would expect.

Code: Select all

OS: Linux Mint 19.3 (X-Cinnamon/cinnamon)
Word size of FreeCAD: 64-bit
Version: 0.21.30059 (Git)
Build type: Release
Branch: master
Hash: 2b5b7cd607aa033e644729845551c16c539928db
Python 3.6.9, Qt 5.9.5, Coin 4.0.0a, Vtk 7.1.1, OCC 7.6.3
Locale: English/UnitedKingdom (en_GB)
Installed mods: 
  * fasteners 0.3.51
  * Silk 1.0.0
  * Plot 2022.4.17
  * CfdOF 1.16.1
  * BIM 2021.12.0
  * FeedsAndSpeeds 0.4.0
  * dodo
  * Curves 0.5.4
  * Manipulator 1.4.9
  * fcgear 1.0.0
  * ThreadProfile 1.82.0
  * A2plus 0.4.56a
  * sheetmetal 0.2.56
User avatar
mfro
Posts: 662
Joined: Sat Sep 23, 2017 8:15 am

Re: Can't snap Intersection where two arcs cross in Draft WB

Post by mfro »

Syres wrote: Thu Aug 11, 2022 10:14 am
mfro wrote: Thu Aug 11, 2022 8:33 am I doubt that this is related.
I thought the same but, using Werner's git commit 2b5b7cd fix and creating a new file of two overlapping Draft arcs, I can snap the intersection and draw a line as I would expect.
That's something I (and others, see Thomas' post above) could do before already. With the TO's original file it still doesn't work.
Cheers,
Markus
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: Can't snap Intersection where two arcs cross in Draft WB

Post by Roy_043 »

There are two issues with Draft_Snap_Intersection here:

1.
Endpoints are found:
This is a result of this PR of mine:
https://github.com/FreeCAD/FreeCAD/pull/6780
I did not think this through and this clearly needs more work.

2.
The actual intersection is not found in the provided file:
There is a BoundBox check in the Draft findIntersection function and the two arcs have BoundBoxes that do not intersect:
BoundBox (0, -9.20348, -37.9006, 0, 14.4705, -28.7887)
BoundBox (6e-15, -13.9612, -37.9115, 6e-15, 9.3678, -29.1835)
This check should be removed or a certain tolerance should be added (6e-15 is a floating point rounding error).
User avatar
mfro
Posts: 662
Joined: Sat Sep 23, 2017 8:15 am

Re: Can't snap Intersection where two arcs cross in Draft WB

Post by mfro »

Roy_043 wrote: Thu Aug 11, 2022 12:53 pm ...
2.
The actual intersection is not found in the provided file:
There is a BoundBox check in the Draft findIntersection function and the two arcs have BoundBoxes that do not intersect:
BoundBox (0, -9.20348, -37.9006, 0, 14.4705, -28.7887)
BoundBox (6e-15, -13.9612, -37.9115, 6e-15, 9.3678, -29.1835)
This check should be removed or a certain tolerance should be added (6e-15 is a floating point rounding error).
Shouldn't that be fixed in Base::BoundBox::intersect() which currently doesn't allow for any tolerance?
Cheers,
Markus
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: Can't snap Intersection where two arcs cross in Draft WB

Post by Roy_043 »

You can just enlarge one of the BoundBoxes by a given tolerance.

Code: Select all

bb.enlarge(tol)
Post Reply