0hmX/am3352-ddr-track-a-local-dfm-wip-20261007
Experimental RJ45-corrected board with isolated PG indication. 1005/1005 source joins pass; 15 expanded-guard physical errors, sourcing and qualification gates remain. Not fabrication-ready.
- Version
- 0.0.14
- License
- unset
- Stars
- 0
work/via-in-pad-api-check.tsx
import { Circuit } from "@tscircuit/core"
// Small native TSX API probe. No Circuit JSON files are created or edited.
const circuit = new Circuit()
circuit.schematicDisabled = true
circuit.add(<board width={10} height={10} layers={8} routingDisabled isViaInPadAllowed autorouter={{ allowViaInPad: true }}>
<chip name="U_TEST" pinLabels={{ pin1: ["A1"] }} connections={{ pin1: "net.GND" }} footprint={<footprint>
<smtpad portHints={["pin1"]} pcbX={0} pcbY={0} shape="circle" radius={0.2} />
<via name="padVia" pcbX={0} pcbY={0} holeDiameter={0.15} outerDiameter={0.3} fromLayer="top" toLayer="bottom" />
</footprint>} />
</board>)
await circuit.renderUntilSettled()
const records = circuit.getCircuitJson()
const via = records.find(record => record.type === "pcb_via")
const trace = records.find(record => record.type === "source_trace" && record.source_trace_id === via?.source_trace_id)
console.log({
viaCount: records.filter(record => record.type === "pcb_via").length,
viaCenter: via && [via.x, via.y],
viaLayers: via?.layers,
hasConnectedSourceTrace: Boolean(trace),
connectedNetCount: trace?.connected_source_net_ids.length,
errors: records.filter(record => record.type.endsWith("_error")).map(record => ({ type: record.type, message: (record as any).message })),
})