QCAD Bugtracker

  • Status Closed
  • Percent Complete
    100%
  • Task Type Bug Report
  • Category QCAD (main)
  • Assigned To
    andrew
  • Operating System All
  • Severity Low
  • Priority Very Low
  • Reported Version 3.32.2
  • Due in Version Undecided
  • Due Date Undecided
  • Votes 1
    • CVH (13.05.2025)
  • Private
Attached to Project: QCAD Bugtracker
Opened by Schoggi - 10.05.2025
Last edited by andrew - 23.05.2025

FS#2668 - Modify > Break out Gap: break out gap at start of line breaks undo

QCAD/CAM 3.32.2 / Qt 6.6.0 / macOS arm64 / cocoa

I´m using breakoutgap intensively to produce the bending lines for laser cutting with following sequence:
1) drawing the parallel bending lines (layer LaserCut on attached test file)
2) drawing support lines where the laser has to interrupt (Layer: GapPosition)
3) place breakout gaps on the crossings → if I undo misplaced gap, then line sometimes disappear

Attached test file can be used to reproduce the behavior:
1) place a breakout gap (size 2) on pos 1 and on pos 2.
2) undo 2nd breakout cmd.
⇒ gap will not be closed, but line disappear. Reopening saved file will show line is still there.

Closed by  andrew
23.05.2025 19:59
Reason for closing:  Fixed
CVH commented on 11.05.2025 16:39

Hi,

I can replicate your actions even in an older installation (3.27.6).
Typically when the removed segment is at the start of the entity.
Limited to Line segments, the tool acts weird on Arc segments IMHO.
I see that as another bug.

Break out Gap (D3) is intended to chop an indicated entity in 3 parts removing the second.
Hence the shortcut: 'D' from divide and 3 from into 3 parts.
Leaving a gap of the given size on the Options Toolbar.
An auxiliary circle indicates how much is going to be removed.
This circle is always centered on the entity in question.

What you do is using it at an ending of a Line segment.
Where a vertical touches a horizontal.
The gap is then between nothing and what remains.

On Undo we expect the action to be counteracted.
Removing the 2 remaining parts and return the whole entity like before.
Untrue when the center of the gap coincided with the start point.


You are better off with using a better suited tool.
The intention is to shorten the vertical at its ending.
Then use Lengten/Shorten (LE) by a negative amount.

Where the Cyan lines crosses those in yellow you can use D3.



Its a bug and it is confirmed, although an improper use.
You should address these things on the forum first.

Regards,
CVH

Hi
thank you for your comments and hints. Now I understand my misuse of D3.
By using D3 I got other problems as well, maybe related to my misuse. I cannot reproduce solid but they appear sporadically.
See my attached file the Production/Teile Layer (cyan). Fragments with 0,0 as line start after save/reopen of the file.

In future I will address these topics in forum.
Best regards
Schoggi

CVH commented on 15.05.2025 05:48

"See my attached file the Production/Teile Layer (cyan). Fragments with 0,0 as line start after save/reopen of the file."

I understand what you mean.
And that may shed some light on what is going wrong for Andrew.
I studied the D3 script but can't locate the fault beyond an RTransaction that is later undone.

One of the end vectors became invalid by indicating the start point with D3.
This second intersection was co-linear but not really ON the limited line segment.
Probably also the reason why the line disappears with one invalid end on undo but reappears on reloading.

In an attempt to fix things an invalid vector is stored/reloaded as a null vector.
Resulting in the 222 lines pointing to (0,0).

Still some advice.
D3 breaks up a entity in 2, adding a new entity with a new handle but retaining the original drawing order. Cutting order may be related.
It seems that you break up every fold line one by one ... Why not create 2 and copy those across. Or can it be that the lines with invalid ends are copied too?
Handles and drawing orders in this file seem to be mostly at random.

Regards,
CVH

"It seems that you break up every fold line one by one ... Why not create 2 and copy those across. Or can it be that the lines with invalid ends are copied too?"

This is how I do it:

  1. make 2 parallel lines
  2. produce the gaps
  3. copy them with move (multiple) over the bending area (quite sure including the fragments)
  4. mirror them in case the object is symmetric and has same bending area on opposite side.

See attached dxf: Select on left (original) side the area with the mouse, you may see a fragment on the horizontal line, which is the (0,0) line after mirroring to the right.

I assume I copy the fragements produced by misuse of D3 multiple times and mirror them.
⇒ this may lead to: "Handles and drawing orders in this file seem to be mostly at random"
The random result I see when the Lasercutter is in action: Original with copied lines is cut in order, mirrored lines are cut randomly
See video : Some seconds laser on original side in order, then the random mirrored lines

Regards
Schoggi

(related to " FS#2666  - Mirroring produces Objects with unsorted handles. Causes ineffective laser cut")

CVH commented on 20.05.2025 04:49

Robert,

In  FS#2672  I documented the odd behavior for Arc segments.
That doesn't suffer from disappearing on undo because there are always 2 valid results.
Valid but not always as expected ...

Under the second part is explained what happens for a Line entity.
The original Line entity is modified to the first part.
A new entity is created for the second part.
In your case the first part is nothing, or better, an invalid Line entity.

The modification without conversion is a library function that sets a new shape.
And then recasts the entity to the document to apply the change.
Undoing this modification seems to fail.

I also discovered that D3 was a user contribution.
See related forum reply. Also see the copyright notice.
I usually share my contributions more freely. ;-)

Regards,
CVH

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing