[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

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 dfro@xxxxxxxxx:

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@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user





_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user