Enhanced excellon drilling

Issue #260 new
Emil created an issue

I have added multiple pass drilling which permits increasing the drilling feedrate: The CNC machine lowers on top of the surface at full speed, drills part of the hole then lifts at full speed to the safe distance clearing the debris followed by another drill cycle at a lower depth until the entire hole is finished.

I have also improved the order in which the holes are drilled. After the first hole for a specific tool is drilled the closest one is chosen (based on the euclidean distance). It's not the best algorithm because when few holes remain the machine can still travel a long way but it is a major improvement over the current status or drilling in a random order.

I have corrected the unit and values for dwell time. The format G4 Pxxx stands for miliseconds rather than seconds.

Comments (1)

  1. Marius Stanciu

    Emil,

    Thank you for trying to help FlatCAM community !!! But when proposing changes try to make a pull request and the owner (Juan) may approve it or not. A diff might be lost in the posts, a pull request needs to be evaluated.

    A few clarifications.

    The Excellon travel path optimization it was already discussed.

    First was suggested usage of the Travelling Salesman Algorithm. Which brought some improvement but not much.

    Second I implemented (because Juan seemed to agree that we need this feature) something already used in FlatCAM for the Gerber files and I mean an optimization based on Rtree.

    After making a check on the difference in the traveled distance, I saw that on files already optimized (some EDA software optimize the drill location upon Excellon file generation, like Altium or Eagle) sometimes those optimizations made it worse.

    Finally, I used the Google OR tools algorithms which worked great. Great results in any situation. I already added them to my fork of FlatCAM and I made also a pull request here for this feature. The disadvantage is that Google OR tools are made only in x64 flavor so you'll need a X64 OS.

    Which after all is not bad since Python 3.6 + x64 packages double the performance of FlatCAM (Gerber loading etc).

    About drilling in multiple steps I don't know ... I don't see it using it and there was somebody around here sometime ago suggesting the same and if I remember correctly Juan didn't approved it.

  2. Log in to comment