0hmX/pcbgolf-routing-checkpoint-20261012

A PCBGolf assembly combining a modeled PCB with copper/component bodies and seven native connector housings.

Version
0.0.3
License
unset
Stars
0

assembly.tsx

PCBPCB preview for assembly.tsx
SchematicSchematic preview for assembly.tsx
import { assembly } from "@tscircuit/core"

// Actual e69 native assembly: 198 routing gaps remain.
// All assets retain the exact STEP frame; only this common translation centers the assembly.
const cadModel = (glbUrl: string) => ({
  glbUrl,
  modelOriginPosition: { x: 0, y: 0, z: 0 },
  positionOffset: { x: -44.45, y: -39.7, z: -0.4 },
  rotationOffset: { x: 0, y: 0, z: 0 },
  modelUnitToMmScale: 1,
})
const boardAssets = [
  "./assets/board-circuits-000.glb",
  "./assets/board-circuits-001.glb",
  "./assets/board-circuits-002.glb",
  "./assets/board-circuits-003.glb",
  "./assets/board-circuits-004.glb",
  "./assets/board-circuits-005.glb",
  "./assets/board-circuits-006.glb",
  "./assets/board-circuits-007.glb",
  "./assets/board-circuits-008.glb",
  "./assets/board-circuits-009.glb",
  "./assets/board-circuits-010.glb",
  "./assets/board-circuits-011.glb",
  "./assets/board-circuits-012.glb",
  "./assets/board-circuits-013.glb",
  "./assets/board-circuits-014.glb",
  "./assets/board-circuits-015.glb",
  "./assets/board-circuits-016.glb",
  "./assets/board-circuits-017.glb",
  "./assets/board-circuits-018.glb",
  "./assets/board-circuits-019.glb",
  "./assets/board-circuits-020.glb",
  "./assets/board-circuits-021.glb",
  "./assets/board-circuits-022.glb",
  "./assets/board-circuits-023.glb",
  "./assets/board-circuits-024.glb",
  "./assets/board-circuits-025.glb",
  "./assets/board-circuits-026.glb",
  "./assets/board-circuits-027.glb",
  "./assets/board-circuits-028.glb",
  "./assets/board-circuits-029.glb",
  "./assets/board-circuits-030.glb"
]
const connectorAssets = [
  "./assets/J1.glb",
  "./assets/J2.glb",
  "./assets/J3.glb",
  "./assets/J5.glb",
  "./assets/J6.glb",
  "./assets/J7.glb",
  "./assets/J8.glb"
]

export default () => (
  <assembly.device name="PCBGolf">
    <assembly.subassembly name="BoardAndCircuits">
      {boardAssets.map((asset, i) => (
        <assembly.part name={`board_circuits_${String(i).padStart(3, "0")}`}
          displayName="Actual board, copper and component bodies" cadModel={cadModel(asset)} />
      ))}
    </assembly.subassembly>
    <assembly.subassembly name="ActualConnectors">
      {connectorAssets.map((asset) => (
        <assembly.part name={asset.split("/").pop()!.replace(".glb", "")}
          displayName="Actual native connector body" cadModel={cadModel(asset)} />
      ))}
    </assembly.subassembly>
  </assembly.device>
)