[Excellon] Non-circular hole support
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:
View in gerbview:
View in Flatcam (see the hole in flatcam is no longer oval, but circular):
Comments (21)
-
repo owner -
reporter - edited description
- attached Bottom.gbr
- attached drills.drl
-
repo owner As of version 8.3, FlatCAM only supports round holes in Excellon. I will leave this issue open as a feature request.
-
reporter Ok. Thanks!!
-
repo owner - marked as trivial
- changed title to [Excellon] Non-circular hole support
- marked as enhancement
-
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!
-
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.
-
repo owner Since this can be accomplished by the method described by @djowen41 , does anyone care about this issue any more?
-
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.
-
repo owner - changed status to closed
- edited description
-
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
-
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.
-
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.
-
- attached EHM_11.zip
Version with tools' change support - download the latest zip file, previous one is not able to stop / restart spindle during tool change.
-
@josef It would be very helpful if your tool had a tool diameter setting
-
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).
-
I have a pull request to add initial support for non circular holes :
-
cool
-
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.
-
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.
-
@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).
- Log in to comment
Please edit you issue description to include screenshots of both FlatCAM and Gerbv, and all the involved source files.