circuit-json-to-lbrn 0.0.53 → 0.0.54

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 CHANGED
@@ -38,7 +38,7 @@ const defaultLbrn = convertCircuitJsonToLbrn(circuitJson)
38
38
  - `margin?: number` - Set the margin around the PCB
39
39
  - `traceMargin?: number` - Clearance margin around traces in mm (requires `includeCopper: true`)
40
40
  - `laserSpotSize?: number` - Laser spot size in mm for crosshatch spacing (default: `0.005`)
41
- - `laserProfile?: { copper?: { speed?: number; numPasses?: number; frequency?: number; pulseWidth?: number }; board?: { speed?: number; numPasses?: number; frequency?: number; pulseWidth?: number } }` - Custom laser cut settings for copper and board operations. Defaults from GitHub issue: copper (speed: 300 mm/s, numPasses: 100, frequency: 20 kHz, pulseWidth: 1 ns), board (speed: 20 mm/s, numPasses: 100, frequency: 20 kHz, pulseWidth: 1 ns). Allows per-user customization for different lasers/lenses.
41
+ - `laserProfile?: { copper?: { speed?: number; numPasses?: number; frequency?: number; pulseWidth?: number }; board?: { speed?: number; numPasses?: number; frequency?: number; pulseWidth?: number } }` - Custom laser cut settings for copper and board operations. Defaults from GitHub issue: copper (speed: 300 mm/s, numPasses: 100, frequency: 20 kHz, pulseWidth: 1 ns), board (speed: 20 mm/s, numPasses: 100, frequency: 20 kHz, pulseWidth: 1 ns). Pulse width is specified in ns. Allows per-user customization for different lasers/lenses.
42
42
  - `includeLayers?: Array<"top" | "bottom">` - Specify which layers to include (default: `["top", "bottom"]`)
43
43
 
44
44
  ## Soldermask Support
package/dist/index.js CHANGED
@@ -2774,13 +2774,13 @@ var convertCircuitJsonToLbrn = async (circuitJson, options = {}) => {
2774
2774
  speed: 300,
2775
2775
  numPasses: 100,
2776
2776
  frequency: 2e4,
2777
- pulseWidth: 1e-9
2777
+ pulseWidth: 1
2778
2778
  };
2779
2779
  const defaultBoardSettings = {
2780
2780
  speed: 20,
2781
2781
  numPasses: 100,
2782
2782
  frequency: 2e4,
2783
- pulseWidth: 1e-9
2783
+ pulseWidth: 1
2784
2784
  };
2785
2785
  const copperSettings = { ...defaultCopperSettings, ...laserProfile?.copper };
2786
2786
  const boardSettings = { ...defaultBoardSettings, ...laserProfile?.board };
@@ -2794,7 +2794,7 @@ var convertCircuitJsonToLbrn = async (circuitJson, options = {}) => {
2794
2794
  numPasses: copperSettings.numPasses,
2795
2795
  speed: copperSettings.speed,
2796
2796
  frequency: copperSettings.frequency,
2797
- pulseWidth: copperSettings.pulseWidth
2797
+ qPulseWidth: copperSettings.pulseWidth
2798
2798
  });
2799
2799
  project.children.push(topCopperCutSetting);
2800
2800
  const bottomCopperCutSetting = new CutSetting({
@@ -2803,7 +2803,7 @@ var convertCircuitJsonToLbrn = async (circuitJson, options = {}) => {
2803
2803
  numPasses: copperSettings.numPasses,
2804
2804
  speed: copperSettings.speed,
2805
2805
  frequency: copperSettings.frequency,
2806
- pulseWidth: copperSettings.pulseWidth
2806
+ qPulseWidth: copperSettings.pulseWidth
2807
2807
  });
2808
2808
  project.children.push(bottomCopperCutSetting);
2809
2809
  const throughBoardCutSetting = new CutSetting({
@@ -2812,7 +2812,7 @@ var convertCircuitJsonToLbrn = async (circuitJson, options = {}) => {
2812
2812
  numPasses: boardSettings.numPasses,
2813
2813
  speed: boardSettings.speed,
2814
2814
  frequency: boardSettings.frequency,
2815
- pulseWidth: boardSettings.pulseWidth
2815
+ qPulseWidth: boardSettings.pulseWidth
2816
2816
  });
2817
2817
  project.children.push(throughBoardCutSetting);
2818
2818
  const soldermaskCutSetting = new CutSetting({
package/lib/index.ts CHANGED
@@ -93,13 +93,13 @@ export const convertCircuitJsonToLbrn = async (
93
93
  speed: 300,
94
94
  numPasses: 100,
95
95
  frequency: 20000,
96
- pulseWidth: 1e-9,
96
+ pulseWidth: 1,
97
97
  }
98
98
  const defaultBoardSettings = {
99
99
  speed: 20,
100
100
  numPasses: 100,
101
101
  frequency: 20000,
102
- pulseWidth: 1e-9,
102
+ pulseWidth: 1,
103
103
  }
104
104
 
105
105
  // Merge user settings with defaults
@@ -121,7 +121,7 @@ export const convertCircuitJsonToLbrn = async (
121
121
  numPasses: copperSettings.numPasses,
122
122
  speed: copperSettings.speed,
123
123
  frequency: copperSettings.frequency,
124
- pulseWidth: copperSettings.pulseWidth,
124
+ qPulseWidth: copperSettings.pulseWidth,
125
125
  })
126
126
  project.children.push(topCopperCutSetting)
127
127
 
@@ -131,7 +131,7 @@ export const convertCircuitJsonToLbrn = async (
131
131
  numPasses: copperSettings.numPasses,
132
132
  speed: copperSettings.speed,
133
133
  frequency: copperSettings.frequency,
134
- pulseWidth: copperSettings.pulseWidth,
134
+ qPulseWidth: copperSettings.pulseWidth,
135
135
  })
136
136
  project.children.push(bottomCopperCutSetting)
137
137
 
@@ -141,7 +141,7 @@ export const convertCircuitJsonToLbrn = async (
141
141
  numPasses: boardSettings.numPasses,
142
142
  speed: boardSettings.speed,
143
143
  frequency: boardSettings.frequency,
144
- pulseWidth: boardSettings.pulseWidth,
144
+ qPulseWidth: boardSettings.pulseWidth,
145
145
  })
146
146
  project.children.push(throughBoardCutSetting)
147
147
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "circuit-json-to-lbrn",
3
3
  "main": "dist/index.js",
4
- "version": "0.0.53",
4
+ "version": "0.0.54",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "start": "bun run site/index.html",
@@ -28,7 +28,7 @@
28
28
  "typescript": "^5"
29
29
  },
30
30
  "dependencies": {
31
- "lbrnts": "^0.0.16",
31
+ "lbrnts": "^0.0.17",
32
32
  "manifold-3d": "^3.3.2"
33
33
  }
34
34
  }
package/site/main.tsx CHANGED
@@ -102,11 +102,6 @@ function kHzToHz(khz: number): number {
102
102
  return khz * 1000
103
103
  }
104
104
 
105
- // Convert pulse width from ns to seconds
106
- function nsToSeconds(ns: number): number {
107
- return ns * 1e-9
108
- }
109
-
110
105
  // Load Omni X 6W 150x150 preset
111
106
  function loadOmniX6W150x150Preset() {
112
107
  copperSpeedInput.value = "300"
@@ -188,13 +183,13 @@ function getConversionOptions() {
188
183
  speed: parseFloat(copperSpeedInput.value) || 300,
189
184
  numPasses: parseInt(copperNumPassesInput.value) || 100,
190
185
  frequency: kHzToHz(parseFloat(copperFrequencyInput.value) || 20),
191
- pulseWidth: nsToSeconds(parseFloat(copperPulseWidthInput.value) || 1),
186
+ pulseWidth: parseFloat(copperPulseWidthInput.value) || 1,
192
187
  },
193
188
  board: {
194
189
  speed: parseFloat(boardSpeedInput.value) || 20,
195
190
  numPasses: parseInt(boardNumPassesInput.value) || 100,
196
191
  frequency: kHzToHz(parseFloat(boardFrequencyInput.value) || 20),
197
- pulseWidth: nsToSeconds(parseFloat(boardPulseWidthInput.value) || 1),
192
+ pulseWidth: parseFloat(boardPulseWidthInput.value) || 1,
198
193
  },
199
194
  },
200
195
  }
@@ -27,13 +27,13 @@ test("applies custom laserProfile settings", async () => {
27
27
  speed: 350,
28
28
  numPasses: 150,
29
29
  frequency: 25000,
30
- pulseWidth: 2e-9,
30
+ pulseWidth: 2,
31
31
  },
32
32
  board: {
33
33
  speed: 25,
34
34
  numPasses: 120,
35
35
  frequency: 21000,
36
- pulseWidth: 1.5e-9,
36
+ pulseWidth: 1.5,
37
37
  },
38
38
  },
39
39
  })
@@ -49,21 +49,21 @@ test("applies custom laserProfile settings", async () => {
49
49
  expect(topCopper.speed).toBe(350)
50
50
  expect(topCopper.numPasses).toBe(150)
51
51
  expect(topCopper.frequency).toBe(25000)
52
- expect(topCopper.pulseWidth).toBe(2e-9)
52
+ expect(topCopper.qPulseWidth).toBe(2)
53
53
 
54
54
  // Verify bottom copper settings (same as top)
55
55
  const bottomCopper = cutSettings[1]!
56
56
  expect(bottomCopper.speed).toBe(350)
57
57
  expect(bottomCopper.numPasses).toBe(150)
58
58
  expect(bottomCopper.frequency).toBe(25000)
59
- expect(bottomCopper.pulseWidth).toBe(2e-9)
59
+ expect(bottomCopper.qPulseWidth).toBe(2)
60
60
 
61
61
  // Verify through board settings
62
62
  const throughBoard = cutSettings[2]!
63
63
  expect(throughBoard.speed).toBe(25)
64
64
  expect(throughBoard.numPasses).toBe(120)
65
65
  expect(throughBoard.frequency).toBe(21000)
66
- expect(throughBoard.pulseWidth).toBe(1.5e-9)
66
+ expect(throughBoard.qPulseWidth).toBe(1.5)
67
67
  })
68
68
 
69
69
  test("uses default laserProfile settings when not provided", async () => {
@@ -80,12 +80,12 @@ test("uses default laserProfile settings when not provided", async () => {
80
80
  expect(topCopper.speed).toBe(300)
81
81
  expect(topCopper.numPasses).toBe(100)
82
82
  expect(topCopper.frequency).toBe(20000)
83
- expect(topCopper.pulseWidth).toBe(1e-9)
83
+ expect(topCopper.qPulseWidth).toBe(1)
84
84
 
85
85
  // Verify through board defaults
86
86
  const throughBoard = cutSettings[2]!
87
87
  expect(throughBoard.speed).toBe(20)
88
88
  expect(throughBoard.numPasses).toBe(100)
89
89
  expect(throughBoard.frequency).toBe(20000)
90
- expect(throughBoard.pulseWidth).toBe(1e-9)
90
+ expect(throughBoard.qPulseWidth).toBe(1)
91
91
  })