I use LibreCad to provide dxf files to a CAM package to produce GCode files for use on a mill.
A recent closed pocket was found to have very minor errors in the joining of tangents to curves.
Errors like 0.001 mm.
There is a suspicion that the errors are the result of numerous edits, copy, paste, mirror, move etc.
These errors may (?) have contributed to the mill refusing to run the GCode.
I am still trying to sort that out.
Are there any packages or external programs that are recommended to clean up LC drawings ?
Or list the problems ?
I know this problem from my work, not only with LibreCAD, but with proprietary CAD/CAM software too.
In LibreCAD we have no special tool for this. Iirc, there are feature requests addressing this, because this is a problem for LibreCAD's Hatch tool too.
I know cases, when accuracy and rounding errors of the CPU or software cause this.
But mostly, as you already mentioned, multiple iterations and modifications of the drawing cause this.
What I do in LibreCAD to find gaps in a contour, is to use the Polyline tool.
The tool named JOIN in other CAD software is Create Polyline from Existing Segments in LibreCAD.
The character of a polyline is, that it is stored in vertices. This ensures, that each segment, lines and circular arcs, are exactly connected.
When the polyline tool hits one of these gaps, it stops creation at this point.
If the polyline is only a part of the contour, there are at least two gaps, one in the starting point and on in the ending.
But when the polyline contains the whole pocket circumference, there is only a chance for one gap in the start/end points.
To check this, the List plugin helps, it shows the vertices and the first and last one must be identical for a closed contour.
When the CAM software don't like polylines, you can simply revert this with the Explode tool.
Thanks again, I was concerned that I had failed to discover the obvious tool.
All the advice will be followed.
My next step was to investigate the uses of polylines.
In the CAM, the shape is always converted into a polyline to enable a closed loop GCode sequence to be produced.
The default join tolerance followed to date is 0.01 mm, which joins up the 0.001 mm errors (without removing them), and writes GCode following the errors.
I should note that LinuxCNC is not to blame here, it is my poor drawing.
This whole episode started when I began investigating cutter compensation on the fly in the mill.
If I instruct CamBam with the correct tool diameter, it will either highlight a problem, or generate a GCode file that is always acceptable to LinuxCNC.