Menu

#619 Tangential 3 Circles fails for 3 lines

Next release
closed-accepted
tangential (1)
5
2021-10-03
2021-10-01
Zai Gezundt
No

Version: 2.1.3, Windows

Draw line
Draw parallel line
Draw crossing line intersecting other 2 at wide angle
Try Tangential 3 Circles

Result: can't select third line

1 Attachments

Discussion

  • LordOfBikes

    LordOfBikes - 2021-10-01

    Tangential 3 Circles works for me with your sample file, in latest build.
    So this seems to be fixed meanwhile.

    I recommend to update to latest master which is here: https://sourceforge.net/projects/librecad/files/Windows/NightlyBuilds/master/
    This version is in release candidate state and as stable as 2.1.3 or even better, with lots of improvements.

    Anyhow many thanks for reporting and the sample file.

     
  • LordOfBikes

    LordOfBikes - 2021-10-01
    • labels: --> tangential
    • status: open --> closed-fixed
    • assigned_to: LordOfBikes
     
  • Zai Gezundt

    Zai Gezundt - 2021-10-01

    Installed latest build as suggested:

    Version: 2.2.0-rc2-20-g415f8fcb
    Compiler: GNU GCC 7.3.0
    Compiled on: Aug 6 2021
    Qt Version: 5.12.4
    Boost Version: 1.65.1
    System: Windows 10 (10.0)

    Yet can't select third line.

    Related observation: added another line (green), used it to create circle (green) and then could create circle with original three lines. Strange. See new attachment.

    Another experiment: new file, three not parallel lines, circle created right away. Going on a limb here and guessing that it has something to do with lines being parallel in the original example.

     

    Last edit: Zai Gezundt 2021-10-01
  • Zai Gezundt

    Zai Gezundt - 2021-10-03

    Found exact sequence to reproduce the issue in the original bug.dxf:

    1. Select one of parallel lines first
    2. Select any other line
    3. Can't select third one

    Workaround:

    1. Select crossing (not parallel) line first
    2. Select any other line
    3. Select remaining line
     
  • LordOfBikes

    LordOfBikes - 2021-10-03
    • status: closed-fixed --> closed-accepted
     
  • LordOfBikes

    LordOfBikes - 2021-10-03

    Many thanks for persisting on this issue.
    Even your second example worked for me in all situations. I tried to select lines in all possible orders, but always got a result with you samples.

    With my first tries I also created own samples, but can't reproduce your issue.
    Now I tried harder and I could randomly create the issue.
    What I found out is, that this is a floating point precision issue. The relevant code is prepared to detect parallel lines and handle this special case correct. When the issue occur, the method in question doesn't detect the parallel lines. It finds an intersection between the parallel lines because of floating point precision, but later in code it doesn't find the solution because of the parallel lines.

    So I can confirm your issue now, but I have no solution yet.
    I changed this closed-accepted and created new issue #1386 on our main GitHub tracker.

    I can also confirm your workaround. From inspecting code this is the only strategy to avoid this issue.
    Many thanks for figuring this out.

     

Log in to post a comment.