Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions kikit/fab/jlcpcb.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from kikit.common import *
from kikit.export import gerberImpl

def collectBom(components, lscsFields, ignore):
def collectBom(components, lscsFields, ignore, skip_missing):
bom = {}
for c in components:
if getUnit(c) != 1:
Expand All @@ -21,6 +21,8 @@ def collectBom(components, lscsFields, ignore):
continue
if getField(c, "JLCPCB_IGNORE") is not None and getField(c, "JLCPCB_IGNORE") != "":
continue
if skip_missing and (getField(c, "LCSC") is None or getField(c, "LCSC") == ""):
continue
if hasattr(c, "in_bom") and not c.in_bom:
continue
if hasattr(c, "on_board") and not c.on_board:
Expand Down Expand Up @@ -56,7 +58,8 @@ def bomToCsv(bomData, filename):
writer.writerow([value, ",".join(refChunk), footprint, lcsc])

def exportJlcpcb(board, outputdir, assembly, schematic, ignore, field,
corrections, correctionpatterns, missingerror, nametemplate, drc):
corrections, correctionpatterns, missingerror, nametemplate, drc,
skip_missing):
"""
Prepare fabrication files for JLCPCB including their assembly service
"""
Expand Down Expand Up @@ -87,7 +90,7 @@ def exportJlcpcb(board, outputdir, assembly, schematic, ignore, field,
correctionFields = [x.strip() for x in corrections.split(",")]
components = extractComponents(schematic)
ordercodeFields = [x.strip() for x in field.split(",")]
bom = collectBom(components, ordercodeFields, refsToIgnore)
bom = collectBom(components, ordercodeFields, refsToIgnore, skip_missing)

bom_refs = set(x for xs in bom.values() for x in xs)
bom_components = [c for c in components if getReference(c) in bom_refs]
Expand Down
1 change: 1 addition & 0 deletions kikit/fab_ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ def fabCommand(f):
help="Comma separated list of component fields with the correction value. First existing field is used")
@click.option("--correctionpatterns", type=click.Path(dir_okay=False))
@click.option("--missingError/--missingWarn", help="If a non-ignored component misses LCSC field, fail")
@click.option("--skip-missing", is_flag=True, help="Skip components with missing or empty LCSC field")
def jlcpcb(**kwargs):
"""
Prepare fabrication files for JLCPCB including their assembly service
Expand Down