Archive of the former Yahoo!Groups mailing list: Homebrew PCBs

previous by date index next by date
previous in topic topic list  

Subject: Re: [Homebrew_PCBs] PCB Pads/Traces

From: Alan Marconett KM6VV <KM6VV@...>
Date: 2002-04-24

Hi John,

Gcode circles are typically ONE line (old stuff needed 4). The Gerber
(.GBR) output of Eagle seems to be fine. Very terse. Not a lot of
points as you mention (I believe you're thinking of making circles from
DXF's, lottsa points there)! A pad is simply a location (like Gcode's
Xn.nn Yn.nn). "Apertures" ("G54 D10") are turned on/off, and "moves"
(again like Gcode) make up the majority of the file. About as compact
as you can get (for a text, Gcode-like file), about all that it's
specifying is pads, moves and apertures. But yes, it can be "all over
the board", enough to drive a salesman crazy!

The "dumbbell" example took Gerber code something like this (I didn't
yet find the actual .GBR file), but this is roughly what it would have
been like).

G54D11∗
X04900Y00270D03∗
X00820Y01750D01∗
X04800Y00270D03∗

PADS are the D03's, the D01 is the "move" between the pads. The D11 is
an aperture.

This is Gcode for "dumbbell", including an initial rapid!

G00 X0.009 Y0.029 Z-0.050
G02 X-0.009 Y0.029 I-0.009 J-0.029
G01 X-0.009 Y0.571
G02 X0.009 Y0.571 I0.009 J0.029
G01 X0.009 Y0.029


The arc's above (G02), as you see, are ONE line. The sides of the
connecting trace are the G01's.


I got this when I generated code from a pair of pads and a connecting
trace in your tit-for-tat example (I moved one pad up a little, and
stretched the trace).

N1000 G00 X3.2500 Y3.6250 Z0.0000
N1010 G01 X3.2500 Y3.5250
N1020 X3.2250 Y3.5000
N1030 G00 X3.2250 Y3.5023
N1040 G01 X3.2250 Y3.2500
N1050 X3.2500 Y3.2250
N1060 X3.2500 Y3.1500
N1070 G00 X3.2500 Y3.2000
N1080 G01 X3.2500 Y3.1250
N1090 X3.2250 Y3.1000
N1100 X3.1250 Y3.1000
N1110 X3.1000 Y3.1250
N1120 X3.1000 Y3.2250
N1130 X3.1250 Y3.2500
N1140 X3.1250 Y3.4984
N1150 G00 X3.1250 Y3.5000
N1160 G01 X3.1000 Y3.5250
N1170 X3.1000 Y3.6250
N1180 X3.1250 Y3.6500
N1190 X3.2250 Y3.6500
N1200 X3.2500 Y3.6250

OK, let's say 16 G01's to do the job (not sure why so many little rapids
appear from the CCD from Tim, at least two are probably mine). Also, I
didn't take time to remove the line numbers.

So, It would appear you use 16 blocks vs. 4 blocks for my example
(excluding the extraneous rapids).

Good points on sharing a border (common line) between adjacent traces.
The extra rapids to get between the traces can be minimized as well
(I'll let Vector CAD/CAM do that). By the way, I did note that some of
the pads/traces in both your CNC and CCD files were incomplete, was
there a reason for that?

I had another thought, what if I can get Vector CAD/CAM to generate a
PSEUDO-Gerber file. All I need is a points grouped by pad size
(aperture), and a set of lines, also grouped by trace (aperture). Then
the program I'm working on generates a linked list of pad and their
sizes, and adds connection data to the "pad nodes" in the list to
indicate the traces. This list is is then transversed to generate the
moves (G01/G02/G03's) AROUND (isolation) the various traces and pads.

What I think this will do is to allow me to simply drop appropriately
sized circles for pads, and rectangles for traces on a CAD screen, and
the coordinate data file generated (similar to a Gerber file) will give
me the information I need to process it into a Gcode file. OOPS! I
think that's what Eagle does already!

Interesting discussion! Thanks for the comments on your process and
techniques!


Alan KM6VV
P.S. Yes, a grant. I'm actually working on getting a grant for some of
my software efforts.


crankorgan wrote:
>
> Hi Alan,
> If you do a circle in GCode it has four lines of code. If
> you use Eagle each circle becomes alot of points. The resulting
> code for a large PCBoard is huge. I look to produce a fast efficent
> GCode file. One of my DXF files is in the Files section. After I
> convert a DXF to Gcode I go in and do some touchup. With a large file
> changing all the Z-002.45 to Z-002.46 takes for ever. I use an old
> version of KCam that was FREEWARE. It has problems with large files.
> Simple circuit boards with only one or two IC mask the problems
> that show up on large boards. Learning a few tricks now will pay off
> later.
> When you draw in DXF, you can have traces share a border. This
> cuts cutting time and wear on the tool. My large circuit boards have
> 500 inches of cutting distance. The new board I just designed has 600
> inches of cutting. Simple hobby circuits might have 50 inches. This
> is why you will see people reporting success with different cutting
> tools. For large boards you need Carbide or Diamond.
> When your machine cuts a board how much extra traveling are you
> getting. That's where the machine cuts here, then there, then over
> there. The ACE converter takes the unwanted moves out. I don't use
> ACE myself. I have found that the GCode will turn out just the way
> the DXF is drawn. So I draw the DXF, then I trace it in a nice
> orderly manor. I save the trace! The results is the machine cuts
> moves a little and it cuts again.
> As for your OT question. I was told I should have gone for a
> Goverment grant.
>
> John
>
>
> --- In Homebrew_PCBs@y..., Alan Marconett KM6VV <KM6VV@a...> wrote:
> > Hi John,
> >
> > Not sure why you say it takes lots of lines of code to do round
> pads!
> > Although I'm working from a Gerber file (thinks pads and traces),
> the
> > resultant actions to draw a round pad are actually quite simple (I
> don't
> > generate an intermediate Gcode file... yet). There are from 1 to 4
> arcs
> > (for 0 to 4 traces into pad), plus a line per side of each trace,
> up to
> > the next pad, or a "bend" in the trace. So a simple "dog bone" of
> two
> > pads and a trace between would result in two arcs, and two traces!
> And
> > if I understand you correctly, you'd draw 7 short lines per pad,
> plus
> > two traces?
> >
> > This actually gives me an idea. If the "short lines" used to draw
> the
> > pads could be identified by software (a "filter" based on length?),
> then
> > they could be replaced by arc's. sort of like a "constant
> contouring"
> > algorithm. Then you'd get round pads!
> >
> > OR, since you're using CAD, and you always start/stop the little
> line
> > segments always start on 45 deg. points of a circle (I guessing
> here),
> > I'd suggest just specifying a arc from/to the required points at
> each
> > pad! That should be simple enough!
> >
> > Of course all this assumes you would want round pads instead of
> > octagonal pads. What are your thoughts? I know you've done many
> boards
> > with your "system", and you have your reasons!
> >
> > Alan KM6VV
> > P.S. Hate to mention it, and I don't know your tax setup, but
> just "not
> > making money" isn't enough to make you "non profit". As far as I
> know
> > (I'm not a tax consultant), just selling services/products makes
> you a
> > business (you just report little or no income from the business on
> your
> > schedule C). Just some thoughts, and hope this didn't offend. :>)
> >
> >
> > crankorgan wrote:
> > > <SNIP>
> > > Dave is using round pads. They look nice but the cause
> > > lots of lines of code. This can come back to bite you if
> > > you have to rework the code. Almost one hundred lines of code for
> > > each pad. I use an eight sided pad. Daves machine is very tight
> > > with the use of the antibacklash nut-spindle and machined guides.
> > >
> > > John
>
>
> To unsubscribe from this group, send an email to:
> Homebrew_PCBs-unsubscribe@yahoogroups.com
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/