#!/bin/bash set -euo pipefail GERBERS_DIR="gerbers" GCODE_DIR="gcode" usage() { echo "Usage: $0 " exit 1 } PCB_FILE="$1" PCB_FILE_PREFIX="$(basename "$PCB_FILE" .kicad_pcb)" mkdir -p "$GERBERS_DIR" mkdir -p "$GCODE_DIR" # Export drill, outline, front and back layers as gerber files. echo "Exporting gerbers..." kicad-cli pcb export drill --generate-map -o "$GERBERS_DIR" "$PCB_FILE" kicad-cli pcb export gerbers -o "$GERBERS_DIR" -l Edge.Cuts "$PCB_FILE" kicad-cli pcb export gerbers -o "$GERBERS_DIR" -l Front "$PCB_FILE" kicad-cli pcb export gerbers -o "$GERBERS_DIR" -l Back "$PCB_FILE" # kicad-cli pcb export svg -o "$GERBERS_DIR" -l Edge.Cuts \ # --mode-multi --page-size-mode 1 --black-and-white \ # --drill-shape-opt 0 --exclude-drawing-sheet "$PCB_FILE" echo "Exporting Gcode for drilling, outline and isolation traces routing..." docker run --rm -it \ -u "$(id -u):$(id -g)" \ -v "$(pwd):/data" \ ptodorov/pcb2gcode \ --config millproject \ --output-dir "$GCODE_DIR" \ --front "$GERBERS_DIR/$PCB_FILE_PREFIX-Front.gtl" \ --back "$GERBERS_DIR/$PCB_FILE_PREFIX-Back.gbl" \ --drill "$GERBERS_DIR/$PCB_FILE_PREFIX.drl" \ --outline "$GERBERS_DIR/$PCB_FILE_PREFIX-Edge_Cuts.gm1"