ShiboSoftwareDev/f1c100s-linux-stepper-controller

A four-layer Linux motor-control carrier built around an Allwinner F1C100S SoC, USB‑C, SPI flash, multi-rail power regulation, DRV8825 stepper-driver stage with protection/current sensing, temperature monitoring, and external I/O connectors.

Version
0.1.1
License
unset
Stars
0

routing-boundary.ts

import { applyPartMetadata, applyCadMetadata, applyAssemblyPasteMetadata } from "./assembly-metadata"

/** Keep the reservation in the autorouter input, then remove the non-fabricated
 * helper after routing and before copper generation / final DRC. */
export function routingKeepoutRef(keepout: any) {
  if (!keepout) return
  keepout.doInitialPcbCopperPourRender=()=>{
    if (keepout.root && keepout.pcb_keepout_id)
      keepout.root.db.pcb_keepout.delete(keepout.pcb_keepout_id)
  }
}
/** Apply assembly metadata before the unmodified full DRC. */
export function routingBoundaryRef(board: any) {
  // React 19 calls callback refs with null during cleanup.
  if (!board?.doInitialPcbDesignRuleChecks) return
  const check=board.doInitialPcbDesignRuleChecks.bind(board)
  board.doInitialPcbDesignRuleChecks=()=>{ applyPartMetadata(board); check() }
  const parts=board.doInitialPartsEngineRender.bind(board)
  board.doInitialPartsEngineRender=()=>{ applyCadMetadata(board); applyAssemblyPasteMetadata(board); return parts() }
}