Fixed problems when using the `pdf_pcb_print` on special case.

When using variants to remove a component with ridiculous pads
that only has solder paste (no copper, nor even solder mask
aperture).
This commit is contained in:
Salvador E. Tropea 2020-10-27 17:58:51 -03:00
parent 2e568a563a
commit b27872d7e8
7 changed files with 435 additions and 3 deletions

View File

@ -18,6 +18,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- KiBom variants when using multiple variants and a components used more
than one, specifying oposite rules.
- Problems when using the `pdf_pcb_print` output and variants to remove
a component with ridiculous pads that only has solder paste (no
copper, nor even solder mask aperture).
## [0.7.0] - 2020-09-11
### Added

View File

@ -155,6 +155,7 @@ W_MISSLIB = '(W041) '
W_MISSDCM = '(W042) '
W_MISSCMP = '(W043) '
W_VARSCH = '(W044) '
W_WRONGPASTE = '(W045) '
class Rect(object):

View File

@ -5,7 +5,7 @@
# Project: KiBot (formerly KiPlot)
from .gs import GS
from .kiplot import load_sch
from .misc import Rect, KICAD_VERSION_5_99
from .misc import Rect, KICAD_VERSION_5_99, W_WRONGPASTE
if GS.kicad_version_n >= KICAD_VERSION_5_99:
# New name, no alias ...
from pcbnew import FP_SHAPE, wxPoint, LSET
@ -190,14 +190,18 @@ class VariantOptions(BaseOptions):
def remove_paste_and_glue(self, board, comps_hash):
""" Remove from solder paste layers the filtered components. """
exclude = LSET()
exclude.addLayer(board.GetLayerID('F.Paste'))
exclude.addLayer(board.GetLayerID('B.Paste'))
fpaste = board.GetLayerID('F.Paste')
bpaste = board.GetLayerID('B.Paste')
exclude.addLayer(fpaste)
exclude.addLayer(bpaste)
old_layers = []
fadhes = board.GetLayerID('F.Adhes')
badhes = board.GetLayerID('B.Adhes')
old_fadhes = []
old_badhes = []
rescue = board.GetLayerID('Rescue')
fmask = board.GetLayerID('F.Mask')
bmask = board.GetLayerID('B.Mask')
for m in board.GetModules():
ref = m.GetReference()
c = comps_hash.get(ref, None)
@ -206,8 +210,14 @@ class VariantOptions(BaseOptions):
old_c_layers = []
for p in m.Pads():
pad_layers = p.GetLayerSet()
is_front = fpaste in pad_layers.Seq()
old_c_layers.append(pad_layers.FmtHex())
pad_layers.removeLayerSet(exclude)
if len(pad_layers.Seq()) == 0:
# No layers at all. Ridiculous, but happends.
# At least add an F.Mask
pad_layers.addLayer(fmask if is_front else bmask)
logger.warning(W_WRONGPASTE+'Pad with solder paste, but no copper or solder mask aperture in '+ref)
p.SetLayerSet(pad_layers)
old_layers.append(old_c_layers)
# Remove any graphical item in the *.Adhes layers

View File

@ -0,0 +1,361 @@
(kicad_pcb (version 20171130) (host pcbnew 5.1.7+dfsg1-1)
(general
(thickness 1.6)
(drawings 0)
(tracks 0)
(zones 0)
(modules 1)
(nets 28)
)
(page A4)
(layers
(0 F.Cu signal)
(31 B.Cu signal)
(32 B.Adhes user)
(33 F.Adhes user)
(34 B.Paste user)
(35 F.Paste user)
(36 B.SilkS user)
(37 F.SilkS user)
(38 B.Mask user)
(39 F.Mask user)
(40 Dwgs.User user)
(41 Cmts.User user)
(42 Eco1.User user)
(43 Eco2.User user)
(44 Edge.Cuts user)
(45 Margin user)
(46 B.CrtYd user)
(47 F.CrtYd user)
(48 B.Fab user)
(49 F.Fab user)
)
(setup
(last_trace_width 0.25)
(trace_clearance 0.2)
(zone_clearance 0.508)
(zone_45_only no)
(trace_min 0.2)
(via_size 0.8)
(via_drill 0.4)
(via_min_size 0.4)
(via_min_drill 0.3)
(uvia_size 0.3)
(uvia_drill 0.1)
(uvias_allowed no)
(uvia_min_size 0.2)
(uvia_min_drill 0.1)
(edge_width 0.05)
(segment_width 0.2)
(pcb_text_width 0.3)
(pcb_text_size 1.5 1.5)
(mod_edge_width 0.12)
(mod_text_size 1 1)
(mod_text_width 0.15)
(pad_size 1.524 1.524)
(pad_drill 0.762)
(pad_to_mask_clearance 0)
(aux_axis_origin 0 0)
(visible_elements FFFFFF7F)
(pcbplotparams
(layerselection 0x010fc_ffffffff)
(usegerberextensions false)
(usegerberattributes true)
(usegerberadvancedattributes true)
(creategerberjobfile true)
(excludeedgelayer true)
(linewidth 0.100000)
(plotframeref false)
(viasonmask false)
(mode 1)
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(psnegative false)
(psa4output false)
(plotreference true)
(plotvalue true)
(plotinvisibletext false)
(padsonsilk false)
(subtractmaskfromsilk false)
(outputformat 1)
(mirror false)
(drillshape 1)
(scaleselection 1)
(outputdirectory ""))
)
(net 0 "")
(net 1 "Net-(U1-Pad2)")
(net 2 "Net-(U1-Pad28)")
(net 3 "Net-(U1-Pad27)")
(net 4 "Net-(U1-Pad26)")
(net 5 "Net-(U1-Pad25)")
(net 6 "Net-(U1-Pad24)")
(net 7 "Net-(U1-Pad23)")
(net 8 "Net-(U1-Pad22)")
(net 9 "Net-(U1-Pad21)")
(net 10 "Net-(U1-Pad20)")
(net 11 "Net-(U1-Pad19)")
(net 12 "Net-(U1-Pad18)")
(net 13 "Net-(U1-Pad17)")
(net 14 "Net-(U1-Pad16)")
(net 15 "Net-(U1-Pad15)")
(net 16 "Net-(U1-Pad14)")
(net 17 "Net-(U1-Pad13)")
(net 18 "Net-(U1-Pad12)")
(net 19 "Net-(U1-Pad11)")
(net 20 "Net-(U1-Pad10)")
(net 21 "Net-(U1-Pad9)")
(net 22 "Net-(U1-Pad8)")
(net 23 "Net-(U1-Pad7)")
(net 24 "Net-(U1-Pad5)")
(net 25 "Net-(U1-Pad4)")
(net 26 "Net-(U1-Pad3)")
(net 27 "Net-(U1-Pad1)")
(net_class Default "This is the default net class."
(clearance 0.2)
(trace_width 0.25)
(via_dia 0.8)
(via_drill 0.4)
(uvia_dia 0.3)
(uvia_drill 0.1)
(add_net "Net-(U1-Pad1)")
(add_net "Net-(U1-Pad10)")
(add_net "Net-(U1-Pad11)")
(add_net "Net-(U1-Pad12)")
(add_net "Net-(U1-Pad13)")
(add_net "Net-(U1-Pad14)")
(add_net "Net-(U1-Pad15)")
(add_net "Net-(U1-Pad16)")
(add_net "Net-(U1-Pad17)")
(add_net "Net-(U1-Pad18)")
(add_net "Net-(U1-Pad19)")
(add_net "Net-(U1-Pad2)")
(add_net "Net-(U1-Pad20)")
(add_net "Net-(U1-Pad21)")
(add_net "Net-(U1-Pad22)")
(add_net "Net-(U1-Pad23)")
(add_net "Net-(U1-Pad24)")
(add_net "Net-(U1-Pad25)")
(add_net "Net-(U1-Pad26)")
(add_net "Net-(U1-Pad27)")
(add_net "Net-(U1-Pad28)")
(add_net "Net-(U1-Pad3)")
(add_net "Net-(U1-Pad4)")
(add_net "Net-(U1-Pad5)")
(add_net "Net-(U1-Pad7)")
(add_net "Net-(U1-Pad8)")
(add_net "Net-(U1-Pad9)")
)
(module Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mm_ThermalVias (layer F.Cu) (tedit 5DC5F6A4) (tstamp 5F9851E2)
(at 112.903 67.6148)
(descr "QFN, 28 Pin (http://ww1.microchip.com/downloads/en/PackagingSpec/00000049BQ.pdf#page=283), generated with kicad-footprint-generator ipc_noLead_generator.py")
(tags "QFN NoLead")
(path /5F9852AB)
(attr smd)
(fp_text reference U1 (at 0 -3.8) (layer F.SilkS)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text value AX5043 (at 0 3.8) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_text user %R (at 0 0) (layer F.Fab)
(effects (font (size 1 1) (thickness 0.15)))
)
(fp_line (start 1.885 -2.61) (end 2.61 -2.61) (layer F.SilkS) (width 0.12))
(fp_line (start 2.61 -2.61) (end 2.61 -1.885) (layer F.SilkS) (width 0.12))
(fp_line (start -1.885 2.61) (end -2.61 2.61) (layer F.SilkS) (width 0.12))
(fp_line (start -2.61 2.61) (end -2.61 1.885) (layer F.SilkS) (width 0.12))
(fp_line (start 1.885 2.61) (end 2.61 2.61) (layer F.SilkS) (width 0.12))
(fp_line (start 2.61 2.61) (end 2.61 1.885) (layer F.SilkS) (width 0.12))
(fp_line (start -1.885 -2.61) (end -2.61 -2.61) (layer F.SilkS) (width 0.12))
(fp_line (start -1.5 -2.5) (end 2.5 -2.5) (layer F.Fab) (width 0.1))
(fp_line (start 2.5 -2.5) (end 2.5 2.5) (layer F.Fab) (width 0.1))
(fp_line (start 2.5 2.5) (end -2.5 2.5) (layer F.Fab) (width 0.1))
(fp_line (start -2.5 2.5) (end -2.5 -1.5) (layer F.Fab) (width 0.1))
(fp_line (start -2.5 -1.5) (end -1.5 -2.5) (layer F.Fab) (width 0.1))
(fp_line (start -3.1 -3.1) (end -3.1 3.1) (layer F.CrtYd) (width 0.05))
(fp_line (start -3.1 3.1) (end 3.1 3.1) (layer F.CrtYd) (width 0.05))
(fp_line (start 3.1 3.1) (end 3.1 -3.1) (layer F.CrtYd) (width 0.05))
(fp_line (start 3.1 -3.1) (end -3.1 -3.1) (layer F.CrtYd) (width 0.05))
(pad "" smd custom (at 1.3375 1.3375) (size 0.43669 0.43669) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.164589 -0.075523) (xy -0.075523 -0.164589) (xy 0.164589 -0.164589) (xy 0.164589 0.164589) (xy -0.164589 0.164589)
) (width 0.215024))
))
(pad "" smd custom (at 1.3375 -1.3375) (size 0.43669 0.43669) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.164589 -0.164589) (xy 0.164589 -0.164589) (xy 0.164589 0.164589) (xy -0.075523 0.164589) (xy -0.164589 0.075523)
) (width 0.215024))
))
(pad "" smd custom (at -1.3375 1.3375) (size 0.43669 0.43669) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.164589 -0.164589) (xy 0.075523 -0.164589) (xy 0.164589 -0.075523) (xy 0.164589 0.164589) (xy -0.164589 0.164589)
) (width 0.215024))
))
(pad "" smd custom (at -1.3375 -1.3375) (size 0.43669 0.43669) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.164589 -0.164589) (xy 0.164589 -0.164589) (xy 0.164589 0.075523) (xy 0.075523 0.164589) (xy -0.164589 0.164589)
) (width 0.215024))
))
(pad "" smd custom (at 0.5 1.3375) (size 0.458956 0.458956) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.317866 -0.116234) (xy -0.247246 -0.186855) (xy 0.247246 -0.186855) (xy 0.317866 -0.116234) (xy 0.317866 0.186855)
(xy -0.317866 0.186855)) (width 0.170493))
))
(pad "" smd custom (at -0.5 1.3375) (size 0.458956 0.458956) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.317866 -0.116234) (xy -0.247246 -0.186855) (xy 0.247246 -0.186855) (xy 0.317866 -0.116234) (xy 0.317866 0.186855)
(xy -0.317866 0.186855)) (width 0.170493))
))
(pad "" smd custom (at 0.5 -1.3375) (size 0.458956 0.458956) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.317866 -0.186855) (xy 0.317866 -0.186855) (xy 0.317866 0.116234) (xy 0.247246 0.186855) (xy -0.247246 0.186855)
(xy -0.317866 0.116234)) (width 0.170493))
))
(pad "" smd custom (at -0.5 -1.3375) (size 0.458956 0.458956) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.317866 -0.186855) (xy 0.317866 -0.186855) (xy 0.317866 0.116234) (xy 0.247246 0.186855) (xy -0.247246 0.186855)
(xy -0.317866 0.116234)) (width 0.170493))
))
(pad "" smd custom (at 1.3375 0.5) (size 0.458956 0.458956) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.186855 -0.247246) (xy -0.116234 -0.317866) (xy 0.186855 -0.317866) (xy 0.186855 0.317866) (xy -0.116234 0.317866)
(xy -0.186855 0.247246)) (width 0.170493))
))
(pad "" smd custom (at 1.3375 -0.5) (size 0.458956 0.458956) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.186855 -0.247246) (xy -0.116234 -0.317866) (xy 0.186855 -0.317866) (xy 0.186855 0.317866) (xy -0.116234 0.317866)
(xy -0.186855 0.247246)) (width 0.170493))
))
(pad "" smd custom (at -1.3375 0.5) (size 0.458956 0.458956) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.186855 -0.317866) (xy 0.116234 -0.317866) (xy 0.186855 -0.247246) (xy 0.186855 0.247246) (xy 0.116234 0.317866)
(xy -0.186855 0.317866)) (width 0.170493))
))
(pad "" smd custom (at -1.3375 -0.5) (size 0.458956 0.458956) (layers F.Paste)
(options (clearance outline) (anchor circle))
(primitives
(gr_poly (pts
(xy -0.186855 -0.317866) (xy 0.116234 -0.317866) (xy 0.186855 -0.247246) (xy 0.186855 0.247246) (xy 0.116234 0.317866)
(xy -0.186855 0.317866)) (width 0.170493))
))
(pad "" smd roundrect (at 0.5 0.5) (size 0.806226 0.806226) (layers F.Paste) (roundrect_rratio 0.25))
(pad "" smd roundrect (at 0.5 -0.5) (size 0.806226 0.806226) (layers F.Paste) (roundrect_rratio 0.25))
(pad "" smd roundrect (at -0.5 0.5) (size 0.806226 0.806226) (layers F.Paste) (roundrect_rratio 0.25))
(pad "" smd roundrect (at -0.5 -0.5) (size 0.806226 0.806226) (layers F.Paste) (roundrect_rratio 0.25))
(pad 29 smd rect (at 0 0) (size 2.5 2.5) (layers B.Cu)
(net 1 "Net-(U1-Pad2)"))
(pad 29 thru_hole circle (at 1 1) (size 0.5 0.5) (drill 0.2) (layers *.Cu)
(net 1 "Net-(U1-Pad2)"))
(pad 29 thru_hole circle (at 0 1) (size 0.5 0.5) (drill 0.2) (layers *.Cu)
(net 1 "Net-(U1-Pad2)"))
(pad 29 thru_hole circle (at -1 1) (size 0.5 0.5) (drill 0.2) (layers *.Cu)
(net 1 "Net-(U1-Pad2)"))
(pad 29 thru_hole circle (at 1 0) (size 0.5 0.5) (drill 0.2) (layers *.Cu)
(net 1 "Net-(U1-Pad2)"))
(pad 29 thru_hole circle (at 0 0) (size 0.5 0.5) (drill 0.2) (layers *.Cu)
(net 1 "Net-(U1-Pad2)"))
(pad 29 thru_hole circle (at -1 0) (size 0.5 0.5) (drill 0.2) (layers *.Cu)
(net 1 "Net-(U1-Pad2)"))
(pad 29 thru_hole circle (at 1 -1) (size 0.5 0.5) (drill 0.2) (layers *.Cu)
(net 1 "Net-(U1-Pad2)"))
(pad 29 thru_hole circle (at 0 -1) (size 0.5 0.5) (drill 0.2) (layers *.Cu)
(net 1 "Net-(U1-Pad2)"))
(pad 29 thru_hole circle (at -1 -1) (size 0.5 0.5) (drill 0.2) (layers *.Cu)
(net 1 "Net-(U1-Pad2)"))
(pad 29 smd rect (at 0 0) (size 3.35 3.35) (layers F.Cu F.Mask)
(net 1 "Net-(U1-Pad2)"))
(pad 28 smd roundrect (at -1.5 -2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 2 "Net-(U1-Pad28)"))
(pad 27 smd roundrect (at -1 -2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 3 "Net-(U1-Pad27)"))
(pad 26 smd roundrect (at -0.5 -2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 4 "Net-(U1-Pad26)"))
(pad 25 smd roundrect (at 0 -2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 5 "Net-(U1-Pad25)"))
(pad 24 smd roundrect (at 0.5 -2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 6 "Net-(U1-Pad24)"))
(pad 23 smd roundrect (at 1 -2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 7 "Net-(U1-Pad23)"))
(pad 22 smd roundrect (at 1.5 -2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 8 "Net-(U1-Pad22)"))
(pad 21 smd roundrect (at 2.45 -1.5) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 9 "Net-(U1-Pad21)"))
(pad 20 smd roundrect (at 2.45 -1) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 10 "Net-(U1-Pad20)"))
(pad 19 smd roundrect (at 2.45 -0.5) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 11 "Net-(U1-Pad19)"))
(pad 18 smd roundrect (at 2.45 0) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 12 "Net-(U1-Pad18)"))
(pad 17 smd roundrect (at 2.45 0.5) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 13 "Net-(U1-Pad17)"))
(pad 16 smd roundrect (at 2.45 1) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 14 "Net-(U1-Pad16)"))
(pad 15 smd roundrect (at 2.45 1.5) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 15 "Net-(U1-Pad15)"))
(pad 14 smd roundrect (at 1.5 2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 16 "Net-(U1-Pad14)"))
(pad 13 smd roundrect (at 1 2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 17 "Net-(U1-Pad13)"))
(pad 12 smd roundrect (at 0.5 2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 18 "Net-(U1-Pad12)"))
(pad 11 smd roundrect (at 0 2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 19 "Net-(U1-Pad11)"))
(pad 10 smd roundrect (at -0.5 2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 20 "Net-(U1-Pad10)"))
(pad 9 smd roundrect (at -1 2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 21 "Net-(U1-Pad9)"))
(pad 8 smd roundrect (at -1.5 2.45) (size 0.25 0.8) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 22 "Net-(U1-Pad8)"))
(pad 7 smd roundrect (at -2.45 1.5) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 23 "Net-(U1-Pad7)"))
(pad 6 smd roundrect (at -2.45 1) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 1 "Net-(U1-Pad2)"))
(pad 5 smd roundrect (at -2.45 0.5) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 24 "Net-(U1-Pad5)"))
(pad 4 smd roundrect (at -2.45 0) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 25 "Net-(U1-Pad4)"))
(pad 3 smd roundrect (at -2.45 -0.5) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 26 "Net-(U1-Pad3)"))
(pad 2 smd roundrect (at -2.45 -1) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 1 "Net-(U1-Pad2)"))
(pad 1 smd roundrect (at -2.45 -1.5) (size 0.8 0.25) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25)
(net 27 "Net-(U1-Pad1)"))
(model ${KISYS3DMOD}/Package_DFN_QFN.3dshapes/QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mm.wrl
(at (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
)

View File

@ -0,0 +1,28 @@
EESchema Schematic File Version 4
EELAYER 30 0
EELAYER END
$Descr A4 11693 8268
encoding utf-8
Sheet 1 1
Title ""
Date ""
Rev ""
Comp ""
Comment1 ""
Comment2 ""
Comment3 ""
Comment4 ""
$EndDescr
$Comp
L RF:AX5043 U1
U 1 1 5F9852AB
P 3900 3350
F 0 "U1" H 3900 2361 50 0000 C CNN
F 1 "AX5043" H 3900 2270 50 0000 C CNN
F 2 "Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mm" H 6000 4800 50 0001 C CNN
F 3 "https://www.onsemi.com/pub/Collateral/AX5043-D.PDF" H 5250 4700 50 0001 C CNN
F 4 "DNF" H 3900 3350 50 0001 C CNN "Config"
1 3900 3350
1 0 0 -1
$EndComp
$EndSCHEMATC

View File

@ -61,3 +61,14 @@ def test_print_pcb_options():
ctx.expect_out_file(PDF_FILE)
ctx.compare_pdf(PDF_FILE)
ctx.clean_up()
def test_print_wrong_paste():
prj = 'wrong_paste'
ctx = context.TestContext('print_wrong_paste', prj, 'wrong_paste', PDF_DIR)
ctx.run()
# Check all outputs are there
fname = prj+'-F_Fab.pdf'
ctx.expect_out_file(fname)
ctx.search_err(r'Pad with solder paste, but no copper')
ctx.clean_up()

View File

@ -0,0 +1,17 @@
# Example KiBot config file
kibot:
version: 1
variants:
- name: 'default'
comment: 'Default variant'
type: ibom
variants_blacklist: DNF
outputs:
- name: 'pdf_default'
comment: "PCB print w/variant"
type: pdf_pcb_print
options:
variant: default
layers: F.Fab