tsci-agent 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -0
- package/dist/cli.js +280061 -0
- package/dist/skill/CHECKLIST.md +26 -0
- package/dist/skill/CLI.md +180 -0
- package/dist/skill/LICENSE +21 -0
- package/dist/skill/README.md +32 -0
- package/dist/skill/SKILL.md +163 -0
- package/dist/skill/SYNTAX.md +229 -0
- package/dist/skill/WORKFLOW.md +92 -0
- package/dist/skill/elements/analogsimulation.md +32 -0
- package/dist/skill/elements/battery.md +24 -0
- package/dist/skill/elements/board.md +23 -0
- package/dist/skill/elements/breakout.md +68 -0
- package/dist/skill/elements/breakoutpoint.md +27 -0
- package/dist/skill/elements/cadassembly.md +39 -0
- package/dist/skill/elements/cadmodel.md +31 -0
- package/dist/skill/elements/capacitor.md +28 -0
- package/dist/skill/elements/chip.md +44 -0
- package/dist/skill/elements/connector.md +125 -0
- package/dist/skill/elements/constraint.md +73 -0
- package/dist/skill/elements/copperpour.md +34 -0
- package/dist/skill/elements/coppertext.md +28 -0
- package/dist/skill/elements/courtyardcircle.md +32 -0
- package/dist/skill/elements/courtyardoutline.md +42 -0
- package/dist/skill/elements/courtyardpill.md +29 -0
- package/dist/skill/elements/courtyardrect.md +38 -0
- package/dist/skill/elements/crystal.md +28 -0
- package/dist/skill/elements/currentsource.md +26 -0
- package/dist/skill/elements/cutout.md +35 -0
- package/dist/skill/elements/diode.md +23 -0
- package/dist/skill/elements/fabricationnotedimension.md +27 -0
- package/dist/skill/elements/fabricationnotepath.md +29 -0
- package/dist/skill/elements/fabricationnoterect.md +40 -0
- package/dist/skill/elements/fabricationnotetext.md +32 -0
- package/dist/skill/elements/fiducial.md +34 -0
- package/dist/skill/elements/footprint.md +95 -0
- package/dist/skill/elements/fuse.md +28 -0
- package/dist/skill/elements/group.md +29 -0
- package/dist/skill/elements/hole.md +23 -0
- package/dist/skill/elements/inductor.md +27 -0
- package/dist/skill/elements/jumper.md +23 -0
- package/dist/skill/elements/led.md +23 -0
- package/dist/skill/elements/mosfet.md +26 -0
- package/dist/skill/elements/mountedboard.md +26 -0
- package/dist/skill/elements/net.md +27 -0
- package/dist/skill/elements/netalias.md +25 -0
- package/dist/skill/elements/netlabel.md +60 -0
- package/dist/skill/elements/opamp.md +30 -0
- package/dist/skill/elements/panel.md +24 -0
- package/dist/skill/elements/pcbkeepout.md +22 -0
- package/dist/skill/elements/pcbnotedimension.md +31 -0
- package/dist/skill/elements/pcbnoteline.md +30 -0
- package/dist/skill/elements/pcbnotepath.md +31 -0
- package/dist/skill/elements/pcbnoterect.md +30 -0
- package/dist/skill/elements/pcbnotetext.md +29 -0
- package/dist/skill/elements/pcbtrace.md +30 -0
- package/dist/skill/elements/pinheader.md +34 -0
- package/dist/skill/elements/pinout.md +26 -0
- package/dist/skill/elements/platedhole.md +34 -0
- package/dist/skill/elements/port.md +38 -0
- package/dist/skill/elements/potentiometer.md +27 -0
- package/dist/skill/elements/pushbutton.md +26 -0
- package/dist/skill/elements/resistor.md +27 -0
- package/dist/skill/elements/resonator.md +28 -0
- package/dist/skill/elements/schematicarc.md +39 -0
- package/dist/skill/elements/schematicbox.md +22 -0
- package/dist/skill/elements/schematiccell.md +26 -0
- package/dist/skill/elements/schematiccircle.md +36 -0
- package/dist/skill/elements/schematicline.md +39 -0
- package/dist/skill/elements/schematicpath.md +40 -0
- package/dist/skill/elements/schematicrect.md +38 -0
- package/dist/skill/elements/schematicrow.md +26 -0
- package/dist/skill/elements/schematicsection.md +91 -0
- package/dist/skill/elements/schematictable.md +48 -0
- package/dist/skill/elements/schematictext.md +23 -0
- package/dist/skill/elements/silkscreencircle.md +27 -0
- package/dist/skill/elements/silkscreenline.md +31 -0
- package/dist/skill/elements/silkscreenpath.md +70 -0
- package/dist/skill/elements/silkscreenrect.md +25 -0
- package/dist/skill/elements/silkscreentext.md +23 -0
- package/dist/skill/elements/smtpad.md +35 -0
- package/dist/skill/elements/solderjumper.md +21 -0
- package/dist/skill/elements/subcircuit.md +29 -0
- package/dist/skill/elements/subpanel.md +26 -0
- package/dist/skill/elements/switch.md +21 -0
- package/dist/skill/elements/symbol.md +54 -0
- package/dist/skill/elements/testpoint.md +26 -0
- package/dist/skill/elements/trace.md +28 -0
- package/dist/skill/elements/tracehint.md +24 -0
- package/dist/skill/elements/transistor.md +25 -0
- package/dist/skill/elements/via.md +30 -0
- package/dist/skill/elements/voltageprobe.md +36 -0
- package/dist/skill/elements/voltagesource.md +36 -0
- package/dist/skill/scripts/export_svgs.sh +23 -0
- package/dist/skill/scripts/fetch_ai_txt.sh +15 -0
- package/dist/skill/scripts/smoke_test.sh +48 -0
- package/dist/skill/templates/arduino-shield-led.tsx +14 -0
- package/dist/skill/templates/chip-with-pinouts.tsx +65 -0
- package/dist/skill/templates/group-layout.tsx +13 -0
- package/dist/skill/templates/minimal-board.tsx +13 -0
- package/package.json +39 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# `<resistor />`
|
|
2
|
+
|
|
3
|
+
A `<resistor />` is an extremely common element of electronic designs. It limits the flow of electricity and is critical to making sure digital signals are properly "pulled up" or "pulled down" to set their default value as `1` or `0`
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="10mm" height="10mm">
|
|
10
|
+
<resistor
|
|
11
|
+
name="R1"
|
|
12
|
+
footprint="0402"
|
|
13
|
+
resistance="1k"
|
|
14
|
+
/>
|
|
15
|
+
</board>
|
|
16
|
+
)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
Commonly used: `resistance`, `tolerance`, `pullupFor`, `pullupTo`, `pulldownFor`, `pulldownTo`, `schOrientation`, `schSize`
|
|
22
|
+
|
|
23
|
+
## References
|
|
24
|
+
|
|
25
|
+
- Props: [ResistorProps](https://github.com/tscircuit/props#resistorprops-resistor)
|
|
26
|
+
- Source: [lib/components/resistor.ts](https://github.com/tscircuit/props/blob/main/lib/components/resistor.ts)
|
|
27
|
+
- Local docs: [docs/docs/elements/resistor.mdx](../docs/docs/elements/resistor.mdx)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# `<resonator />`
|
|
2
|
+
|
|
3
|
+
Provides a stable frequency reference for circuits, often used in clock or timing applications.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="10mm" height="10mm">
|
|
10
|
+
<resonator
|
|
11
|
+
name="X1"
|
|
12
|
+
frequency="16MHz"
|
|
13
|
+
loadCapacitance="5pF"
|
|
14
|
+
footprint="hc49"
|
|
15
|
+
/>
|
|
16
|
+
</board>
|
|
17
|
+
)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Props
|
|
21
|
+
|
|
22
|
+
Commonly used: `frequency`, `loadCapacitance`, `pinVariant`, `name`, `footprint`, `connections`
|
|
23
|
+
|
|
24
|
+
## References
|
|
25
|
+
|
|
26
|
+
- Props: [ResonatorProps](https://github.com/tscircuit/props#resonatorprops-resonator)
|
|
27
|
+
- Source: [lib/components/resonator.ts](https://github.com/tscircuit/props/blob/main/lib/components/resonator.ts)
|
|
28
|
+
- Local docs: [docs/docs/elements/resonator.mdx](../docs/docs/elements/resonator.mdx)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# `<schematicarc />`
|
|
2
|
+
|
|
3
|
+
Draw circular arcs within custom schematic symbols.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="10mm" height="10mm">
|
|
10
|
+
<chip
|
|
11
|
+
name="U1"
|
|
12
|
+
symbol={
|
|
13
|
+
<symbol>
|
|
14
|
+
<schematicarc
|
|
15
|
+
center={{ x: 0, y: 0 }}
|
|
16
|
+
radius={1}
|
|
17
|
+
startAngleDegrees={0}
|
|
18
|
+
endAngleDegrees={180}
|
|
19
|
+
strokeWidth={0.05}
|
|
20
|
+
/>
|
|
21
|
+
<schematicline x1={-1} y1={0} x2={1} y2={0} strokeWidth={0.05} />
|
|
22
|
+
<port name="pin1" direction="left" schX={-1} schY={0} />
|
|
23
|
+
<port name="pin2" direction="right" schX={1} schY={0} />
|
|
24
|
+
</symbol>
|
|
25
|
+
}
|
|
26
|
+
/>
|
|
27
|
+
</board>
|
|
28
|
+
)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Props
|
|
32
|
+
|
|
33
|
+
Commonly used: `center`, `radius`, `startAngleDegrees`, `endAngleDegrees`, `direction`, `strokeWidth`, `color`, `isDashed`
|
|
34
|
+
|
|
35
|
+
## References
|
|
36
|
+
|
|
37
|
+
- Props: [SchematicArcProps](https://github.com/tscircuit/props#schematicarcprops-schematicarc)
|
|
38
|
+
- Source: [lib/components/schematic-arc.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-arc.ts)
|
|
39
|
+
- Local docs: [docs/docs/elements/schematicarc.mdx](../docs/docs/elements/schematicarc.mdx)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# `<schematicbox />`
|
|
2
|
+
|
|
3
|
+
Schematic-space box for grouping or callouts.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="20mm" height="12mm">
|
|
10
|
+
<schematicbox schX={0} schY={0} width="18mm" height="10mm" title="Power" />
|
|
11
|
+
</board>
|
|
12
|
+
)
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Props
|
|
16
|
+
|
|
17
|
+
Commonly used: `schX`, `schY`, `width`, `height`, `overlay`, `padding`, `paddingLeft`, `paddingRight`
|
|
18
|
+
|
|
19
|
+
## References
|
|
20
|
+
|
|
21
|
+
- Props: [SchematicBoxProps](https://github.com/tscircuit/props#schematicboxprops-schematicbox)
|
|
22
|
+
- Source: [lib/components/schematic-box.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-box.ts)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# `<schematiccell />`
|
|
2
|
+
|
|
3
|
+
A single cell inside `<schematictable />`.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<schematictable schX={0} schY={0}>
|
|
10
|
+
<schematicrow height={0.6}>
|
|
11
|
+
<schematiccell text="R1" />
|
|
12
|
+
<schematiccell text="10k" horizontalAlign="center" />
|
|
13
|
+
</schematicrow>
|
|
14
|
+
</schematictable>
|
|
15
|
+
)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Props
|
|
19
|
+
|
|
20
|
+
Commonly used: `children`, `horizontalAlign`, `verticalAlign`, `fontSize`, `rowSpan`, `colSpan`, `width`, `text`
|
|
21
|
+
|
|
22
|
+
## References
|
|
23
|
+
|
|
24
|
+
- Props: [SchematicCellProps](https://github.com/tscircuit/props#schematiccellprops-schematiccell)
|
|
25
|
+
- Source: [lib/components/schematic-cell.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-cell.ts)
|
|
26
|
+
- Local docs: [docs/docs/elements/schematictable.mdx](../docs/docs/elements/schematictable.mdx)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# `<schematiccircle />`
|
|
2
|
+
|
|
3
|
+
Draw circles within custom schematic symbols.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="10mm" height="10mm">
|
|
10
|
+
<chip
|
|
11
|
+
name="U1"
|
|
12
|
+
symbol={
|
|
13
|
+
<symbol>
|
|
14
|
+
<schematiccircle
|
|
15
|
+
center={{ x: 0, y: 0 }}
|
|
16
|
+
radius={1}
|
|
17
|
+
isFilled={false}
|
|
18
|
+
/>
|
|
19
|
+
<port name="pin1" direction="left" schX={-1} schY={0} />
|
|
20
|
+
<port name="pin2" direction="right" schX={1} schY={0} />
|
|
21
|
+
</symbol>
|
|
22
|
+
}
|
|
23
|
+
/>
|
|
24
|
+
</board>
|
|
25
|
+
)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Props
|
|
29
|
+
|
|
30
|
+
Commonly used: `center`, `radius`, `strokeWidth`, `color`, `isFilled`, `fillColor`, `isDashed`, `name`
|
|
31
|
+
|
|
32
|
+
## References
|
|
33
|
+
|
|
34
|
+
- Props: [SchematicCircleProps](https://github.com/tscircuit/props#schematiccircleprops-schematiccircle)
|
|
35
|
+
- Source: [lib/components/schematic-circle.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-circle.ts)
|
|
36
|
+
- Local docs: [docs/docs/elements/schematiccircle.mdx](../docs/docs/elements/schematiccircle.mdx)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# `<schematicline />`
|
|
2
|
+
|
|
3
|
+
Draw straight lines within custom schematic symbols.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="10mm" height="10mm">
|
|
10
|
+
<chip
|
|
11
|
+
name="U1"
|
|
12
|
+
symbol={
|
|
13
|
+
<symbol>
|
|
14
|
+
<schematicrect
|
|
15
|
+
schX={0}
|
|
16
|
+
schY={0}
|
|
17
|
+
width={2}
|
|
18
|
+
height={1.5}
|
|
19
|
+
isFilled={false}
|
|
20
|
+
/>
|
|
21
|
+
<schematicline x1={-1} y1={0} x2={1} y2={0} strokeWidth={0.04} />
|
|
22
|
+
<port name="in" direction="left" schX={-1} schY={0} />
|
|
23
|
+
<port name="out" direction="right" schX={1} schY={0} />
|
|
24
|
+
</symbol>
|
|
25
|
+
}
|
|
26
|
+
/>
|
|
27
|
+
</board>
|
|
28
|
+
)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Props
|
|
32
|
+
|
|
33
|
+
Commonly used: `x1`, `y1`, `x2`, `y2`, `strokeWidth`, `color`, `isDashed`, `name`
|
|
34
|
+
|
|
35
|
+
## References
|
|
36
|
+
|
|
37
|
+
- Props: [SchematicLineProps](https://github.com/tscircuit/props#schematiclineprops-schematicline)
|
|
38
|
+
- Source: [lib/components/schematic-line.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-line.ts)
|
|
39
|
+
- Local docs: [docs/docs/elements/schematicline.mdx](../docs/docs/elements/schematicline.mdx)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# `<schematicpath />`
|
|
2
|
+
|
|
3
|
+
Draw connected line segments within custom schematic symbols.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="12mm" height="10mm">
|
|
10
|
+
<chip
|
|
11
|
+
name="U1"
|
|
12
|
+
symbol={
|
|
13
|
+
<symbol>
|
|
14
|
+
<schematicpath
|
|
15
|
+
strokeWidth={0.05}
|
|
16
|
+
points={[
|
|
17
|
+
{ x: -1, y: -0.6 },
|
|
18
|
+
{ x: -0.3, y: 0.6 },
|
|
19
|
+
{ x: 0.4, y: -0.6 },
|
|
20
|
+
{ x: 1.1, y: 0.6 },
|
|
21
|
+
]}
|
|
22
|
+
/>
|
|
23
|
+
<port name="in" direction="left" schX={-1.5} schY={0} />
|
|
24
|
+
<port name="out" direction="right" schX={1.5} schY={0} />
|
|
25
|
+
</symbol>
|
|
26
|
+
}
|
|
27
|
+
/>
|
|
28
|
+
</board>
|
|
29
|
+
)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Props
|
|
33
|
+
|
|
34
|
+
Commonly used: `points`, `svgPath`, `strokeWidth`, `strokeColor`, `isFilled`, `fillColor`, `name`, `footprint`
|
|
35
|
+
|
|
36
|
+
## References
|
|
37
|
+
|
|
38
|
+
- Props: [SchematicPathProps](https://github.com/tscircuit/props#schematicpathprops-schematicpath)
|
|
39
|
+
- Source: [lib/components/schematic-path.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-path.ts)
|
|
40
|
+
- Local docs: [docs/docs/elements/schematicpath.mdx](../docs/docs/elements/schematicpath.mdx)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# `<schematicrect />`
|
|
2
|
+
|
|
3
|
+
Draw rectangles and boxes within custom schematic symbols.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="10mm" height="10mm">
|
|
10
|
+
<chip
|
|
11
|
+
name="U1"
|
|
12
|
+
symbol={
|
|
13
|
+
<symbol>
|
|
14
|
+
<schematicrect
|
|
15
|
+
schX={0}
|
|
16
|
+
schY={0}
|
|
17
|
+
width={2}
|
|
18
|
+
height={1.5}
|
|
19
|
+
isFilled={false}
|
|
20
|
+
/>
|
|
21
|
+
<port name="pin1" direction="left" schX={-1} schY={0} />
|
|
22
|
+
<port name="pin2" direction="right" schX={1} schY={0} />
|
|
23
|
+
</symbol>
|
|
24
|
+
}
|
|
25
|
+
/>
|
|
26
|
+
</board>
|
|
27
|
+
)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Props
|
|
31
|
+
|
|
32
|
+
Commonly used: `schX`, `schY`, `width`, `height`, `rotation`, `strokeWidth`, `color`, `isFilled`
|
|
33
|
+
|
|
34
|
+
## References
|
|
35
|
+
|
|
36
|
+
- Props: [SchematicRectProps](https://github.com/tscircuit/props#schematicrectprops-schematicrect)
|
|
37
|
+
- Source: [lib/components/schematic-rect.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-rect.ts)
|
|
38
|
+
- Local docs: [docs/docs/elements/schematicrect.mdx](../docs/docs/elements/schematicrect.mdx)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# `<schematicrow />`
|
|
2
|
+
|
|
3
|
+
A row inside `<schematictable />`.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<schematictable schX={0} schY={0}>
|
|
10
|
+
<schematicrow height={0.6}>
|
|
11
|
+
<schematiccell text="R1" />
|
|
12
|
+
<schematiccell text="10k" />
|
|
13
|
+
</schematicrow>
|
|
14
|
+
</schematictable>
|
|
15
|
+
)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Props
|
|
19
|
+
|
|
20
|
+
Commonly used: `children`, `height`, `schX`, `schY`
|
|
21
|
+
|
|
22
|
+
## References
|
|
23
|
+
|
|
24
|
+
- Props: [SchematicRowProps](https://github.com/tscircuit/props#schematicrowprops-schematicrow)
|
|
25
|
+
- Source: [lib/components/schematic-row.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-row.ts)
|
|
26
|
+
- Local docs: [docs/docs/elements/schematictable.mdx](../docs/docs/elements/schematictable.mdx)
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# `<schematicsection />`
|
|
2
|
+
|
|
3
|
+
Groups components into a named section on the schematic (e.g. "Power", "Digital").
|
|
4
|
+
|
|
5
|
+
Use `schSectionName` on any component to assign it to a section, then declare the section with `<schematicsection />`.
|
|
6
|
+
|
|
7
|
+
> **No auto-layout.** `<schematicsection />` does NOT move components. You must manually place all components in the section in close proximity using `schX`/`schY` so the section renders as a coherent group.
|
|
8
|
+
|
|
9
|
+
## Placement rule
|
|
10
|
+
|
|
11
|
+
Pick a cluster origin (e.g. `schX={0} schY={0}`) and place all section members nearby. Components scattered across the schematic will still be tagged to the section but will look disconnected.
|
|
12
|
+
|
|
13
|
+
## Example
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
export default () => (
|
|
17
|
+
<board width="40mm" height="20mm">
|
|
18
|
+
<schematicsection name="Power" displayName="Power Supply" />
|
|
19
|
+
<schematicsection name="IO" displayName="Input / Output" />
|
|
20
|
+
|
|
21
|
+
{/* Power section — cluster around schX=0 */}
|
|
22
|
+
<capacitor
|
|
23
|
+
name="C1"
|
|
24
|
+
capacitance="100nF"
|
|
25
|
+
footprint="0402"
|
|
26
|
+
schSectionName="Power"
|
|
27
|
+
schX={0}
|
|
28
|
+
schY={0}
|
|
29
|
+
/>
|
|
30
|
+
<capacitor
|
|
31
|
+
name="C2"
|
|
32
|
+
capacitance="10uF"
|
|
33
|
+
footprint="0805"
|
|
34
|
+
schSectionName="Power"
|
|
35
|
+
schX={2}
|
|
36
|
+
schY={0}
|
|
37
|
+
/>
|
|
38
|
+
<resistor
|
|
39
|
+
name="R1"
|
|
40
|
+
resistance="10k"
|
|
41
|
+
footprint="0402"
|
|
42
|
+
schSectionName="Power"
|
|
43
|
+
schX={4}
|
|
44
|
+
schY={0}
|
|
45
|
+
/>
|
|
46
|
+
|
|
47
|
+
{/* IO section — cluster around schX=12, well separated from Power */}
|
|
48
|
+
<pushbutton
|
|
49
|
+
name="BTN1"
|
|
50
|
+
footprint="button_4pin"
|
|
51
|
+
schSectionName="IO"
|
|
52
|
+
schX={12}
|
|
53
|
+
schY={0}
|
|
54
|
+
/>
|
|
55
|
+
<resistor
|
|
56
|
+
name="R2"
|
|
57
|
+
resistance="1k"
|
|
58
|
+
footprint="0402"
|
|
59
|
+
schSectionName="IO"
|
|
60
|
+
schX={14}
|
|
61
|
+
schY={0}
|
|
62
|
+
/>
|
|
63
|
+
</board>
|
|
64
|
+
)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Props
|
|
68
|
+
|
|
69
|
+
| Prop | Type | Required | Description |
|
|
70
|
+
|------|------|----------|-------------|
|
|
71
|
+
| `name` | `string` | yes | Unique identifier for the section |
|
|
72
|
+
| `displayName` | `string` | no | Human-readable label shown on schematic |
|
|
73
|
+
|
|
74
|
+
## Assigning components to a section
|
|
75
|
+
|
|
76
|
+
Any component that accepts `CommonComponentProps` has `schSectionName`. Set it to the `name` of a `<schematicsection />`.
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
<resistor name="R1" resistance="10k" footprint="0402" schSectionName="Power" schX={0} schY={0} />
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Layout guidance
|
|
83
|
+
|
|
84
|
+
- Keep section members within ~4–6 schematic units of each other.
|
|
85
|
+
- Separate different sections by at least 6–8 units so section boundaries are visually clear.
|
|
86
|
+
- Arrange members in a row or grid — do not leave large schX/schY gaps between them.
|
|
87
|
+
|
|
88
|
+
## References
|
|
89
|
+
|
|
90
|
+
- Props: [SchematicSectionProps](https://github.com/tscircuit/props#schematicsectionprops-schematicsection)
|
|
91
|
+
- Source: [lib/components/schematic-section.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-section.ts)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# `<schematictable />`
|
|
2
|
+
|
|
3
|
+
Draw tables within schematics.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="20mm" height="20mm">
|
|
10
|
+
<schematictable
|
|
11
|
+
schX={0}
|
|
12
|
+
schY={0}
|
|
13
|
+
borderWidth={0.05}
|
|
14
|
+
fontSize={0.3}
|
|
15
|
+
cellPadding={0.15}
|
|
16
|
+
>
|
|
17
|
+
<schematicrow height={0.6}>
|
|
18
|
+
<schematiccell text="Component" />
|
|
19
|
+
<schematiccell text="Value" horizontalAlign="center" />
|
|
20
|
+
<schematiccell text="Package" />
|
|
21
|
+
</schematicrow>
|
|
22
|
+
<schematicrow height={0.6}>
|
|
23
|
+
<schematiccell text="R1" />
|
|
24
|
+
<schematiccell text="10k" horizontalAlign="center" />
|
|
25
|
+
<schematiccell text="0805" />
|
|
26
|
+
</schematicrow>
|
|
27
|
+
<schematicrow height={0.6}>
|
|
28
|
+
<schematiccell text="C1" />
|
|
29
|
+
<schematiccell text="100nF" horizontalAlign="center" />
|
|
30
|
+
<schematiccell text="0402" />
|
|
31
|
+
</schematicrow>
|
|
32
|
+
<schematicrow height={0.6}>
|
|
33
|
+
<schematiccell text="U1" colSpan={3} horizontalAlign="center" text="ATmega328P" />
|
|
34
|
+
</schematicrow>
|
|
35
|
+
</schematictable>
|
|
36
|
+
</board>
|
|
37
|
+
)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Props
|
|
41
|
+
|
|
42
|
+
Commonly used: `schX`, `schY`, `children`, `cellPadding`, `borderWidth`, `anchor`, `fontSize`, `name`
|
|
43
|
+
|
|
44
|
+
## References
|
|
45
|
+
|
|
46
|
+
- Props: [SchematicTableProps](https://github.com/tscircuit/props#schematictableprops-schematictable)
|
|
47
|
+
- Source: [lib/components/schematic-table.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-table.ts)
|
|
48
|
+
- Local docs: [docs/docs/elements/schematictable.mdx](../docs/docs/elements/schematictable.mdx)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# `<schematictext />`
|
|
2
|
+
|
|
3
|
+
The `<schematictext />` element places text directly on the schematic.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="10mm" height="10mm">
|
|
10
|
+
<schematictext text="Hello" schX={2} schY={3} color="red" anchor="center" />
|
|
11
|
+
</board>
|
|
12
|
+
)
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Props
|
|
16
|
+
|
|
17
|
+
Commonly used: `schX`, `schY`, `text`, `fontSize`, `anchor`, `color`, `schRotation`, `name`
|
|
18
|
+
|
|
19
|
+
## References
|
|
20
|
+
|
|
21
|
+
- Props: [SchematicTextProps](https://github.com/tscircuit/props#schematictextprops-schematictext)
|
|
22
|
+
- Source: [lib/components/schematic-text.ts](https://github.com/tscircuit/props/blob/main/lib/components/schematic-text.ts)
|
|
23
|
+
- Local docs: [docs/docs/elements/schematictext.mdx](../docs/docs/elements/schematictext.mdx)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# `<silkscreencircle />`
|
|
2
|
+
|
|
3
|
+
Silkscreen circles are often used to indicate "pin1" on a chip.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="5mm" height="5mm">
|
|
10
|
+
<group>
|
|
11
|
+
<footprint>
|
|
12
|
+
<silkscreencircle pcbX={0} pcbY={0} radius={1} />
|
|
13
|
+
</footprint>
|
|
14
|
+
</group>
|
|
15
|
+
</board>
|
|
16
|
+
)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
Commonly used: `isFilled`, `isOutline`, `strokeWidth`, `radius`, `name`, `footprint`, `connections`
|
|
22
|
+
|
|
23
|
+
## References
|
|
24
|
+
|
|
25
|
+
- Props: [SilkscreenCircleProps](https://github.com/tscircuit/props#silkscreencircleprops-silkscreencircle)
|
|
26
|
+
- Source: [lib/components/silkscreen-circle.ts](https://github.com/tscircuit/props/blob/main/lib/components/silkscreen-circle.ts)
|
|
27
|
+
- Local docs: [docs/docs/footprints/silkscreencircle.mdx](../docs/docs/footprints/silkscreencircle.mdx)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# `<silkscreenline />`
|
|
2
|
+
|
|
3
|
+
The `<silkscreenline />` element creates a line on the silkscreen layer within a footprint.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="50mm" height="50mm">
|
|
10
|
+
<footprint>
|
|
11
|
+
<silkscreenline
|
|
12
|
+
x1="-20mm"
|
|
13
|
+
y1="0mm"
|
|
14
|
+
x2="20mm"
|
|
15
|
+
y2="0mm"
|
|
16
|
+
strokeWidth="0.1mm"
|
|
17
|
+
/>
|
|
18
|
+
</footprint>
|
|
19
|
+
</board>
|
|
20
|
+
)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Props
|
|
24
|
+
|
|
25
|
+
Commonly used: `pcbX`, `pcbY`, `pcbOffsetX`, `pcbOffsetY`, `pcbRotation`, `strokeWidth`, `x1`, `y1`
|
|
26
|
+
|
|
27
|
+
## References
|
|
28
|
+
|
|
29
|
+
- Props: [SilkscreenLineProps](https://github.com/tscircuit/props#silkscreenlineprops-silkscreenline)
|
|
30
|
+
- Source: [lib/components/silkscreen-line.ts](https://github.com/tscircuit/props/blob/main/lib/components/silkscreen-line.ts)
|
|
31
|
+
- Local docs: [docs/docs/footprints/silkscreenline.mdx](../docs/docs/footprints/silkscreenline.mdx)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# `<silkscreenpath />`
|
|
2
|
+
|
|
3
|
+
The `<silkscreenpath />` element is used to define a custom drawn path on the silkscreen layer.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="100mm" height="100mm">
|
|
10
|
+
<chip name="U1" footprint={
|
|
11
|
+
<footprint>
|
|
12
|
+
<silkscreenpath
|
|
13
|
+
strokeWidth="0.5mm"
|
|
14
|
+
route={[
|
|
15
|
+
{ x: "0mm", y: "20mm" },
|
|
16
|
+
{ x: "-1.53mm", y: "19.88mm" },
|
|
17
|
+
{ x: "-3.04mm", y: "19.52mm" },
|
|
18
|
+
{ x: "-4.50mm", y: "18.93mm" },
|
|
19
|
+
{ x: "-5.88mm", y: "18.09mm" },
|
|
20
|
+
{ x: "-7.16mm", y: "17.04mm" },
|
|
21
|
+
{ x: "-8.32mm", y: "15.78mm" },
|
|
22
|
+
{ x: "-9.33mm", y: "14.33mm" },
|
|
23
|
+
{ x: "-10.17mm", y: "12.72mm" },
|
|
24
|
+
{ x: "-10.82mm", y: "10.98mm" },
|
|
25
|
+
{ x: "-11.27mm", y: "9.13mm" },
|
|
26
|
+
{ x: "-11.52mm", y: "7.23mm" },
|
|
27
|
+
{ x: "-11.55mm", y: "5.29mm" },
|
|
28
|
+
{ x: "-11.37mm", y: "3.36mm" },
|
|
29
|
+
{ x: "-10.98mm", y: "1.47mm" },
|
|
30
|
+
{ x: "-10.39mm", y: "0mm" },
|
|
31
|
+
|
|
32
|
+
{ x: "10.39mm", y: "0mm" },
|
|
33
|
+
{ x: "39.61mm", y: "0mm" },
|
|
34
|
+
|
|
35
|
+
{ x: "39.61mm", y: "0mm" },
|
|
36
|
+
{ x: "41.08mm", y: "0.12mm" },
|
|
37
|
+
{ x: "42.59mm", y: "0.48mm" },
|
|
38
|
+
{ x: "44.05mm", y: "1.07mm" },
|
|
39
|
+
{ x: "45.43mm", y: "1.91mm" },
|
|
40
|
+
{ x: "46.71mm", y: "2.96mm" },
|
|
41
|
+
{ x: "47.87mm", y: "4.22mm" },
|
|
42
|
+
{ x: "48.88mm", y: "5.67mm" },
|
|
43
|
+
{ x: "49.72mm", y: "7.28mm" },
|
|
44
|
+
{ x: "50.37mm", y: "9.02mm" },
|
|
45
|
+
{ x: "50.82mm", y: "10.87mm" },
|
|
46
|
+
{ x: "51.07mm", y: "12.77mm" },
|
|
47
|
+
{ x: "51.10mm", y: "14.71mm" },
|
|
48
|
+
{ x: "50.92mm", y: "16.64mm" },
|
|
49
|
+
{ x: "50.53mm", y: "18.53mm" },
|
|
50
|
+
{ x: "49.94mm", y: "20mm" },
|
|
51
|
+
|
|
52
|
+
{ x: "49.94mm", y: "20mm" },
|
|
53
|
+
{ x: "0mm", y: "20mm" }
|
|
54
|
+
]}
|
|
55
|
+
/>
|
|
56
|
+
</footprint>
|
|
57
|
+
} pcbX={-15} />
|
|
58
|
+
</board>
|
|
59
|
+
)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Props
|
|
63
|
+
|
|
64
|
+
Commonly used: `pcbLeftEdgeX`, `pcbRightEdgeX`, `pcbTopEdgeY`, `pcbBottomEdgeY`, `pcbX`, `pcbY`, `pcbOffsetX`, `pcbOffsetY`
|
|
65
|
+
|
|
66
|
+
## References
|
|
67
|
+
|
|
68
|
+
- Props: [SilkscreenPathProps](https://github.com/tscircuit/props#silkscreenpathprops-silkscreenpath)
|
|
69
|
+
- Source: [lib/components/silkscreen-path.ts](https://github.com/tscircuit/props/blob/main/lib/components/silkscreen-path.ts)
|
|
70
|
+
- Local docs: [docs/docs/footprints/silkscreenpath.mdx](../docs/docs/footprints/silkscreenpath.mdx)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# `<silkscreenrect />`
|
|
2
|
+
|
|
3
|
+
Silkscreen rectangles can be used to encapsulate a rectangular area around a chip.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="5mm" height="5mm">
|
|
10
|
+
<footprint>
|
|
11
|
+
<silkscreenrect pcbX={0} pcbY={0} width={1} height={1} />
|
|
12
|
+
</footprint>
|
|
13
|
+
</board>
|
|
14
|
+
)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Props
|
|
18
|
+
|
|
19
|
+
Commonly used: `filled`, `stroke`, `strokeWidth`, `width`, `height`, `cornerRadius`, `name`, `footprint`
|
|
20
|
+
|
|
21
|
+
## References
|
|
22
|
+
|
|
23
|
+
- Props: [SilkscreenRectProps](https://github.com/tscircuit/props#silkscreenrectprops-silkscreenrect)
|
|
24
|
+
- Source: [lib/components/silkscreen-rect.ts](https://github.com/tscircuit/props/blob/main/lib/components/silkscreen-rect.ts)
|
|
25
|
+
- Local docs: [docs/docs/footprints/silkscreenrect.mdx](../docs/docs/footprints/silkscreenrect.mdx)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# `<silkscreentext />`
|
|
2
|
+
|
|
3
|
+
The `<silkscreentext />` element is used to add text to the silkscreen layer within a PCB footprint.
|
|
4
|
+
|
|
5
|
+
## Example
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
export default () => (
|
|
9
|
+
<board width="10mm" height="10mm">
|
|
10
|
+
<silkscreentext text="Hello, World!" fontSize="1mm" />
|
|
11
|
+
</board>
|
|
12
|
+
)
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Props
|
|
16
|
+
|
|
17
|
+
Commonly used: `text`, `anchorAlignment`, `font`, `fontSize`, `isKnockout`, `knockoutPadding`, `knockoutPaddingLeft`, `knockoutPaddingRight`
|
|
18
|
+
|
|
19
|
+
## References
|
|
20
|
+
|
|
21
|
+
- Props: [SilkscreenTextProps](https://github.com/tscircuit/props#silkscreentextprops-silkscreentext)
|
|
22
|
+
- Source: [lib/components/silkscreen-text.ts](https://github.com/tscircuit/props/blob/main/lib/components/silkscreen-text.ts)
|
|
23
|
+
- Local docs: [docs/docs/footprints/silkscreentext.mdx](../docs/docs/footprints/silkscreentext.mdx)
|