[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
gEDA-user: PCB paste layer, revisited.
To recap: I have been experimenting with making solder paste stencils
from laser cut drafting mylar. The current implementation of paste
layers is not very flexible. The paste stencils that result from my
current workflow apply way too much solder (for various reasons).
So.... I've been noodling for some weeks about a better solution.
Thoughts and questions below.
It seems to me that the simplest way forward that provides adequate
flexibility is to add a "paste" directive to the footprint definition.
It would be syntactically identical to the current "pad" directive that
defines surface mount pads. In the absence of *any* "paste" directive,
*all* "pad" directives would create default "paste" information of
identical dimensions. If *any* "paste" directive is present, then *no*
default "paste" information is created from "pad" directives.
Note that:
1) This is upward compatible with current footprints, with no surprises,
since the current paste layer is simply a copy of the pad information.
2) Footprints with "paste" information can be script-o-matically down
graded for backward compatibility by a simple
sed/awk/perl/your-tool-here script that yanks out the "paste" directives.
3) The user has complete control over solder placement and volume,
although there will be considerable interaction between the user's
process and the dimensions in the paste directive. What works for my
el-cheapo laser cut 5 mil mylar may not be what you want to send to a
fab house that uses a YIG laser to cut stencils in 3 mil stainless.
Especially when you compare hand-squeegeed solder to robot-applied
solder. Oh well. I don't see an elegant solution, so I bias toward a
simple solution.
Now my questions. I've spent a few minutes studying some slightly old
sources, but I'm guessing that there are few architectural differences
in the current release.
Adding the "paste" directive to the flex/bison parser seems simple and
straight forward. The question becomes what to do with it. It appears
to me that there is no paste information stored anywhere in the data
structures, and that the current paste layer is simply a copy of the pad
layer, and is produced at print-time. Is this correct?
Assuming the above is correct, then it would seem that cloning the
memory allocation, data structures, and support routines for pads would
be straight-forward, perhaps tedious, but at least would present few
architectural "gotcha's". The idea being that we simply add paste
information to every element in a way that parallels the current pad
information. Comments?
Other than carrying the paste information along, there isn't really much
that needs to happen to it other than tweaking the print routines to now
use the actual paste information instead of reading the pad information.
Correct?
I'm happy to work on a patch to add this functionality, but not having
mucked around in the code, I would need some coaching, and would welcome
help from someone who is familiar with the data structures and back end.
I can see my way clear to doing the flex and bison parts quite easily
-- where I need help is how to tuck all the information away.
-dave
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user