Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Markus, I will add the patch and give it a try. How and when do your latest gcode patches get merged into the main branch? Thanks, Dave On 11/29/2010 09:25 AM, Markus Hitter wrote: Am 16.11.2010 um 22:51 schrieb d...@umich.edu: However, the gcode export always crashes if I try to define the outline with a rectangle. It crashed also when the outline layer contains only a single vertical or horizontal line. Fixed in a new patchset: http://sourceforge.net/tracker/index.php?func=detail&aid=3100354&group_id=73743&atid=538813 Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Am 16.11.2010 um 22:51 schrieb d...@umich.edu: However, the gcode export always crashes if I try to define the outline with a rectangle. It crashed also when the outline layer contains only a single vertical or horizontal line. Fixed in a new patchset: http://sourceforge.net/tracker/index.php? func=detail&aid=3100354&group_id=73743&atid=538813 Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Markus, The outline layer is working fine now, when I draw a rectangle with lines - even a sloppy rectangle where the lines have kinks, or an unclosed rectangle. The exporter adds the tool offset as well. Very nice! However, the gcode export always crashes if I try to define the outline with a rectangle. I have not been able to replicate my earlier problem. I must have really made a big mistake. Thanks, Dave On 11/15/2010 09:44 AM, Markus Hitter wrote: Am 15.11.2010 um 06:55 schrieb d...@umich.edu: I tried to draw an outline in an 'outline' layer and 'pcb' just turned the trace lines into an isolation routing outline. Ouch. This shouldn't happen. Did you apply all 24 patches? If yes, could you send me (not to the list) the .pcb file showing this behaviour ? I must not be getting your explanation. Do I use a rectangle in the 'outline' layer to define the outline? Exactly. A rectangle, or any number of lines drawing another area. Milled is always a rectangle, though. Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Am 15.11.2010 um 18:06 schrieb Stephan Boettcher: Markus Hitter writes: Exactly. A rectangle, or any number of lines drawing another area. Milled is always a rectangle, though. Hmm, why? The outline layer is especially useful for boards that are not rectangular shaped. As I explained earlier, simply because nobody implemented it yet. The spot in the code is even marked with a comment. Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Markus Hitter writes: > Exactly. A rectangle, or any number of lines drawing another > area. Milled is always a rectangle, though. Hmm, why? The outline layer is especially useful for boards that are not rectangular shaped. -- Stephan ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Am 15.11.2010 um 06:55 schrieb d...@umich.edu: I tried to draw an outline in an 'outline' layer and 'pcb' just turned the trace lines into an isolation routing outline. Ouch. This shouldn't happen. Did you apply all 24 patches? If yes, could you send me (not to the list) the .pcb file showing this behaviour ? I must not be getting your explanation. Do I use a rectangle in the 'outline' layer to define the outline? Exactly. A rectangle, or any number of lines drawing another area. Milled is always a rectangle, though. Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Markus, Thanks for the note. On 11/14/2010 05:55 AM, Markus Hitter wrote: Am 14.11.2010 um 10:38 schrieb d...@umich.edu: I have figured out how to add your 24 patches with git, I recompiled 'pcb', and I am trying out the new version. That's great. Just a second before I sent further comments :-) No problem. I learned a lot about git, while trying to get your patches working. Now I am going to use git on a dozen other personal projects I have going. So, thanks for writing those juicy patches that forced me to RTFM: http://progit.org/book/ The explanation of 'git am' in there was enough to get me back in business. Adding a tool table might be cool. As far as I understand, this is done in pcb on a different level: http://pcb.gpleda.org/pcb-cvs/pcb.html#Vendor-drill-mapping Didn't test it yet, though. Vendor drill mapping is a great feature. I did not know it was there. I will definitely use it, now that I know about it. A tool table would contain a lot more information, though, and have a very different purpose than "quantizing" the holes in a pcb design. An EMC2 .tbl file in "mill format" contains a table with a "Pocket" column, and "FMS" column (the T numbers which coincide with a user's machine), a "TLO" column representing tool length offset, a "Diameter" column, and a "Comment" column - i.e. "1/16 end mill" If you are interested, check out section 9.4 of the EMC2 User Manual: http://linuxcnc.org/docs/EMC2_User_Manual.pdf http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?EmcKnowledgeBase Having said this, The drill grouping and comments in the 'pcb' generated g-code make it very easy for a user to find the drill bit/end mill changes and add the M06/Txx lines for their machine by hand. In regards to cutting the board outline: What I am noticing is that the global board dimensions set in Preferences get turned into a xxx-outline.cnc file. Correct? If there is no "outline" layer, yes. I think there should be an "outline" layer in the main window (along with the "solder", "component", and other layers in 'pcb') where you can draw your outline with a trace line. Sure, go ahead and create it. You create layers somewhere in preferences. I hope the exporter's behaviour is correct for both, adding the outline layer to the component side as well as adding it to the solder side. In the later case, general milling is mirrored, just like isolation milling. Not that mirroring an x-y-aligned rectangle changes anything, but with some luck somebody will find the time to implement milling of complex outlines one day. I agree. Milling of complex outlines would be a great feature. I will have to play with this more to figure out how it currently works. I tried to draw an outline in an 'outline' layer and 'pcb' just turned the trace lines into an isolation routing outline. I must not be getting your explanation. Do I use a rectangle in the 'outline' layer to define the outline? Also, a box to input the feed rate (F) would be nice. Yepp, that's on the to do list. Five feedrates: isolation milling approach, isolation milling work, drilling approach, general milling approach, general milling work. Many tools prefer different feedrates for vertical vs. horizontal movements. Great! Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Am 14.11.2010 um 10:38 schrieb d...@umich.edu: I have figured out how to add your 24 patches with git, I recompiled 'pcb', and I am trying out the new version. That's great. Just a second before I sent further comments :-) Adding a tool table might be cool. As far as I understand, this is done in pcb on a different level: http://pcb.gpleda.org/pcb-cvs/pcb.html#Vendor-drill-mapping Didn't test it yet, though. In regards to cutting the board outline: What I am noticing is that the global board dimensions set in Preferences get turned into a xxx-outline.cnc file. Correct? If there is no "outline" layer, yes. I think there should be an "outline" layer in the main window (along with the "solder", "component", and other layers in 'pcb') where you can draw your outline with a trace line. Sure, go ahead and create it. You create layers somewhere in preferences. I hope the exporter's behaviour is correct for both, adding the outline layer to the component side as well as adding it to the solder side. In the later case, general milling is mirrored, just like isolation milling. Not that mirroring an x-y-aligned rectangle changes anything, but with some luck somebody will find the time to implement milling of complex outlines one day. Also, a box to input the feed rate (F) would be nice. Yepp, that's on the to do list. Five feedrates: isolation milling approach, isolation milling work, drilling approach, general milling approach, general milling work. Many tools prefer different feedrates for vertical vs. horizontal movements. Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Am 13.11.2010 um 11:43 schrieb d...@umich.edu: I will keep "R-ing the F-ing M's" to try and figure out what "git am < 00xxx.patch" means. It's a command to be typed in the command line. Replace the "xxx" with the corresponding name of the actual patch file, of course. To apply all patches without getting thick fingers, here's a small script, also to be typed in a terminal/bash shell: for F in 00*.patch; do git am < "$F" done Before doing so, you have to download all of them, of course. Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Markus, I have figured out how to add your 24 patches with git, I recompiled 'pcb', and I am trying out the new version. The grouping of the drill operation for different drill sizes is great. Adding a tool table might be cool. There could be a field in the Preferences window, where the user enters the path to their tool table. That way tool change g-code (M06) could be easily added, with a set of Tool Function (T) numbers and bit diameters that match the designer's machine. I would again suggest copying emc2's .tbl file format in case you or another 'pcb' programmer might want to create a window where people can read, edit, and write their emc2 tool table directly from 'pcb'. If someone is using another nc program, the 'pcb' tool table just gets stored in the emc2 format. Here is a sample of the sim.tlb file when emc2 is first installed: ... T1 P1 D0.125000 Z+0.511000 ;1/8 end mill T2 P2 D0.062500 Z+0.10 ;1/16 end mill T3 P3 D0.201000 Z+1.273000 ;#7 tap drill T9 P9 Z+0.10 ;big tool number ... In regards to cutting the board outline: What I am noticing is that the global board dimensions set in Preferences get turned into a xxx-outline.cnc file. Correct? I think there should be an "outline" layer in the main window (along with the "solder", "component", and other layers in 'pcb') where you can draw your outline with a trace line. This way the pcb designer can create complex or odd shaped board outlines; or, they can add breaks in the outline traces, which will end up as tabs that get easily cut and filed smooth when the board is done. They can also deal with offsetting by first setting the trace line to the width of their milling bit and then drawing the line so that its edge just touches their ground plane rectangle, for example. Also, a box to input the feed rate (F) would be nice. Thanks for the great work! Dave On 11/12/2010 03:15 AM, Markus Hitter wrote: Am 12.11.2010 um 01:58 schrieb d...@umich.edu: Markus, That is good news. Could someone tell be how to add these files to the current pcb-20100929 source download and recompile? Use git am < 00xxx.patch Recompilation is done as before, not even a configure run is needed. On page 1 of the LPKF brochure (http://www.lpkfusa.com/datasheets/prototyping/rp_brochure.pdf ), it shows a screenshot of their pcb artwork software. The thick grey traces are used to route the border of the part. I noticed the breaks in the trace in order to create attachment tabs, which you can see in the picture to the right of the mill making some boards. You could have a field in the g-code export window where you can choose a layer from pcb, which contains the traces for the border routing operation. The user can customize with a simple series of thick (or thin) traces exactly what shape they want the pcb border to be, i.e. with or without tabs, what diameter endmill to use, etc. This layer is there already, it's the one named "outline", all lower case. What isn't there is code to calculate the offset of the lines and polygons on this layer, as I couldn't find existing functions in the remaining pcb source code and I lack the resources to write it myself. So, feel free to add this. The 0023 patch roughly shows a good place to start. Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Markus, I cloned and compiled the latest pcb.git version. The program runs, but I don't think the latest g-code patches are in there. Could you elaborate a little more on what I have to do to get the latest g-code patches in my pcb source file? I will keep "R-ing the F-ing M's" to try and figure out what "git am < 00xxx.patch" means. Thanks, Dave On 11/12/2010 03:15 AM, Markus Hitter wrote: Am 12.11.2010 um 01:58 schrieb d...@umich.edu: Markus, That is good news. Could someone tell be how to add these files to the current pcb-20100929 source download and recompile? Use git am < 00xxx.patch Recompilation is done as before, not even a configure run is needed. ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Am 12.11.2010 um 01:58 schrieb d...@umich.edu: Markus, That is good news. Could someone tell be how to add these files to the current pcb-20100929 source download and recompile? Use git am < 00xxx.patch Recompilation is done as before, not even a configure run is needed. On page 1 of the LPKF brochure (http://www.lpkfusa.com/datasheets/ prototyping/rp_brochure.pdf ), it shows a screenshot of their pcb artwork software. The thick grey traces are used to route the border of the part. I noticed the breaks in the trace in order to create attachment tabs, which you can see in the picture to the right of the mill making some boards. You could have a field in the g-code export window where you can choose a layer from pcb, which contains the traces for the border routing operation. The user can customize with a simple series of thick (or thin) traces exactly what shape they want the pcb border to be, i.e. with or without tabs, what diameter endmill to use, etc. This layer is there already, it's the one named "outline", all lower case. What isn't there is code to calculate the offset of the lines and polygons on this layer, as I couldn't find existing functions in the remaining pcb source code and I lack the resources to write it myself. So, feel free to add this. The 0023 patch roughly shows a good place to start. Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
At 05:31 PM 11/11/2010, you wrote: Alberto, Thanks for the comments. On 11/11/2010 04:24 PM, Alberto Maccioni wrote: With a dxf file, in a CAM program, you can program your fine line cutting with a tiny v bit, then program a>pocket operation with a larger bit to remove the remaining copper. Are you sure you want to do this? Is it for aesthetic reasons or because of better isolation? Besides thrashing large amounts of bits and requiring hours of work it won't make your pcb's work better; if you need good isolation it's better to insert several traces between the ones you want to isolate. I would like to remove floating copper for RF and static electricity reasons. The 'pcb' program thinks that floating copper is enough of an issue to have code to detect and remove it. I have seen blogs where guys take tweezers and rip the floating copper off the boards they have isolation milled. I would like to have the cnc machine do it. I agree that it will destroy lots of bits, though. It is a trade-off between disposable etching chemicals and disposable bits. My understanding is that the bits tend to break just at the tip of the conical bit. The broken bits can still be used for removing the floating copper perhaps. This may not apply to your machine as this was a very old machine I saw being used. Rick ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Markus, That is good news. Could someone tell be how to add these files to the current pcb-20100929 source download and recompile? Otherwise, I will have to wait on the next source snapshot, which is fine. I would love to see the latest patches, though. I do not know how your '0023-board outline milling' patch works, but I would like to share a thought: On page 1 of the LPKF brochure (http://www.lpkfusa.com/datasheets/prototyping/rp_brochure.pdf ), it shows a screenshot of their pcb artwork software. The thick grey traces are used to route the border of the part. I noticed the breaks in the trace in order to create attachment tabs, which you can see in the picture to the right of the mill making some boards. You could have a field in the g-code export window where you can choose a layer from pcb, which contains the traces for the border routing operation. The user can customize with a simple series of thick (or thin) traces exactly what shape they want the pcb border to be, i.e. with or without tabs, what diameter endmill to use, etc. Thanks, Dave On 11/11/2010 07:14 PM, Markus Hitter wrote: Am 11.11.2010 um 20:28 schrieb d...@umich.edu: The drill xxx.gcode.drill.cnc file goes through the board drilling all of the holes without differentiating the different drill sizes (found in the xxx.fab.gbr file). And, there are no tool change g-codes for changing between drill sizes. You have an old version of the G-code exporter. Ths sorting is done already, just the T command is missing. See: http://sourceforge.net/tracker/index.php?func=detail&aid=3100354&group_id=73743&atid=538813 That said, I plan to mill bigger holes with the mill bit: drill with a 0.8 mm bit, do an outline mill with an 1.0 mm bit and everything is appropriate with just one tool change. Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Am 11.11.2010 um 20:28 schrieb d...@umich.edu: The drill xxx.gcode.drill.cnc file goes through the board drilling all of the holes without differentiating the different drill sizes (found in the xxx.fab.gbr file). And, there are no tool change g- codes for changing between drill sizes. You have an old version of the G-code exporter. Ths sorting is done already, just the T command is missing. See: http://sourceforge.net/tracker/index.php? func=detail&aid=3100354&group_id=73743&atid=538813 That said, I plan to mill bigger holes with the mill bit: drill with a 0.8 mm bit, do an outline mill with an 1.0 mm bit and everything is appropriate with just one tool change. Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
On Fri, Nov 12, 2010 at 9:31 AM, wrote: > I think the 2000 dpi output is great! > > You coding wizards can do in a minute what would take me a month, but I > would like to try writing a g-code to dxf conversion program in C. Thanks, > Stephen Ecob for the jump start! > > Stephen, > Some of the function calls seem to be missing from your dxf.c program, like > DxfStart(); and DxfFinish();. > Do you feel like posting those, also? Oh yes, you'll need those! I'll send them to you off list. Stephen ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Alberto, Thanks for the comments. On 11/11/2010 04:24 PM, Alberto Maccioni wrote: All this algorithm was done by Alberto Maccioni and some research brought up the statement, this is the only reliable way for offseting all the traces. Actually the algorithm is not mine, it comes from potrace, a tracing program by Peter Selinger (as you can see in the source code copyright notice). Tracing involves a fair amount of mathematical analyses and his code gives excellent results with equally great efficiency. I just took the algorithm, stopped the tracing process before bezier curves extraction, and adapted it to the png exporter. HeeksCNC algorithm in comparison is extremely primitive and naive, and it doesn't even work in many conditions, for example very sharp edges cause it to crash completely. For me, HeeksCAD/CNC crashes on everything but the most simple gerber artwork files. They have a ways to go on the conversion. Maybe Dan Heeks could take some code from the (sweet!) pcb g-code exporter. With a dxf file, in a CAM program, you can program your fine line cutting with a tiny v bit, then program a>pocket operation with a larger bit to remove the remaining copper. Are you sure you want to do this? Is it for aesthetic reasons or because of better isolation? Besides thrashing large amounts of bits and requiring hours of work it won't make your pcb's work better; if you need good isolation it's better to insert several traces between the ones you want to isolate. I would like to remove floating copper for RF and static electricity reasons. The 'pcb' program thinks that floating copper is enough of an issue to have code to detect and remove it. I have seen blogs where guys take tweezers and rip the floating copper off the boards they have isolation milled. I would like to have the cnc machine do it. I agree that it will destroy lots of bits, though. It is a trade-off between disposable etching chemicals and disposable bits. A company called LPKF make very nice (and expensive I am sure) pcb mills, bundled with software that pockets out all of the unwanted copper: http://www.lpkfusa.com/protomat/s-series.htm http://www.lpkfusa.com/datasheets/prototyping/rp_brochure.pdf They are beautiful machines that make beautiful pcb's. I am going to make a very rigid, accurate pcb milling machine out of epoxy-granite. Here is my build blog (with pics) on a cnc lathe that is part E-G: http://www.cnczone.com/forums/vertical_mill_lathe_project_log/42308-diy_benchtop_lathe_project-2.html Have you thought about programming g-code arcs (G02, G03) for them? HeeksCAD/CNC does this Once your resolution is high enough there's no difference between a line path and an arc. Detecting arcs would be extremely complicated; you can't describe a generic curve with arcs, so the original tracing algorithm uses bezier curves; you would need to check when a series of beziers are close enough to an arc. Does this make your end product better? Not at all, so it's not even worth to try, in my opinion. A dxf export could however be useful. I think the 2000 dpi output is great! You coding wizards can do in a minute what would take me a month, but I would like to try writing a g-code to dxf conversion program in C. Thanks, Stephen Ecob for the jump start! Stephen, Some of the function calls seem to be missing from your dxf.c program, like DxfStart(); and DxfFinish();. Do you feel like posting those, also? The drill xxx.gcode.drill.cnc file goes through the board drilling all of the holes without differentiating the>different drill sizes (found in the xxx.fab.gbr file). And, there are no tool change g-codes for changing>between drill sizes. The drill file generation is being improved with separation between different sizes and better comments; if you have in mind a good sequence of commands for switching between drill bits please let us know. I will organize my thoughts on how tool changing might be implemented in 'pcb' g-code export. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
> All this algorithm was done by Alberto Maccioni and some research brought up > the statement, this is the only reliable way for offseting all the traces. Actually the algorithm is not mine, it comes from potrace, a tracing program by Peter Selinger (as you can see in the source code copyright notice). Tracing involves a fair amount of mathematical analyses and his code gives excellent results with equally great efficiency. I just took the algorithm, stopped the tracing process before bezier curves extraction, and adapted it to the png exporter. HeeksCNC algorithm in comparison is extremely primitive and naive, and it doesn't even work in many conditions, for example very sharp edges cause it to crash completely. >With a dxf file, in a CAM program, you can program your fine line cutting with >a tiny v bit, then program a >pocket operation with a larger bit to remove the >remaining copper. Are you sure you want to do this? Is it for aesthetic reasons or because of better isolation? Besides thrashing large amounts of bits and requiring hours of work it won't make your pcb's work better; if you need good isolation it's better to insert several traces between the ones you want to isolate. >Have you thought about programming g-code arcs (G02, G03) for them? >HeeksCAD/CNC does this Once your resolution is high enough there's no difference between a line path and an arc. Detecting arcs would be extremely complicated; you can't describe a generic curve with arcs, so the original tracing algorithm uses bezier curves; you would need to check when a series of beziers are close enough to an arc. Does this make your end product better? Not at all, so it's not even worth to try, in my opinion. A dxf export could however be useful. >The drill xxx.gcode.drill.cnc file goes through the board drilling all of the >holes without differentiating the >different drill sizes (found in the >xxx.fab.gbr file). And, there are no tool change g-codes for changing >between >drill sizes. The drill file generation is being improved with separation between different sizes and better comments; if you have in mind a good sequence of commands for switching between drill bits please let us know. Best regards, Alberto ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Markus, Thanks for the reply. I tried the 'gEDA - Inkscape - pstoedit - dxf' route and was not happy with the round-off errors that Inkscape introduced into the image. In 'pcb', I tried a dpi of 2000 in the g-code exporter and the resulting pcb image is beautiful! FOSS pcb milling has arrived! With a dxf file, in a CAM program, you can program your fine line cutting with a tiny v bit, then program a pocket operation with a larger bit to remove the remaining copper. I have started trying to find the specifications for the dxf file format on the web to study. Here are my initial thoughts on adding a dxf exporter that builds on the pcb g-code exporter: You could have a process that first produces g-code with a mill bit of 0.000 diameter and 0.000 depth of cut. Take out all of the G0-rapid positioning code and the G1 code with Z information. Then, take the g-code line plots and do a (fairly simple, I think) conversion of all the line plots to dxf format. Save the file. Now you have a dxf with all the lines at 0 on the Z axis. What do you think? Other thoughts on the g-code exporter (which I am sure you have thought about, and are in the works); The drill xxx.gcode.drill.cnc file goes through the board drilling all of the holes without differentiating the different drill sizes (found in the xxx.fab.gbr file). And, there are no tool change g-codes for changing between drill sizes. I think it is important to at least organize the drilling operations by drill size - generate g-code for one drill size, then the next, ext. Also, it would be helpful if the exporter generated some notes in each g-code drilling block specifying which drill size is being drilled. The cnc machinist can find those spots easily and add the tool change codes as needed, by hand. If tool change options are added to the g-code exporter, you would probably want to read and write to a tool table file, so all of the tool numbers match the tool table for a particular machine. You could possibly code it to directly read EMC2's tool table file. (example location: ~/emc2/configs/sim/sim.tbl). The emc2 users manual explains the format. Thanks, Dave On 11/11/2010 04:28 AM, Markus Hitter wrote: Am 11.11.2010 um 05:11 schrieb d...@umich.edu: I like that the gound plane outline is machined. The circular pads could use some more lines to round them out. Have you thought about programming g-code arcs (G02, G03) for them? HeeksCAD/CNC does this (see below). Using G02/G03 isn't trivial, as the isolation milling paths aren't calculated by offseting all the existing lines and pads by some geometric calculation, but by drawing all the traces, widened by the tool radius, to a pixel-based intermediate image, then figuring the required paths from there. All this algorithm was done by Alberto Maccioni and some research brought up the statement, this is the only reliable way for offseting all the traces. Doing exact offsets is said to fail in edge cases. If you want more precision, you can raise the accuracy, which is set to 600 dpi = 1.7 mil by default. Having a dxf file allows people to tweak all of the milling variables (depths of cut, jogs, feed rates, number of passes, pocketing, drilling, etc) in a CAM program, rather than go through the g-code by hand. Except for multiple passes and clearing out pockets completely, this functionality exists already. Feed rates have to be hand-edited in the resulting file currently - a single spot near the top of the file - but this is a subject to change soon. A few tests with Eagle's G-code exporter using multiple passes show results worse than with a single pass, but your mileage may vary here. You need a really stiff and precise machine for such things, as the typical engraving tips are more pressing the copper aside than really cutting it. An DXF exporter would be an entirely different exporter and good luck finding an algorithm to connect all the lines and circles together. That said, you can use the PostScript exporter and load that into Inkscape. Create an outline path for all the lines there, stitch everything together and export it to G-code with Inkscape's G-code functionality (an add-on) - and you'll soon be happy with pcb's G-code exporter als any attempt via the DXF route is a lot more work. :-) Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
Am 11.11.2010 um 05:11 schrieb d...@umich.edu: I like that the gound plane outline is machined. The circular pads could use some more lines to round them out. Have you thought about programming g-code arcs (G02, G03) for them? HeeksCAD/CNC does this (see below). Using G02/G03 isn't trivial, as the isolation milling paths aren't calculated by offseting all the existing lines and pads by some geometric calculation, but by drawing all the traces, widened by the tool radius, to a pixel-based intermediate image, then figuring the required paths from there. All this algorithm was done by Alberto Maccioni and some research brought up the statement, this is the only reliable way for offseting all the traces. Doing exact offsets is said to fail in edge cases. If you want more precision, you can raise the accuracy, which is set to 600 dpi = 1.7 mil by default. Having a dxf file allows people to tweak all of the milling variables (depths of cut, jogs, feed rates, number of passes, pocketing, drilling, etc) in a CAM program, rather than go through the g-code by hand. Except for multiple passes and clearing out pockets completely, this functionality exists already. Feed rates have to be hand-edited in the resulting file currently - a single spot near the top of the file - but this is a subject to change soon. A few tests with Eagle's G-code exporter using multiple passes show results worse than with a single pass, but your mileage may vary here. You need a really stiff and precise machine for such things, as the typical engraving tips are more pressing the copper aside than really cutting it. An DXF exporter would be an entirely different exporter and good luck finding an algorithm to connect all the lines and circles together. That said, you can use the PostScript exporter and load that into Inkscape. Create an outline path for all the lines there, stitch everything together and export it to G-code with Inkscape's G-code functionality (an add-on) - and you'll soon be happy with pcb's G- code exporter als any attempt via the DXF route is a lot more work. :-) Markus - - - - - - - - - - - - - - - - - - - Dipl. Ing. (FH) Markus Hitter http://www.jump-ing.de/ ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
At 2000 dpi the curved traces look great on EMC2/Axis! On 11/10/2010 11:11 PM, d...@umich.edu wrote: The g-code exporter looks great! Right now I am looking at EMC2 simulate the milling of a pcb design!! I like that the gound plane outline is machined. The circular pads could use some more lines to round them out. Have you thought about programming g-code arcs (G02, G03) for them? HeeksCAD/CNC does this (see below). Please, consider a dxf export of the outline so that users can put the artwork into a cam program that can pocket out all of the copper, and make the board look just like the pcb program's artwork. Having a dxf file allows people to tweak all of the milling variables (depths of cut, jogs, feed rates, number of passes, pocketing, drilling, etc) in a CAM program, rather than go through the g-code by hand. Speaking of CAM programs... I want to share with all of you a FOSS program that I am excited about - HeeksCAD/HeeksCNC. It is an integrated CAD/CAM software project started by Dan Heeks. http://code.google.com/p/heekscad/ http://code.google.com/p/heekscnc/ Dan has a great blog where he shows parts he has made with HeeksCAD/CNC: http://heekscnc.blogspot.com/ The current Vol. 5, No. 3, Fall 2010 issue of Digital Machinist Magazine has an article on it. I was able to compile it from source easily on my EMC2-Ubuntu-10.04LTS system. At only 2 years old it has an incredible level of CAD and CAM functionality. I am most interested right now in its 2.5 axis and 3 axis CAM abilities. It freezes, crashes, and runs very slow at times, but heck, its only 2 years old. Several months ago I wrote the gEDA-user list about my attempts to get a dxf outline of gEDA pcb's artwork using FOSS software like inkscape and pstoedit. The goal was to get an outline of all of the traces and pads so that I could pocket route away all of the copper exactly as it looks in gerbv - using a 2.5 axis cam program. HeeksCAD/HeeksCNC has the ability to open .grb files and gives you four conversion choices: Produce trace isolation sketches Produce trace centre-line sketches Produce mirrored trace isolation sketches Produce mirrored centre-line sketches Currently, I am only able to load small .grb files or else HeeksCAD/CNC freezes. The program produces a beautiful smooth outline on the circular pads using 'G03 - Circular interpolation counterclockwise' g-codes. However, the program does not recognize the ground plane clearance outlines. It only gives the outside border of the entire ground plane rectangle. I hope that will come in the future. Please, share your thoughts on this. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
gEDA-user: Comments on pcb's g-code exporter & HeeksCAD/HeeksCNC FOSS program for pcb milling
The g-code exporter looks great! Right now I am looking at EMC2 simulate the milling of a pcb design!! I like that the gound plane outline is machined. The circular pads could use some more lines to round them out. Have you thought about programming g-code arcs (G02, G03) for them? HeeksCAD/CNC does this (see below). Please, consider a dxf export of the outline so that users can put the artwork into a cam program that can pocket out all of the copper, and make the board look just like the pcb program's artwork. Having a dxf file allows people to tweak all of the milling variables (depths of cut, jogs, feed rates, number of passes, pocketing, drilling, etc) in a CAM program, rather than go through the g-code by hand. Speaking of CAM programs... I want to share with all of you a FOSS program that I am excited about - HeeksCAD/HeeksCNC. It is an integrated CAD/CAM software project started by Dan Heeks. http://code.google.com/p/heekscad/ http://code.google.com/p/heekscnc/ Dan has a great blog where he shows parts he has made with HeeksCAD/CNC: http://heekscnc.blogspot.com/ The current Vol. 5, No. 3, Fall 2010 issue of Digital Machinist Magazine has an article on it. I was able to compile it from source easily on my EMC2-Ubuntu-10.04LTS system. At only 2 years old it has an incredible level of CAD and CAM functionality. I am most interested right now in its 2.5 axis and 3 axis CAM abilities. It freezes, crashes, and runs very slow at times, but heck, its only 2 years old. Several months ago I wrote the gEDA-user list about my attempts to get a dxf outline of gEDA pcb's artwork using FOSS software like inkscape and pstoedit. The goal was to get an outline of all of the traces and pads so that I could pocket route away all of the copper exactly as it looks in gerbv - using a 2.5 axis cam program. HeeksCAD/HeeksCNC has the ability to open .grb files and gives you four conversion choices: Produce trace isolation sketches Produce trace centre-line sketches Produce mirrored trace isolation sketches Produce mirrored centre-line sketches Currently, I am only able to load small .grb files or else HeeksCAD/CNC freezes. The program produces a beautiful smooth outline on the circular pads using 'G03 - Circular interpolation counterclockwise' g-codes. However, the program does not recognize the ground plane clearance outlines. It only gives the outside border of the entire ground plane rectangle. I hope that will come in the future. Please, share your thoughts on this. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user