circuit-json-to-lbrn 0.0.9 → 0.0.11
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 +39 -2
- package/dist/index.d.ts +2 -0
- package/dist/index.js +567 -171
- package/lib/ConvertContext.ts +6 -1
- package/lib/element-handlers/addPcbBoard/index.ts +28 -9
- package/lib/element-handlers/addPcbTrace/index.ts +7 -1
- package/lib/element-handlers/addPlatedHole/addCirclePlatedHole.ts +40 -5
- package/lib/element-handlers/addPlatedHole/addCircularHoleWithRectPad.ts +33 -11
- package/lib/element-handlers/addPlatedHole/addHoleWithPolygonPad.ts +32 -9
- package/lib/element-handlers/addPlatedHole/addOvalPlatedHole.ts +39 -4
- package/lib/element-handlers/addPlatedHole/addPillHoleWithRectPad.ts +32 -9
- package/lib/element-handlers/addPlatedHole/addPillPlatedHole.ts +38 -3
- package/lib/element-handlers/addPlatedHole/addRotatedPillHoleWithRectPad.ts +32 -9
- package/lib/element-handlers/addSmtPad/addCircleSmtPad.ts +47 -10
- package/lib/element-handlers/addSmtPad/addPillSmtPad.ts +43 -9
- package/lib/element-handlers/addSmtPad/addPolygonSmtPad.ts +42 -9
- package/lib/element-handlers/addSmtPad/addRectSmtPad.ts +81 -12
- package/lib/element-handlers/addSmtPad/addRotatedPillSmtPad.ts +43 -10
- package/lib/element-handlers/addSmtPad/addRotatedRectSmtPad.ts +42 -9
- package/lib/helpers/pathToPolygon.ts +14 -0
- package/lib/index.ts +48 -32
- package/package.json +2 -2
- package/tests/examples/__snapshots__/board-outline-soldermask-preset.snap.svg +8 -0
- package/tests/examples/__snapshots__/lga-interconnect.snap.svg +1 -1
- package/tests/examples/addPlatedHole/__snapshots__/pcb-plated-hole-circle.snap.svg +1 -1
- package/tests/examples/addSmtPad/__snapshots__/rotatedPillSmtPad.snap.svg +1 -1
- package/tests/examples/board-outline-soldermask-preset.test.ts +44 -0
- package/tests/examples/soldermask/__snapshots__/copper-and-soldermask.snap.svg +8 -0
- package/tests/examples/soldermask/__snapshots__/copper-only.snap.svg +8 -0
- package/tests/examples/soldermask/__snapshots__/soldermask-only.snap.svg +8 -0
- package/tests/examples/soldermask/copper-and-soldermask.test.ts +117 -0
- package/tests/examples/soldermask/copper-only.test.ts +106 -0
- package/tests/examples/soldermask/soldermask-only.test.ts +109 -0
package/README.md
CHANGED
|
@@ -7,7 +7,44 @@ Convert Circuit JSON to LBRN XML for PCB fabrication via laser ablation.
|
|
|
7
7
|
```tsx
|
|
8
8
|
import { convertCircuitJsonToLbrn } from "circuit-json-to-lbrn"
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
// Generate copper layer only
|
|
11
|
+
const copperLbrn = convertCircuitJsonToLbrn(circuitJson, {
|
|
12
|
+
includeCopper: true,
|
|
13
|
+
includeSoldermask: false,
|
|
12
14
|
})
|
|
15
|
+
|
|
16
|
+
// Generate soldermask layer only (for cutting polyimide sheet)
|
|
17
|
+
const soldermaskLbrn = convertCircuitJsonToLbrn(circuitJson, {
|
|
18
|
+
includeCopper: false,
|
|
19
|
+
includeSoldermask: true,
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
// Generate both layers together in one file
|
|
23
|
+
const bothLbrn = convertCircuitJsonToLbrn(circuitJson, {
|
|
24
|
+
includeCopper: true,
|
|
25
|
+
includeSoldermask: true,
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
// Default behavior (copper only, backward compatible)
|
|
29
|
+
const defaultLbrn = convertCircuitJsonToLbrn(circuitJson)
|
|
13
30
|
```
|
|
31
|
+
|
|
32
|
+
## Options
|
|
33
|
+
|
|
34
|
+
- `includeCopper?: boolean` - Include copper traces and pads (default: `true`)
|
|
35
|
+
- `includeSoldermask?: boolean` - Include soldermask openings for cutting polyimide sheet (default: `false`)
|
|
36
|
+
- `includeSilkscreen?: boolean` - Include silkscreen layer (not implemented yet)
|
|
37
|
+
- `origin?: { x: number; y: number }` - Set the origin point for the conversion
|
|
38
|
+
- `margin?: number` - Set the margin around the PCB
|
|
39
|
+
|
|
40
|
+
## Soldermask Support
|
|
41
|
+
|
|
42
|
+
The `includeSoldermask` flag enables generation of soldermask openings for cutting polyimide sheet. When enabled:
|
|
43
|
+
- SMT pads and plated holes will have soldermask openings
|
|
44
|
+
- Traces are NOT included in the soldermask layer (to avoid accidental bridging during soldering)
|
|
45
|
+
- Holes are always cut through the board regardless of the mode
|
|
46
|
+
|
|
47
|
+
You can generate:
|
|
48
|
+
- **Copper only**: `{ includeCopper: true, includeSoldermask: false }` - Traditional copper cutting
|
|
49
|
+
- **Soldermask only**: `{ includeCopper: false, includeSoldermask: true }` - Just polyimide cutting patterns
|
|
50
|
+
- **Both**: `{ includeCopper: true, includeSoldermask: true }` - Complete fabrication file with both layers
|
package/dist/index.d.ts
CHANGED