Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- run: bun install --frozen-lockfile
- run: bun run build
- name: Generate README docs
run: bun run generate-docs
run: bun run generate-readme
- run: git add README.md
- run: pver release
env:
Expand Down
195 changes: 91 additions & 104 deletions docs/PCB_COMPONENT_OVERVIEW.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Circuit JSON Specification: PCB Component Overview

> Created at 2024-10-23T22:17:25.274Z
> Created at 2025-01-22T00:01:23.910Z
> Latest Version: https://github.com/tscircuit/circuit-json/blob/main/docs/PCB_COMPONENT_OVERVIEW.md

Any type below can be imported from `circuit-json`. Every type has a corresponding
Expand All @@ -13,16 +13,18 @@ export interface PcbFabricationNotePath {
type: "pcb_fabrication_note_path"
pcb_fabrication_note_path_id: string
pcb_component_id: string
subcircuit_id?: string
layer: LayerRef
route: Point[]
stroke_width: Length
color?: string
}

export interface PcbComponent {
type: "pcb_component"
type: "pcb_component"
pcb_component_id: string
source_component_id: string
subcircuit_id?: string
center: Point
layer: LayerRef
rotation: Rotation
Expand All @@ -41,6 +43,8 @@ export interface PcbSolderPasteCircle {
type: "pcb_solder_paste"
shape: "circle"
pcb_solder_paste_id: string
pcb_group_id?: string
subcircuit_id?: string
x: Distance
y: Distance
radius: number
Expand All @@ -53,6 +57,8 @@ export interface PcbSolderPasteRect {
type: "pcb_solder_paste"
shape: "rect"
pcb_solder_paste_id: string
pcb_group_id?: string
subcircuit_id?: string
x: Distance
y: Distance
width: number
Expand All @@ -67,19 +73,17 @@ export type PcbSolderPaste = PcbSolderPasteCircle | PcbSolderPasteRect
export interface PcbSilkscreenText {
type: "pcb_silkscreen_text"
pcb_silkscreen_text_id: string
pcb_group_id?: string
subcircuit_id?: string
font: "tscircuit2024"
font_size: Length
pcb_component_id: string
text: string
ccw_rotation?: number
layer: LayerRef
is_mirrored?: boolean
anchor_position: Point
anchor_alignment:
| "center"
| "top_left"
| "top_right"
| "bottom_left"
| "bottom_right"
anchor_alignment: "center" | "top_left" | "top_right" | "bottom_left" | "bottom_right"
}

export interface PcbTraceError {
Expand All @@ -98,6 +102,8 @@ export interface PcbSilkscreenPill {
type: "pcb_silkscreen_pill"
pcb_silkscreen_pill_id: string
pcb_component_id: string
pcb_group_id?: string
subcircuit_id?: string
center: Point
width: Length
height: Length
Expand All @@ -107,6 +113,8 @@ export interface PcbSilkscreenPill {
export interface PcbPlatedHoleCircle {
type: "pcb_plated_hole"
shape: "circle"
pcb_group_id?: string
subcircuit_id?: string
outer_diameter: number
hole_diameter: number
x: Distance
Expand All @@ -121,6 +129,8 @@ export interface PcbPlatedHoleCircle {
export interface PcbPlatedHoleOval {
type: "pcb_plated_hole"
shape: "oval" | "pill"
pcb_group_id?: string
subcircuit_id?: string
outer_width: number
outer_height: number
hole_width: number
Expand All @@ -137,11 +147,13 @@ export interface PcbPlatedHoleOval {
export interface PcbHoleCircularWithRectPad {
type: "pcb_plated_hole"
shape: "circular_hole_with_rect_pad"
pcb_group_id?: string
subcircuit_id?: string
hole_shape: "circle"
pad_shape: "rect"
hole_diameter: number
rect_pad_width: number
rect_pad_height: number
rect_pad_height: number
x: Distance
y: Distance
layers: LayerRef[]
Expand All @@ -153,136 +165,79 @@ export interface PcbHoleCircularWithRectPad {

export type PcbPlatedHole = PcbPlatedHoleCircle | PcbPlatedHoleOval | PcbHoleCircularWithRectPad

export interface PcbFabricationNoteText {
type: "pcb_fabrication_note_text"
pcb_fabrication_note_text_id: string
font: "tscircuit2024"
font_size: Length
pcb_component_id: string
text: string
layer: VisibleLayer
anchor_position: Point
anchor_alignment:
| "center"
| "top_left"
| "top_right"
| "bottom_left"
| "bottom_right"
color?: string
}

export interface PcbSilkscreenCircle {
type: "pcb_silkscreen_circle"
pcb_silkscreen_circle_id: string
pcb_component_id: string
center: Point
radius: Length
layer: VisibleLayer
}

export interface PcbSilkscreenPath {
type: "pcb_silkscreen_path"
pcb_silkscreen_path_id: string
pcb_component_id: string
layer: VisibleLayerRef
route: Point[]
stroke_width: Length
}

export interface PcbText {
type: "pcb_text"
pcb_text_id: string
text: string
center: Point
layer: LayerRef
width: Length
height: Length
lines: number
align: "bottom-left"
}

export interface PCBKeepout {
type: "pcb_keepout"
shape: "rect" | "circle"
center: Point
width?: Distance
height?: Distance
radius?: Distance
pcb_keepout_id: string
layers: string[]
description?: string
}

export interface PcbVia {
type: "pcb_via"
pcb_via_id: string
export interface PcbSmtPadCircle {
type: "pcb_smtpad"
shape: "circle"
pcb_smtpad_id: string
pcb_group_id?: string
subcircuit_id?: string
x: Distance
y: Distance
outer_diameter: Distance
hole_diameter: Distance
layers: LayerRef[]
pcb_trace_id?: string
}

export interface PcbSilkscreenOval {
type: "pcb_silkscreen_oval"
pcb_silkscreen_oval_id: string
pcb_component_id: string
center: Point
radius_x: Distance
radius_y: Distance
layer: VisibleLayer
}

export interface PcbPlacementError {
type: "pcb_placement_error"
pcb_placement_error_id: string
message: string
radius: number
layer: LayerRef
port_hints?: string[]
pcb_component_id?: string
pcb_port_id?: string
}

export interface PcbPort {
type: "pcb_port"
pcb_port_id: string
source_port_id: string
pcb_component_id: string
export interface PcbSmtPadRect {
type: "pcb_smtpad"
shape: "rect"
pcb_smtpad_id: string
pcb_group_id?: string
subcircuit_id?: string
x: Distance
y: Distance
layers: LayerRef[]
width: number
height: number
layer: LayerRef
port_hints?: string[]
pcb_component_id?: string
pcb_port_id?: string
}

export interface PcbSmtPadCircle {
export interface PcbSmtPadRotatedRect {
type: "pcb_smtpad"
shape: "circle"
shape: "rotated_rect"
pcb_smtpad_id: string
pcb_group_id?: string
subcircuit_id?: string
x: Distance
y: Distance
radius: number
width: number
height: number
ccw_rotation: Rotation
layer: LayerRef
port_hints?: string[]
pcb_component_id?: string
pcb_port_id?: string
}

export interface PcbSmtPadRect {
export interface PcbSmtPadPill {
type: "pcb_smtpad"
shape: "rect"
shape: "pill"
pcb_smtpad_id: string
pcb_group_id?: string
subcircuit_id?: string
x: Distance
y: Distance
width: number
height: number
radius: number
layer: LayerRef
port_hints?: string[]
pcb_component_id?: string
pcb_port_id?: string
}

export type PcbSmtPad = PcbSmtPadCircle | PcbSmtPadRect
export type PcbSmtPad = PcbSmtPadCircle | PcbSmtPadRect | PcbSmtPadRotatedRect | PcbSmtPadPill

export interface PcbSilkscreenLine {
type: "pcb_silkscreen_line"
pcb_silkscreen_line_id: string
pcb_component_id: string
pcb_group_id?: string
subcircuit_id?: string
stroke_width: Distance
x1: Distance
y1: Distance
Expand All @@ -294,6 +249,8 @@ export interface PcbSilkscreenLine {
export interface PcbHoleCircleOrSquare {
type: "pcb_hole"
pcb_hole_id: string
pcb_group_id?: string
subcircuit_id?: string
hole_shape: "circle" | "square"
hole_diameter: number
x: Distance
Expand All @@ -303,6 +260,8 @@ export interface PcbHoleCircleOrSquare {
export interface PcbHoleOval {
type: "pcb_hole"
pcb_hole_id: string
pcb_group_id?: string
subcircuit_id?: string
hole_shape: "oval"
hole_width: number
hole_height: number
Expand Down Expand Up @@ -336,16 +295,21 @@ export interface PcbTrace {
type: "pcb_trace"
source_trace_id?: string
pcb_component_id?: string
pcb_group_id?: string
subcircuit_id?: string
pcb_trace_id: string
route_order_index?: number
route_thickness_mode?: "constant" | "interpolated"
should_round_corners?: boolean
trace_length?: number
route: Array<PcbTraceRoutePoint>
}

export interface PcbBoard {
type: "pcb_board"
pcb_board_id: string
is_subcircuit?: boolean
subcircuit_id?: string
width: Length
height: Length
thickness: Length
Expand All @@ -354,4 +318,27 @@ export interface PcbBoard {
outline?: Point[]
}

export type PcbCircuitElement =
| PcbComponent
| PcbHole
| PcbPlatedHole
| PcbPort
| PcbSmtPad
| PcbSolderPaste
| PcbText
| PcbTrace
| PcbTraceError
| PcbMissingFootprintError
| PcbManualEditConflictError
| PcbPortNotMatchedError
| PcbVia
| PcbBoard
| PcbPlacementError
| PcbTraceHint
| PcbSilkscreenLine
| PcbSilkscreenPath
| PcbSilkscreenText
| PcbSilkscreenRect
| PcbSilkscreenCircle

```
Loading
Loading