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
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
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
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: Problems compiling PCB Release 20100929
Thanks Colin, That makes a lot of sense. Very clearly explained! I like the idea of making distinctly separate locations for each build of a program. Dave On 11/12/2010 04:01 PM, Colin D Bennett wrote: On Wed, 10 Nov 2010 20:46:12 -0500 d...@umich.edu wrote: P.S. Will my Ubuntu 10.04 system get confused if I install both the Synaptic package of pcb along with the compiled version? You should look at the 'prefix' where pcb is configured for installation. Don't use a prefix of '/usr' since that will (1) stomp on files installed by the .deb version installed by the Ubuntu package manager, and (2) I never, ever install any hand-compiled program in /usr since you will totally lose track of what you have manually installed in that enormous, fairly flat namespace. You can probably use a prefix of /usr/local successfully, and then things will probably be in your PATH by default, (/usr/local/bin comes before /usr/bin in the default Ubuntu path). However, even though /usr/local avoids stomping on managed packages, it is still like a big dumping ground that is very unorganized. Good luck trying to clean up old version of programs installed there... I use the following specific method of organizing manually installed packages. You may prefer to eliminate the VERSION level of hierarchy and use just /opt/pcb as the prefix, but I have found it very useful and not at all cumbersome to allow multiple versions to be installed simultaneously. (1) I install all non-Ubuntu-managed programs into /opt/PACKAGENAME/VERSION. For instance, when building pcb, I use a command like ./configure --prefix=/opt/pcb/20091103 This will create a hierarchy under /opt/pcb/20091103 with 'bin' and 'share' directories. (2) I create a symbolic link to '20091103' at /opt/pcb/current. Then if I have multiple pcb versions installed under /opt/pcb, I can just have /opt/pcb/current/bin in my PATH and the currently selected pcb version will be executed. (3) Put this in your .profile if you often run pcb from the command line: PATH="/opt/pcb/current/bin:$PATH" Otherwise you can add a Gnome/KDE icon to your programs menu or launch bar that runs /opt/pcb/current/bin/pcb. Regards, Colin ___ 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, 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
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
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
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
Re: gEDA-user: Problems compiling PCB Release 20100929
Thanks guys. I built gd-2.0.35RC5 from source with no problems, and then pcb compiled. I also tried 'sudo apt-get build-dep pcb'. I didn't know about the 'build-dep' option. I like that, so I did it and there were four or five programs that got installed. On 11/10/2010 05:59 PM, Peter Clifton wrote: On Wed, 2010-11-10 at 17:16 -0500, d...@umich.edu wrote: Thanks. That got me past the dbus-1 error. Now I am running into this: Since _a_ version of PCB is in the Ubuntu repositories, this can be a quick start to get what you need to build that particular version. Things should not have changed too much in terms of build requirements since then. sudo apt-get build-dep pcb That should help get you started. 'PCB 20100929' runs fine now. Thanks again, Dave P.S. Will my Ubuntu 10.04 system get confused if I install both the Synaptic package of pcb along with the compiled version? ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Problems compiling PCB Release 20100929
On 11/10/2010 03:45 PM, Frank Bergmann wrote: On 10.11.2010 21:36, DJ Delorie wrote: Try ./configure --disable-dbus or try installing package libdbus-1-dev ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user Thanks. That got me past the dbus-1 error. Now I am running into this: ... checking for gdlib-config... no Cannot find gdlib-config. Make sure it is installed and in your PATH. gdlib-config is part of the GD library available from www.boutell.com/gd. This is needed for the png HID. I will look for libgd anyway and maybe you will get lucky. checking for main in -lgd... no configure: error: You have requested gcode, nelma, or png HIDs but -lgd could not be found ... Any thoughts? Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
gEDA-user: Problems compiling PCB Release 20100929
I want to try the latest release of pcb, but I am getting this compile error when I try the './configure' command: checking for DBUS... no configure: error: Cannot find dbus-1 >= 0.61, install it and rerun ./configure Please review the following errors: No package 'dbus-1' found . My OS is Ubuntu 10.04LTS. I looked in the repositories and there is no dbus-1. I have dbus installed. Any thoughts on how to fix this? I am excited to try the new G-code exporter. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Schematic Capture to dxf File - using gEDA, Inkscape, and pstoedit
Bert Timmerman wrote: Hi Dave N6NZ, d...@umich.edu, FWIW, There lives a dxf exporter for pcb in a not yet finished state at: http://github.com/bert/pcb-dxf-hid Maybe something to look at for you guys. I have ample time for further development on this exporter in the foreseeable future, so you may clone/fork as yo see fit. Kind regards, Bert Timmerman. That is good news! From what file format are you starting the conversion? If you start with gerber, other pcb CAD programs could use it. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Schematic Capture to dxf File - using gEDA, Inkscape, and pstoedit
Dave N6NZ wrote: On Jan 21, 2010, at 1:08 PM, d...@umich.edu wrote: If you convert the backmask or the frontmask files either with the 'gEDA/pcb to dxf' route or the 'Gerber to dxf', you can very quickly have your solder paste mask. Almost. There *is* a paste layer, although it isn't very flexible (I have plans for that, too). The paste layer and the mask layer are not the same. The paste layer reflects only surface pads, not through-hole pads. Thanks, Dave. I never noticed the paste layer produced by the gerber or the postscript export. That is a great feature of 'pcb'. You can easily do the 'gEDA, Inkscape, pstoedit' process on the paste layer .gbr or .ps file, and you will have your .dxf of it for laser cutting. Dave N6NZ wrote: I just placed an order for a MakerBot CupCake http://www.makerbot.com/ -- mainly just as a toy to share with my 10 year old daughter, who is both nerdy and arty (her self-chosen free-time activities this past Sunday were: a) drawing with her oil pastels, b) doing pcb layout on a game she is building for herself with my help, c) building cholesterol with her organic chemistry model kit) The CupCake should be an interesting toy. The MakerBot looks really cool. MakerBot, pastel oil painting, building cholesterol molecules, making pcb's - at age 10! I am impressed by your daughter's interests and talents! She is lucky to have you encouraging her. I bet she would be fascinated by what Bathsheba Grossman is doing - the 3d printed sculpture, but also the 3d laser etchings in glass of molecules and galaxies. Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Schematic Capture to dxf File - using gEDA, Inkscape, and pstoedit
Dave N6NZ wrote: On Jan 24, 2010, at 4:43 AM, Bob Paddock wrote: CO2 laser is the wrong wavelength to cut metal. Only a couple percent of the radiation is absorbed. Great for plastics, though, and many other materials. With respect to >PCB etching, one thing I've thought about but haven't yet tried is simply using paint. Apply a thin code of flat black paint as a resist (I'm guessing enamel would work best) >and let the laser ablate the paint where you want to etch. We already use commercial grade pre-photosensitized FR4 laminate, so doing painting and such is not needed. My only concern was that there might be issues of the wave-lengths between the LASER and the laminate being miss-matched, but if the process is actually based on heat then it is a non-issue. Now that will depend on your photochemistry. CO2 laser is not in the visible spectrum. You'd have to check the sensitivity of the photo emulsion w.r.t. wavelength. Most litho films are not sensitive even to red, but do go up into ultra-violet. I can't remember if CO2 is longer or shorter than visible light. In any case, you'd get by with very low power. So now for the wacky idea of the day... an interesting hack would be to make a tool head for a RepRap or some other cheap X/Y bed that simply holds a green laser pointer. -dave Dave, I have been following the RepRap project with interest. A 3D printer that anyone can make is a very cool scratch to itch. I am fascinated by the artwork of the sculpter, Bathsheba Grossman. She really shows what is possible with 3D printing. (http://www.bathsheba.com) Maybe the RepRap will progress to this level of precision, eventually. I am very impressed with the parts that people are currently making with it. I like the idea of using a cnc mill to vector plot the pcb artwork onto a photo-resist board with a laser. I do not think mounting a laser would be very difficult. There must be a low intensity laser that is in the correct frequency range to cure the resist. You could make different apertures easily by creating transparent slides with a single white dot against a black background. As far as a cheap x/y bed, how about doing it with a cheap machine that is massive and solid, like rock? I have been following the epoxy-granite thread on cnczone.com for a long time: http://www.cnczone.com/forums/showthread.php?t=30155 (It is a HUGE thread with 3828 posts, currently.) Epoxy-granite is basically moldable rock. It is made out of aggregates of different sizes (mainly quartz), which are measured in certain ratios, so that they pack together very tightly. The spaces between where aggregates of one size touch are filled by smaller aggregates on down through several orders of magnitude. The size of aggregates range from 4mm in diameter down to a couple of microns. The epoxy (10-20% by volume) is added to hold everything together. Epoxy-granite is relatively cheap. It can approach the strength of aluminum, but you can embed rebar in the casting to increase its tensile strength. One of the nice properties of e/g is that it has 10 times the damping properties of iron. That means better surface finish on the machined parts, and longer tool life. Also, people should be able to find most of the materials near local industrial centers. I have been experimenting with e/g and I am currently building a benchtop cnc lathe. I have a blog on it here: http://www.cnczone.com/forums/showthread.php?t=42308 I am going to post many more pictures of my progress. After, I finish the cnc lathe, I am on to a small epoxy-granite cnc gantry mill. I think it will have a 13" x 13" table. My goal is a massive, rigid, and accurate machine that can produce precision parts and mill pcb's. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Schematic Capture to dxf File - using gEDA, Inkscape, and pstoedit
I added this post at: http://www.cnczone.com/forums/showthread.php?t=97677 I have tweaked the process a little to get a better result in Inkscape. Rob, at the Inkscape forum offered some help: http://www.inkscapeforum.com/viewtopic.php?f=28&t=4279 He, thinks that the 'Stroke to Path' problem looks like a mathematical rounding error. That makes sense to me. So now, the first thing I do, after loading the .ps file into Inkscape, is to scale it x10. I do all of the 'ungroup', 'path to stroke', and 'union' operations on it and then scale it back to normal size. At 10x the size, the 'Path to Stroke' does better at converting the end caps on the lines; and, after the 'Union' operation, the 45 deg. and 90 deg. corners are smoother on the traces. You might think scaling 100x would be even better. However, by scaling x100 in Inkscape and then doing 'Path to Stroke' and 'Union', a new set of problems arise. gEDA/pcb creates the solid ground plane out of multiple polygons that are butted up against each other, and meant to be treated as one solid object. At x100 scale, tiny slivers of white background show between some of them. They are 'boolean union'-ing into a single object, but with long, thin slivers taken out of the solid ground plane. The scaling seems to be slightly offsetting the nodes - looks like another rounding error to me. So, x10 gets good results. I am very happy with it. [picture] Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Schematic Capture to dxf File - using gEDA, Inkscape, and pstoedit
Dave N6NZ wrote: The postscript file is a kludgy intermediate step that needs to be eradicated in the 'clean' solution. -dave n6nz That makes sense. I do agree that having a conversion to dxf in gerbv is a good idea. I think it would attract a lot of people to gEDA who are using Eagle and other programs. Then they would see how great the rest of the gEDA suite is. Since the gerber file format is shared by both pcb and gerbv, that would be the place to start from, so that both programs could share a DXF export function. In pcb, if you chose the 'Export dxf' button, it could do an internal conversion of the artwork to .gbr and then call the backend program to do the conversion to .dxf and then save the result. Gerbv would just call the backend program and do the conversion. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Schematic Capture to dxf File - using gEDA, Inkscape, and pstoedit
Dave and Peter, How about this? d...@umich.edu wrote: If you are interested in writing some code to add a dxf conversion button to pcb and gerbv, maybe trying these two methods on a few of your own pcb images will give you some ideas. I think creating a backend program that both pcb and gerbv can use would be a good idea. If the starting point is a .ps file, then both programs could use the same backend. I very much like the idea of gerbv being a gerber to dxf conversion program that all pcb CAD programs could use. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Schematic Capture to dxf File - using gEDA, Inkscape, and pstoedit
For those of you doubting that quality two sided pcb's can be milled on a home shop machine, check out these links: Pics: http://millpcbs.com/index.php?option=com_content&view=article&id=25&Itemid=67 http://millpcbs.com/index.php?option=com_content&view=article&id=26&Itemid=68 http://millpcbs.com/index.php?option=com_content&view=article&id=27&Itemid=69 Video of milling 2 sided, fine traced pcb: http://millpcbs.com/index.php?option=com_content&view=article&id=30&Itemid=51 He is using this machine: http://www.probotix.com/FireBall_v90_cnc_router_kit Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Schematic Capture to dxf File - using gEDA, Inkscape, and pstoedit
Here are some additional posts I added to: http://www.cnczone.com/forums/showthread.php?p=722034#post722034 **Post 1** An alternate place in the software tool chain to put a 'DXF' button could be in gEDA's gerber viewer program - gerbv. Under gerbv's 'File' menu, there is an 'Export' command, which gives you the choices to save the file as a PNG, PDF, SVG, or a PostScript file. A 'DXF' choice could be added to the list. This might be a better place than in the gEDA/pcb program, since gerber files are the universal file format for pcb manufacture. With the conversion happening in gerbv, any pcb CAD program that can create gerber files could use gerbv to turn pcb artwork into .dxf outlines. Edit: If both gEDA/pcb and gEDA/gerbv used the same backend program to internally convert from ".ps to 'path to stroke + union' to dxf", then an 'Export as DXF' button could be available in both programs. **Post 2** Here is my next discovery: 'Gerber to dxf using gEDA, Inkscape, and pstoedit' I have found another route through the gEDA suite's software to produce a .ps file that then gets converted in Inkscape and pstoedit to a .dxf file outline. But now, any software that can produce a gerber file can use this method. So, those of you using using a different pcb CAD program, like Eagle, can export your pcb artwork as a gerber file and use this process to make .dxf files. *** I start in gEDA/pcb with the finished artwork by choosing 'File > Export layout...', then I click the 'gerber' button in the next window. Or I could generate a gerber file from within Eagle or any other pcb CAD program. Now, I open gEDA's gerbv (Gerber Viewer) program and select 'File > Open Layer(s)..'. I browse to where I saved the gerber file and click 'Open'. The file is now loaded into gerbv for viewing. Next, I choose 'File > Export... > PostScript', and a .ps file of the artwork is saved. Then I do the 'Stroke to Path' and 'Union' steps in Inkscape that I described earlier. Followed by the step using pstoedit and its '-f dxf_s' option. I am left with a very decent .dxf file containing an almost perfect outline of the pcb traces, pads, and polygons! Here are a few examples of the result: [I posted a couple of new pics] What I like about both methods of getting to the .dxf file from either gEDA/pcb or gerbv is that there is no fiddling and futsing with thousands of individual objects to get the image correct. I just 'select all' a few times and do a few steps and a few saves. It is fast. Reading my long post is not fast, but the two methods are fast. Dave N6NZ, If you convert the backmask or the frontmask files either with the 'gEDA/pcb to dxf' route or the 'Gerber to dxf', you can very quickly have your solder paste mask. If you are laser cutting it, I imagine that you might have to do some standard offsetting of the .dxf file outlines in the CAM program to get the dimensions perfect. Ben and Dave, If you are interested in writing some code to add a dxf conversion button to pcb and gerbv, maybe trying these two methods on a few of your own pcb images will give you some ideas. I think creating a backend program that both pcb and gerbv can use would be a good idea. If the starting point is a .ps file, then both programs could use the same backend. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
gEDA-user: Schematic Capture to dxf File - using gEDA, Inkscape, and pstoedit
Hey everyone, I just created a thread on cnczone.com, which I want to bring to your attention. I titled it, "Schematic Capture to dxf File - using gEDA, Inkscape, and pstoedit": http://www.cnczone.com/forums/showthread.php?t=97677 I think I have worked out a good software tool chain to create .dxf files for milling pcb's. It starts with the gEDA suite of software, uses Inkscape, and then pstoedit. Please, let me know what you think. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
gEDA-user: Can you do thermals on square SMD pads?
Is it possible to do thermals on square SMD pads? Or is it even something that is commonly done, since the pads are usually so close together? Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Would like to use geda tools to make .dxf file for pcb cnc milling.
Bert, I do think a dxf exporter can attract thousands of people to geda tools. The cnczone.com site alone is huge. And cnc machines need a lot of pcb's. As an example, I have used gschem, gsch2pcb. pcb, and gerbv to make a 'signal opto-isolator board' and a 'photo-interrupter limit switch board' for my stepper controller box. I farmed out the pcb manufacture to a fabrication company, but in the future I would like to mill them myself. > > FWIW, I want to do a DIY cnc router for pcb and front panels someday ... > > My goal with the pcb-dxf-hid was/is to achieve some sort of 3D model in > FOSS software that can read/parse DXF and do 3D presentation/modeling > (Blender and brl-cad comes to mind). I create and light cad scenes in blender. I then export the scene to luxrender, an unbiased photorealistic rendering program to render an image. The work people are doing with LuxRender is amazing. Blender imports and export dxf files, which is good news. > Anyways, I have ample spare time to do serious coding on this one, maybe > things will change after this summer, who knows ? > I am excited that you are motivated to create a dxf exporter! A full-featured, open-source cam program is a hole in the FOSS tool chain, so far. Gcam (http://gcam.js.cx/index.php/Main_Page) looks like it is making steady progress, but so far I have not been able to get it to work without freezing my computer. The cnc machinists that I know are using non-free cam-bam and sheetcam software to create their g-code. Lazycam also looks interesting. People are milling pcb's with very fine traces - i.e. for SMD components. With a rigid and accurate machine, very fine work can be done. This company sells pcb milling machines packaged with their own pcb artwork software: http://www.lpkfusa.com/protomat/s-series.htm I plan to maka a similar milling machine out of epoxy-granite. Epoxy granite is a relatively cheap way to cast in molds massive, rigid machines of any size. On cnczone.com there is a huge thread where some very dedicated people are doing research to create an open-source epoxy granite formula: http://www.cnczone.com/forums/showthread.php?t=30155 It is proving difficult to match the performance of the proprietary formulas. It is very hard to get the epoxy to wet out all of the aggregate and flow at 8% to 11% epoxy, which is what the pros are doing. For my purposes I think the e/g researchers are far enough along with the current formula for me to make some steel reinforced e/g machines. I get my e/g to flow on a vibration table at around 20% epoxy. At 20% epoxy there is a loss of strength. I plan to make up the loss of strength with some embedded steel rebar and some extra casting thickness. The mass and the vibration damping is the real advantage of e/g. Epoxy-granite has ten times the damping properties of cast iron. That means longer tool life and finer surface finish on parts, which is what you want if you are milling pcb's! I hope you and others find this interesting. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Would like to use geda tools to make .dxf file for pcb cnc milling.
Jason, I plan on using emc2 on all of my future machines. Currently, I have emc2 moving x, y, and z steppers. I haven't got the machines done yet. Dave Jason wrote: > d...@umich.edu wrote: >> I am currently building a cnc machine on which I would like to mill pcb's. >> > > You want to have a look at emc2 [1]. > > hth, > > Jason. > > [1] - http://www.linuxcnc.org/ > > > ___ > 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: Would like to use geda tools to make .dxf file for pcb cnc milling.
Bert, I am very excited that you are working on a dxf exporter for pcb! In my opinion, this will open a very large area of pcb fabrication to do-it-yourself people. I am sure it will draw thousands of cnc people to the geda tools, also. When it is working, I know everyone at cnczone.com would like to hear about this. Also, let Phil at pminmo.com know. I am sure he would gladly add/feature it on his pminmo.com/millingpcbs/milledpcb.htm page. > I have made a start for a dxf exporter HID at: > > http://github.com/bert/pcb-dxf-hid/tree/master > > but somethings have come in between. > > If you would like to take development further do not hesitate to clone > and/or send patches, you are welcome :) > > If you are willing to open an account on github, you and I can even > share pull requests very easy by means of the github "fork queue" (a > web-based tool monitoring forked of repo's). My programming experience extends to assembly language for avr and pic microchips, and some basic html, so currently I can't jump in and help with the coding. Also, a question, which will betray my ignorance: what does 'HID' mean? Human Interface Device? > > Generating a cnc file (g-codes/m-codes) without dxf would be faster in > any case and less error prone, why not code a cnc exporter ? > > Or does one need an intermediate format like dxf which describes the > positive shapes, and not the inverted (copper to remove) shapes and > traces. > > Maybe inverted Gerbers are a better starting point. > I think generating the dxf file would be better than generating g-code. That way people can decide on how they will machine the pcb traces in their own 2.5 axis cam software. They can put tool changes where they need them, they can program tool offset, decide depth of cut, decide what is 'island' and what is 'ocean', and any number of other functions - all in the cam software. Then the cam software will generate the g-code, which is specific to each person's machine and their preferred machining process. Granted, these comments are based on my current understanding of the cad-cam-nc software toolchain. I do not have a machine working yet, but I have wired up a controller box and have x, y, and z steppers moving using emc2 software. I am half way done building a cnc lathe and I am modeling my cnc mill design in Rhino 3D. Thanks, Dave Bert Timmerman wrote: > Hi Dave, > > On Fri, 2009-08-14 at 00:12 -0400, d...@umich.edu wrote: >> I am sorry if this is a redundant request/question. >> >> I am currently building a cnc machine on which I would like to mill pcb's. >> >> Others have worked out a tool chain using eagle: >> http://pminmo.com/millingpcbs/milledpcb.htm >> >> Is there any interest in a Geda-based alternative? Could it be >> gschem--pcb/dxf(export) or gschem--pcb--gerbv/dxf(export)? The dxf file >> would be an outline of all the traces and pads. The traces and pads >> would be 'islands' that the cnc machine would mill around. >> > > I have made a start for a dxf exporter HID at: > > http://github.com/bert/pcb-dxf-hid/tree/master > > but somethings have come in between. > > If you would like to take development further do not hesitate to clone > and/or send patches, you are welcome :) > > If you are willing to open an account on github, you and I can even > share pull requests very easy by means of the github "fork queue" (a > web-based tool monitoring forked of repo's). > >> Here, is the tool chain I have tried to get working without success. >> 1. From pcb I export gerber files. >> 2. I load a gerber file in gerbv and export it as a pdf >> 3. I load the pdf in inkscape and save as a dxf file. >> >> However, when I view the dxf file in qcad or any other cad or cam >> program, the strokes and objects from inkscape are split into two >> incomplete and offset images, and the pcb traces are lines with no >> thickness. Inkscape is turning all strokes(pcb traces) into lines in the >> dxf file. >> > > In dxf one can use polylines which can have width (*and* thickness in > Z-direction), one can even join all traces of a net into one polyline > (with branches and arcs). > >> In inkscape, if I go through the very cumbersome process of individually >> selecting each stroke(trace) with the 'Edit paths by nodes(F2)' tool, >> and select 'Path>Stroke to Path' and then combine all the edited paths >> and objects using 'Path>Union' I can get a dxf file that is an outline >> of the traces and pads. However, inkscape often adds a little bulge to >> the end of each stroke. So, it is not a perfect outline. This also takes >> way too long on anything other than the most simple pcb artwork. So, I >> am stumped. >> >> Any interest in adding the dxf export feature to pcb or gerbv? It seems >> to me that cnc milling of pcb's is becoming viable as a homeshop >> alternative to all of the other standard methods of fabricating pcb's. >> > > Generating a cnc file (g-codes/m-codes) without
gEDA-user: Would like to use geda tools to make .dxf file for pcb cnc milling.
I am sorry if this is a redundant request/question. I am currently building a cnc machine on which I would like to mill pcb's. Others have worked out a tool chain using eagle: http://pminmo.com/millingpcbs/milledpcb.htm Is there any interest in a Geda-based alternative? Could it be gschem--pcb/dxf(export) or gschem--pcb--gerbv/dxf(export)? The dxf file would be an outline of all the traces and pads. The traces and pads would be 'islands' that the cnc machine would mill around. Here, is the tool chain I have tried to get working without success. 1. From pcb I export gerber files. 2. I load a gerber file in gerbv and export it as a pdf 3. I load the pdf in inkscape and save as a dxf file. However, when I view the dxf file in qcad or any other cad or cam program, the strokes and objects from inkscape are split into two incomplete and offset images, and the pcb traces are lines with no thickness. Inkscape is turning all strokes(pcb traces) into lines in the dxf file. In inkscape, if I go through the very cumbersome process of individually selecting each stroke(trace) with the 'Edit paths by nodes(F2)' tool, and select 'Path>Stroke to Path' and then combine all the edited paths and objects using 'Path>Union' I can get a dxf file that is an outline of the traces and pads. However, inkscape often adds a little bulge to the end of each stroke. So, it is not a perfect outline. This also takes way too long on anything other than the most simple pcb artwork. So, I am stumped. Any interest in adding the dxf export feature to pcb or gerbv? It seems to me that cnc milling of pcb's is becoming viable as a homeshop alternative to all of the other standard methods of fabricating pcb's. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Strange behavior with input-1.sym and output-1.sym?
John Doty wrote: > On May 7, 2009, at 6:53 AM, Stefan Salewski wrote: > >> Of course it may be a bug of 1.4.0, I >> can not test this, have only 1.4.3 available. > > One could make the case that the bug is in 1.4.3. A component without > either refdes= or graphical=1 might reasonably be considered an > error. But the treatment of attributes in gEDA keeps changing. I wish > there was better documentation on how attributes are actually *used* > by gschem and gnetlist. The Symbol Creation Guide is "style manual", > not a language definition. > > The "anything goes" approach to attributes was fine when there were > few special cases in the core code, but increasingly I'm seeing > strange behavior that's apparently due to the core code assuming > attribute meaning that's undocumented and/or specific to the gsch2pcb > flow. This is not good. > > John Doty Noqsi Aerospace, Ltd. > http://www.noqsi.com/ > j...@noqsi.com > And, if it becomes part of the gschem/gsch2pcb/pcb standard that all non-physical schematic objects require 'graphical=1', then 'graphical=1' should be automatically part of these objects (i.e. input-1.sym, output-1.sym), so that the user does not have to add it every time he/she uses the symbol. Also, I think this info about the attribute treatment of physical/non-physical schematic elements should be added to the gsch2pcb tutorial. Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Strange behavior with input-1.sym and output-1.sym?
All of my input-1.sym and output-1.sym had attribute setting like this: net SPEED_CONTROL:1 valueSPEED CONTROL device INPUT There was no refdes attribute in any of the named nets. Using input-2.sym and output-2.sym worked with the exact same attributes. Also, changing 'device=INPUT' to 'device=none' while using input-1.sym and output-1.sym did not change the warnings. I am using version 1:1.4.0.1 of geda, which is what shows up in the Ubuntu 8.10 Synaptic Package Manager. So, my hunch is that the strange behavior has been solved with later versions. I'll wait for the updates to arrive on Synaptic. Until then, DJ's 'graphic=1' suggestion worked. Thanks, Dave Stefan Salewski wrote: >>> On Wed, 2009-05-06 at 18:20 -0400, d...@umich.edu wrote: Adding the graphical=1 attribute made input-1.sym and output-1.sym work. None of the symbols in the Input/output(generic) directory have a graphical=1 component. I wonder why input-2.sym and output-2.sym work without graphical=1? Dave > > I tried to test the input-1.sym -- seems to work fine with gEDA 1.4.3. > > I think in your first posting I saw something like > > WARNING: U? has no footprint attribute so won't be in the layout. > > Did you gave the input a refdes attribute? That will not work, maybe > graphical=1 fixes this? > > > > > > ___ > 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: Strange behavior with input-1.sym and output-1.sym?
Adding the graphical=1 attribute made input-1.sym and output-1.sym work. None of the symbols in the Input/output(generic) directory have a graphical=1 component. I wonder why input-2.sym and output-2.sym work without graphical=1? Dave DJ Delorie wrote: > non-physical-component parts usually have an attribute "graphical=1" > to tell gsch2pcb that it should not expect any actual elements to come > from that symbol. That may be missing on those symbols. > > > ___ > 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: Strange behavior with input-1.sym and output-1.sym?
I am having problems with the following warnings when I do gsch2pcb on a schematic. Below, you can see the kind of warnings I am getting on a simple 2 component test schematic: $ gsch2pcb -s project Could not find refdes on component and could not find any special attributes! Could not find refdes on component and could not find any special attributes! - gEDA/gnetlist pcbpins Backend This backend is EXPERIMENTAL Use at your own risk! - Could not find refdes on component and could not find any special attributes! Could not find refdes on component and could not find any special attributes! Could not find refdes on component and could not find any special attributes! Could not find refdes on component and could not find any special attributes! Skipping the m4 processor for pcb footprints WARNING: U? has no footprint attribute so won't be in the layout. -- Done processing. Work performed: 2 file elements and 0 m4 elements added to test2.pcb. 1 components had no footprint attribute and are omitted. Next step: 1. Run pcb on your file test2.pcb. You will find all your footprints in a bundle ready for you to place or disperse with "Select -> Disperse all elements" in PCB. 2. From within PCB, select "File -> Load netlist file" and select test2.net to load the netlist. 3. From within PCB, enter :ExecuteFile(test2.cmd) to propagate the pin names of all footprints to the layout. _ I have narrowed this down to problems with the input-1.sym and output-1.sym. If I use input-2.sym and output-2.sym, I do not get any errors. Any ideas on what is going on? In the mean time, I will avoid input-1.sym and output-1.sym for making named nets. Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
gEDA-user: Optimize rats causes error message I don't understand.
On a current board I am working on, when I press 'O' (optimize rats) I get these error messages and then the rat lines remaining: Bad net-list format encountered near: "1" Bad net-list format encountered near: "1" Bad net-list format encountered near: "1" Bad net-list format encountered near: "1" Bad net-list format encountered near: "2" Bad net-list format encountered near: "2" Bad net-list format encountered near: "2" Bad net-list format encountered near: "2" 185 rat lines remaining Could someone explain what they mean? Thanks, dfro ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: How do I get pcb to automatically load my personal pcb-elements directory
DJ, That worked. Thanks. Dave DJ Delorie wrote: >> I can get pcb to find the directory using the projects file and gsch2pcb >> technique, but I would like 'pcb-elements' to show up in the pcb library >> window automatically whenever I launch pcb. > > Edit ~/.pcb/settings: > > lib-newlib = /envy/dj/geda/gedasymbols/www/user/dj_delorie/footprints:. > > > ___ > 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: How do I get pcb to automatically load my personal pcb-elements directory
I am wondering how do I get pcb to automatically load my pcb-elements directory. I can get pcb to find the directory using the projects file and gsch2pcb technique, but I would like 'pcb-elements' to show up in the pcb library window automatically whenever I launch pcb. Any thoughts? Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Empty netlist file!
Steven, I created a .sch file, '~/gaf/myprojects/avr_projects/avr_device1 folder/avr_device1.sch' and ran gsch2pcb on it. Here is the command line output when I try to load the netlist file '~/gaf/myprojects/avr_projects/avr_device1 folder/avr_device1.net' into '~/gaf/myprojects/avr_projects/avr_device1 folder/avr_device1.pcb': ... Action: Load(Netlist) Load: Calling LoadFrom(Netlist, /home/dfro/gaf/myprojects/avr_projects/avr_device1 folder/avr_device1.net) Action: LoadFrom(Netlist,/home/dfro/gaf/myprojects/avr_projects/avr_device1 folder/avr_device1.net) EvaluateFilename: Template: cat %f Path: (null) Filename: /home/dfro/gaf/myprojects/avr_projects/avr_device1 folder/avr_device1.net Parameter: (null) EvaluateFilename: cat /home/dfro/gaf/myprojects/avr_projects/avr_device1 folder/avr_device1.net cat: /home/dfro/gaf/myprojects/avr_projects/avr_device1: No such file or directory cat: folder/avr_device1.net: No such file or directory The last two lines seem to indicate that the program is getting confused by the space in the file's immediate directory. The 'EvaluateFilename:' line does not seem to be confused, though. Thanks, Dave Steven Michalske wrote: > this is odd, > > i just tried to make a test case with a path with a space in it > > it loaded the netlist file just fine > > > dave, could you please make the directory structure you have before > and run pcb in verbose mode > > $ pcb --verbose > > i care about the lines like this > > Load: Calling LoadFrom(Netlist, /Users/hardkrash/Desktop/Projects/ > Boards/AnalogPower Amp/pcb_AnalogPowerAmp.net) > Action: LoadFrom(Netlist,/Users/hardkrash/Desktop/Projects/Boards/ > AnalogPower Amp/pcb_AnalogPowerAmp.net) > > Steve > > On Jul 6, 2007, at 1:30 PM, John Doty wrote: > > >>On Jul 6, 2007, at 2:19 PM, David Kerber wrote: >> >> >>>There's no reason to worry about quotes in a folder name; they're >>>illegal in >>>file and path names in all versions of windows, >> >>Yes, but they're perfectly OK on Mac and Unix. There's no universal >>delimiter to tell a program where a pathname ends in a string >>containing more than just the pathname. Space is commonly used as a >>delimiter, so it is best to avoid it in names. >> >> >>>as are slashes, >>>back-slashes, and a few other characters that I can't recall at the >>>moment. >>> >>> >>> >>>>-Original Message- >>>>From: [EMAIL PROTECTED] >>>>[mailto:[EMAIL PROTECTED] On Behalf Of DJ Delorie >>>>Sent: Friday, July 06, 2007 4:13 PM >>>>To: geda-user@moria.seul.org >>>>Subject: Re: gEDA-user: Empty netlist file! >>>> >>>> >>>> >>>>>Should I have known not to put a space in my directory >>>> >>>>names? Is this >>>> >>>>>something that can be fixed in 'pcb' easily or is it not >>>> >>>>worth fixing? >>>> >>>>>A lot of the folders on my Mac and linux box have spaces in >>>> >>>>them and >>>> >>>>>programs seem to be able to find them. >>>> >>>>Most unix users know to avoid spaces in file names, but Mac >>>>and Windows users seem to not avoid them. It *should* be a >>>>simple matter of proper quoting in various places, but then >>>>you'd want to be able to have directory names with quotes in >>>>them, etc. >>>> >>>> >>>>___ >>>>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 >> >>John Doty Noqsi Aerospace, Ltd. >>http://www.noqsi.com/ >>[EMAIL PROTECTED] >> >> >> >> >>___ >>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 mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Empty netlist file!
John and Steven, Thanks for the replies. I finally figured out what the problem was. I had a space in the name of one of the directories in the path to the netlist file - i.e. "~/gaf/myprojects/avr_projects/avr_device1 folder". The space between 'avr_device1' and 'folder' caused pcb not to be able to find it. Should I have known not to put a space in my directory names? Is this something that can be fixed in 'pcb' easily or is it not worth fixing? A lot of the folders on my Mac and linux box have spaces in them and programs seem to be able to find them. Thanks, Dave John Luciani wrote: > On 7/6/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > >>Does anybody have any ideas? I have tried everything I can think of, >>but I am still getting the "Empty netlist file!" error. Without the >>netlist file loading, I am stuck. Here is the netlist file that > > > You should post a *simple* schematic with embedded symbols that > demos the problem. > > (* jcl *) > ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user
Re: gEDA-user: Empty netlist file!
Does anybody have any ideas? I have tried everything I can think of, but I am still getting the "Empty netlist file!" error. Without the netlist file loading, I am stuck. Here is the netlist file that gsch2pcb produced: unnamed_net49 C5-2 CONN6-1 unnamed_net48 R3-2 CONN12-1 unnamed_net47 R4-2 CONN11-1 unnamed_net46 CONN12-2 R5-2 CONN11-2 unnamed_net45 U6-11 U6-9 U6-5 U6-3 U6-2 U6-13 unnamed_net44 R5-1 CONN10-3 U2-19 unnamed_net43 R4-1 CONN10-1 U2-18 unnamed_net42 R3-1 CONN10-4 U2-17 unnamed_net41 CONN11-3 CONN12-3 U2-16 unnamed_net40 CONN8-6 U2-13 unnamed_net39 CONN8-5 U2-12 unnamed_net38 CONN8-4 U2-11 unnamed_net37 CONN8-3 U2-6 unnamed_net36 CONN8-2 U2-5 unnamed_net35 CONN8-1 U2-4 unnamed_net34 U6-1 U2-3 unnamed_net33 U2-14 CONN9-1 unnamed_net32 U2-15 CONN9-2 unnamed_net31 U5-5 U5-11 U5-9 U5-3 U5-2 U5-13 unnamed_net30 R16-2 CONN18-1 unnamed_net29 U6-8 CONN18-2 unnamed_net28 R11-2 CONN15-1 unnamed_net27 U5-6 CONN15-2 unnamed_net26 U6-6 R14-1 unnamed_net25 R15-2 CONN17-3 unnamed_net24 R14-2 CONN17-1 unnamed_net23 U6-4 R12-1 unnamed_net22 R13-2 CONN16-3 unnamed_net21 R12-2 CONN16-1 unnamed_net20 U5-4 R9-1 unnamed_net19 R10-2 CONN14-3 unnamed_net18 R9-2 CONN14-1 unnamed_net17 CONN13-3 R8-2 unnamed_net16 R7-2 U4-7 unnamed_net15 U2-2 U5-1 R6-1 U4-6 unnamed_net14 CONN13-1 D6-2 U4-3 unnamed_net13 D6-1 R8-1 U4-2 unnamed_net12 U2-9 C6-2 U3-2 unnamed_net11 U2-10 C7-2 U3-1 unnamed_net10 U2-27 CONN7-5 unnamed_net9U2-25 CONN7-3 unnamed_net8U2-23 CONN7-1 unnamed_net7U2-28 CONN7-6 unnamed_net6U2-26 CONN7-4 unnamed_net5U2-24 CONN7-2 unnamed_net4CONN6-2 CONN10-5 U2-1 D5-2 CONN5-1 R1-1 unnamed_net3D1-1 D3-2 CONN1-1 unnamed_net2D2-1 D4-2 CONN1-2 +5V CONN10-2 CONN12-6 CONN11-6 CONN8-8 C11-2 U6-14 CONN9-4 U5-14 R16-1 R11-1 C9-2 C10-2 C7-2 U2-7 U2-21 U2-20 C8-1 R15-1 R13-1 R10-1 R6-2 U4-8 CONN7-8 D5-1 R1-2 CONN4-1 CONN3-1 CONN2-1 C3-1 C4-2 U1-3 GND C5-1 CONN10-6 CONN12-5 CONN11-5 CONN8-7 C11-1 U6-7 CONN9-3 U5-7 C9-1 C10-1 U2-8 U2-22 C8-2 CONN5-2 CONN17-2 CONN16-2 CONN14-2 R7-1 U4-5 C7-1 C6-1 CONN7-7 CONN4-2 CONN3-2 CONN2-2 D2-2 D1-2 C3-2 C4-1 \ C2-1 C1-2 U1-2 unnamed_net1D4-1 D3-1 C2-2 C1-1 U1-1 Does anything look incorrect? I have used gschem/gsch2pcb/pcb on other projects and this is the first time I have seen this error. Thanks, Dave [EMAIL PROTECTED] wrote: > In pcb I am getting the error message "Empty netlist file!" when I try > and load a netlist into a new .pcb file that has been generated by gsch2pcb. > > Looking into the file with a text editor, it is definitely not empty and > looks like any other netlist file: > > unnamed_net37 CONN8-3 U2-6 > unnamed_net36 CONN8-2 U2-5 > . etc. > > I am running pcb version 20060822 in Ubuntu-Studio > > Does anyone have a solution to this problem? > > 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: Empty netlist file!
In pcb I am getting the error message "Empty netlist file!" when I try and load a netlist into a new .pcb file that has been generated by gsch2pcb. Looking into the file with a text editor, it is definitely not empty and looks like any other netlist file: unnamed_net37 CONN8-3 U2-6 unnamed_net36 CONN8-2 U2-5 . etc. I am running pcb version 20060822 in Ubuntu-Studio Does anyone have a solution to this problem? Thanks, Dave ___ geda-user mailing list geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user