The core logic used to build Circuit JSON from tscircuit React elements.
You can use core
to create Circuit JSON, which can then
be converted into Gerbers, viewed online, and much more.
import { Circuit } from "@tscircuit/core"
const circuit = new Circuit()
circuit.add(
<board width="10mm" height="10mm">
<resistor name="R1" resistance="10k" footprint="0402" />
<led name="L1" footprint="0402" />
<trace from=".R1 > .pin1" to="net.VCC" />
<trace from=".R1 > .pin2" to=".L1 > .pos" />
<trace from=".L1 > .neg" to="net.GND" />
</board>
)
circuit.getCircuitJson()
import { Board, Resistor, Led, Trace, Circuit } from "@tscircuit/core"
const circuit = new Circuit()
const board = new Board({
width: "10mm",
height: "10mm",
})
project.add(board)
const R1 = new Resistor({ resistance: "10k", footprint: "0402" })
board.add(R1)
// You can also add elements with React
board.add(<led footprint="0402" />)
const trace = new Trace({ width: "0.2mm" })
trace.connect(R1.output, LED1.anode)
board.add(trace)
circuit.getJson() // [{ type: "board", ...}, { type: "resistor", ...}, ...]