Initial commit

This commit is contained in:
2026-03-10 16:51:51 +00:00
commit 3f6772488e
70 changed files with 9056 additions and 0 deletions

View File

@@ -0,0 +1,312 @@
{
"3d_viewer": {
"background_bottom": "rgb(102, 102, 128)",
"background_top": "rgb(204, 204, 230)",
"board": "rgba(51, 43, 23, 0.902)",
"copper": "rgb(179, 156, 0)",
"silkscreen_bottom": "rgb(230, 230, 230)",
"silkscreen_top": "rgb(230, 230, 230)",
"soldermask_bottom": "rgba(20, 51, 36, 0.831)",
"soldermask_top": "rgba(20, 51, 36, 0.831)",
"solderpaste": "rgb(128, 128, 128)",
"use_board_stackup_colors": true,
"user_1": "rgb(194, 194, 194)",
"user_10": "rgb(89, 148, 220)",
"user_11": "rgb(180, 219, 210)",
"user_12": "rgb(216, 200, 82)",
"user_13": "rgb(194, 194, 194)",
"user_14": "rgb(89, 148, 220)",
"user_15": "rgb(180, 219, 210)",
"user_16": "rgb(216, 200, 82)",
"user_17": "rgb(194, 194, 194)",
"user_18": "rgb(89, 148, 220)",
"user_19": "rgb(180, 219, 210)",
"user_2": "rgb(89, 148, 220)",
"user_20": "rgb(216, 200, 82)",
"user_21": "rgb(194, 194, 194)",
"user_22": "rgb(89, 148, 220)",
"user_23": "rgb(180, 219, 210)",
"user_24": "rgb(216, 200, 82)",
"user_25": "rgb(194, 194, 194)",
"user_26": "rgb(89, 148, 220)",
"user_27": "rgb(180, 219, 210)",
"user_28": "rgb(216, 200, 82)",
"user_29": "rgb(194, 194, 194)",
"user_3": "rgb(180, 219, 210)",
"user_30": "rgb(89, 148, 220)",
"user_31": "rgb(180, 219, 210)",
"user_32": "rgb(216, 200, 82)",
"user_33": "rgb(194, 194, 194)",
"user_34": "rgb(89, 148, 220)",
"user_35": "rgb(180, 219, 210)",
"user_36": "rgb(216, 200, 82)",
"user_37": "rgb(194, 194, 194)",
"user_38": "rgb(89, 148, 220)",
"user_39": "rgb(180, 219, 210)",
"user_4": "rgb(216, 200, 82)",
"user_40": "rgb(216, 200, 82)",
"user_41": "rgb(194, 194, 194)",
"user_42": "rgb(89, 148, 220)",
"user_43": "rgb(180, 219, 210)",
"user_44": "rgb(216, 200, 82)",
"user_45": "rgb(194, 194, 194)",
"user_5": "rgb(194, 194, 194)",
"user_6": "rgb(89, 148, 220)",
"user_7": "rgb(180, 219, 210)",
"user_8": "rgb(216, 200, 82)",
"user_9": "rgb(232, 178, 167)"
},
"board": {
"anchor": "rgb(255, 38, 226)",
"aux_items": "rgb(255, 255, 255)",
"b_adhes": "rgb(0, 0, 132)",
"b_crtyd": "rgb(38, 233, 255)",
"b_fab": "rgb(88, 93, 132)",
"b_mask": "rgba(2, 255, 238, 0.400)",
"b_paste": "rgba(0, 194, 194, 0.902)",
"b_silks": "rgb(232, 178, 167)",
"background": "rgb(0, 16, 35)",
"cmts_user": "rgb(89, 148, 220)",
"conflicts_shadow": "rgba(255, 0, 5, 0.502)",
"copper": {
"b": "rgb(77, 127, 196)",
"f": "rgb(200, 52, 52)",
"in1": "rgb(127, 200, 127)",
"in10": "rgb(237, 124, 51)",
"in11": "rgb(91, 195, 235)",
"in12": "rgb(247, 111, 142)",
"in13": "rgb(167, 165, 198)",
"in14": "rgb(40, 204, 217)",
"in15": "rgb(232, 178, 167)",
"in16": "rgb(242, 237, 161)",
"in17": "rgb(237, 124, 51)",
"in18": "rgb(91, 195, 235)",
"in19": "rgb(247, 111, 142)",
"in2": "rgb(206, 125, 44)",
"in20": "rgb(167, 165, 198)",
"in21": "rgb(40, 204, 217)",
"in22": "rgb(232, 178, 167)",
"in23": "rgb(242, 237, 161)",
"in24": "rgb(237, 124, 51)",
"in25": "rgb(91, 195, 235)",
"in26": "rgb(247, 111, 142)",
"in27": "rgb(167, 165, 198)",
"in28": "rgb(40, 204, 217)",
"in29": "rgb(232, 178, 167)",
"in3": "rgb(79, 203, 203)",
"in30": "rgb(242, 237, 161)",
"in4": "rgb(219, 98, 139)",
"in5": "rgb(167, 165, 198)",
"in6": "rgb(40, 204, 217)",
"in7": "rgb(232, 178, 167)",
"in8": "rgb(242, 237, 161)",
"in9": "rgb(141, 203, 129)"
},
"cursor": "rgb(255, 255, 255)",
"drc_error": "rgba(215, 91, 107, 0.800)",
"drc_exclusion": "rgba(255, 255, 255, 0.800)",
"drc_warning": "rgba(255, 208, 66, 0.800)",
"dwgs_user": "rgb(194, 194, 194)",
"eco1_user": "rgb(180, 219, 210)",
"eco2_user": "rgb(216, 200, 82)",
"edge_cuts": "rgb(208, 210, 205)",
"f_adhes": "rgb(132, 0, 132)",
"f_crtyd": "rgb(255, 38, 226)",
"f_fab": "rgb(175, 175, 175)",
"f_mask": "rgba(216, 100, 255, 0.400)",
"f_paste": "rgba(180, 160, 154, 0.902)",
"f_silks": "rgb(242, 237, 161)",
"footprint_text_invisible": "rgb(132, 132, 132)",
"grid": "rgb(132, 132, 132)",
"grid_axes": "rgb(194, 194, 194)",
"locked_shadow": "rgba(255, 38, 226, 0.502)",
"margin": "rgb(255, 38, 226)",
"pad_net_names": "rgba(255, 255, 255, 0.902)",
"pad_plated_hole": "rgb(194, 194, 0)",
"pad_through_hole": "rgb(227, 183, 46)",
"page_limits": "rgb(132, 132, 132)",
"plated_hole": "rgb(26, 196, 210)",
"ratsnest": "rgba(0, 248, 255, 0.349)",
"track_net_names": "rgba(255, 255, 255, 0.702)",
"user_1": "rgb(194, 194, 194)",
"user_10": "rgb(89, 148, 220)",
"user_11": "rgb(180, 219, 210)",
"user_12": "rgb(216, 200, 82)",
"user_13": "rgb(194, 194, 194)",
"user_14": "rgb(89, 148, 220)",
"user_15": "rgb(180, 219, 210)",
"user_16": "rgb(216, 200, 82)",
"user_17": "rgb(194, 194, 194)",
"user_18": "rgb(89, 148, 220)",
"user_19": "rgb(180, 219, 210)",
"user_2": "rgb(89, 148, 220)",
"user_20": "rgb(216, 200, 82)",
"user_21": "rgb(194, 194, 194)",
"user_22": "rgb(89, 148, 220)",
"user_23": "rgb(180, 219, 210)",
"user_24": "rgb(216, 200, 82)",
"user_25": "rgb(194, 194, 194)",
"user_26": "rgb(89, 148, 220)",
"user_27": "rgb(180, 219, 210)",
"user_28": "rgb(216, 200, 82)",
"user_29": "rgb(194, 194, 194)",
"user_3": "rgb(180, 219, 210)",
"user_30": "rgb(89, 148, 220)",
"user_31": "rgb(180, 219, 210)",
"user_32": "rgb(216, 200, 82)",
"user_33": "rgb(194, 194, 194)",
"user_34": "rgb(89, 148, 220)",
"user_35": "rgb(180, 219, 210)",
"user_36": "rgb(216, 200, 82)",
"user_37": "rgb(194, 194, 194)",
"user_38": "rgb(89, 148, 220)",
"user_39": "rgb(180, 219, 210)",
"user_4": "rgb(216, 200, 82)",
"user_40": "rgb(216, 200, 82)",
"user_41": "rgb(194, 194, 194)",
"user_42": "rgb(89, 148, 220)",
"user_43": "rgb(180, 219, 210)",
"user_44": "rgb(216, 200, 82)",
"user_45": "rgb(194, 194, 194)",
"user_5": "rgb(194, 194, 194)",
"user_6": "rgb(89, 148, 220)",
"user_7": "rgb(180, 219, 210)",
"user_8": "rgb(216, 200, 82)",
"user_9": "rgb(232, 178, 167)",
"via_blind_buried": "rgb(187, 151, 38)",
"via_hole": "rgb(227, 183, 46)",
"via_hole_walls": "rgb(236, 236, 236)",
"via_micro": "rgb(0, 132, 132)",
"via_net_names": "rgba(50, 50, 50, 0.902)",
"via_through": "rgb(236, 236, 236)",
"worksheet": "rgb(200, 114, 171)"
},
"gerbview": {
"axes": "rgb(0, 0, 132)",
"background": "rgb(0, 0, 0)",
"dcodes": "rgb(255, 255, 255)",
"grid": "rgb(132, 132, 132)",
"layers": [
"rgb(200, 52, 52)",
"rgb(127, 200, 127)",
"rgb(206, 125, 44)",
"rgb(79, 203, 203)",
"rgb(219, 98, 139)",
"rgb(167, 165, 198)",
"rgb(40, 204, 217)",
"rgb(232, 178, 167)",
"rgb(242, 237, 161)",
"rgb(141, 203, 129)",
"rgb(237, 124, 51)",
"rgb(91, 195, 235)",
"rgb(247, 111, 142)",
"rgb(77, 127, 196)",
"rgb(200, 52, 52)",
"rgb(127, 200, 127)",
"rgb(206, 125, 44)",
"rgb(79, 203, 203)",
"rgb(219, 98, 139)",
"rgb(167, 165, 198)",
"rgb(40, 204, 217)",
"rgb(232, 178, 167)",
"rgb(242, 237, 161)",
"rgb(141, 203, 129)",
"rgb(237, 124, 51)",
"rgb(91, 195, 235)",
"rgb(247, 111, 142)",
"rgb(77, 127, 196)",
"rgb(200, 52, 52)",
"rgb(127, 200, 127)",
"rgb(206, 125, 44)",
"rgb(79, 203, 203)",
"rgb(219, 98, 139)",
"rgb(167, 165, 198)",
"rgb(40, 204, 217)",
"rgb(232, 178, 167)",
"rgb(242, 237, 161)",
"rgb(141, 203, 129)",
"rgb(237, 124, 51)",
"rgb(91, 195, 235)",
"rgb(247, 111, 142)",
"rgb(77, 127, 196)",
"rgb(200, 52, 52)",
"rgb(127, 200, 127)",
"rgb(206, 125, 44)",
"rgb(79, 203, 203)",
"rgb(219, 98, 139)",
"rgb(167, 165, 198)",
"rgb(40, 204, 217)",
"rgb(232, 178, 167)",
"rgb(242, 237, 161)",
"rgb(141, 203, 129)",
"rgb(237, 124, 51)",
"rgb(91, 195, 235)",
"rgb(247, 111, 142)",
"rgb(77, 127, 196)",
"rgb(200, 52, 52)",
"rgb(127, 200, 127)",
"rgb(206, 125, 44)",
"rgb(79, 203, 203)",
"rgb(219, 98, 139)",
"rgb(167, 165, 198)",
"rgb(40, 204, 217)",
"rgb(232, 178, 167)"
],
"negative_objects": "rgb(132, 132, 132)",
"page_limits": "rgb(132, 132, 132)",
"worksheet": "rgb(0, 0, 132)"
},
"meta": {
"name": "Altium_Theme",
"version": 5
},
"schematic": {
"anchor": "rgb(0, 0, 255)",
"aux_items": "rgb(0, 0, 0)",
"background": "rgb(245, 244, 239)",
"brightened": "rgb(255, 0, 255)",
"bus": "rgb(0, 0, 132)",
"bus_junction": "rgb(0, 0, 132)",
"component_body": "rgb(255, 255, 194)",
"component_outline": "rgb(132, 0, 0)",
"cursor": "rgb(15, 15, 15)",
"dnp_marker": "rgba(220, 9, 13, 0.851)",
"erc_error": "rgba(230, 9, 13, 0.800)",
"erc_exclusion": "rgba(94, 194, 194, 0.800)",
"erc_warning": "rgba(209, 146, 0, 0.800)",
"excluded_from_sim": "rgba(194, 194, 194, 0.949)",
"fields": "rgb(132, 0, 132)",
"grid": "rgb(181, 181, 181)",
"grid_axes": "rgb(0, 0, 132)",
"hidden": "rgb(94, 194, 194)",
"hovered": "rgb(0, 0, 255)",
"junction": "rgb(0, 0, 0)",
"label_global": "rgb(132, 0, 0)",
"label_hier": "rgb(114, 86, 0)",
"label_local": "rgb(132, 0, 0)",
"netclass_flag": "rgb(72, 72, 72)",
"no_connect": "rgb(0, 0, 132)",
"note": "rgb(0, 0, 194)",
"note_background": "rgba(0, 0, 0, 0.000)",
"op_currents": "rgb(224, 0, 12)",
"op_voltages": "rgb(132, 0, 50)",
"override_item_colors": false,
"page_limits": "rgb(181, 181, 181)",
"pin": "rgb(0, 0, 0)",
"pin_name": "rgb(0, 0, 0)",
"pin_number": "rgb(0, 0, 0)",
"private_note": "rgb(72, 72, 255)",
"reference": "rgb(0, 0, 194)",
"rule_area": "rgb(255, 0, 0)",
"shadow": "rgba(102, 179, 255, 0.800)",
"sheet": "rgb(0, 0, 0)",
"sheet_background": "rgba(255, 255, 255, 0.000)",
"sheet_fields": "rgb(132, 0, 132)",
"sheet_filename": "rgb(0, 0, 132)",
"sheet_label": "rgb(0, 0, 0)",
"sheet_name": "rgb(0, 0, 132)",
"value": "rgb(0, 0, 194)",
"wire": "rgb(0, 0, 0)",
"worksheet": "rgb(0, 0, 0)"
}
}

BIN
kibot/fonts/Arial Bold.ttf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
kibot/fonts/Arial.ttf Normal file

Binary file not shown.

BIN
kibot/fonts/Inconsolata.ttf Normal file

Binary file not shown.

View File

@@ -0,0 +1,28 @@
#!/bin/sh
# ============================================================================
# KiBot Template Bootstrapping Script
# ============================================================================
# Create the Development Branch
git checkout -b dev
echo "Created Development Branch"
# Add the Asymworks KiCad Library
git remote add -f asymworks-kicad-lib https://git.asymworks.com/asymworks/kicad-library
git subtree add --prefix lib/asymworks asymworks-kicad-lib main --squash -m "[bootstrap] Add subtree 'Asymworks/KiCad-Library' at 'lib/asymworks'"
echo "Added Asymworks KiCad Library"
# Rename the KiCad Project based on the directory name
PROJ_NAME=$(basename "$PWD")
git mv Asymworks_Template.kicad_dru "${PROJ_NAME}.kicad_dru"
git mv Asymworks_Template.kicad_pro "${PROJ_NAME}.kicad_pro"
git mv Asymworks_Template.kicad_sch "${PROJ_NAME}.kicad_sch"
git mv Asymworks_Template.kicad_pcb "${PROJ_NAME}.kicad_pcb"
git commit -a -m 'Rename Project'
echo "Renamed project to \"${PROJ_NAME}.kicad_pro\""
# Push the Develpment Branch to Gitea
git push -u origin dev
# Bootstrap Complete
echo "Bootstrap complete. Please run 'git pull' after the CI action finishes.'"

View File

@@ -0,0 +1,49 @@
import argparse
import xml.etree.ElementTree as ET
import sys
def get_sheet_title(file_path, page_number, dots_number):
try:
tree = ET.parse(file_path)
root = tree.getroot()
page_number = str(page_number)
titles = []
for sheet in root.findall(".//sheet"):
number = sheet.get("number")
if number == page_number:
# Get the last part of the 'name' attribute after '/'
name = sheet.get("name")
title_block = sheet.find("title_block")
title = title_block.find("title").text if title_block is not None else None
if name:
titles.append(name.split("/")[-2 if name.endswith("/") else -1])
if not titles:
print('.'*dots_number)
elif len(set(titles)) > 1:
print("Conflicting page numbers")
else:
print(titles[0])
except ET.ParseError:
print("Error: Invalid XML format")
except FileNotFoundError:
print("Error: XML File not found")
except Exception as e:
print(f"Error: {e}")
def main():
parser = argparse.ArgumentParser(description="Get the sheet title based on page number from a KiCad XML file")
parser.add_argument("-p", "--page-number", type=int, required=True, help="Page number to search")
parser.add_argument("-f", "--file", type=str, required=True, help="Path to the schematic XML file")
parser.add_argument("-d", "--dots-number", type=int, required=True, help="Number of dots for empty lines")
args = parser.parse_args()
get_sheet_title(args.file, args.page_number, args.dots_number)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,17 @@
# KiBot Filter for excluding testpoints
kibot:
version: 1
filters:
- name: '@NAME@'
comment: '@COMMENT@'
type: generic
exclude_any:
- column: Reference
regex: "TP"
...
definitions:
COMMENT: Exclude only testpoints
NAME: exclude_testpoints

View File

@@ -0,0 +1,21 @@
# KiBot Filter for renaming Manufacturer Part Number field
kibot:
version: 1
filters:
- name: '@NAME@'
comment: '@COMMENT@'
type: field_rename
rename:
- field: '@MPN_FIELD@'
name: manf#
- field: '@MAN_FIELD@'
name: manf
...
definitions:
COMMENT: Rename fields
NAME: field_rename
MPN_FIELD: 'Manufacturer PN'
MAN_FIELD: 'Manufacturer'

View File

@@ -0,0 +1,17 @@
# KiBot Filter for components with an LCSC Part Number
kibot:
version: 1
filters:
- name: @NAME@
comment: '@COMMENT@'
type: generic
include_only:
- column: _field_lcsc_part
regex: '^C\d+'
...
definitions:
COMMENT: Only parts with LCSC Part Number
NAME: only_lcsc_parts

View File

@@ -0,0 +1,25 @@
# KiBot Filter for testpoints
# These filters are used for multiple outputs to highlight testpoints
# or generate testpoint lists for top and bottom layers
kibot:
version: 1
filters:
- name: '@NAME@'
comment: '@COMMENT@'
type: generic
exclude_top: @EXCLUDE_TOP@
exclude_bottom: @EXCLUDE_BOTTOM@
include_only:
- column: Reference
regex: "TP"
exclude_refs: @EXCLUDE_REFS@
...
definitions:
COMMENT: Select only testpoints
NAME: only_testpoints
EXCLUDE_TOP: false
EXCLUDE_BOTTOM: false
EXCLUDE_REFS: '[MB*]'

View File

@@ -0,0 +1,20 @@
# KiBot Globals
# https://kibot.readthedocs.io/en/latest/configuration/global.html
kibot:
version: 1
global:
resources_dir: 'kibot'
out_dir: '@OUTPUT_DIR@'
dnp_cross_top_layer: '@LAYER_DNP_TOP@'
dnp_cross_bottom_layer: '@LAYER_DNP_BOTTOM@'
disable_kicad_cross_on_fab: true
extra_pth_drill: 0 # for annular ring computation.
filters: []
...
definitions:
OUTPUT_DIR: ./
LAYER_DNP_TOP: F.DNP
LAYER_DNP_BOTTOM: B.DNP

852
kibot/yaml/kibot_main.yaml Normal file
View File

@@ -0,0 +1,852 @@
# KiBot configuration file for Asymworks_KiBot Template
# KiCad 9.0
kibot:
version: 1
variants: []
# ============================================================================
# Output Groups
groups:
# Top-Level Groups =========================================================
# Pre-Process Group (generates Notes and Netlist for set_text_variables) ---
- name: preprocess_group
outputs:
- @NETLIST_OUTPUT@
- @TXT_SCH_NOTES_OUTPUT@
- @TXT_FAB_NOTES_OUTPUT@
- @TXT_ASSY_NOTES_OUTPUT@
- tables
# Draft Outputs Group (used in DRAFT state only) ---------------------------
- name: draft_group
outputs:
- @NETLIST_OUTPUT@
- @TXT_SCH_NOTES_OUTPUT@
- @PDF_SCHEMATIC_OUTPUT@
- @CSV_BOM_OUTPUT@
- @HTML_BOM_OUTPUT@
# All Outputs Group (used in all other states) -----------------------------
- name: all_group
outputs:
- bom
- renders
- models
- fab
- jlcpcb
- panels
- assembly
- @PDF_SCHEMATIC_OUTPUT@
- @HTML_NAV_RES_OUTPUT@
# All Outputs Group, including KiRi (not enabled by default) ---------------
- name: all_group_kiri
outputs:
- bom
- renders
- models
- fab
- jlcpcb
- panels
- assembly
- @PDF_SCHEMATIC_OUTPUT@
- @HTML_KIRI_OUTPUT@
- @HTML_NAV_RES_OUTPUT@
# Panel Fabrication Outputs Group (not used in DRAFT state) ----------------
- name: panel_fab_jlcpcb_group
outputs: []
# Output Sub-Groups ========================================================
# Bill of Material Outputs -------------------------------------------------
- name: bom
outputs:
- @CSV_BOM_OUTPUT@
- @HTML_BOM_OUTPUT@
- @HTML_IBOM_OUTPUT@
# PCB Render Outputs -------------------------------------------------------
- name: renders
outputs:
- @PCBDRAW_2D_TOP_PCB_OUTPUT@
- @PCBDRAW_2D_BOT_PCB_OUTPUT@
- @BLENDER_3D_TOP@
- @BLENDER_3D_BOT@
- @BLENDER_3D_ANGLED_TOP@
- @BLENDER_3D_ANGLED_BOT@
# KiCad 3D Viewer Renders (render_3d) are currently disabled as they do
# not look very good in KiCad 9 and they cause a warning in the KiBot
# output.
# - @PNG_3D_VIEWER_TOP@
# - @PNG_3D_VIEWER_BOT@
# - @PNG_3D_VIEWER_ANGLED_TOP@
# - @PNG_3D_VIEWER_ANGLED_BOT@
# PCB 3d Model Outputs -----------------------------------------------------
- name: models
outputs:
- @STEP_OUTPUT@
- @GLB_OUTPUT@
# Fabrication Outputs ------------------------------------------------------
- name: fab
outputs:
- @GERBER_OUTPUT@
- @EXCELLON_DRILL_OUTPUT@
- @ODB_OUTPUT@
- @PDF_DRILL_MAP_OUTPUT@
- @PDF_FABRICATION_OUTPUT@
- @ZIP_COMPRESS_FAB_OUTPUT@
- name: tables
outputs:
- @CSV_COMP_COUNT_OUPUT@
- @CSV_IMPEDANCE_TABLE_OUTPUT@
- @CSV_DRILL_TABLE_OUTPUT@
- testpoints
- name: testpoints
outputs:
- @CSV_TP_OUTPUT@
- @CSV_TP_TOP_OUTPUT@
- @CSV_TP_BOTTOM_OUTPUT@
# JLCPCB Fabrication and Assembly Outputs ----------------------------------
- name: jlcpcb
outputs:
- @JLCPCB_GERBER_OUTPUT@
- @JLCPCB_FABPACK_OUTPUT@
- @JLCPCB_BOM_OUTPUT@
- @JLCPCB_CPL_OUTPUT@
# Assembly Outputs ---------------------------------------------------------
- name: assembly
outputs:
- @CSV_POS_OUTPUT@
- @PDF_ASSEMBLY_OUTPUT@
# Panelization Outputs -----------------------------------------------------
- name: panels
outputs: [ @PANEL_800_OUTPUT@ ]
# ============================================================================
# Imports
import:
# Global Parameters ========================================================
- file: kibot_globals.yaml
definitions:
OUTPUT_DIR: @OUTPUT_DIR@
LAYER_DNP_TOP: @LAYER_DNP_TOP@
LAYER_DNP_BOT: @LAYER_DNP_BOTTOM@
# Filters ==================================================================
- file: kibot_filt_field_rename.yaml
definitions:
NAME: @FILT_FIELD_RENAME@
COMMENT: Rename fields
MPN_FIELD: @MPN_FIELD@
MAN_FIELD: @MAN_FIELD@
- file: kibot_filt_testpoints.yaml
definitions:
NAME: @FILT_TP_ONLY@
COMMENT: Include only testpoints
- file: kibot_filt_exclude_testpoints.yaml
definitions:
NAME: @FILT_TP_EXCLUDE@
COMMENT: Exclude only testpoints
- file: kibot_filt_testpoints.yaml
definitions:
NAME: @FILT_TP_TOP_ONLY@
COMMENT: Select only top testpoints
EXCLUDE_BOTTOM: true
EXCLUDE_REFS: "@TP_EXCLUDE_REFS@"
- file: kibot_filt_testpoints.yaml
definitions:
NAME: @FILT_TP_BOTTOM_ONLY@
COMMENT: Select only bottom testpoints
EXCLUDE_TOP: true
EXCLUDE_REFS: "@TP_EXCLUDE_REFS@"
- file: kibot_filt_lcsc_parts.yaml
definitions:
NAME: @FILT_LCSC_PARTS@
COMMENT: Only parts with LCSC Part Number
# Preflights ===============================================================
- file: kibot_pre_set_text_variables.yaml
definitions:
PROJECT_CODE: @PROJECT_CODE@
ASSEMBLY_NUMBER: @ASSEMBLY_NUMBER@
ASSEMBLY_NAME: @ASSEMBLY_NAME@
COMPANY: @COMPANY@
DESIGNER: @DESIGNER@
SCRIPTS_DIR: @SCRIPTS_DIR@
FABRICATION_DIR: @FABRICATION_DIR@
ASSEMBLY_DIR: @ASSEMBLY_DIR@
# Generate ERC Report
- file: kibot_pre_erc_report.yaml
definitions:
DIR: @REPORT_DIR@
# Generate DRC Report
- file: kibot_pre_drc_report.yaml
definitions:
CHECK_ZONE_FILLS: @CHECK_ZONE_FILLS@
DIR: @REPORT_DIR@
# Draw stackup table in PCB. Needs gerber output
- file: kibot_pre_draw_stackup.yaml
definitions:
GERBER_OUTPUT: @GERBER_OUTPUT@
NOTE: @STACKUP_TABLE_NOTE@
# Include tables for PCB and Assembly Drawings
- file: kibot_pre_include_table.yaml
definitions:
NAME_TP_TOP: @CSV_TP_TOP_OUTPUT@
NAME_TP_BOTTOM: @CSV_TP_BOTTOM_OUTPUT@
NAME_COMP_COUNT: @CSV_COMP_COUNT_OUPUT@
NAME_CSV_DRILL_TABLE: @CSV_DRILL_TABLE_OUTPUT@
NAME_IMPEDANCE_TABLE: @CSV_IMPEDANCE_TABLE_OUTPUT@
# Generated Outputs ========================================================
# Schematic Netlist --------------------------------------------------------
- file: kibot_out_netlist.yaml
definitions:
NAME: @NETLIST_OUTPUT@
COMMENT: Schematic netlist in KiCad format
# Drawings in PDF format ---------------------------------------------------
- file: kibot_out_pdf_schematic.yaml
definitions:
NAME: @PDF_SCHEMATIC_OUTPUT@
COMMENT: Schematic in PDF format
COLOR_THEME: @COLOR_THEME@
DIR: @SCHEMATIC_DIR@
DEFAULT_FONT: 'Arial Narrow'
SHEET_WKS: @SHEET_WKS_SCH@
# Bills of Materials (BOMs) ------------------------------------------------
- file: kibot_out_csv_bom.yaml
definitions:
NAME: @CSV_BOM_OUTPUT@
COMMENT: Bill of Materials in CSV format
DIR: @ASSEMBLY_DIR@
IPN_FIELD: @IPN_FIELD@
MPN_FIELD: @MPN_FIELD@
MAN_FIELD: @MAN_FIELD@
- file: kibot_out_html_bom.yaml
definitions:
NAME: @HTML_BOM_OUTPUT@
COMMENT: Bill of Materials in HTML format
DIR: @ASSEMBLY_DIR@
IPN_FIELD: @IPN_FIELD@
MPN_FIELD: @MPN_FIELD@
MAN_FIELD: @MAN_FIELD@
- file: kibot_out_html_ibom.yaml
definitions:
NAME: @HTML_IBOM_OUTPUT@
COMMENT: Bill of Materials in HTML format
DIR: @ASSEMBLY_DIR@
IPN_FIELD: @IPN_FIELD@
MPN_FIELD: @MPN_FIELD@
MAN_FIELD: @MAN_FIELD@
# Generate Webpage with Diff's ---------------------------------------------
- file: kibot_out_html_kiri.yaml
definitions:
NAME: @HTML_KIRI_OUTPUT@
COMMENT: KiRI webpage
DIR: kiri
# Generate HTML Navigation of Outputs --------------------------------------
- file: kibot_out_navigate_results.yaml
definitions:
NAME: @HTML_NAV_RES_OUTPUT@
COMMENT: Results webpage in HTML format
DIR: html
TITLE: '@ASSEMBLY_NUMBER@ (@ASSEMBLY_NAME@)'
# LOGO: @LOGO@
# LOGO_URL: @GIT_URL@
# PCB 2D Renders (Bare Board) ------------------------------------------
- file: kibot_out_pcbdraw.yaml
definitions:
NAME: @PCBDRAW_2D_TOP_PCB_OUTPUT@
COMMENT: PCB 2D Render (Top)
DIR: @RENDER_DIR@
FORMAT: svg
BOTTOM: false
COMPONENTS: none
- file: kibot_out_pcbdraw.yaml
definitions:
NAME: @PCBDRAW_2D_BOT_PCB_OUTPUT@
COMMENT: PCB 2D Render (Bottom)
DIR: @RENDER_DIR@
FORMAT: svg
BOTTOM: true
COMPONENTS: none
# PCBA 3D Renders (Populated Board; KiCad Viewer) --------------------------
- file: kibot_out_png_3d_viewer.yaml
definitions:
NAME: @PNG_3D_VIEWER_TOP@
COMMENT: Top 3D viewer PCB render in PNG format
DIR: @RENDER_DIR@
SUFFIX: top
VIEW: top
KEY_COLOR: '@KEY_COLOR@'
RAYTRACING: false
- file: kibot_out_png_3d_viewer.yaml
definitions:
NAME: @PNG_3D_VIEWER_BOT@
COMMENT: Bottom 3D viewer PCB render in PNG format
DIR: @RENDER_DIR@
SUFFIX: bottom
VIEW: bottom
KEY_COLOR: '@KEY_COLOR@'
RAYTRACING: false
- file: kibot_out_png_3d_viewer.yaml
definitions:
NAME: @PNG_3D_VIEWER_ANGLED_TOP@
COMMENT: Top (angled) 3D viewer PCB render in PNG format
DIR: @RENDER_DIR@
SUFFIX: angled_top
VIEW: top
ROTATE_X: @3D_VIEWER_ROT_X@
ROTATE_Y: @3D_VIEWER_ROT_Y@
ROTATE_Z: @3D_VIEWER_ROT_Z@
ZOOM: @3D_VIEWER_ZOOM@
KEY_COLOR: '@KEY_COLOR@'
RAYTRACING: false
- file: kibot_out_png_3d_viewer.yaml
definitions:
NAME: @PNG_3D_VIEWER_ANGLED_BOT@
COMMENT: Bottom (angled) 3D viewer PCB render in PNG format
DIR: @RENDER_DIR@
SUFFIX: angled_bottom
VIEW: bottom
ROTATE_X: @3D_VIEWER_ROT_X@
ROTATE_Y: @3D_VIEWER_ROT_Y@
ROTATE_Z: -@3D_VIEWER_ROT_Z@
ZOOM: @3D_VIEWER_ZOOM@
KEY_COLOR: '@KEY_COLOR@'
RAYTRACING: false
# PCBA 3D Renders (Populated Board; Blender) -------------------------------
- file: kibot_out_blender.yaml
definitions:
NAME: @BLENDER_3D_TOP@
COMMENT: High Quality 3D Render (Top)
DIR: @RENDER_DIR@
VIEW: top
ROTATE_X: 0
ROTATE_Y: 0
ROTATE_Z: 0
SAMPLES: @BLENDER_SAMPLES@
RESOLUTION_X: @BLENDER_RESOLUTION_X@
RESOLUTION_Y: @BLENDER_RESOLUTION_Y@
TEXTURE_DPI: @BLENDER_TEXTURE_DPI@
DNF_FILTER: @RENDER_DNF_FILTER@
DIFFUSE_RADIUS: @BLENDER_DIFFUSE_RADIUS@
DIFFUSE_HEIGHT: @BLENDER_DIFFUSE_HEIGHT@
DIFFUSE_LIGHT: 0.7
ACCENT_LIGHT: 0.1
SPOT_LIGHT: 0.1
- file: kibot_out_blender.yaml
definitions:
NAME: @BLENDER_3D_BOT@
COMMENT: High Quality 3D Render (Bottom)
DIR: @RENDER_DIR@
VIEW: bottom
ROTATE_X: 0
ROTATE_Y: 0
ROTATE_Z: 0
SAMPLES: @BLENDER_SAMPLES@
RESOLUTION_X: @BLENDER_RESOLUTION_X@
RESOLUTION_Y: @BLENDER_RESOLUTION_Y@
TEXTURE_DPI: @BLENDER_TEXTURE_DPI@
DNF_FILTER: @RENDER_DNF_FILTER@
DIFFUSE_RADIUS: @BLENDER_DIFFUSE_RADIUS@
DIFFUSE_HEIGHT: @BLENDER_DIFFUSE_HEIGHT@
DIFFUSE_LIGHT: 0.7
ACCENT_LIGHT: 0.1
SPOT_LIGHT: 0.1
- file: kibot_out_blender.yaml
definitions:
NAME: @BLENDER_3D_ANGLED_TOP@
COMMENT: High Quality 3D Render (Angled Top)
DIR: @RENDER_DIR@
VIEW: top
ROTATE_X: @BLENDER_ROT_X@
ROTATE_Y: @BLENDER_ROT_Y@
ROTATE_Z: @BLENDER_ROT_Z@
SAMPLES: @BLENDER_SAMPLES@
RESOLUTION_X: @BLENDER_RESOLUTION_X@
RESOLUTION_Y: @BLENDER_RESOLUTION_Y@
TEXTURE_DPI: @BLENDER_TEXTURE_DPI@
DNF_FILTER: @RENDER_DNF_FILTER@
DIFFUSE_RADIUS: @BLENDER_DIFFUSE_RADIUS@
DIFFUSE_HEIGHT: @BLENDER_DIFFUSE_HEIGHT@
DIFFUSE_LIGHT: 0.4
ACCENT_LIGHT: 0.1
SPOT_LIGHT: 2.0
- file: kibot_out_blender.yaml
definitions:
NAME: @BLENDER_3D_ANGLED_BOT@
COMMENT: High Quality 3D Render (Angled Bottom)
DIR: @RENDER_DIR@
VIEW: bottom
ROTATE_X: -@BLENDER_ROT_X@
ROTATE_Y: @BLENDER_ROT_Y@
ROTATE_Z: @BLENDER_ROT_Z@
SAMPLES: @BLENDER_SAMPLES@
RESOLUTION_X: @BLENDER_RESOLUTION_X@
RESOLUTION_Y: @BLENDER_RESOLUTION_Y@
TEXTURE_DPI: @BLENDER_TEXTURE_DPI@
DNF_FILTER: @RENDER_DNF_FILTER@
DIFFUSE_RADIUS: @BLENDER_DIFFUSE_RADIUS@
DIFFUSE_HEIGHT: @BLENDER_DIFFUSE_HEIGHT@
DIFFUSE_LIGHT: 0.4
ACCENT_LIGHT: 0.1
SPOT_LIGHT: 2.0
# STEP File ----------------------------------------------------------------
- file: kibot_out_3d_model.yaml
definitions:
NAME: @STEP_OUTPUT@
COMMENT: PCB 3D model in STEP format
FORMAT: step
DIR: @MODELS_DIR@
INCLUDE_SILKSCREEN: false
INCLUDE_SOLDERMASK: false
INCLUDE_TRACKS: false
- file: kibot_out_3d_model.yaml
definitions:
NAME: @GLB_OUTPUT@
COMMENT: PCB 3D model in GLB/gITF format
FORMAT: glb
DIR: @MODELS_DIR@
INCLUDE_SILKSCREEN: true
INCLUDE_SOLDERMASK: false
INCLUDE_TRACKS: false
# Fabrication Files (Non-Vendor Specific) ----------------------------------
- file: kibot_out_gerber.yaml
definitions:
NAME: @GERBER_OUTPUT@
COMMENT: Gerbers in GBR format
DIR: @GERBERS_DIR@
PLOT_REFS: @PLOT_REFS@
PROTEL_EXTENSIONS: @PROTEL_EXTENSIONS@
SUBTRACT_MASK: @SUBTRACT_MASK@
# Excellon Drill
- file: kibot_out_excellon_drill.yaml
definitions:
NAME: @EXCELLON_DRILL_OUTPUT@
COMMENT: Drill in Excellon format
DIR: @GERBERS_DIR@
METRIC_UNITS: @EXCELLON_METRIC_UNITS@
# ODB++
- file: kibot_out_odb.yaml
definitions:
NAME: @ODB_OUTPUT@
COMMENT: ODB++ in ZIP format
DIR: @FABRICATION_DIR@
# PDF Drill Map
- file: kibot_out_excellon_drill.yaml
definitions:
NAME: @PDF_DRILL_MAP_OUTPUT@
COMMENT: Drill Map in PDF format
DIR: @GERBERS_DIR@
METRIC_UNITS: @EXCELLON_METRIC_UNITS@
GENERATE_DRILL: false
PTH_NPTH: @GROUP_PTH_NPTH_DRL@
MAP_FORMAT: pdf
# CSV Drill Table
- file: kibot_out_csv_drill_table.yaml
definitions:
NAME: @CSV_DRILL_TABLE_OUTPUT@
COMMENT: Drill Table in CSV format
DIR: @FAB_DRILL_TABLES_DIR@
PTH_NPTH: '@GROUP_PTH_NPTH@'
GROUP_ROUND_SLOTS: @GROUP_ROUND_SLOTS@
# CSV Component Placement File
- file: kibot_out_csv_position.yaml
definitions:
NAME: @CSV_POS_OUTPUT@
COMMENT: Position file in CSV format
DIR: @ASSEMBLY_DIR@
# CSV Test Point Files
- file: kibot_out_csv_testpoints.yaml
definitions:
NAME: @CSV_TP_OUTPUT@
COMMENT: Testpoint report in CSV format
DIR: @TESTPOINTS_DIR@
EXCLUDE_FILTER: @FILT_TP_ONLY@
- file: kibot_out_csv_testpoints_simple.yaml
definitions:
NAME: @CSV_TP_TOP_OUTPUT@
COMMENT: Top testpoint report in CSV format
DIR: @TESTPOINTS_DIR@
SUFFIX: -top
EXCLUDE_FILTER: @FILT_TP_TOP_ONLY@
- file: kibot_out_csv_testpoints_simple.yaml
definitions:
NAME: @CSV_TP_BOTTOM_OUTPUT@
COMMENT: Bottom testpoint report in CSV format
DIR: @TESTPOINTS_DIR@
SUFFIX: -bottom
EXCLUDE_FILTER: @FILT_TP_BOTTOM_ONLY@
# Fabrication and Assembly Drawings
- file: kibot_out_pdf_fabrication.yaml
definitions:
NAME: @PDF_FABRICATION_OUTPUT@
COMMENT: Fabrication document in PDF format
DIR: @FABRICATION_DIR@
COLOR_THEME: @COLOR_THEME@
SHEET_WKS: @SHEET_WKS_PCB@
SCALING: @FAB_SCALING@
PTH_NPTH: '@GROUP_PTH_NPTH@'
GROUP_ROUND_SLOTS: @GROUP_ROUND_SLOTS@
FAB_EXCLUDE_FILTER: @FILT_TP_ONLY@
LAYER_DRILL_MAP: @LAYER_DRILL_MAP@
LAYER_TP_LIST_TOP: @LAYER_TP_LIST_TOP@
LAYER_TP_LIST_BOTTOM: @LAYER_TP_LIST_BOTTOM@
NAME_TP_TOP: @CSV_TP_TOP_OUTPUT@
NAME_TP_BOTTOM: @CSV_TP_BOTTOM_OUTPUT@
NAME_IMPEDANCE_TABLE: @CSV_IMPEDANCE_TABLE_OUTPUT@
NAME_DRILL_TABLE: @CSV_DRILL_TABLE_OUTPUT@
- file: kibot_out_pdf_assembly.yaml
definitions:
NAME: @PDF_ASSEMBLY_OUTPUT@
COMMENT: Assembly document in PDF format
DIR: @ASSEMBLY_DIR@
COLOR_THEME: @COLOR_THEME@
SHEET_WKS: @SHEET_WKS_ASSY@
SCALING: @ASSEMBLY_SCALING@
FAB_EXCLUDE_FILTER: @FILT_TP_EXCLUDE@
LAYER_TITLE_PAGE: @LAYER_TITLE_PAGE@
LAYER_ASSEMBLY_TEXT_TOP: @LAYER_ASSEMBLY_TEXT_TOP@
LAYER_ASSEMBLY_TEXT_BOTTOM: @LAYER_ASSEMBLY_TEXT_BOTTOM@
LAYER_DNP_CROSS_TOP: @LAYER_DNP_CROSS_TOP@
LAYER_DNP_CROSS_BOTTOM: @LAYER_DNP_CROSS_BOTTOM@
NAME_COMP_COUNT: @CSV_COMP_COUNT_OUPUT@
# Zip File of Fabrication Data
- file: kibot_out_compress_fab.yaml
definitions:
NAME: @ZIP_COMPRESS_FAB_OUTPUT@
COMMENT: Generates a ZIP file with gerbers, drill and fabrication document
DIR: @FABRICATION_DIR@
GERBER_OUTPUT: @GERBER_OUTPUT@
DRILL_MAP_OUTPUT: @PDF_DRILL_MAP_OUTPUT@
DRILL_OUTPUT: @EXCELLON_DRILL_OUTPUT@
FABRICATION_OUTPUT: @PDF_FABRICATION_OUTPUT@
# Fabrication and Assembly Files (JLCPCB) ----------------------------------
- file: kibot_out_gerber.yaml
definitions:
NAME: @JLCPCB_GERBER_OUTPUT@
COMMENT: Gerbers in GBR format for JLCPCB
DIR: @JLCPCB_GERBERS_DIR@
PLOT_REFS: true
PROTEL_EXTENSIONS: true
SUBTRACT_MASK: false
- file: kibot_out_jlcpcb_fabpack.yaml
definitions:
NAME: @JLCPCB_FABPACK_OUTPUT@
COMMENT: Zipped Fabpack for JLCPCB
DIR: @JLCPCB_FAB_DIR@
GERBER_OUTPUT: @JLCPCB_GERBER_OUTPUT@
DRILL_OUTPUT: @EXCELLON_DRILL_OUTPUT@
- file: kibot_out_jlcpcb_bom.yaml
definitions:
NAME: @JLCPCB_BOM_OUTPUT@
COMMENT: Bill of Materials for JLCPCB
DIR: @JLCPCB_ASSY_DIR@
EXCLUDE_FILTER: @FILT_LCSC_PARTS@
- file: kibot_out_jlcpcb_cpl.yaml
definitions:
NAME: @JLCPCB_CPL_OUTPUT@
COMMENT: Component Placement File for JLCPCB
DIR: @JLCPCB_ASSY_DIR@
EXCLUDE_FILTER: @FILT_LCSC_PARTS@
# Notes and Reports --------------------------------------------------------
- file: kibot_out_csv_report.yaml
definitions:
NAME: @CSV_COMP_COUNT_OUPUT@
COMMENT: Component report (count) in CSV format
DIR: @ASSEMBLY_DIR@
OUTPUT_ID: components_count
TEMPLATE: total_components
- file: kibot_out_csv_report.yaml
definitions:
NAME: @CSV_IMPEDANCE_TABLE_OUTPUT@
COMMENT: Impedance table in CSV format
DIR: @FABRICATION_DIR@
OUTPUT_ID: impedance_table
TEMPLATE: @NOTES_DIR@/impedance_table.txt
- file: kibot_out_txt_report.yaml
definitions:
NAME: @TXT_SCH_NOTES_OUTPUT@
COMMENT: Schematic notes in TXT format
DIR: @SCHEMATIC_DIR@
OUTPUT_ID: schematic_notes
TEMPLATE: @NOTES_DIR@/schematic_notes.txt
- file: kibot_out_txt_report.yaml
definitions:
NAME: @TXT_FAB_NOTES_OUTPUT@
COMMENT: Fabrication notes in TXT format
DIR: @FABRICATION_DIR@
OUTPUT_ID: fabrication_notes
TEMPLATE: @NOTES_DIR@/fabrication_notes.txt
- file: kibot_out_txt_report.yaml
definitions:
NAME: @TXT_ASSY_NOTES_OUTPUT@
COMMENT: Assembly notes in TXT format
DIR: @ASSEMBLY_DIR@
OUTPUT_ID: assembly_notes
TEMPLATE: @NOTES_DIR@/assembly_notes.txt
# Panelization Outputs -----------------------------------------------------
- file: kibot_out_panelize.yaml
definitions:
NAME: @PANEL_800_OUTPUT@
DIR: '@PANELS_DIR@/panel-800'
CONFIG: '@PANEL_800_CONFIG@'
TITLE: '@PANEL_800_TITLE@'
# ============================================================================
# Definitions
...
definitions:
# Project Metadata =========================================================
PROJECT_CODE: P99
ASSEMBLY_NUMBER: A99-9000
ASSEMBLY_NAME: Assembly Name
GIT_URL: /jkrauss/Test_4
COMPANY: Asymworks, LLC
DESIGNER: JPK
DWG_NUMBER_SCH: S99-9000
DWG_TITLE_SCH: Schematic, Assembly Name
DWG_NUMBER_PCB: P99-9000
DWG_TITLE_PCB: PCB, Assembly Name
DWG_TITLE_ASSY: PCB Assembly, Assembly Name
# Panel Configurations -----------------------------------------------------
PANEL_800_OUTPUT: panel_801
PANEL_800_CONFIG: '@PANELS_DIR@/panel-800.json'
PANEL_800_TITLE: Panel Fabrication (Panel -800)
# Preflight ================================================================
CHECK_ZONE_FILLS: false
STACKUP_TABLE_NOTE: external layer thicknesses are specified after plating
# BOM ======================================================================
IPN_FIELD: 'Asymworks IPN'
MPN_FIELD: 'Manufacturer PN'
MAN_FIELD: 'Manufacturer'
# Drill Table and Drill Map Parameters =====================================
GROUP_ROUND_SLOTS: true # whether or not to group round holes and slots
GROUP_PTH_NPTH: 'no' # for drill tables (CSV, PCB Print)
GROUP_PTH_NPTH_DRL: false # for .drl files
# Gerber Parameters ========================================================
PLOT_REFS: true # reference designators
PROTEL_EXTENSIONS: false # use Protel extensions
SUBTRACT_MASK: false # subtract Solder Mask from Silkscreen
EXCELLON_METRIC_UNITS: true # use Metric units for Excellon drill file
# References to exclude from testpoint highlighting ========================
TP_EXCLUDE_REFS: '[MB*]' # for components on the PCB but not on the schematic
# Schematic parameters =====================================================
COLOR_THEME: Altium_Theme
SHEET_WKS_SCH: templates/Asymworks_SCH.kicad_wks
SHEET_WKS_PCB: templates/Asymworks_PCB.kicad_wks
SHEET_WKS_ASSY: templates/Asymworks_PCBA.kicad_wks
FAB_SCALING: 1
ASSEMBLY_SCALING: 1
# 3D Render parameters =====================================================
RENDER_DNF_FILTER: _kibom_dnf_Config
3D_VIEWER_ROT_X: 2
3D_VIEWER_ROT_Y: -1
3D_VIEWER_ROT_Z: 1
3D_VIEWER_ZOOM: -1
KEY_COLOR: '#FF00FF' # Background color to remove. Use a color different from your PCB
BLENDER_SAMPLES: 20 # Overridden to 2 samples for WORKING state by CI Script
BLENDER_ROT_X: 30
BLENDER_ROT_Y: 10
BLENDER_ROT_Z: 10
BLENDER_RESOLUTION_X: 1500
BLENDER_RESOLUTION_Y: 1500
BLENDER_TEXTURE_DPI: 1031.0
BLENDER_DIFFUSE_HEIGHT: 10.0
BLENDER_DIFFUSE_RADIUS: 6.0
# Directories ==============================================================
# Root
OUTPUT_DIR: ./
# Relative to root
REPORT_DIR: reports
SCHEMATIC_DIR: schematic
MANUFACTURING_DIR: mfg
ASSEMBLY_DIR: '@MANUFACTURING_DIR@/assembly'
FABRICATION_DIR: '@MANUFACTURING_DIR@/fab'
GERBERS_DIR: '@FABRICATION_DIR@/gerbers'
FAB_DRILL_TABLES_DIR: '@FABRICATION_DIR@/drill-tables'
TESTING_DIR: test
TESTPOINTS_DIR: '@TESTING_DIR@/testpoints'
RESOURCES_DIR: kibot
MODELS_DIR: models
NOTES_DIR: notes
RENDER_DIR: renders
REPORT_TEMPLATE_DIR: '@RESOURCES_DIR@/templates'
SCRIPTS_DIR: '@RESOURCES_DIR@/scripts'
PANELS_DIR: panels
PANEL_FAB_DIR: '@FABRICATION_DIR@/panels'
JLCPCB_FAB_DIR: '@MANUFACTURING_DIR@/jlcpcb'
JLCPCB_ASSY_DIR: '@MANUFACTURING_DIR@/jlcpcb'
JLCPCB_GERBERS_DIR: '@MANUFACTURING_DIR@/jlcpcb/gerbers'
# Layer Names - should match user-defined names in the PCB. ===============
LAYER_TITLE_PAGE: AssyTitlePage
LAYER_DNP_TOP: F.DNP
LAYER_DNP_BOTTOM: B.DNP
LAYER_DRILL_MAP: DrillMap
LAYER_TP_LIST_TOP: F.TestPointList
LAYER_TP_LIST_BOTTOM: B.TestPointList
LAYER_ASSEMBLY_TEXT_TOP: F.AssemblyText
LAYER_ASSEMBLY_TEXT_BOTTOM: B.AssemblyText
LAYER_DNP_CROSS_TOP: F.DNP
LAYER_DNP_CROSS_BOTTOM: B.DNP
# Filter Names =============================================================
FILT_FIELD_RENAME: field_rename
FILT_LCSC_PARTS: only_lcsc_parts
FILT_TP_ONLY: only_testpoints
FILT_TP_EXCLUDE: exclude_testpoints
FILT_TP_TOP_ONLY: only_testpoints_top
FILT_TP_BOTTOM_ONLY: only_testpoints_bottom
# Output Names ============================================================
NETLIST_OUTPUT: netlist
PDF_SCHEMATIC_OUTPUT: pdf_schematic
PDF_FABRICATION_OUTPUT: pdf_fabrication
PDF_ASSEMBLY_OUTPUT: pdf_assembly
CSV_BOM_OUTPUT: csv_bom
HTML_IBOM_OUTPUT: html_bom_interactive
HTML_BOM_OUTPUT: html_bom
CSV_COMP_COUNT_OUPUT: csv_comp_count
CSV_IMPEDANCE_TABLE_OUTPUT: csv_impedance_table
GERBER_OUTPUT: gbr_gerbers
ODB_OUTPUT: zip_odb
EXCELLON_DRILL_OUTPUT: drl_excellon
PDF_DRILL_MAP_OUTPUT: pdf_drill_map
DXF_DRILL_MAP_OUTPUT: dxf_drill_map
CSV_DRILL_TABLE_OUTPUT: csv_drill_table
CSV_POS_OUTPUT: csv_position
CSV_TP_OUTPUT: csv_testpoints
CSV_TP_TOP_OUTPUT: csv_testpoints_top
CSV_TP_BOTTOM_OUTPUT: csv_testpoints_bottom
ZIP_COMPRESS_FAB_OUTPUT: zip_compress_fab
STEP_OUTPUT: step
GLB_OUTPUT: glb
PCBDRAW_2D_TOP_PCB_OUTPUT: pcbdraw_top
PCBDRAW_2D_BOT_PCB_OUTPUT: pcbdraw_bottom
PNG_3D_VIEWER_TOP: png_3d_viewer_top
PNG_3D_VIEWER_BOT: png_3d_viewer_bottom
PNG_3D_VIEWER_ANGLED_TOP: png_3d_viewer_angled_top
PNG_3D_VIEWER_ANGLED_BOT: png_3d_viewer_angled_bottom
BLENDER_3D_TOP: blender_3d_top
BLENDER_3D_BOT: blender_3d_bottom
BLENDER_3D_ANGLED_TOP: blender_3d_angled_top
BLENDER_3D_ANGLED_BOT: blender_3d_angled_bottom
TXT_SCH_NOTES_OUTPUT: txt_schematic_notes
TXT_FAB_NOTES_OUTPUT: txt_fabrication_notes
TXT_ASSY_NOTES_OUTPUT: txt_assembly_notes
HTML_KIRI_OUTPUT: html_kiri
HTML_NAV_RES_OUTPUT: html_navigate_results
JLCPCB_GERBER_OUTPUT: jlcpcb_gerbers
JLCPCB_FABPACK_OUTPUT: jlcpcb_fabpack
JLCPCB_BOM_OUTPUT: jlcpcb_bom
JLCPCB_CPL_OUTPUT: jlcpcb_cpl

View File

@@ -0,0 +1,32 @@
# KiBot output for generating PCB 3D models in various formats (Requires KiCad 9+)
# https://kibot.readthedocs.io/en/latest/configuration/outputs/export_3d.html
kibot:
version: 1
outputs:
- name: @NAME@
output_id: @NAME@
comment: '@COMMENT@'
type: export_3d
category: '@DIR@'
dir: '@DIR@'
options:
format: @FORMAT@
origin: drill
output: '%f-%I%v.%x'
# Configurable for higher-fidelity outputs (e.g. gITF)
include_silkscreen: @INCLUDE_SILKSCREEN@
include_soldermask: @INCLUDE_SOLDERMASK@
include_tracks: @INCLUDE_TRACKS@
...
definitions:
NAME: step
COMMENT: PCB 3D model in STEP format
DIR: models
FORMAT: step
INCLUDE_SILKSCREEN: false
INCLUDE_SOLDERMASK: false
INCLUDE_TRACKS: false

View File

@@ -0,0 +1,150 @@
# KiBot output for generating PCB 3D model PCB3D Blender format
# https://kibot.readthedocs.io/en/latest/configuration/outputs/PCB2Blender_ToolsOptions.html
# The lighting setup allows for even, diffuse background lighting as well as
# a focused light for shadows/depth. The eight area lights form a ring around
# the top of the board, while the spot light illuminates from behind and to the
# right of the camera. The accent lights illuminate from behind the board at a
# low angle to help light up solder pads.
#
# For top/bottom renders that look directly down at the board, set @SPOT_LIGHT@
# to 0.1 and @ADIFFUSE_LIGHT@ to 0.7. For angle renders, start with @SPOT_LIGHT@
# set to 2.0 and @DIFFUSE_LIGHT@ at 0.4. Some experimentation, including with
# the ring radius and height, may be required to get good results.
kibot:
version: 1
outputs:
- name: @NAME@
output_id: @NAME@
comment: '@COMMENT@'
type: blender_export
category: '@DIR@'
dir: '@DIR@'
options:
auto_camera_z_axis_factor: 1.1
pcb_import:
enhance_materials: true
texture_dpi: @TEXTURE_DPI@
pcb3d:
download: true
download_lcsc: true
dnf_filter:
- @DNF_FILTER@
render_options:
auto_crop: true
transparent_background: true
samples: @SAMPLES@
resolution_x: @RESOLUTION_X@
resolution_y: @RESOLUTION_Y@
point_of_view:
rotate_x: @ROTATE_X@
rotate_y: @ROTATE_Y@
rotate_z: @ROTATE_Z@
view: @VIEW@
outputs:
- type: render
output: '%f-%I%v.%x'
light:
- name: spot
energy: @SPOT_LIGHT@
pos_x: -size*3.33
pos_y: size*3.33
pos_z: size*5
type: POINT
- name: accent_1
energy: @ACCENT_LIGHT@
pos_x: -size*2
pos_y: size*6
pos_z: size*3
type: AREA
- name: accent_2
energy: @ACCENT_LIGHT@
pos_x: size*2
pos_y: size*6
pos_z: size*3
type: AREA
- name: ring_1
energy: @DIFFUSE_LIGHT@
pos_x: size*@DIFFUSE_RADIUS@
pos_y: 0
pos_z: size*@DIFFUSE_HEIGHT@
type: AREA
- name: ring_2
energy: @DIFFUSE_LIGHT@
pos_x: -size*@DIFFUSE_RADIUS@
pos_y: 0
pos_z: size*@DIFFUSE_HEIGHT@
type: AREA
- name: ring_3
energy: @DIFFUSE_LIGHT@
pos_x: 0
pos_y: size*@DIFFUSE_RADIUS@
pos_z: size*@DIFFUSE_HEIGHT@
type: AREA
- name: ring_4
energy: @DIFFUSE_LIGHT@
pos_x: 0
pos_y: -size*@DIFFUSE_RADIUS@
pos_z: size*@DIFFUSE_HEIGHT@
type: AREA
- name: ring_5
energy: @DIFFUSE_LIGHT@
pos_x: size*0.71*@DIFFUSE_RADIUS@
pos_y: size*0.71*@DIFFUSE_RADIUS@
pos_z: size*@DIFFUSE_HEIGHT@
type: AREA
- name: ring_6
energy: @DIFFUSE_LIGHT@
pos_x: -size*0.71*@DIFFUSE_RADIUS@
pos_y: size*0.71*@DIFFUSE_RADIUS@
pos_z: size*@DIFFUSE_HEIGHT@
type: AREA
- name: ring_7
energy: @DIFFUSE_LIGHT@
pos_x: size*0.71*@DIFFUSE_RADIUS@
pos_y: -size*0.71*@DIFFUSE_RADIUS@
pos_z: size*@DIFFUSE_HEIGHT@
type: AREA
- name: ring_8
energy: @DIFFUSE_LIGHT@
pos_x: -size*0.71*@DIFFUSE_RADIUS@
pos_y: -size*0.71*@DIFFUSE_RADIUS@
pos_z: size*@DIFFUSE_HEIGHT@
type: AREA
...
definitions:
NAME: blender_3d_angled_top
COMMENT: PCB 3D model in PCB3D Blender format
DIR: renders
DNF_FILTER: _kibom_dnf_Config
RESOLUTION_X: 1280
RESOLUTION_Y: 1280
TEXTURE_DPI: 1031.0
SAMPLES: 5
ROTATE_X: 30
ROTATE_Y: 10
ROTATE_Z: 10
VIEW: top
DIFFUSE_RADIUS: 6.0
DIFFUSE_HEIGHT: 10.0
DIFFUSE_LIGHT: 0.4
ACCENT_LIGHT: 0.1
SPOT_LIGHT: 2.0

View File

@@ -0,0 +1,34 @@
# KiBot output for compressing Fabrication files to a ZIP archive
# https://kibot.readthedocs.io/en/latest/configuration/outputs/compress.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: compress
category: '@DIR@'
dir: '@DIR@'
options:
output: '%f-GERBERS%I%v.%x'
move_files: false
files:
- from_output: @GERBER_OUTPUT@
dest: '/'
- from_output: @DRILL_MAP_OUTPUT@
dest: '/'
- from_output: @DRILL_OUTPUT@
dest: '/'
- from_output: @FABRICATION_OUTPUT@
dest: '/'
...
definitions:
NAME: zip_compress_fab
COMMENT: Generates a ZIP file with gerbers, drill and fabrication document
DIR: Manufacturing/Fabrication
GERBER_OUTPUT: gbr_gerbers
DRILL_MAP_OUTPUT: pdf_drill_map
DRILL_OUTPUT: drl_excellon
FABRICATION_OUTPUT: pdf_fabrication

View File

@@ -0,0 +1,48 @@
# KiBot output for generating Bill of Materials in CSV format
# https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: bom
category: '@DIR@'
dir: '@DIR@'
options:
format: CSV
csv:
hide_pcb_info: true
hide_stats_info: true
group_fields: ['@MPN_FIELD@', '@IPN_FIELD@', 'Value']
columns:
- "Row"
- "Quantity Per PCB"
- "References"
- "Value"
- "Datasheet"
- "Footprint"
- "Description"
- "@IPN_FIELD@"
- "@MAN_FIELD@"
- "@MPN_FIELD@"
- "LCSC"
# - "arrow#"
# - "digikey#"
# - "farnell#"
# - "mouser#"
# - "newark#"
# - "rs#"
# - "tme#"
...
definitions:
NAME: csv_bom
COMMENT: Bill of Materials in CSV format
DIR: mfg/assembly
IPN_FIELD: 'Asymworks IPN'
MPN_FIELD: 'Manufacturer PN'
MAN_FIELD: 'Manufacturer'

View File

@@ -0,0 +1,25 @@
# KiBot output for generating Drill Tables
# https://kibot.readthedocs.io/en/latest/configuration/outputs/excellon.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: excellon
category: '@DIR@'
dir: '@DIR@'
options:
generate_drill_files: false
table:
unify_pth_and_npth: '@PTH_NPTH@'
group_slots_and_round_holes: @GROUP_ROUND_SLOTS@
...
definitions:
NAME: csv_drill_table
COMMENT: Drill Table in CSV format
DIR: mfg/fab/tables
PTH_NPTH: 'yes'
GROUP_ROUND_SLOTS: true

View File

@@ -0,0 +1,24 @@
# KiBot output for generating Position file in CSV format
# https://kibot.readthedocs.io/en/latest/configuration/outputs/position.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: position
category: '@DIR@'
dir: '@DIR@'
options:
format: 'CSV'
only_smd: false
include_virtual: false
output: '%f-CPL%I%v.%x'
separate_files_for_front_and_back: false
...
definitions:
NAME: csv_position
COMMENT: Position file in CSV format
DIR: Manufacturing/Assembly

View File

@@ -0,0 +1,26 @@
# KiBot output for CSV Report
# https://kibot.readthedocs.io/en/latest/configuration/outputs/report.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: report
category: '@DIR@'
dir: '@DIR@'
output_id: @OUTPUT_ID@
options:
output: '%f-%I%v.csv'
template: @TEMPLATE@
exclude_filter: '_mechanical'
csv_remove_leading_spaces: true
...
definitions:
NAME: csv_report
COMMENT: Report in CSV format
DIR: mfg
OUTPUT_ID: ''
TEMPLATE: total_components

View File

@@ -0,0 +1,51 @@
# KiBot output for generating CSV Tespoints
# https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: bom
category: '@DIR@'
dir: '@DIR@'
options:
output: '%f-testpoints@SUFFIX@%I%v.%x'
csv:
hide_pcb_info: True
hide_stats_info: True
pre_transform: ['_kicost_rename']
exclude_filter: '@EXCLUDE_FILTER@'
dnf_filter: '_null'
exclude_marked_in_sch: false
group_fields: []
sort_style: ref
use_aux_axis_as_origin: true
ignore_dnf: false
format: CSV
footprint_type_values: 'SMT,THRU,'
columns:
- field: References
name: Testpoint Ref.
- field: Net Name
name: Net
- field: Net Class
- field: Footprint X
name: X
- field: Footprint Y
name: Y
- field: Footprint Side
name: Side
- field: Footprint Type
name: Pad Type
- field: Value
- field: Footprint
...
definitions:
NAME: csv_testpoints
COMMENT: Testpoint report in CSV format
DIR: Testing/Testpoints
SUFFIX: ""
EXCLUDE_FILTER: only_testpoints

View File

@@ -0,0 +1,45 @@
# KiBot output for generating CSV Tespoints
# https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: bom
category: '@DIR@'
dir: '@DIR@'
options:
output: '%f-testpoints@SUFFIX@%I%v.%x'
csv:
hide_pcb_info: True
hide_stats_info: True
pre_transform: ['_kicost_rename']
exclude_filter: '@EXCLUDE_FILTER@'
dnf_filter: '_null'
exclude_marked_in_sch: false
group_fields: []
sort_style: ref
use_aux_axis_as_origin: true
ignore_dnf: false
format: CSV
footprint_type_values: 'SMT,THRU,'
right_digits: 2
columns:
- field: References
name: Ref.
- field: Net Label
name: Net
- field: Footprint X
name: X [mm]
- field: Footprint Y
name: Y [mm]
...
definitions:
NAME: csv_testpoints
COMMENT: Testpoint report in CSV format
DIR: Testing/Testpoints
SUFFIX: ""
EXCLUDE_FILTER: only_testpoints

View File

@@ -0,0 +1,30 @@
# KiBot output for generating drill Gerber files
# https://kibot.readthedocs.io/en/latest/configuration/outputs/excellon.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: excellon
category: '@DIR@'
dir: '@DIR@'
options:
generate_drill_files: @GENERATE_DRILL@
pth_and_npth_single_file: @PTH_NPTH@
pth_id: '-pth'
npth_id: '-npth'
map: '@MAP_FORMAT@'
metric_units: @METRIC_UNITS@
use_aux_axis_as_origin: true
...
definitions:
NAME: drl_excellon
COMMENT: Drill in Excellon format
DIR: mfg/fab/gerbers
GENERATE_DRILL: true
PTH_NPTH: false
MAP_FORMAT: None
METRIC_UNITS: true

View File

@@ -0,0 +1,29 @@
# KiBot output for generating Gerber files
# https://kibot.readthedocs.io/en/latest/configuration/outputs/gerber.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: gerber
category: '@DIR@'
dir: '@DIR@'
layers: ['copper', 'Edge.Cuts', 'F.Silkscreen', 'F.Mask', 'F.Paste', 'B.Silkscreen', 'B.Mask', 'B.Paste']
options:
subtract_mask_from_silk: @SUBTRACT_MASK@
plot_footprint_refs: @PLOT_REFS@
plot_footprint_values: false
create_gerber_job_file: false
use_aux_axis_as_origin: true
use_protel_extensions: @PROTEL_EXTENSIONS@
...
definitions:
NAME: gbr_gerbers
COMMENT: Gerbers in GBR format
DIR: mfg/fab/gerbers
PLOT_REFS: true
PROTEL_EXTENSIONS: false
SUBTRACT_MASK: false

View File

@@ -0,0 +1,51 @@
# KiBot output for generating Interactive HTML BoM
# https://kibot.readthedocs.io/en/latest/configuration/outputs/ibom.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: bom
category: '@DIR@'
dir: '@DIR@'
options:
format: HTML
html:
title: 'Bill of Materials'
datasheet_as_link: "Datasheet"
lcsc_link: true
logo: false
style: modern-blue
group_fields: ['@MPN_FIELD@', 'Value']
columns:
- "Row"
- "Quantity Per PCB"
- "References"
- "Value"
- "Datasheet"
- "Footprint"
- "Description"
- "@IPN_FIELD@"
- "@MAN_FIELD@"
- "@MPN_FIELD@"
- "LCSC"
# - "arrow#"
# - "digikey#"
# - "farnell#"
# - "mouser#"
# - "newark#"
# - "rs#"
# - "tme#"
...
definitions:
NAME: html_bom
COMMENT: BOM in HTML format
DIR: mfg/assembly
IPN_FIELD: 'Asymworks IPN'
MPN_FIELD: 'Manufacturer PN'
MAN_FIELD: 'Manufacturer'

View File

@@ -0,0 +1,36 @@
# KiBot output for generating Interactive HTML BoM
# https://kibot.readthedocs.io/en/latest/configuration/outputs/ibom.html
# This output is currently somewhat buggy, and fails at odd times complaining
# about missing embedded Schematic WKS frame files.
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: ibom
dir: '@DIR@'
category: '@DIR@'
options:
# extra_data_file: '%F.net'
dark_mode: true
show_fields: 'Value,Footprint,@IPN_FIELD@,@MPN_FIELD@'
group_fields: 'Value,@IPN_FIELD@'
show_fabrication: true
highlight_pin1: "selected"
exclude_filter: '@EXCLUDE_FILTER@'
hide_excluded: true
forced_name: '@TITLE@'
mark_when_checked: 'Placed'
...
definitions:
NAME: html_bom_interactive
COMMENT: Interactive BOM in HTML format
DIR: mfg/assembly
EXCLUDE_FILTER: exclude_testpoints
TITLE: ""
IPN_FIELD: 'Asymworks IPN'
MPN_FIELD: 'Manufacturer PN'

View File

@@ -0,0 +1,24 @@
# KiBot output for diff web page between commits
# https://kibot.readthedocs.io/en/latest/configuration/outputs/kiri.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: kiri
category: '@DIR@'
dir: '@DIR@'
layers: all
options:
keep_generated: true
max_commits: 3
revision: 'HEAD'
zones: 'global'
...
definitions:
NAME: html_kiri
COMMENT: KiRi webpage
DIR: kiri

View File

@@ -0,0 +1,35 @@
# KiBot output for generating Bill of Materials in CSV format for JLCPCB
# https://kibot.readthedocs.io/en/latest/configuration/outputs/bom.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: bom
category: '@DIR@'
dir: '@DIR@'
options:
exclude_filter: @EXCLUDE_FILTER@
format: CSV
csv:
hide_pcb_info: true
hide_stats_info: true
quote_all: true
columns:
- field: Value
name: Comment
- field: References
name: Designator
- Footprint
- field: _field_lcsc_part
name: 'LCSC Part #'
ref_separator: ','
...
definitions:
NAME: jlcpcb_bom
COMMENT: Bill of Materials for JLCPCB
DIR: mfg/assembly/jlcpcb
EXCLUDE_FILTER: only_lcsc_parts

View File

@@ -0,0 +1,48 @@
# KiBot output for generating Position file in CSV format for JLCPCB
# https://kibot.readthedocs.io/en/latest/configuration/outputs/position.html
kibot:
version: 1
filters:
- name: fix_rotation
comment: Adjust rotation for JLCPCB
type: rot_footprint
negative_bottom: false
mirror_bottom: true
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: position
category: '@DIR@'
dir: '@DIR@'
options:
format: 'CSV'
output: '%f-cpl%I%v.%x'
separate_files_for_front_and_back: false
units: millimeters
only_smd: true
include_virtual: false
exclude_filter: @EXCLUDE_FILTER@
pre_transform: '_rot_footprint_jlcpcb'
columns:
- id: Ref
name: Designator
- Val
- Package
- id: PosX
name: "Mid X"
- id: PosY
name: "Mid Y"
- id: Rot
name: Rotation
- id: Side
name: Layer
...
definitions:
NAME: jlcpcb_cpl
COMMENT: Component Placement for JLCPCB
DIR: mfg/assembly/jlcpcb
EXCLUDE_FILTER: only_lcsc_parts

View File

@@ -0,0 +1,28 @@
# KiBot output for compressing Fabrication files to a ZIP archive for JLCPCB
# https://kibot.readthedocs.io/en/latest/configuration/outputs/compress.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: compress
category: '@DIR@'
dir: '@DIR@'
options:
output: '%f-Fabpack%I%v.%x'
move_files: false
files:
- from_output: @GERBER_OUTPUT@
dest: '/'
- from_output: @DRILL_OUTPUT@
dest: '/'
...
definitions:
NAME: jlcpcb_fabpack
COMMENT: Generates a ZIP file with gerbers and drill for JLCPCB
DIR: mfg/fab
GERBER_OUTPUT: jlcpcb_gerbers
DRILL_OUTPUT: drl_excellon

View File

@@ -0,0 +1,32 @@
# KiBot output for generating an HTML page for navigating the results
# https://kibot.readthedocs.io/en/latest/configuration/outputs/navigate_results_rb.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: navigate_results_rb
# category: '@DIR@'
dir: '@DIR@'
options:
link_from_root: 'index.html'
logo: '@LOGO@'
logo_force_height: 40
logo_url: '@LOGO_URL@'
nav_bar: true
render_markdown: true
display_category_images: false
display_kibot_version: false
title: '@TITLE@'
title_url: '@LOGO_URL@'
...
definitions:
NAME: html_navigate_results
COMMENT: Results webpage in HTML format
DIR: html
TITLE: ''
LOGO: ''
LOGO_URL: ''

View File

@@ -0,0 +1,18 @@
# KiBot output for generating netlist in KiCad format
# https://kibot.readthedocs.io/en/latest/configuration/outputs/netlist.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: netlist
options:
format: '@FORMAT@'
...
definitions:
NAME: netlist
FORMAT: classic
COMMENT: Schematic netlist in KiCad format

View File

@@ -0,0 +1,20 @@
# KiBot output for generating ODB++ files
# https://kibot.readthedocs.io/en/latest/configuration/outputs/odb.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: odb
category: '@DIR@'
dir: '@DIR@'
options:
dnf_filter: _kibom_dnf_Config
...
definitions:
NAME: zip_odb
COMMENT: ODB++ in ZIP format
DIR: mfg/fab

View File

@@ -0,0 +1,27 @@
# KiBot output for generating PCB Panels with KiKit
# https://kibot.readthedocs.io/en/latest/configuration/outputs/panelize.html
kibot:
version: 1
outputs:
- name: @NAME@
output_id: @NAME@
comment: '@COMMENT@'
type: panelize
category: '@DIR@'
dir: '@DIR@'
options:
configs: @CONFIG@
output: '%f-%I%v.%x'
create_preview: true
title: '@TITLE@'
...
definitions:
NAME: panel
COMMENT: PCB Panelization
CATEGORY: Panels
DIR: fab/panel
CONFIG: ''
TITLE: ''

View File

@@ -0,0 +1,24 @@
# KiBot output for generating PCB 2D renders with PcbDraw
# https://kibot.readthedocs.io/en/latest/configuration/outputs/pcbdraw.html
kibot:
version: 1
outputs:
- name: @NAME@
output_id: @NAME@
comment: '@COMMENT@'
type: pcbdraw
category: '@DIR@'
dir: '@DIR@'
options:
bottom: @BOTTOM@
format: @FORMAT@
output: '%f-%I%v.%x'
...
definitions:
NAME: pcbdraw_top
COMMENT: PCB 2D Render (Top)
DIR: renders
BOTTOM: false

View File

@@ -0,0 +1,117 @@
# KiBot output for generating Assembly Document in PDF format
# https://kibot.readthedocs.io/en/latest/configuration/outputs/pcb_print.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: pcb_print
category: '@DIR@'
dir: '@DIR@'
options:
colored_vias: false
colored_pads: false
color_theme: '@COLOR_THEME@'
output: '%f-assembly%I%v.%x'
format: 'PDF'
title: '@DOC_TITLE@ Document'
realistic_solder_mask: false
dpi: 1200
dnf_filter: _kibom_dnf_Config
# dnf_filter: '_null'
sheet_reference_layout: '@SHEET_WKS@'
include_table:
outputs:
- name: '@NAME_COMP_COUNT@'
text_alignment: 'left'
invert_columns_order: false
border_width: 0.4
header_rule_width: 0.2
horizontal_rule_width: 0
vertical_rule_width: 0
top_rule_width: 0
bottom_rule_width: 0
row_spacing: 3
column_spacing: 2
pages:
- scaling: @SCALING@
layer_var: ''
title: '@DOC_TITLE@'
sheet: Top/Bottom View
sheet_reference_color: '#000000'
layers:
- layer: '@LAYER_TITLE_PAGE@'
color: '#000000'
- scaling: @SCALING@
layer_var: "Top Assembly (Scale @SCALING@:1)"
title: '@DOC_TITLE@'
sheet: Top Assembly (Scale @SCALING@:1)
sheet_reference_color: '#000000'
colored_holes: true
holes_color: "#FFFFFF"
layers:
- layer: Edge.Cuts
color: '#000000'
- layer: F.Cu
color: '#EEDAB5'
- layer: F.Mask
color: '#B9B9B9'
- layer: F.Paste
color: '#E1A98E'
- layer: F.Silkscreen
color: '#DB9DE1'
- layer: F.Fab
exclude_filter: '@FAB_EXCLUDE_FILTER@'
color: '#744679'
- layer: '@LAYER_ASSEMBLY_TEXT_TOP@'
color: '#000000'
- layer: '@LAYER_DNP_CROSS_TOP@'
color: '#D63034'
- scaling: @SCALING@
layer_var: "Bottom Assembly (Scale @SCALING@:1)"
mirror: true
mirror_pcb_text: false
title: '@DOC_TITLE@'
sheet: Bottom Assembly (Scale @SCALING@:1)
sheet_reference_color: '#000000'
colored_holes: true
holes_color: "#FFFFFF"
layers:
- layer: Edge.Cuts
color: '#000000'
- layer: B.Cu
color: '#D5DBF4'
- layer: B.Mask
color: '#B9B9B9'
- layer: B.Paste
color: '#BCB9DD'
- layer: B.Silkscreen
color: '#DB9DE1'
- layer: B.Fab
exclude_filter: '@FAB_EXCLUDE_FILTER@'
color: '#400080'
- layer: '@LAYER_ASSEMBLY_TEXT_BOTTOM@'
color: '#000000'
- layer: '@LAYER_DNP_CROSS_BOTTOM@'
color: '#D63034'
...
definitions:
NAME: pdf_assembly
COMMENT: Assembly document in PDF format
DIR: mfg/assembly
DOC_TITLE: Assembly
COLOR_THEME: Altium_Theme
SHEET_WKS: ${KIPRJMOD}/templates/Asymworks_PCB.kicad_wks
SCALING: 1.0
FAB_EXCLUDE_FILTER: exclude_testpoints
LAYER_TITLE_PAGE: AssyTitlePage
LAYER_ASSEMBLY_TEXT_TOP: F.AssemblyText
LAYER_ASSEMBLY_TEXT_BOTTOM: B.AssemblyText
LAYER_DNP_CROSS_TOP: F.DNP
LAYER_DNP_CROSS_BOTTOM: B.DNP
NAME_COMP_COUNT: csv_comp_count

View File

@@ -0,0 +1,234 @@
# KiBot output for generating Fabrication Document in PDF format
# https://kibot.readthedocs.io/en/latest/configuration/outputs/pcb_print.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: pcb_print
category: '@DIR@'
dir: '@DIR@'
options:
colored_pads: false
colored_vias: false
color_theme: '@COLOR_THEME@'
output: '%f-fabrication%I%v.%x'
format: 'PDF'
title: '@DOC_TITLE@ Document'
realistic_solder_mask: false
dpi: 1200
dnf_filter: _kibom_dnf_Config
frame_plot_mechanism: 'internal'
sheet_reference_layout: '@SHEET_WKS@'
drill:
unify_pth_and_npth: '@PTH_NPTH@'
group_slots_and_round_holes: @GROUP_ROUND_SLOTS@
include_table:
outputs:
- name: '@NAME_TP_TOP@'
text_alignment: 'left'
invert_columns_order: false
border_width: 0.4
header_rule_width: 0.2
horizontal_rule_width: 0
vertical_rule_width: 0.2
top_rule_width: 0.2
bottom_rule_width: 0.2
column_spacing: 2
force_font_width: 1.27 # mm
- name: '@NAME_TP_BOTTOM@'
text_alignment: 'right'
invert_columns_order: true
border_width: 0.4
header_rule_width: 0.2
horizontal_rule_width: 0
vertical_rule_width: 0.2
top_rule_width: 0.2
bottom_rule_width: 0.2
column_spacing: 2
force_font_width: 1.27 # mm
- name: '@NAME_IMPEDANCE_TABLE@'
text_alignment: 'left'
invert_columns_order: false
border_width: 0.4
header_rule_width: 0.2
horizontal_rule_width: 0
vertical_rule_width: 0.2
top_rule_width: 0.2
bottom_rule_width: 0.2
row_spacing: 3
column_spacing: 2
row_spacing: 3
- name: '@NAME_DRILL_TABLE@'
text_alignment: 'left'
invert_columns_order: false
border_width: 0.4
header_rule_width: 0.2
horizontal_rule_width: 0
vertical_rule_width: 0.2
top_rule_width: 0.2
bottom_rule_width: 0.2
row_spacing: 3
column_spacing: 2
force_font_width: 1 # mm
pages:
- scaling: @SCALING@
title: '@DOC_TITLE@'
sheet: 'Top Fabrication (Scale @SCALING@:1)'
layer_var: 'Top Fabrication (Scale @SCALING@:1)'
sheet_reference_color: '#000000'
colored_holes: true
holes_color: "#FFFFFF"
layers:
- layer: Edge.Cuts
color: '#000000'
- layer: F.Cu
color: '#F2F2F2'
- layer: F.Mask
color: '#E2E2E2'
- layer: F.Paste
color: '#E2E2E2'
- layer: F.Silkscreen
color: '#DBDBDB'
- layer: F.Fab
plot_footprint_refs: false
plot_footprint_values: false
color: '#818181'
- layer: F.Dimensions
color: '#000000'
- scaling: @SCALING@
mirror: true
mirror_pcb_text: false
title: '@DOC_TITLE@'
sheet: 'Bottom Fabrication (Scale @SCALING@:1)'
layer_var: 'Bottom Fabrication (Scale @SCALING@:1)'
sheet_reference_color: '#000000'
colored_holes: true
holes_color: "#FFFFFF"
layers:
- layer: Edge.Cuts
color: '#000000'
- layer: B.Cu
color: '#F2F2F2'
- layer: B.Mask
color: '#E2E2E2'
- layer: B.Paste
color: '#E2E2E2'
- layer: B.Silkscreen
color: '#DBDBDB'
- layer: B.Fab
plot_footprint_refs: false
plot_footprint_values: false
color: '#818181'
- layer: B.Dimensions
color: '#000000'
- scaling: @SCALING@
title: '@DOC_TITLE@'
sheet: 'Drill Drawing (%lp)'
layer_var: 'Drill Drawing %lp (Scale @SCALING@:1)'
sheet_reference_color: '#000000'
colored_holes: true
holes_color: "#FFFFFF"
repeat_for_layer: '@LAYER_DRILL_MAP@'
repeat_layers: 'drill_pairs'
layers:
- layer: '@LAYER_DRILL_MAP@'
color: '#000000'
- layer: 'Edge.Cuts'
color: '#000000'
- scaling: @SCALING@
title: '@DOC_TITLE@'
sheet: 'Top Test Points (Scale @SCALING@:1)'
layer_var: 'Top Test Points (Scale @SCALING@:1)'
sheet_reference_color: '#000000'
colored_holes: true
holes_color: "#FFFFFF"
layers:
- layer: Edge.Cuts
color: '#000000'
- layer: F.Cu
color: '#E5E5E5'
- layer: F.Mask
color: '#CECECE'
- layer: F.Paste
color: '#CECECE'
- layer: F.Silkscreen
color: '#C7C7C7'
- layer: F.Fab
exclude_filter: '@FAB_EXCLUDE_FILTER@'
plot_footprint_values: false
sketch_pads_on_fab_layers: false
color: '#E10000'
- layer: '@LAYER_TP_LIST_TOP@'
color: '#000000'
- scaling: @SCALING@
mirror : true
mirror_pcb_text: true
title: '@DOC_TITLE@'
sheet: 'Bottom Test Points (Scale @SCALING@:1)'
layer_var: 'Bottom Test Points (Scale @SCALING@:1)'
sheet_reference_color: '#000000'
colored_holes: true
holes_color: "#FFFFFF"
layers:
- layer: Edge.Cuts
color: '#000000'
- layer: B.Cu
color: '#E5E5E5'
- layer: B.Mask
color: '#CECECE'
- layer: B.Paste
color: '#CECECE'
- layer: B.Silkscreen
color: '#C7C7C7'
- layer: B.Fab
exclude_filter: '@FAB_EXCLUDE_FILTER@'
plot_footprint_values: false
sketch_pads_on_fab_layers: false
color: '#0B00CC'
- layer: '@LAYER_TP_LIST_BOTTOM@'
color: '#000000'
- scaling: @SCALING@
sheet: '%ln (Scale @SCALING@:1)'
layer_var: '%ln (Scale @SCALING@:1)'
title: '@DOC_TITLE@'
sheet_reference_color: '#000000'
colored_holes: true
holes_color: "#FFFFFF"
repeat_for_layer: 'F.Cu'
repeat_layers: 'copper'
layers:
- layer: Edge.Cuts
color: '#000000'
- layer: 'F.Cu'
...
definitions:
NAME: pdf_fabrication
COMMENT: Fabrication document in PDF format
DIR: mfg/fab
DOC_TITLE: Fabrication
COLOR_THEME: Altium_Theme
SHEET_WKS: ${KIPRJMOD}/templates/Asymworks_PCB.kicad_wks
SCALING: 1.0
FAB_EXCLUDE_FILTER: only_testpoints
LAYER_DRILL_MAP: DrillMap
LAYER_TP_LIST_TOP: F.TestPointList
LAYER_TP_LIST_BOTTOM: B.TestPointList
PTH_NPTH: 'yes'
GROUP_ROUND_SLOTS: true
NAME_TP_TOP: csv_testpoints_top
NAME_TP_BOTTOM: csv_testpoints_bottom
NAME_IMPEDANCE_TABLE: csv_impedance_table
NAME_DRILL_TABLE: csv_drill_table

View File

@@ -0,0 +1,26 @@
# KiBot output for generating schematics in PDF format
# https://kibot.readthedocs.io/en/latest/configuration/outputs/pdf_sch_print.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: pdf_sch_print
dir: '@DIR@'
category: '@DIR@'
options:
background_color: false
color_theme: '@COLOR_THEME@'
default_font: '@DEFAULT_FONT@'
sheet_reference_layout: '@SHEET_WKS@'
...
definitions:
NAME: pdf_schematic
COMMENT: Schematic in PDF format
COLOR_THEME: Altium_Theme
DEFAULT_FONT: Arial
DIR: schematic
SHEET_WKS: ${KIPRJMOD}/templates/Asymworks_SCH.kicad_wks

View File

@@ -0,0 +1,43 @@
# KiBot output for 3D Viewer renders in PNG format
# https://kibot.readthedocs.io/en/latest/configuration/outputs/render_3d.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: render_3d
category: '@DIR@'
dir: '@DIR@'
options:
output: '%f-@SUFFIX@%I%v.%x'
auto_crop: true
enable_crop_workaround: true
rotate_x: @ROTATE_X@
rotate_y: @ROTATE_Y@
rotate_z: @ROTATE_Z@
zoom: @ZOOM@
height: @HEIGHT@
width: @WIDTH@
view: '@VIEW@'
force_stackup_colors: true
orthographic: true
transparent_background: true
transparent_background_color: '@KEY_COLOR@'
transparent_background_fuzz: 40
...
definitions:
NAME: png_3d_viewer
COMMENT: 3D viewer PCB render in PNG format
DIR: renders
SUFFIX: ""
VIEW: top
ROTATE_X: 0
ROTATE_Y: 0
ROTATE_Z: 0
ZOOM: 0
HEIGHT: 2000
WIDTH: 2000
KEY_COLOR: '#FF00FF'

View File

@@ -0,0 +1,20 @@
# KiBot output for generating PCB 3D model in STEP format
# https://kibot.readthedocs.io/en/latest/configuration/outputs/step.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: step
category: '@DIR@'
dir: '@DIR@'
options:
output: '%f%I%v.%x'
...
definitions:
NAME: step
COMMENT: PCB 3D model in STEP format
DIR: 3d_model

View File

@@ -0,0 +1,27 @@
# KiBot output for TXT Report (e.g. Fabrication/Assembly notes)
# https://kibot.readthedocs.io/en/latest/configuration/outputs/report.html
kibot:
version: 1
outputs:
- name: @NAME@
comment: '@COMMENT@'
type: report
category: '@DIR@'
dir: '@DIR@'
output_id: @OUTPUT_ID@
options:
output: '%f-%I%v.txt'
template: @TEMPLATE@
exclude_filter: '_mechanical'
mm_digits: 3
display_trailing_zeros: True
...
definitions:
NAME: txt_fabrication_notes
COMMENT: Report
DIR: mfg
OUTPUT_ID: _notes
TEMPLATE: notes/fabrication_notes.txt

View File

@@ -0,0 +1,25 @@
# KiBot preflight for Draw Fancy Stackup feature
# https://kibot.readthedocs.io/en/latest/configuration/preflights/draw_fancy_stackup.html
kibot:
version: 1
preflight:
update_xml: true
draw_fancy_stackup:
gerber: '@GERBER_OUTPUT@'
gerber_extension_only: True
draw_stackup: True
draw_vias: True
columns:
- 'material'
- 'layer'
- 'thickness'
- 'dielectric'
- 'layer_type'
note: '@NOTE@'
...
definitions:
GERBER_OUTPUT: gbr_gerbers
NOTE: external layer thicknesses are specified after plating

View File

@@ -0,0 +1,20 @@
# KiBot preflight for generating DRC reports
# https://kibot.readthedocs.io/en/latest/configuration/preflights/drc.html
kibot:
version: 1
preflight:
check_zone_fills: @CHECK_ZONE_FILLS@
drc:
category: '@DIR@'
dir: '@DIR@'
dont_stop: true
format: 'HTML, RPT'
output: 'report_%f-%i%I%v.%x'
...
definitions:
CHECK_ZONE_FILLS: true
CATEGORY: Schematic
DIR: reports

View File

@@ -0,0 +1,17 @@
# KiBot preflight for generating ERC reports
# https://kibot.readthedocs.io/en/latest/configuration/preflights/erc.html
kibot:
version: 1
preflight:
erc:
category: '@DIR@'
dir: '@DIR@'
format: 'HTML, RPT'
output: 'report_%f-%i%I%v.%x'
...
definitions:
CATEGORY: Schematic
DIR: reports

View File

@@ -0,0 +1,75 @@
# KiBot preflight for Include Table feature
# https://kibot.readthedocs.io/en/latest/configuration/preflights/include_table.html
kibot:
version: 1
preflight:
include_table:
outputs:
- name: '@NAME_TP_TOP@'
text_alignment: 'left'
invert_columns_order: false
border_width: 0.2
header_rule_width: 0.2
horizontal_rule_width: 0
vertical_rule_width: 0
top_rule_width: 0
bottom_rule_width: 0
column_spacing: 1
# force_font_width: 1.27 # mm
- name: '@NAME_TP_BOTTOM@'
text_alignment: 'right'
invert_columns_order: true
border_width: 0.2
header_rule_width: 0.2
horizontal_rule_width: 0
vertical_rule_width: 0
top_rule_width: 0
bottom_rule_width: 0
column_spacing: 1
# force_font_width: 1.27 # mm
- name: '@NAME_COMP_COUNT@'
text_alignment: 'left'
invert_columns_order: false
border_width: 0.2
header_rule_width: 0.2
horizontal_rule_width: 0
vertical_rule_width: 0
top_rule_width: 0
bottom_rule_width: 0
row_spacing: 3
column_spacing: 1
- name: '@NAME_CSV_DRILL_TABLE@'
text_alignment: 'left'
invert_columns_order: false
border_width: 0.2
header_rule_width: 0.2
horizontal_rule_width: 0
vertical_rule_width: 0
top_rule_width: 0
bottom_rule_width: 0
row_spacing: 3
column_spacing: 1
- name: '@NAME_IMPEDANCE_TABLE@'
text_alignment: 'left'
invert_columns_order: false
border_width: 0.2
header_rule_width: 0.2
vertical_rule_width: 0
top_rule_width: 0
bottom_rule_width: 0
row_spacing: 3
column_spacing: 1
...
definitions:
NAME_TP_TOP: csv_testpoints_top
NAME_TP_BOTTOM: csv_testpoints_bottom
NAME_COMP_COUNT: csv_comp_count
NAME_CSV_DRILL_TABLE: csv_drill_table
NAME_IMPEDANCE_TABLE: csv_impedance_table

View File

@@ -0,0 +1,132 @@
# KiBot preflight for setting Text Variables
# https://kibot.readthedocs.io/en/latest/configuration/preflights/set_text_variables.html
kibot:
version: 1
preflight:
update_xml: true
set_text_variables:
# Git-related information
- variable: 'REVISION'
text: '@REVISION@'
- variable: 'RELEASE_STATE'
text: '@RELEASE_STATE@'
- variable: 'RELEASE_DATE'
command: 'git log -1 --format="%ad" --date=short'
- variable: 'GIT_HASH_SCH'
command: 'git log -1 --format="%h" $KIBOT_SCH_NAME'
- variable: 'GIT_HASH_PCB'
command: 'git log -1 --format="%h" $KIBOT_PCB_NAME'
- variable: 'GIT_HASH'
command: 'git log -1 --format="%h"'
- variable: 'GIT_URL'
text: '@GIT_URL@'
# Metadata
- variable: 'PROJECT_CODE'
text: '@PROJECT_CODE@'
- variable: 'ASSEMBLY_NUMBER'
text: '@ASSEMBLY_NUMBER@'
- variable: 'ASSEMBLY_NAME'
text: '@ASSEMBLY_NAME@'
- variable: 'ASSEMBLY_SCALE'
text: '@ASSEMBLY_SCALING@'
- variable: 'DWG_NUMBER_PCB'
text: '@DWG_NUMBER_PCB@'
- variable: 'DWG_NUMBER_SCH'
text: '@DWG_NUMBER_SCH@'
- variable: 'DWG_TITLE_PCB'
text: '@DWG_TITLE_PCB@'
- variable: 'DWG_TITLE_SCH'
text: '@DWG_TITLE_SCH@'
- variable: 'DWG_TITLE_ASSY'
text: '@DWG_TITLE_ASSY@'
- variable: 'COMPANY'
text: '@COMPANY@'
- variable: 'DESIGNER'
text: '@DESIGNER@'
- variable: 'VARIANT'
text: '%V'
# Schematic notes
- variable: 'SCHEMATIC_NOTES'
expand_in_command: true
command: '[ -f "@SCHEMATIC_DIR@/%f-schematic_notes%v.txt" ] && cat "@SCHEMATIC_DIR@/%f-schematic_notes%v.txt" || echo ""'
# Fabrication notes
- variable: 'FABRICATION_NOTES'
expand_in_command: true
command: '[ -f "@FABRICATION_DIR@/%f-fabrication_notes%v.txt" ] && cat "@FABRICATION_DIR@/%f-fabrication_notes%v.txt" || echo ""'
# Assembly notes
- variable: 'ASSEMBLY_NOTES'
expand_in_command: true
command: '[ -f "@ASSEMBLY_DIR@/%f-assembly_notes%v.txt" ] && cat "@ASSEMBLY_DIR@/%f-assembly_notes%v.txt" || echo ""'
# Page titles for automatic ToC
- variable: '@SHEET_NAME_VAR@01'
text: 'Cover Page'
- variable: '@SHEET_NAME_VAR@02'
command: '@GET_SHEET_CMD@ 2'
- variable: '@SHEET_NAME_VAR@03'
command: '@GET_SHEET_CMD@ 3'
- variable: '@SHEET_NAME_VAR@04'
command: '@GET_SHEET_CMD@ 4'
- variable: '@SHEET_NAME_VAR@05'
command: '@GET_SHEET_CMD@ 5'
- variable: '@SHEET_NAME_VAR@06'
command: '@GET_SHEET_CMD@ 6'
- variable: '@SHEET_NAME_VAR@07'
command: '@GET_SHEET_CMD@ 7'
- variable: '@SHEET_NAME_VAR@08'
command: '@GET_SHEET_CMD@ 8'
- variable: '@SHEET_NAME_VAR@09'
command: '@GET_SHEET_CMD@ 9'
- variable: '@SHEET_NAME_VAR@10'
command: '@GET_SHEET_CMD@ 10'
- variable: '@SHEET_NAME_VAR@11'
command: '@GET_SHEET_CMD@ 11'
- variable: '@SHEET_NAME_VAR@12'
command: '@GET_SHEET_CMD@ 12'
- variable: '@SHEET_NAME_VAR@13'
command: '@GET_SHEET_CMD@ 13'
- variable: '@SHEET_NAME_VAR@14'
command: '@GET_SHEET_CMD@ 14'
- variable: '@SHEET_NAME_VAR@15'
command: '@GET_SHEET_CMD@ 15'
- variable: '@SHEET_NAME_VAR@16'
command: '@GET_SHEET_CMD@ 16'
- variable: '@SHEET_NAME_VAR@17'
command: '@GET_SHEET_CMD@ 17'
- variable: '@SHEET_NAME_VAR@18'
command: '@GET_SHEET_CMD@ 18'
- variable: '@SHEET_NAME_VAR@19'
command: '@GET_SHEET_CMD@ 19'
- variable: '@SHEET_NAME_VAR@20'
command: '@GET_SHEET_CMD@ 20'
...
definitions:
PROJECT_CODE: ''
ASSEMBLY_NUMBER: ''
ASSEMBLY_NAME: ''
ASSEMBLY_SCALING: ''
DWG_NUMBER_SCH: ''
DWG_TITLE_SCH: ''
DWG_NUMBER_PCB: ''
DWG_TITLE_PCB: ''
DWG_TITLE_ASSY: ''
COMPANY: ''
DESIGNER: ''
REVISION: ''
RELEASE_STATE: ''
RELEASE_DATE: ''
GIT_URL: ''
SHEET_NAME_VAR: SHEET_NAME_
SCRIPTS_DIR: kibot/scripts
FABRICATION_DIR: mfg/fab
ASSEMBLY_DIR: mfg/assembly
GET_SHEET_CMD: python3 @SCRIPTS_DIR@/get_sheet_title.py -f "${KIBOT_SCH_NAME%.kicad_sch}.xml" --dots-number 38 -p

View File

@@ -0,0 +1,9 @@
# KiBot preflight for updating the Schematic XML
# https://kibot.readthedocs.io/en/latest/configuration/preflights/update_xml.html
kibot:
version: 1
preflight:
update_xml: true