← Back to team overview

kicad-developers team mailing list archive

Re: Fwd: Re: What are the smallest values for pad paste and mask clearances? Why can't polygon pads not use negative mask clearance?

 

2018-04-28 18:35 GMT+03:00 Wayne Stambaugh <stambaughw@xxxxxxxxx>:

> Just to be clear, the library developers are asking for the ability to
> ignore clearance and ratio settings when creating solder mask and solder
> paste only pads.  If this is the case, it will require a board file format
> change to add a flag to ignore the global and footprint level settings.  I
> would be opposed to changing the code to just assume that if it's a solder
> mask or solder paste only pad that no tolerance or ratio is applied.  This
> would break an existing pads defined this way and silently change existing
> boards.  Given that we are deep into feature freeze, the least painful
> solution would be to set the tolerance to 1nm and the ratio (as JP
> suggested) to 0.00001% for the footprints that need to maintain the
> dimensions of solder mask and solder paste only boards.  The change to the
> overall pad dimensions using this method would be far below any board
> manufacturer's tolerance capabilities.  Is this not an acceptable solution?
>
> Cheers,
>
> Wayne
>
>

Considering the requirements of compatibility with existing designs this is
acceptable. Maybe there could be a way to prevent unlucky situations where
a user hasn't understood the effects of the zero values. How about
something like this:

When the pad properties dialog is closed with OK, do this (in pseudocode):

IF no_copper_layers_in_pad THEN
    IF    abs(mask_clr) > 0.001mm  OR
          mask_clr == 0            OR
          abs(paste_clr) > 0.001mm OR
          paste_clr == 0           OR
          abs(paste_rat) > 0.001   THEN
              put_values = dialog_with_checkbox(
                  text = "Warning: non-copper pad sizes may be changed
uncontrollably because of clearance values."
                  checkbox_text = "Put safe values into clearance fields"
              )
              IF put_values THEN
                  change_clearance_fields_values_to_000001()

Experienced users could even exploit this to avoid writing the values
manually.

Eeli Kaikkonen

References