[Excellon] Non-circular hole support

Issue #121 closed
Abdullah Tahiri created an issue

I use KiCAD as EDA. I have one component having a footprint with a pad of type thru-hole but with an oval shaped hole. The generated Excellon shows an oval hole in gerbview. The hole is imported as a circular shaped hole instead of an oval shaped hole when loading that Excellon file in Flatcam.

The version is just the latest on github today (I have just pull-ed from master).

In kicad's pcbnew:

Flatcam_KiCAD_pcbnew_screenshot.png

View in gerbview:

Flatcam_KiCAD_gerbview_screenshot.png

View in Flatcam (see the hole in flatcam is no longer oval, but circular):

Flatcam_Flatcam_screenshot.png

Comments (21)

  1. Juan Pablo Caram repo owner

    Please edit you issue description to include screenshots of both FlatCAM and Gerbv, and all the involved source files.

  2. Juan Pablo Caram repo owner

    As of version 8.3, FlatCAM only supports round holes in Excellon. I will leave this issue open as a feature request.

  3. Mark Alex

    Hi there! As this topic was not addressed within the the last year and i just stumbled across the very same problem: Are there any news about this? :) I would really like to easily add DC power jack oval-holes via milling on my boards!

  4. Dylan Owen

    Hi,

    Not sure if this helps but the workaround I uses is to make a Gerber off the whole pattern and then invert it. Once you have created the geometry object from the inverted Gerber edit the geometry to remove the path around the outside of the board

    To remove the outside path: 1. Edit geometry 2. Select the geometry and hit the cut path tool 3. Select and delete the outer oath to prevent the board being cut out. Note this must be done as there is no control over which order the cuts are made in and invariably the outer profile will cut before all the internal routing is complete.

  5. Juan Pablo Caram repo owner

    Since this can be accomplished by the method described by @djowen41 , does anyone care about this issue any more?

  6. Dylan Owen

    I have never delved into the inner workings of FlatCAM so I have no idea of the level of complexity involved in generating the visual geometry etc. I also suspect my level of programming skill is not up to the mark to start working on it.

    My personal feeling is tat in the interest of completeness it would be nice to see FlatCAM support nc slots. However, at this point I don't have the time (and possibly skill) to commit to its development. If the effort of the community is more need in developing other area then it should be spent there.

    Interpretation of the NC slots is not that difficult. I wrote a visual C application that allows users to select both a standard drill file and a slots file and convert directly to gcode. Its far from bomb proof in that it doesn't offer a lot of exception handling. I have tested only with the output from Altium but if people are interested I am happy to share the code.

    If I ever learn to programme properly perhaps I will return and offer to attempt to develop this feature.

    Conclusion = close the issue for now.

  7. MikeM

    The method that Dylen Owen proposed assumes that Gerber file has the slots included in gerber pcb. But KiCad doesn't include the drills and slots in PCB paths. So this method doesn't work. I thing covering this issue would be very valuable. Looking for a solution I've found that there are more people finding this to be a problem. For example https://muut.com/i/flatcam/usage:milling-hole-slots

  8. Adam Coddington

    I'm not sure if this'll be helpful for you, @mrmimo, but what I've tried for solving this problem was selecting Kicad's "Gerber X2" drill file rather than generating the usual Excellon format file.

    From there, I just pretend like I'm doing "Isolation Routing", but use a couple tricks:

    • Enter the negative of the size of the milling bit you'll be using as your tool size. So if you're milling out holes with a 0.5mm bit, enter "-0.5".
    • Update your milling depth to something deep enough to make it through the whole board, and adjust your feed speed and tool size to its actual size.

    I think that'll get you there, but this is just a thing I've been experimenting with, so I'd love to hear how it works for you.

  9. Josef

    Hi, as the solution of this problem still doesn't exist in FlatCAM, I wrote a piece of code in VisualStudio to generate G-code from excellon file. I attached the solution to this discussion - if you have some problems, let me know, please.

  10. Josef

    Version with tools' change support - download the latest zip file, previous one is not able to stop / restart spindle during tool change.

  11. Josef

    The concept of the tool is very simple ... you have to select tool diameter corresponding to shorter dimension of non-circular hole. You can see the right diameter during processing (in the brackets before M01 code).

  12. mgix

    Pull request: https://bitbucket.org/jpcgt/flatcam/pull-requests/123/initial-support-for-long-holes-files-issue/diff

    has been updated to add support for "true" long holes.

    There is now two modes for log holes:

    • sampled mode, where a long hole is replaced by many round holes. This works OK when holes are drilled (not very fast, but better than nothing).
    • "true" mode, where an actual elongated capsule-shaped polygon is created. This works much better when holes are milled (but not at all when holes are drilled).

    The flag for sampled vs. "true" hasn't been exported to the GUI yet. The flag is in camlib.py and is called "long_holes_as_holes"

    BTW: how does one re-open an issue on bitbucket?

    I'd like to re-open this one if possible.

  13. Marius Stanciu

    Hi @mgix , Nice work, I will try to port it to my fork of FlatCAM, it's something that I've been looking to implement but in the summer I'm very busy (work and then vacation) so I did not had the time. Thank you for implementing this.

    One question: have you tried the drill method that you've implemented for lower diameters of slots? I mean if you have a slot with diameter of 0.6mm that will require multiple overlapped drills with a carbide drill bit with let's say 0.6mm diameter (or less). Will it work without braking the drill bit due of slight deflection that is always there?

    For milling the slot, I haven't checked your code, but I guess it will need milling in multiple steps (progressive depth) otherwise the milling bit (for lower diameters) will brake (rule: don't enter into material more than half the diameter of the tool).

    Your code also will require some adjustments, in the drill table the slot should be marked as such and counted as only one item for each slot when making the total. Now, because we have multiple 'items': drills and slots, if you want to have an evidence of drills ( taking in consideration the drills for each slot) then a separate column would be desirable for that.

    Only Juan can reopen the issue.

  14. Marius Stanciu

    @mgix, I've added support in my fork of FlatCAM for G85 type of routing (I know that is supposed to be "drilled" but it's better routed) based on your work (Thanks!) and I've also added support for Excellon routing (G00 G01).

  15. Log in to comment