Re: [kicad-users] Re: Solder paste

2009-12-10 Thread Robert
If it's any help, I just shrink all the pads by 0.04mm (because that's
what I was once asked to do in order to prevent the problem you are
having).   I think the idea is that the shrinkage only becomes
significant where it is needed, so there's no need to selectively apply
it.   I run the Perl script from Cygwin, so it's minimal hassle.  It's 
even less hassle if you're running kicad on Linux :).

Regards,

Robert.

weilu0 wrote:
> Thanks for the advice,
> 
> I know that I can always edit the Gerber file or write a program for
> it. I was just wandering if I don't have to go with all the hassles
> in the design iteration.
> 
> Regards,
> 
> Wei
> 
> 
> --- In kicad-users@yahoogroups.com, Robert 
> wrote:
>> There is a Perl script available that will shrink the paste on all
>> pads (google "shrink_paste.pl" kicad).   I guess you could edit it
>> if you don't want to shrink all components.
>> 
>> Regards,
>> 
>> Robert.
>> 
>> weilu0 wrote:
>>> 
>>> 
>>> I have the problem of too wide opening for the stensil made from
>>> solder paste layer. Which results in too much solder paste
>>> applied for QFN and lots of solder bridges in manufacturing.
>>> However reducing the solder paste of specific modules seems to be
>>> a challenge in current released version: 20090216.
>>> 
>>> Just wandering when will anything enabling the editing of solder
>>> paste opening be available... Or what is the result of those old
>>> discussions as below?
>>> 
>>> Regards,
>>> 
>>> Wei
>>> 
>>> 
>>> 
>>> 
>>> --- In kicad-users@yahoogroups.com, "spernecker" 
>>> wrote:
 --- In kicad-users@yahoogroups.com, "Dick H."  wrote:
> --- In kicad-users@yahoogroups.com, Bús József  wrote:
> 
>> Hi
>> 
>> 
>> I made the patch for the SMD pad, to do the reduction of
>> Solder
> Paste Mask size.
>> Uploaded the patch file and pictures the
> http://tech.groups.yahoo.com/group/kicad-users/files/busj/
> folder!
>> Regards, BusJ
> The person who raised the issue wanted module/footprint
> specific control.  In my mind this means having to add
> support in the module editor for setting this into a module.
> The module editor could have a default setting which would
> defer to the global setting, similar to how default vias
> defer to the global hole size.
> 
> I am open to your thoughts on how easy it would be bridge
> this gap in concept.  However as is, I will not be adding the
> patch.  More discussion and improvements are needed.
> 
> 
> Dick
> 
 Hello guys, I'm a new Kicad user and I have a problem when I
 design new module with very small smp pad. It's glue the net
 togheter. I want maybe try your path but I don't understand
 what I need to do to apply this. Thank for your help.
 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Please read the Kicad FAQ in the group files section before
>>> posting your question. Please post your bug reports here. They
>>> will be picked up by the creator of Kicad. Please visit
>>> http://www.kicadlib.org for details of how to contribute your
>>> symbols/modules to the kicad library. For building Kicad from
>>> source and other development questions visit the kicad-devel
>>> group at http://groups.yahoo.com/group/kicad-develYahoo! Groups
>>> Links
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> No virus found in this incoming message. Checked by AVG -
>>> www.avg.com Version: 9.0.709 / Virus Database: 270.14.100/2554 -
>>> Release Date: 12/09/09 07:32:00
>>> 
>> 
>> No virus found in this outgoing message. Checked by AVG -
>> www.avg.com Version: 9.0.709 / Virus Database: 270.14.100/2554 -
>> Release Date: 12/09/09 07:32:00
>> 
> 
> 
> 
> 
> 
> 
> Please read the Kicad FAQ in the group files section before posting
> your question. Please post your bug reports here. They will be picked
> up by the creator of Kicad. Please visit http://www.kicadlib.org for
> details of how to contribute your symbols/modules to the kicad
> library. For building Kicad from source and other development
> questions visit the kicad-devel group at
> http://groups.yahoo.com/group/kicad-develYahoo! Groups Links
> 
> 
> 
> 
> 
> 
> No virus found in this incoming message. Checked by AVG - www.avg.com
>  Version: 9.0.709 / Virus Database: 270.14.102/2556 - Release Date:
> 12/10/09 07:36:00
> 
No virus found in this outgoing message.
Checked by AVG - www.avg.com 
Version: 9.0.709 / Virus Database: 270.14.102/2556 - Release Date: 12/10/09 
07:36:00


[kicad-users] Re: Solder paste

2009-12-10 Thread weilu0
Thanks for the advice, 

I know that I can always edit the Gerber file or write a program for it. I was 
just wandering if I don't have to go with all the hassles in the design 
iteration.

Regards,

Wei


--- In kicad-users@yahoogroups.com, Robert  wrote:
>
> There is a Perl script available that will shrink the paste on all pads 
> (google "shrink_paste.pl" kicad).   I guess you could edit it if you 
> don't want to shrink all components.
> 
> Regards,
> 
> Robert.
> 
> weilu0 wrote:
> > 
> > 
> > 
> > I have the problem of too wide opening for the stensil made from solder 
> > paste layer. Which results in too much solder paste applied for QFN and 
> > lots of solder bridges in manufacturing. However reducing the solder paste 
> > of specific modules seems to be a challenge in current released version: 
> > 20090216. 
> > 
> > Just wandering when will anything enabling the editing of solder paste 
> > opening be available... Or what is the result of those old discussions as 
> > below?
> > 
> > Regards,
> > 
> > Wei
> > 
> > 
> > 
> > 
> > --- In kicad-users@yahoogroups.com, "spernecker"  wrote:
> >> --- In kicad-users@yahoogroups.com, "Dick H."  wrote:
> >>> --- In kicad-users@yahoogroups.com, Bús József  wrote:
>  Hi
> 
> 
>  I made the patch for the SMD pad, to do the reduction of Solder
> >>> Paste Mask size.
>  Uploaded the patch file and pictures the
> >>> http://tech.groups.yahoo.com/group/kicad-users/files/busj/ folder!
>  Regards,
>  BusJ
> >>> The person who raised the issue wanted module/footprint specific
> >>> control.  In my mind this means having to add support in the module
> >>> editor for setting this into a module.  The module editor could have a
> >>> default setting which would defer to the global setting, similar to
> >>> how default vias defer to the global hole size.
> >>>
> >>> I am open to your thoughts on how easy it would be bridge this gap in
> >>> concept.  However as is, I will not be adding the patch.  More
> >>> discussion and improvements are needed.
> >>>
> >>>
> >>> Dick
> >>>
> >> Hello guys, I'm a new Kicad user and I have a problem when I design new 
> >> module with very small smp pad. It's glue the net togheter. I want maybe 
> >> try your path but I don't understand what I need to do to apply this. 
> >> Thank for your help.
> >>
> > 
> > 
> > 
> > 
> > 
> > 
> > Please read the Kicad FAQ in the group files section before posting your 
> > question.
> > Please post your bug reports here. They will be picked up by the creator of 
> > Kicad.
> > Please visit http://www.kicadlib.org for details of how to contribute your 
> > symbols/modules to the kicad library.
> > For building Kicad from source and other development questions visit the 
> > kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups 
> > Links
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > No virus found in this incoming message.
> > Checked by AVG - www.avg.com 
> > Version: 9.0.709 / Virus Database: 270.14.100/2554 - Release Date: 12/09/09 
> > 07:32:00
> > 
> 
> 
> No virus found in this outgoing message.
> Checked by AVG - www.avg.com 
> Version: 9.0.709 / Virus Database: 270.14.100/2554 - Release Date: 12/09/09 
> 07:32:00
>




Re: [kicad-users] Re: Solder paste

2009-12-09 Thread Robert
There is a Perl script available that will shrink the paste on all pads 
(google "shrink_paste.pl" kicad).   I guess you could edit it if you 
don't want to shrink all components.

Regards,

Robert.

weilu0 wrote:
> 
> 
> 
> I have the problem of too wide opening for the stensil made from solder paste 
> layer. Which results in too much solder paste applied for QFN and lots of 
> solder bridges in manufacturing. However reducing the solder paste of 
> specific modules seems to be a challenge in current released version: 
> 20090216. 
> 
> Just wandering when will anything enabling the editing of solder paste 
> opening be available... Or what is the result of those old discussions as 
> below?
> 
> Regards,
> 
> Wei
> 
> 
> 
> 
> --- In kicad-users@yahoogroups.com, "spernecker"  wrote:
>> --- In kicad-users@yahoogroups.com, "Dick H."  wrote:
>>> --- In kicad-users@yahoogroups.com, Bús József  wrote:
 Hi


 I made the patch for the SMD pad, to do the reduction of Solder
>>> Paste Mask size.
 Uploaded the patch file and pictures the
>>> http://tech.groups.yahoo.com/group/kicad-users/files/busj/ folder!
 Regards,
 BusJ
>>> The person who raised the issue wanted module/footprint specific
>>> control.  In my mind this means having to add support in the module
>>> editor for setting this into a module.  The module editor could have a
>>> default setting which would defer to the global setting, similar to
>>> how default vias defer to the global hole size.
>>>
>>> I am open to your thoughts on how easy it would be bridge this gap in
>>> concept.  However as is, I will not be adding the patch.  More
>>> discussion and improvements are needed.
>>>
>>>
>>> Dick
>>>
>> Hello guys, I'm a new Kicad user and I have a problem when I design new 
>> module with very small smp pad. It's glue the net togheter. I want maybe try 
>> your path but I don't understand what I need to do to apply this. Thank for 
>> your help.
>>
> 
> 
> 
> 
> 
> 
> Please read the Kicad FAQ in the group files section before posting your 
> question.
> Please post your bug reports here. They will be picked up by the creator of 
> Kicad.
> Please visit http://www.kicadlib.org for details of how to contribute your 
> symbols/modules to the kicad library.
> For building Kicad from source and other development questions visit the 
> kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups 
> Links
> 
> 
> 
> 
> 
> 
> 
> No virus found in this incoming message.
> Checked by AVG - www.avg.com 
> Version: 9.0.709 / Virus Database: 270.14.100/2554 - Release Date: 12/09/09 
> 07:32:00
> 
No virus found in this outgoing message.
Checked by AVG - www.avg.com 
Version: 9.0.709 / Virus Database: 270.14.100/2554 - Release Date: 12/09/09 
07:32:00


[kicad-users] Re: Solder paste

2009-12-09 Thread weilu0




I have the problem of too wide opening for the stensil made from solder paste 
layer. Which results in too much solder paste applied for QFN and lots of 
solder bridges in manufacturing. However reducing the solder paste of specific 
modules seems to be a challenge in current released version: 20090216. 

Just wandering when will anything enabling the editing of solder paste opening 
be available... Or what is the result of those old discussions as below?

Regards,

Wei




--- In kicad-users@yahoogroups.com, "spernecker"  wrote:
>
> --- In kicad-users@yahoogroups.com, "Dick H."  wrote:
> >
> > --- In kicad-users@yahoogroups.com, Bús József  wrote:
> > >
> > > Hi
> > > 
> > > 
> > > I made the patch for the SMD pad, to do the reduction of Solder
> > Paste Mask size.
> > > 
> > > Uploaded the patch file and pictures the
> > http://tech.groups.yahoo.com/group/kicad-users/files/busj/ folder!
> > > 
> > > Regards,
> > > BusJ
> > 
> > The person who raised the issue wanted module/footprint specific
> > control.  In my mind this means having to add support in the module
> > editor for setting this into a module.  The module editor could have a
> > default setting which would defer to the global setting, similar to
> > how default vias defer to the global hole size.
> > 
> > I am open to your thoughts on how easy it would be bridge this gap in
> > concept.  However as is, I will not be adding the patch.  More
> > discussion and improvements are needed.
> > 
> > 
> > Dick
> >
> Hello guys, I'm a new Kicad user and I have a problem when I design new 
> module with very small smp pad. It's glue the net togheter. I want maybe try 
> your path but I don't understand what I need to do to apply this. Thank for 
> your help.
>




[kicad-users] Re: Solder Paste

2009-04-13 Thread axtz4
--- In kicad-users@yahoogroups.com, Robert  wrote:
>
> Just an update on this for the record.   The modified Gerber produced 
> using axtz4's script has been accepted by the people that asked for the 
> solder paste shrink, so that confirms the script does the job.   Thanks 
> again, axtz4.
> 
> Regards,
> 
> Robert.

Cool! Good to hear that it worked for y'all.



Re: [kicad-users] Re: Solder Paste

2009-04-13 Thread Robert
Just an update on this for the record.   The modified Gerber produced 
using axtz4's script has been accepted by the people that asked for the 
solder paste shrink, so that confirms the script does the job.   Thanks 
again, axtz4.

Regards,

Robert.

Robert wrote:
> Oh wow!   Did you do this specially?   If so I'm really touched - thank 
> you.   I'll take a look at this today.   Being a C(++) programmer I was 
> thinking about doing this in C, but though I've not written any Perl 
> myself I reckon I should be able to edit this if I need to and post it back.
> 
> I guess the advantage of doing it in C is that it could be added to the 
> postprocess menu of kicad.   Anyone got any thoughts on that?   I can 
> write the code if it's thought worthwhile.
> 
> Regards,
> 
> Robert.
> 
> axtz4 wrote:
>> --- In kicad-users@yahoogroups.com, Robert  wrote:
>>> Hmmm - that would be a lot of manual editing.   OK, thanks.   At least I 
>>> can now solve it with a bit of C code if they insist on this one.
>> Give this a try (I hope the Y! formatting doesn't totally destroy it.) May 
>> need to be tweaked for your house Gerber style.
>>
>>
>> #!/usr/bin/perl
>> #
>> # Usage: perl shrink_paste.pl [input] [shrinkage] {minimum}
>> #
>> # Define $scale as the factor from the units of the command line shrinkage
>> # value to the units in the Gerber. For a command line unit of mm and a
>> # Gerber unit of inches, use 25.4.
>> # If specified, the minimum dimension will be respected. If not specified,
>> # it defaults to 0.0. Units are assumed to be the same as shrinkage and
>> # similarly affected by the scale factor.
>>
>> $scale = 25.4;
>> $minimum = 0.0;
>>
>> $iname = $ARGV[0];
>> if ($iname eq "") {
>> print "No input filename\n";
>> exit;
>> }
>>
>> $oname = $iname;
>> $bakname = $iname;
>>
>> $base = rindex($oname, ".pho");
>> if ($base == -1) {
>> print "Input not a Gerber? (Not .pho)\n";
>> exit;
>> }
>>
>> $shrinkage = $ARGV[1];
>>
>> if ($shrinkage == 0) {
>> print "Quitting, no shrinkage spec'd\n";
>> exit;
>> }
>>
>> $shrinkage /= $scale;
>>
>> $minimum = $ARGV[2];
>> if ($minimum < 0.0) {
>> $minimum = 0.0;
>> }
>> $minimum /= $scale;
>>
>> substr($oname, $base) = ".tmp";
>> substr($bakname, $base) = ".bak";
>>
>> open (IFILE, $iname) or die "$iname: $!";
>> open (OFILE, ">", $oname) or die "$oname: $!";
>>
>> $working = 0;
>> $x = 0.0;
>> $y = 0.0;
>>
>> while () {
>> chomp;
>> if (!$working) {
>>  printf(OFILE "%s\n", $_);
>>  if (/APERTURE LIST/) {
>>  $working = 1;
>>  }
>> } elsif ($working) {
>>  if (/APERTURE END LIST/) {
>>  $working = 0;
>>  printf(OFILE "%s\n", $_);
>>  } else {
>>  @field = split(/[,X\*]/);
>>  if ($field[0] =~ /C/) {
>>  $x = $field[1] - $shrinkage;
>>  if ($x < $minimum) {
>>  $x = $minimum;
>>  }
>>  printf(OFILE "%s,%.6f*%\n",
>>  $field[0], $x);
>>  } elsif ($field[0] =~ /[RO]/) {
>>  $x = $field[1] - $shrinkage;
>>  if ($x < $minimum) {
>>  $x = $minimum;
>>  }
>>  $y = $field[2] - $shrinkage;
>>  if ($y < $minimum) {
>>  $y = $minimum;
>>  }
>>  printf(OFILE "%s,%.6fX%.6f*%\n",
>>  $field[0], $x, $y);
>>  }
>>  }
>> }
>> }
>>
>> close(IFILE);
>> close(OFILE);
>>
>> rename($iname, $bakname);
>> rename($oname, $iname);
>>
>>
>>
>>
>> 
>>
>> Please read the Kicad FAQ in the group files section before posting your 
>> question.
>> Please post your bug reports here. They will be picked up by the creator of 
>> Kicad.
>> Please visit http://www.kicadlib.org for details of how to contribute your 
>> symbols/modules to the kicad library.
>> For building Kicad from source and other development questions visit the 
>> kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups 
>> Links
>>
>>
>>
>>
>> 
>>
>>
>> No virus found in this incoming message.
>> Checked by AVG - www.avg.com 
>> Version: 8.5.283 / Virus Database: 270.11.39/2038 - Release Date: 04/02/09 
>> 19:07:00
>>
> 
> 
> 
> Please read the Kicad FAQ in the group files section before posting your 
> question.
> Please post your bug reports here. They will be picked up by the creator of 
> Kicad.
> Please visit http://www.kicadlib.org for details of how to contribute your 
> symbols/modules to the kicad library.
> For building Kicad from source and other development questions visit the 
> kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups 
> Links
> 
> 
> 
> 
> 
> 
> 
> 
> No virus found in this incoming message.
> Checked by AVG - www.avg.com 

Re: [kicad-users] Re: Solder Paste

2009-04-04 Thread Robert
I ran aztz4's Perl script under cygwin, and it seemed to work a treat. 
  I'm just waiting to hear back from the manufacturer that they got what 
they were expecting, and then I'll report back.   Certainly the Perl 
script is a lot simpler than doing it in C, but C would have the 
advantage that as an addition to the Postprocess menu it would work 
without anything else being installed.   I'm prepared to write it if the 
developers would like to incorporate it into kicad, but if not then Perl 
or awk makes more sense IMHO.

Regards,

Robert.

kajdas wrote:
> I was thinking of using awk (tawk) for this.
> It can be done in a few lines (5 to 10 maybe) of awk code.
> Awk is included on unix/linux and available for windows.
> Just another idea but any solution that works is good enough.
> Martin
> 
> 
> On Fri, Apr 3, 2009 at 11:07 AM , Robert wrote:
> 
>> Oh wow!   Did you do this specially?   If so I'm really touched - 
>> thank you.   I'll take a look at this today.   Being a C(++) 
>> programmer I was thinking about doing this in C, but though I've not 
>> written any Perl myself I reckon I should be able to edit this if I 
>> need to and post it back.
>>
>> I guess the advantage of doing it in C is that it could be added to 
>> the postprocess menu of kicad.   Anyone got any thoughts on that?   I 
>> can write the code if it's thought worthwhile.
>>
>> Regards,
>>
>> Robert.
>>
>> axtz4 wrote:
>>> --- In kicad-users@yahoogroups.com, Robert  
>>> wrote:
 Hmmm - that would be a lot of manual editing.   OK, thanks.   At 
 least I can now solve it with a bit of C code if they insist on this 
 one.
>>> Give this a try (I hope the Y! formatting doesn't totally destroy 
>>> it.) May need to be tweaked for your house Gerber style.
>>>
>>>
>>> #!/usr/bin/perl
>>> #
>>> # Usage: perl shrink_paste.pl [input] [shrinkage] {minimum}
>>> #
>>> # Define $scale as the factor from the units of the command line 
>>> shrinkage
>>> # value to the units in the Gerber. For a command line unit of mm and 
>>> a
>>> # Gerber unit of inches, use 25.4.
>>> # If specified, the minimum dimension will be respected. If not 
>>> specified,
>>> # it defaults to 0.0. Units are assumed to be the same as shrinkage 
>>> and
>>> # similarly affected by the scale factor.
>>>
>>> $scale = 25.4;
>>> $minimum = 0.0;
>>>
>>> $iname = $ARGV[0];
>>> if ($iname eq "") {
>>> print "No input filename\n";
>>> exit;
>>> }
>>>
>>> $oname = $iname;
>>> $bakname = $iname;
>>>
>>> $base = rindex($oname, ".pho");
>>> if ($base == -1) {
>>> print "Input not a Gerber? (Not .pho)\n";
>>> exit;
>>> }
>>>
>>> $shrinkage = $ARGV[1];
>>>
>>> if ($shrinkage == 0) {
>>> print "Quitting, no shrinkage spec'd\n";
>>> exit;
>>> }
>>>
>>> $shrinkage /= $scale;
>>>
>>> $minimum = $ARGV[2];
>>> if ($minimum < 0.0) {
>>> $minimum = 0.0;
>>> }
>>> $minimum /= $scale;
>>>
>>> substr($oname, $base) = ".tmp";
>>> substr($bakname, $base) = ".bak";
>>>
>>> open (IFILE, $iname) or die "$iname: $!";
>>> open (OFILE, ">", $oname) or die "$oname: $!";
>>>
>>> $working = 0;
>>> $x = 0.0;
>>> $y = 0.0;
>>>
>>> while () {
>>> chomp;
>>> if (!$working) {
>>> printf(OFILE "%s\n", $_);
>>> if (/APERTURE LIST/) {
>>> $working = 1;
>>> }
>>> } elsif ($working) {
>>> if (/APERTURE END LIST/) {
>>> $working = 0;
>>> printf(OFILE "%s\n", $_);
>>> } else {
>>> @field = split(/[,X\*]/);
>>> if ($field[0] =~ /C/) {
>>> $x = $field[1] - $shrinkage;
>>> if ($x < $minimum) {
>>> $x = $minimum;
>>> }
>>> printf(OFILE "%s,%.6f*%\n",
>>> $field[0], $x);
>>> } elsif ($field[0] =~ /[RO]/) {
>>> $x = $field[1] - $shrinkage;
>>> if ($x < $minimum) {
>>> $x = $minimum;
>>> }
>>> $y = $field[2] - $shrinkage;
>>> if ($y < $minimum) {
>>> $y = $minimum;
>>> }
>>> printf(OFILE "%s,%.6fX%.6f*%\n",
>>> $field[0], $x, $y);
>>> }
>>> }
>>> }
>>> }
>>>
>>> close(IFILE);
>>> close(OFILE);
>>>
>>> rename($iname, $bakname);
>>> rename($oname, $iname);
>>>
>>>
>>>
>>>
>>> 
>>>
>>> Please read the Kicad FAQ in the group files section before posting 
>>> your question.
>>> Please post your bug reports here. They will be picked up by the 
>>> creator of Kicad.
>>> Please visit http://www.kicadlib.org for details of how to contribute 
>>> your symbols/modules to the kicad library.
>>> For building Kicad from source and other development questions visit 
>>> the kicad-devel group at 
>>> http://groups.yahoo.com/group/kicad-develYahoo! Groups Links
>>>
>>>
>>>
>>>
>>>
>>> 
>>>
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG - www.avg.com Version: 8.5.283 / Virus 

Re: [kicad-users] Re: Solder Paste

2009-04-03 Thread kajdas
I was thinking of using awk (tawk) for this.
It can be done in a few lines (5 to 10 maybe) of awk code.
Awk is included on unix/linux and available for windows.
Just another idea but any solution that works is good enough.
Martin


On Fri, Apr 3, 2009 at 11:07 AM , Robert wrote:

> Oh wow!   Did you do this specially?   If so I'm really touched - 
> thank you.   I'll take a look at this today.   Being a C(++) 
> programmer I was thinking about doing this in C, but though I've not 
> written any Perl myself I reckon I should be able to edit this if I 
> need to and post it back.
>
> I guess the advantage of doing it in C is that it could be added to 
> the postprocess menu of kicad.   Anyone got any thoughts on that?   I 
> can write the code if it's thought worthwhile.
>
> Regards,
>
> Robert.
>
> axtz4 wrote:
>> --- In kicad-users@yahoogroups.com, Robert  
>> wrote:
>>> Hmmm - that would be a lot of manual editing.   OK, thanks.   At 
>>> least I can now solve it with a bit of C code if they insist on this 
>>> one.
>>
>> Give this a try (I hope the Y! formatting doesn't totally destroy 
>> it.) May need to be tweaked for your house Gerber style.
>>
>>
>> #!/usr/bin/perl
>> #
>> # Usage: perl shrink_paste.pl [input] [shrinkage] {minimum}
>> #
>> # Define $scale as the factor from the units of the command line 
>> shrinkage
>> # value to the units in the Gerber. For a command line unit of mm and 
>> a
>> # Gerber unit of inches, use 25.4.
>> # If specified, the minimum dimension will be respected. If not 
>> specified,
>> # it defaults to 0.0. Units are assumed to be the same as shrinkage 
>> and
>> # similarly affected by the scale factor.
>>
>> $scale = 25.4;
>> $minimum = 0.0;
>>
>> $iname = $ARGV[0];
>> if ($iname eq "") {
>> print "No input filename\n";
>> exit;
>> }
>>
>> $oname = $iname;
>> $bakname = $iname;
>>
>> $base = rindex($oname, ".pho");
>> if ($base == -1) {
>> print "Input not a Gerber? (Not .pho)\n";
>> exit;
>> }
>>
>> $shrinkage = $ARGV[1];
>>
>> if ($shrinkage == 0) {
>> print "Quitting, no shrinkage spec'd\n";
>> exit;
>> }
>>
>> $shrinkage /= $scale;
>>
>> $minimum = $ARGV[2];
>> if ($minimum < 0.0) {
>> $minimum = 0.0;
>> }
>> $minimum /= $scale;
>>
>> substr($oname, $base) = ".tmp";
>> substr($bakname, $base) = ".bak";
>>
>> open (IFILE, $iname) or die "$iname: $!";
>> open (OFILE, ">", $oname) or die "$oname: $!";
>>
>> $working = 0;
>> $x = 0.0;
>> $y = 0.0;
>>
>> while () {
>> chomp;
>> if (!$working) {
>>  printf(OFILE "%s\n", $_);
>>  if (/APERTURE LIST/) {
>>  $working = 1;
>>  }
>> } elsif ($working) {
>>  if (/APERTURE END LIST/) {
>>  $working = 0;
>>  printf(OFILE "%s\n", $_);
>>  } else {
>>  @field = split(/[,X\*]/);
>>  if ($field[0] =~ /C/) {
>>  $x = $field[1] - $shrinkage;
>>  if ($x < $minimum) {
>>  $x = $minimum;
>>  }
>>  printf(OFILE "%s,%.6f*%\n",
>>  $field[0], $x);
>>  } elsif ($field[0] =~ /[RO]/) {
>>  $x = $field[1] - $shrinkage;
>>  if ($x < $minimum) {
>>  $x = $minimum;
>>  }
>>  $y = $field[2] - $shrinkage;
>>  if ($y < $minimum) {
>>  $y = $minimum;
>>  }
>>  printf(OFILE "%s,%.6fX%.6f*%\n",
>>  $field[0], $x, $y);
>>  }
>>  }
>> }
>> }
>>
>> close(IFILE);
>> close(OFILE);
>>
>> rename($iname, $bakname);
>> rename($oname, $iname);
>>
>>
>>
>>
>> 
>>
>> Please read the Kicad FAQ in the group files section before posting 
>> your question.
>> Please post your bug reports here. They will be picked up by the 
>> creator of Kicad.
>> Please visit http://www.kicadlib.org for details of how to contribute 
>> your symbols/modules to the kicad library.
>> For building Kicad from source and other development questions visit 
>> the kicad-devel group at 
>> http://groups.yahoo.com/group/kicad-develYahoo! Groups Links
>>
>>
>>
>>
>> 
>> 
>>
>>
>> No virus found in this incoming message.
>> Checked by AVG - www.avg.com Version: 8.5.283 / Virus Database: 
>> 270.11.39/2038 - Release Date: 04/02/09 19:07:00
>>


Re: [kicad-users] Re: Solder Paste

2009-04-03 Thread Robert
> Interesting manufacturer you've got there. No, Kicad does not have
> the ability to shrink the solder past pads as it can increase pad
> sizes on solder resist layer. I myself just finished a PCB where I

It was a new one to me.   The reasoning is that it reduces the risk of 
solder shorting across adjacent pads of fine pitch components, a problem 
which cannot be solve by reducing the mask clearance because the mask 
can't be aligned accurately enough.   This particular manufacturer finds 
that reducing the solder paste windows by 0.04mm helps to reduce the 
number of failures due to inter-pad shorts.   Worth knowing, though from 
what you say it sounds like it's process-dependent to some (unknown to 
me) degree.

With fine-pitch components only likely to become more common, IMHO 
adding solder paste shrink to the postprocess menu of kicad would be 
worthwhile, and axtz4 has demonstrated it shouldn't require much coding. 
   Apparently the feature is common in high-end packages, and it's nice 
to see the kicad community kicking a bit of diamond-encrusted high-end 
ass :).

> for each pad. Man, that was a lot of work, the connector has 60 pins.

LOL.   Poor you!   Why do these manual edits always involve something 
with lots and lots of pins?

>  On the standard components, the manufacturer said it's ok to leave
> it 1:1. Aparently, the needed shrinkage depends on pad size and how
> the stencil is manufactures (etched, lasered, electro-polished) but
> also on the thickness of the stencil. Maybe going to a thinner
> stencil might be a solution for you, they are usually available down
> to 100um/4mil.

Thanks - I didn't know that.

Regards,

Robert.


Re: [kicad-users] Re: Solder Paste

2009-04-03 Thread Robert
Oh wow!   Did you do this specially?   If so I'm really touched - thank 
you.   I'll take a look at this today.   Being a C(++) programmer I was 
thinking about doing this in C, but though I've not written any Perl 
myself I reckon I should be able to edit this if I need to and post it back.

I guess the advantage of doing it in C is that it could be added to the 
postprocess menu of kicad.   Anyone got any thoughts on that?   I can 
write the code if it's thought worthwhile.

Regards,

Robert.

axtz4 wrote:
> --- In kicad-users@yahoogroups.com, Robert  wrote:
>> Hmmm - that would be a lot of manual editing.   OK, thanks.   At least I 
>> can now solve it with a bit of C code if they insist on this one.
> 
> Give this a try (I hope the Y! formatting doesn't totally destroy it.) May 
> need to be tweaked for your house Gerber style.
> 
> 
> #!/usr/bin/perl
> #
> # Usage: perl shrink_paste.pl [input] [shrinkage] {minimum}
> #
> # Define $scale as the factor from the units of the command line shrinkage
> # value to the units in the Gerber. For a command line unit of mm and a
> # Gerber unit of inches, use 25.4.
> # If specified, the minimum dimension will be respected. If not specified,
> # it defaults to 0.0. Units are assumed to be the same as shrinkage and
> # similarly affected by the scale factor.
> 
> $scale = 25.4;
> $minimum = 0.0;
> 
> $iname = $ARGV[0];
> if ($iname eq "") {
> print "No input filename\n";
> exit;
> }
> 
> $oname = $iname;
> $bakname = $iname;
> 
> $base = rindex($oname, ".pho");
> if ($base == -1) {
> print "Input not a Gerber? (Not .pho)\n";
> exit;
> }
> 
> $shrinkage = $ARGV[1];
> 
> if ($shrinkage == 0) {
> print "Quitting, no shrinkage spec'd\n";
> exit;
> }
> 
> $shrinkage /= $scale;
> 
> $minimum = $ARGV[2];
> if ($minimum < 0.0) {
> $minimum = 0.0;
> }
> $minimum /= $scale;
> 
> substr($oname, $base) = ".tmp";
> substr($bakname, $base) = ".bak";
> 
> open (IFILE, $iname) or die "$iname: $!";
> open (OFILE, ">", $oname) or die "$oname: $!";
> 
> $working = 0;
> $x = 0.0;
> $y = 0.0;
> 
> while () {
> chomp;
> if (!$working) {
>   printf(OFILE "%s\n", $_);
>   if (/APERTURE LIST/) {
>   $working = 1;
>   }
> } elsif ($working) {
>   if (/APERTURE END LIST/) {
>   $working = 0;
>   printf(OFILE "%s\n", $_);
>   } else {
>   @field = split(/[,X\*]/);
>   if ($field[0] =~ /C/) {
>   $x = $field[1] - $shrinkage;
>   if ($x < $minimum) {
>   $x = $minimum;
>   }
>   printf(OFILE "%s,%.6f*%\n",
>   $field[0], $x);
>   } elsif ($field[0] =~ /[RO]/) {
>   $x = $field[1] - $shrinkage;
>   if ($x < $minimum) {
>   $x = $minimum;
>   }
>   $y = $field[2] - $shrinkage;
>   if ($y < $minimum) {
>   $y = $minimum;
>   }
>   printf(OFILE "%s,%.6fX%.6f*%\n",
>   $field[0], $x, $y);
>   }
>   }
> }
> }
> 
> close(IFILE);
> close(OFILE);
> 
> rename($iname, $bakname);
> rename($oname, $iname);
> 
> 
> 
> 
> 
> 
> Please read the Kicad FAQ in the group files section before posting your 
> question.
> Please post your bug reports here. They will be picked up by the creator of 
> Kicad.
> Please visit http://www.kicadlib.org for details of how to contribute your 
> symbols/modules to the kicad library.
> For building Kicad from source and other development questions visit the 
> kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups 
> Links
> 
> 
> 
> 
> 
> 
> 
> No virus found in this incoming message.
> Checked by AVG - www.avg.com 
> Version: 8.5.283 / Virus Database: 270.11.39/2038 - Release Date: 04/02/09 
> 19:07:00
> 

[kicad-users] Re: Solder Paste

2009-04-02 Thread oecherexpat
Hi Robert,

Interesting manufacturer you've got there. No, Kicad does not have the ability 
to shrink the solder past pads as it can increase pad sizes on solder resist 
layer. I myself just finished a PCB where I only had to shrink solder paste for 
2 fine-pitch connectors. I did it by not using the original pad for paste but 
added a smaler drawing for each pad. Man, that was a lot of work, the connector 
has 60 pins.
On the standard components, the manufacturer said it's ok to
leave it 1:1. Aparently, the needed shrinkage depends on pad size and how the 
stencil is manufactures (etched, lasered, electro-polished) but also on the 
thickness of the stencil. Maybe going to a thinner stencil might be a solution 
for you, they are usually available down to 100um/4mil.

Cheers,   Heiko


--- In kicad-users@yahoogroups.com, Robert  wrote:
>
> Hi all,
> 
> I've been asked to shrink the size of the solder paste windows relative 
> to the pads by 0.04mm, ie if a pad is a 1mm diameter circle, I've been 
> asked to make the solder paste window 0.96mm in diameter.   Does anyone 
> know how I might achieve this please, either with kicad or via some 
> post-processing stage?
> 
> Regards,
> 
> Robert.
>




[kicad-users] Re: Solder Paste

2009-04-02 Thread axtz4
--- In kicad-users@yahoogroups.com, Robert  wrote:
>
> Hmmm - that would be a lot of manual editing.   OK, thanks.   At least I 
> can now solve it with a bit of C code if they insist on this one.

Give this a try (I hope the Y! formatting doesn't totally destroy it.) May need 
to be tweaked for your house Gerber style.


#!/usr/bin/perl
#
# Usage: perl shrink_paste.pl [input] [shrinkage] {minimum}
#
# Define $scale as the factor from the units of the command line shrinkage
# value to the units in the Gerber. For a command line unit of mm and a
# Gerber unit of inches, use 25.4.
# If specified, the minimum dimension will be respected. If not specified,
# it defaults to 0.0. Units are assumed to be the same as shrinkage and
# similarly affected by the scale factor.

$scale = 25.4;
$minimum = 0.0;

$iname = $ARGV[0];
if ($iname eq "") {
print "No input filename\n";
exit;
}

$oname = $iname;
$bakname = $iname;

$base = rindex($oname, ".pho");
if ($base == -1) {
print "Input not a Gerber? (Not .pho)\n";
exit;
}

$shrinkage = $ARGV[1];

if ($shrinkage == 0) {
print "Quitting, no shrinkage spec'd\n";
exit;
}

$shrinkage /= $scale;

$minimum = $ARGV[2];
if ($minimum < 0.0) {
$minimum = 0.0;
}
$minimum /= $scale;

substr($oname, $base) = ".tmp";
substr($bakname, $base) = ".bak";

open (IFILE, $iname) or die "$iname: $!";
open (OFILE, ">", $oname) or die "$oname: $!";

$working = 0;
$x = 0.0;
$y = 0.0;

while () {
chomp;
if (!$working) {
printf(OFILE "%s\n", $_);
if (/APERTURE LIST/) {
$working = 1;
}
} elsif ($working) {
if (/APERTURE END LIST/) {
$working = 0;
printf(OFILE "%s\n", $_);
} else {
@field = split(/[,X\*]/);
if ($field[0] =~ /C/) {
$x = $field[1] - $shrinkage;
if ($x < $minimum) {
$x = $minimum;
}
printf(OFILE "%s,%.6f*%\n",
$field[0], $x);
} elsif ($field[0] =~ /[RO]/) {
$x = $field[1] - $shrinkage;
if ($x < $minimum) {
$x = $minimum;
}
$y = $field[2] - $shrinkage;
if ($y < $minimum) {
$y = $minimum;
}
printf(OFILE "%s,%.6fX%.6f*%\n",
$field[0], $x, $y);
}
}
}
}

close(IFILE);
close(OFILE);

rename($iname, $bakname);
rename($oname, $iname);




Re: [kicad-users] Re: Solder Paste

2009-04-02 Thread Robert
Hmmm - that would be a lot of manual editing.   OK, thanks.   At least I 
can now solve it with a bit of C code if they insist on this one.

Regards,

Robert.

axtz4 wrote:
> --- In kicad-users@yahoogroups.com, Robert 
> wrote:
>> Thanks.   I should add that they want the solder mask to be
>> positive (ie the solder mask clearance is supposed to be 0.4mm), so
>> your cunning idea can't be applied in this case.
> 
> [sound of planting face in hand] D'oh! Yes, I was thinking solder
> masks and not the paste tool.
> 
> Well, one sure way to do this is to edit the *SoldP_Cmp.pho (and
> similar) file and mod the appertures. E.g., if the original apperture
> for an 0804 was D23 and it was listed as %ADD23R,0.055000X0.035000*%
> (1.4 mm x 0.9 mm) in the Gerber, changing it to 1 mm x 0.5 mm would
> be %ADD23R,0.04X0.02*%, more or less.
> 
> 
> 
> 
> 
> Please read the Kicad FAQ in the group files section before posting
> your question. Please post your bug reports here. They will be picked
> up by the creator of Kicad. Please visit http://www.kicadlib.org for
> details of how to contribute your symbols/modules to the kicad
> library. For building Kicad from source and other development
> questions visit the kicad-devel group at
> http://groups.yahoo.com/group/kicad-develYahoo! Groups Links
> 
> 
> 
> 
> 
> 
> 
> No virus found in this incoming message. Checked by AVG - www.avg.com
>  Version: 8.5.283 / Virus Database: 270.11.38/2037 - Release Date:
> 04/02/09 06:09:00
> 

[kicad-users] Re: Solder Paste

2009-04-02 Thread axtz4
--- In kicad-users@yahoogroups.com, Robert  wrote:
>
> Thanks.   I should add that they want the solder mask to be positive (ie 
> the solder mask clearance is supposed to be 0.4mm), so your cunning idea 
> can't be applied in this case.

[sound of planting face in hand] D'oh! Yes, I was thinking solder masks and not 
the paste tool.

Well, one sure way to do this is to edit the *SoldP_Cmp.pho (and similar) file 
and mod the appertures. E.g., if the original apperture for an 0804 was D23 and 
it was listed as %ADD23R,0.055000X0.035000*% (1.4 mm x 0.9 mm) in the Gerber, 
changing it to 1 mm x 0.5 mm would be %ADD23R,0.04X0.02*%, more or less.



Re: [kicad-users] Re: Solder Paste

2009-04-01 Thread Robert
Thanks.   I should add that they want the solder mask to be positive (ie 
the solder mask clearance is supposed to be 0.4mm), so your cunning idea 
can't be applied in this case.

Regards,

Robert.

axtz4 wrote:
> --- In kicad-users@yahoogroups.com, Robert  wrote:
>> Hi all,
>>
>> I've been asked to shrink the size of the solder paste windows relative 
>> to the pads by 0.04mm, ie if a pad is a 1mm diameter circle, I've been 
>> asked to make the solder paste window 0.96mm in diameter.   Does anyone 
>> know how I might achieve this please, either with kicad or via some 
>> post-processing stage?
> 
> In the board editor, select the menu Dimensions | Tracks and Vias. From that 
> dialog, you can set the global mask clearance. A negative clearance does seem 
> to work okay, though a verification pass through a Gerber viewer is always a 
> good idea ...
> 
> 
> 
> 
> 
> Please read the Kicad FAQ in the group files section before posting your 
> question.
> Please post your bug reports here. They will be picked up by the creator of 
> Kicad.
> Please visit http://www.kicadlib.org for details of how to contribute your 
> symbols/modules to the kicad library.
> For building Kicad from source and other development questions visit the 
> kicad-devel group at http://groups.yahoo.com/group/kicad-develYahoo! Groups 
> Links
> 
> 
> 
> 
> 
> 
> 
> No virus found in this incoming message.
> Checked by AVG - www.avg.com 
> Version: 8.5.283 / Virus Database: 270.11.35/2034 - Release Date: 04/01/09 
> 06:06:00
> 

[kicad-users] Re: Solder Paste

2009-04-01 Thread axtz4
--- In kicad-users@yahoogroups.com, Robert  wrote:
>
> Hi all,
> 
> I've been asked to shrink the size of the solder paste windows relative 
> to the pads by 0.04mm, ie if a pad is a 1mm diameter circle, I've been 
> asked to make the solder paste window 0.96mm in diameter.   Does anyone 
> know how I might achieve this please, either with kicad or via some 
> post-processing stage?

In the board editor, select the menu Dimensions | Tracks and Vias. From that 
dialog, you can set the global mask clearance. A negative clearance does seem 
to work okay, though a verification pass through a Gerber viewer is always a 
good idea ...