61 lines
2.2 KiB
Bash
61 lines
2.2 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "🛠 Starting Generate-PCB-Outputs..."
|
|
|
|
# Find KiCad project files
|
|
PRO_FILENAME=$(find . -type f -name '*.kicad_pro' | head -n 1)
|
|
PROJECT_NAME=$(basename "$PRO_FILENAME" .kicad_pro)
|
|
SCH_FILENAME="${PROJECT_NAME}.kicad_sch"
|
|
PCB_FILENAME="${PROJECT_NAME}.kicad_pcb"
|
|
RELEASE_TAG=$(git describe --tags --abbrev=0)
|
|
|
|
echo "🔍 SCH: $SCH_FILENAME"
|
|
echo "📐 PCB: $PCB_FILENAME"
|
|
echo "📛 Project: $PROJECT_NAME"
|
|
echo "🏷 Tag: $RELEASE_TAG"
|
|
|
|
mkdir -p output gerbers
|
|
|
|
# Generate Interactive BOM
|
|
echo "📄 Generating Interactive BOM..."
|
|
INTERACTIVE_HTML_BOM_NO_DISPLAY=1 generate_interactive_bom $PCB_FILENAME \
|
|
--dest-dir output/ \
|
|
--name-format "${PROJECT_NAME}_${RELEASE_TAG}_IBOM" \
|
|
--show-fields "References,Value,Footprint,Description,MPN,Manufacturer,Quantity" \
|
|
--group-fields "Value,Footprint" \
|
|
--dnp-field kicad_dnp \
|
|
--include-tracks \
|
|
--include-nets \
|
|
--extra-data-file $PCB_FILENAME
|
|
|
|
# Generate fabrication files
|
|
echo "📁 Exporting Gerbers, Drill, and Pos files..."
|
|
kicad-cli pcb export gerbers $PCB_FILENAME --board-plot-params -o gerbers/ -D REVISION="${RELEASE_TAG}"
|
|
kicad-cli pcb export drill $PCB_FILENAME -o gerbers/
|
|
kicad-cli pcb export pos $PCB_FILENAME --side front -o "gerbers/${PROJECT_NAME}_centroid-top.pos"
|
|
kicad-cli pcb export pos $PCB_FILENAME --side back -o "gerbers/${PROJECT_NAME}_centroid-bottom.pos"
|
|
|
|
# Zip Gerbers
|
|
echo "🗜️ Zipping Gerbers..."
|
|
cd gerbers
|
|
zip "../output/${PROJECT_NAME}_${RELEASE_TAG}_GBR.zip" *
|
|
cd ..
|
|
|
|
# STEP file
|
|
echo "🧱 Exporting STEP..."
|
|
kicad-cli pcb export step $PCB_FILENAME --no-optimize-step --output "output/${PROJECT_NAME}_${RELEASE_TAG}_3D.step" -D REVISION="${RELEASE_TAG}"
|
|
|
|
# Schematic PDF
|
|
echo "🖨️ Exporting Schematic PDF..."
|
|
kicad-cli sch export pdf $SCH_FILENAME --output "output/${PROJECT_NAME}_${RELEASE_TAG}_SCH.pdf" -D REVISION="${RELEASE_TAG}"
|
|
|
|
# Upload
|
|
echo "🚀 Uploading to AllSpice Release..."
|
|
export FILES_TO_UPLOAD="output/${PROJECT_NAME}_${RELEASE_TAG}_IBOM.html,output/${PROJECT_NAME}_${RELEASE_TAG}_GBR.zip,output/${PROJECT_NAME}_${RELEASE_TAG}_3D.step,output/${PROJECT_NAME}_${RELEASE_TAG}_SCH.pdf"
|
|
export RELEASE_TAG
|
|
|
|
python /app/allspice_upload.py
|
|
|
|
|
|
echo "✅ PCB Output Generation Complete!" |