1
0
mirror of https://github.com/whowechina/popn_pico.git synced 2024-12-12 14:51:10 +01:00
popn_pico/PCB/agg-kicad/scripts
2022-08-22 21:51:48 +08:00
..
.gitignore Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_lib_connector.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_lib_ic.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_lib_power.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_lib_switch.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_mod_chip.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_mod_ic.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_mod_jsteh.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_mod_jstpa.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_mod_picoblade.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_mod_sil_dil.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
build_mod_tfml_sfml.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
check_lib.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
check_mod.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
compile_lib.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
compile_sym_lib_table.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
draw_mod.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
ibis2yaml.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
kicad_mod.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
panelise.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
post-commit Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
pre-commit Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
README.md Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
report_mod.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
set3d6.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
set3d.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
sexp.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
stickerbom.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00
xml2bom.py Update PCB with libs and 3d models 2022-08-22 21:51:48 +08:00

agg-kicad scripts

You'll probably need to install PyYAML first: sudo apt-get install python-yaml or sudo pip install pyyaml or so on.

Builders

These scripts generate .lib and .kicad_mod files based on parameters inside the script. They typically are used to automate creation of tedious or similar parts.

Run with --verify as the final argument to instead verify that the existing compiled file is up-to-date (returns exit status 0 if up to date, 1 otherwise).

build_lib_connector.py

This script generates conn.lib containing a number of similar connectors with different numbers of pins.

python3 build_lib_connector.py ../lib/connectors/conn.lib

build_lib_ic.py

This script generates multiple .lib files, one per IC, configured by .yaml files inside the library path you point it at.

python3 build_lib_ic.py ../lib/

build_lib_power.py

This script generates power.lib containing a number of power symbols with different names, such as VCC, VDD, 3v3, GND, DGND, etc.

python3 powerlib.py ../lib/power/power.lib

build_mod_chip.py

Generate IPC-compliant chip packages. The list of packages to generate and their parameters are specified at the start of the file.

python3 build_mod_chip.py ../agg.pretty/

build_mod_ic.py

Generate IC footprints for dual and quad packages. The list of packages to generate and their parameters are specified at the start of the file.

python3 build_mod_ic.py ../agg.pretty/

build_mod_jstpa.py

Generate JST-PA connector footprints in top/side entry, pth and smd, in different pin counts.

python3 build_mod_jstpa.py ../agg.pretty/

Checkers

These scripts check .lib and .kicad_mod files against a set of rules. They return with exit code 0 if all checks passed.

check_lib.py

This script checks all the .lib files in a directory and validates that they conform to as many of the rules as can reasonably be automatically checked.

The top of the file includes a list of library files that are automatically generated, which are allowed to include more than one part per library.

Some exceptions can be enabled inside a library file, for example #invisiblename for parts where the name is allowed to be invisible and #invisiblereference where the reference may be invisible.

python3 libcheck.py ../lib

check_mod.py

This script checks footprint module files in a directory against consistency rules.

python3 scripts/modcheck.py agg.pretty

Compilers

These scripts generate an output by combining many existing files.

Run with --verify as the final argument to instead verify that the existing compiled file is up-to-date (returns exit status 0 if up to date, 1 otherwise).

compile_lib.py

This script generates a single agg-kicad.lib file containing all the schematic symbols in all the individual .lib files.

Run with --verify as the final argument to instead verify that the existing compiled library is up-to-date.

python3 compilelib.py ../lib ../agg-kicad.lib

compile_pro.py

This script creates a blank KiCAD project file containing all the schematic libraries in the given directory. Useful for generating a development project for editing schematic symbols.

python3 genproject.py ../lib ../agg-kicad.pro

Other Scripts

xml2bom.py

This script converts a KiCAD .xml BOM into a text file containing:

  • Any detected problems, such as duplicate parts with different order codes
  • Quick-paste format order BOMs for each detected supplier
  • Assembly BOM with further details on every part

To use, add this line to your BOM scripts:

python3 "/path/to/agg-kicad/scripts/xml2bom.py" "%I" "%O.bom"

pre-commit

This script is a Git hook that should be placed in .git/hooks. It will:

  • Check that all built objects are up to date, stopping the commit if not
  • Check that all the checks pass, stopping the commit if not

post-commit

This script is a Git hook that should be placed in .git/hooks. After any commit it will check any compiled objects are up to date, and rebuild and commit them if not.

moddraw.py

Render .kicad_mod files to PNGs. Used by modreport.py to generate images for the report.

modreport.py

Generate an HMTL report of all the modules in a library, including rendered images. Not currently very sophisticated or automated.

panelise.py

Step-repeat a .kicad_pcb PCB with a given pitch and number of repeats, generating a new .kicad_pcb file. Does not yet support any additional panelisation features like tabs, alignment holes, fiducials, etc.

python3 panelise.py /tmp/in.kicad_pcb 2 30 2 10 /tmp/out.kicad_pcb

Utility Modules

sexp.py

Parse and generate s-expressions for KiCAD pcbnew files.

kicad_mod.py

Helper functions for generating .kicad_mod files.