circuit-to-svg 0.0.109 → 0.0.110
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/dist/index.js +15 -8
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -337,7 +337,8 @@ function createSvgObjectsFromPcbSilkscreenText(pcbSilkscreenText, transform) {
|
|
|
337
337
|
text,
|
|
338
338
|
font_size = 1,
|
|
339
339
|
layer = "top",
|
|
340
|
-
ccw_rotation = 0
|
|
340
|
+
ccw_rotation = 0,
|
|
341
|
+
stroke_width = 0
|
|
341
342
|
} = pcbSilkscreenText;
|
|
342
343
|
if (!anchor_position || typeof anchor_position.x !== "number" || typeof anchor_position.y !== "number") {
|
|
343
344
|
console.error("Invalid anchor_position:", anchor_position);
|
|
@@ -348,10 +349,10 @@ function createSvgObjectsFromPcbSilkscreenText(pcbSilkscreenText, transform) {
|
|
|
348
349
|
anchor_position.y
|
|
349
350
|
]);
|
|
350
351
|
const transformedFontSize = font_size * Math.abs(transform.a);
|
|
352
|
+
const transformedStrokeWidth = stroke_width * Math.abs(transform.a);
|
|
351
353
|
const textTransform = compose2(
|
|
352
354
|
translate2(transformedX, transformedY),
|
|
353
355
|
rotate2(ccw_rotation * Math.PI / 180)
|
|
354
|
-
// Convert degrees to radians
|
|
355
356
|
);
|
|
356
357
|
const svgObject = {
|
|
357
358
|
name: "text",
|
|
@@ -366,7 +367,9 @@ function createSvgObjectsFromPcbSilkscreenText(pcbSilkscreenText, transform) {
|
|
|
366
367
|
"dominant-baseline": "central",
|
|
367
368
|
transform: matrixToString2(textTransform),
|
|
368
369
|
class: `pcb-silkscreen-text pcb-silkscreen-${layer}`,
|
|
369
|
-
"data-pcb-silkscreen-text-id": pcbSilkscreenText.pcb_component_id
|
|
370
|
+
"data-pcb-silkscreen-text-id": pcbSilkscreenText.pcb_component_id,
|
|
371
|
+
stroke: "#f2eda1",
|
|
372
|
+
"stroke-width": transformedStrokeWidth.toString()
|
|
370
373
|
},
|
|
371
374
|
children: [
|
|
372
375
|
{
|
|
@@ -392,7 +395,8 @@ function createSvgObjectsFromPcbSilkscreenRect(pcbSilkscreenRect, transform) {
|
|
|
392
395
|
width,
|
|
393
396
|
height,
|
|
394
397
|
layer = "top",
|
|
395
|
-
pcb_silkscreen_rect_id
|
|
398
|
+
pcb_silkscreen_rect_id,
|
|
399
|
+
stroke_width = 1
|
|
396
400
|
} = pcbSilkscreenRect;
|
|
397
401
|
if (!center || typeof center.x !== "number" || typeof center.y !== "number" || typeof width !== "number" || typeof height !== "number") {
|
|
398
402
|
console.error("Invalid rectangle data:", { center, width, height });
|
|
@@ -404,6 +408,7 @@ function createSvgObjectsFromPcbSilkscreenRect(pcbSilkscreenRect, transform) {
|
|
|
404
408
|
]);
|
|
405
409
|
const transformedWidth = width * Math.abs(transform.a);
|
|
406
410
|
const transformedHeight = height * Math.abs(transform.d);
|
|
411
|
+
const transformedStrokeWidth = stroke_width * Math.abs(transform.a);
|
|
407
412
|
const svgObject = {
|
|
408
413
|
name: "rect",
|
|
409
414
|
type: "element",
|
|
@@ -415,7 +420,7 @@ function createSvgObjectsFromPcbSilkscreenRect(pcbSilkscreenRect, transform) {
|
|
|
415
420
|
class: `pcb-silkscreen-rect pcb-silkscreen-${layer}`,
|
|
416
421
|
fill: "none",
|
|
417
422
|
stroke: "#f2eda1",
|
|
418
|
-
"stroke-width":
|
|
423
|
+
"stroke-width": transformedStrokeWidth.toString(),
|
|
419
424
|
"data-pcb-silkscreen-rect-id": pcb_silkscreen_rect_id
|
|
420
425
|
},
|
|
421
426
|
value: "",
|
|
@@ -433,7 +438,8 @@ function createSvgObjectsFromPcbSilkscreenCircle(pcbSilkscreenCircle, transform)
|
|
|
433
438
|
center,
|
|
434
439
|
radius,
|
|
435
440
|
layer = "top",
|
|
436
|
-
pcb_silkscreen_circle_id
|
|
441
|
+
pcb_silkscreen_circle_id,
|
|
442
|
+
stroke_width = 1
|
|
437
443
|
} = pcbSilkscreenCircle;
|
|
438
444
|
if (!center || typeof center.x !== "number" || typeof center.y !== "number" || typeof radius !== "number") {
|
|
439
445
|
console.error("Invalid PCB Silkscreen Circle data:", { center, radius });
|
|
@@ -444,6 +450,7 @@ function createSvgObjectsFromPcbSilkscreenCircle(pcbSilkscreenCircle, transform)
|
|
|
444
450
|
center.y
|
|
445
451
|
]);
|
|
446
452
|
const transformedRadius = radius * Math.abs(transform.a);
|
|
453
|
+
const transformedStrokeWidth = stroke_width * Math.abs(transform.a);
|
|
447
454
|
const svgObject = {
|
|
448
455
|
name: "circle",
|
|
449
456
|
type: "element",
|
|
@@ -453,7 +460,7 @@ function createSvgObjectsFromPcbSilkscreenCircle(pcbSilkscreenCircle, transform)
|
|
|
453
460
|
r: transformedRadius.toString(),
|
|
454
461
|
class: `pcb-silkscreen-circle pcb-silkscreen-${layer}`,
|
|
455
462
|
stroke: "#f2eda1",
|
|
456
|
-
"stroke-width":
|
|
463
|
+
"stroke-width": transformedStrokeWidth.toString(),
|
|
457
464
|
"data-pcb-silkscreen-circle-id": pcb_silkscreen_circle_id
|
|
458
465
|
},
|
|
459
466
|
value: "",
|
|
@@ -1899,7 +1906,7 @@ function getSchematicBoundsFromCircuitJson(soup, padding = 0.5) {
|
|
|
1899
1906
|
const portSize = 0.2;
|
|
1900
1907
|
for (const item of soup) {
|
|
1901
1908
|
if (item.type === "schematic_component") {
|
|
1902
|
-
updateBounds(item.center, item.size,
|
|
1909
|
+
updateBounds(item.center, item.size, 0);
|
|
1903
1910
|
} else if (item.type === "schematic_port") {
|
|
1904
1911
|
updateBounds(item.center, { width: portSize, height: portSize }, 0);
|
|
1905
1912
|
} else if (item.type === "schematic_debug_object") {
|