circuit-json-to-lbrn 0.0.42 → 0.0.44

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.
Files changed (96) hide show
  1. package/dist/index.d.ts +12 -1
  2. package/dist/index.js +238 -15
  3. package/lib/ConvertContext.ts +12 -0
  4. package/lib/createCopperCutFillForLayer.ts +217 -0
  5. package/lib/element-handlers/addPcbTrace/index.ts +35 -13
  6. package/lib/getManifold.ts +31 -0
  7. package/lib/index.ts +72 -4
  8. package/package.json +3 -2
  9. package/site/index.html +24 -1
  10. package/site/main.tsx +8 -0
  11. package/tests/basics/__snapshots__/board-outline-does-not-appear-in soldermask.snap.svg +1 -1
  12. package/tests/basics/__snapshots__/board-outline.snap.svg +1 -1
  13. package/tests/basics/__snapshots__/mixed-soldermask-margins.snap.svg +1 -1
  14. package/tests/basics/addPcbCutout/__snapshots__/pcb-cutout-circle.snap.svg +1 -1
  15. package/tests/basics/addPcbCutout/__snapshots__/pcb-cutout-path.snap.svg +1 -1
  16. package/tests/basics/addPcbCutout/__snapshots__/pcb-cutout-polygon.snap.svg +1 -1
  17. package/tests/basics/addPcbCutout/__snapshots__/pcb-cutout-rect.snap.svg +1 -1
  18. package/tests/basics/addPcbCutout/pcb-cutout-circle.test.ts +1 -1
  19. package/tests/basics/addPcbCutout/pcb-cutout-path.test.ts +1 -1
  20. package/tests/basics/addPcbCutout/pcb-cutout-polygon.test.ts +1 -1
  21. package/tests/basics/addPcbCutout/pcb-cutout-rect.test.ts +1 -1
  22. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-circle.snap.svg +1 -1
  23. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-oval.snap.svg +1 -1
  24. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-pill.snap.svg +1 -1
  25. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-rect.snap.svg +1 -1
  26. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-rotated-pill.snap.svg +1 -1
  27. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-soldermask-margin.snap.svg +1 -1
  28. package/tests/basics/addPcbHole/__snapshots__/pcb-hole-with-soldermask.snap.svg +1 -1
  29. package/tests/basics/addPcbHole/pcb-hole-circle.test.ts +1 -1
  30. package/tests/basics/addPcbHole/pcb-hole-oval.test.ts +1 -1
  31. package/tests/basics/addPcbHole/pcb-hole-pill.test.ts +1 -1
  32. package/tests/basics/addPcbHole/pcb-hole-rect.test.ts +1 -1
  33. package/tests/basics/addPcbHole/pcb-hole-rotated-pill.test.ts +1 -1
  34. package/tests/basics/addPcbHole/pcb-hole-soldermask-margin.test.ts +1 -1
  35. package/tests/basics/addPcbHole/pcb-hole-with-soldermask.test.ts +1 -1
  36. package/tests/basics/addPcbVia/__snapshots__/pcb-via-basic.snap.svg +1 -1
  37. package/tests/basics/addPcbVia/__snapshots__/pcb-via-with-net.snap.svg +1 -1
  38. package/tests/basics/addPcbVia/__snapshots__/pcb-via-with-soldermask.snap.svg +1 -1
  39. package/tests/basics/addPcbVia/pcb-via-basic.test.ts +1 -1
  40. package/tests/basics/addPcbVia/pcb-via-with-net.test.ts +1 -1
  41. package/tests/basics/addPcbVia/pcb-via-with-soldermask.test.ts +1 -1
  42. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-circular-hole-with-rect-pad.snap.svg +1 -1
  43. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-oval.snap.svg +1 -1
  44. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-pill-with-rect-pad.snap.svg +1 -1
  45. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-pill.snap.svg +1 -1
  46. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-polygon.snap.svg +1 -1
  47. package/tests/basics/addPlatedHole/__snapshots__/pcb-plated-hole-rotated-pill-with-rect-pad.snap.svg +1 -1
  48. package/tests/basics/addPlatedHole/pcb-plated-hole-circle.test.ts +1 -1
  49. package/tests/basics/addPlatedHole/pcb-plated-hole-circular-hole-with-rect-pad.test.ts +1 -1
  50. package/tests/basics/addPlatedHole/pcb-plated-hole-oval.test.ts +1 -1
  51. package/tests/basics/addPlatedHole/pcb-plated-hole-pill-with-rect-pad.test.ts +1 -1
  52. package/tests/basics/addPlatedHole/pcb-plated-hole-pill.test.ts +1 -1
  53. package/tests/basics/addPlatedHole/pcb-plated-hole-polygon.test.ts +1 -1
  54. package/tests/basics/addPlatedHole/pcb-plated-hole-rotated-pill-with-rect-pad.test.ts +1 -1
  55. package/tests/basics/addSmtPad/__snapshots__/circleSmtPad.snap.svg +1 -1
  56. package/tests/basics/addSmtPad/__snapshots__/pillSmtPad.snap.svg +1 -1
  57. package/tests/basics/addSmtPad/__snapshots__/polygonSmtPad.snap.svg +1 -1
  58. package/tests/basics/addSmtPad/__snapshots__/rotatedPillSmtPad.snap.svg +1 -1
  59. package/tests/basics/addSmtPad/__snapshots__/rotatedRectSmtPad.snap.svg +1 -1
  60. package/tests/basics/addSmtPad/circleSmtPad.test.ts +1 -1
  61. package/tests/basics/addSmtPad/pillSmtPad.test.ts +1 -1
  62. package/tests/basics/addSmtPad/polygonSmtPad.test.ts +1 -1
  63. package/tests/basics/addSmtPad/rotatedPillSmtPad.test.ts +1 -1
  64. package/tests/basics/addSmtPad/rotatedRectSmtPad.test.ts +1 -1
  65. package/tests/basics/board-outline-does-not-appear-in soldermask.test.ts +1 -1
  66. package/tests/basics/board-outline.test.ts +1 -1
  67. package/tests/basics/copper-cut-fill/__snapshots__/copper-cut-fill-basic.snap.svg +8 -0
  68. package/tests/basics/copper-cut-fill/__snapshots__/copper-cut-fill-with-pads.snap.svg +8 -0
  69. package/tests/basics/copper-cut-fill/copper-cut-fill-basic.test.ts +73 -0
  70. package/tests/basics/copper-cut-fill/copper-cut-fill-with-pads.test.ts +128 -0
  71. package/tests/basics/keyboard-defaul60/keyboard-both-layer-includeSoldermask.test.ts +1 -1
  72. package/tests/basics/keyboard-defaul60/keyboard-both-layers.test.ts +1 -1
  73. package/tests/basics/keyboard-defaul60/keyboard-bottom-layer.test.ts +1 -1
  74. package/tests/basics/keyboard-defaul60/keyboard-top-layer.test.ts +1 -1
  75. package/tests/basics/laser-profile.test.ts +4 -4
  76. package/tests/basics/lga-interconnect.test.ts +1 -1
  77. package/tests/basics/mixed-soldermask-margins.test.ts +1 -1
  78. package/tests/basics/single-trace.test.ts +1 -1
  79. package/tests/basics/soldermask/copper-and-soldermask.test.ts +1 -1
  80. package/tests/basics/soldermask/copper-only.test.ts +1 -1
  81. package/tests/basics/soldermask/soldermask-only.test.ts +1 -1
  82. package/tests/basics/soldermask-margin/__snapshots__/percent-soldermask-margin.snap.svg +1 -1
  83. package/tests/basics/soldermask-margin/negative-soldermask-margin.test.ts +1 -1
  84. package/tests/basics/soldermask-margin/percent-soldermask-margin.test.ts +1 -1
  85. package/tests/basics/soldermask-margin/positive-soldermask-margin.test.ts +1 -1
  86. package/tests/basics/trace-margin/pico-w-3x5-led-matrix-trace-margin.test.ts +1 -1
  87. package/tests/basics/trace-margin/trace-margin-basic.test.ts +1 -1
  88. package/tests/basics/trace-margin/trace-margin-error.test.ts +4 -4
  89. package/tests/examples/example01/__snapshots__/example01.snap.svg +1 -1
  90. package/tests/examples/example01/example01.test.ts +1 -1
  91. package/tests/examples/example02/example02.test.ts +1 -1
  92. package/tests/examples/example03/example03.test.ts +1 -1
  93. package/tests/examples/example04/example04.test.ts +1 -1
  94. package/tests/examples/example05/__snapshots__/example05.snap.svg +1 -0
  95. package/tests/examples/example05/example05.circuit.json +9562 -0
  96. package/tests/examples/example05/example05.test.ts +31 -0
@@ -3,6 +3,6 @@
3
3
  <style></style><rect class="boundary" x="0" y="0" fill="#000" width="800" height="600" data-type="pcb_background" data-pcb-layer="global"/><rect class="pcb-boundary" fill="none" stroke="#fff" stroke-width="0.3" x="150" y="50" width="500" height="500" data-type="pcb_boundary" data-pcb-layer="global"/><path class="pcb-board" d="M 150 550 L 650 550 L 650 50 L 150 50 Z" fill="none" stroke="rgba(255, 255, 255, 0.5)" stroke-width="5" data-type="pcb_board" data-pcb-layer="board"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="350" y="275" width="100" height="50" rx="25" ry="25" data-type="pcb_smtpad" data-pcb-layer="top"/>
4
4
  </g>
5
5
  <g transform="translate(0, 600) scale(26.666666666666668, 26.666666666666668) translate(14.9, 14.9)">
6
- <rect x="-14.9" y="-14.9" width="30" height="30" fill="white"/><g transform="matrix(1 0 0 -1 0 0.1999999999999993)"><g transform="matrix(1,0,0,1,0,0)"><path d="M 0.6 -0.4 L 0.6490085701647803 -0.3975923633360984 L 0.6975451610080642 -0.39039264020161524 L 0.7451423386272311 -0.37847016786610443 L 0.7913417161825449 -0.3619397662556434 L 0.8356983684129988 -0.3409606321741775 L 0.8777851165098012 -0.3157348061512726 L 0.9171966420818227 -0.28650522668136846 L 0.9535533905932738 -0.25355339059327375 L 0.9865052266813685 -0.21719664208182274 L 1.0157348061512725 -0.17778511650980108 L 1.0409606321741776 -0.13569836841299887 L 1.0619397662556433 -0.09134171618254489 L 1.0784701678661044 -0.04514233862723113 L 1.0903926402016153 0.0024548389919358815 L 1.0975923633360984 0.05099142983521965 L 1.1 0.1 L 1.0975923633360984 0.14900857016478036 L 1.0903926402016153 0.19754516100806413 L 1.0784701678661044 0.24514233862723114 L 1.0619397662556433 0.2913417161825449 L 1.0409606321741776 0.3356983684129989 L 1.0157348061512725 0.37778511650980107 L 0.9865052266813685 0.4171966420818227 L 0.9535533905932738 0.4535533905932737 L 0.9171966420818227 0.48650522668136853 L 0.877785116509801 0.5157348061512727 L 0.8356983684129988 0.5409606321741774 L 0.7913417161825449 0.5619397662556433 L 0.7451423386272311 0.5784701678661044 L 0.6975451610080643 0.5903926402016152 L 0.6490085701647803 0.5975923633360984 L 0.6 0.6 L -0.4 0.6 L -0.39999999999999997 0.6 L -0.44900857016478035 0.5975923633360984 L -0.4975451610080641 0.5903926402016152 L -0.5451423386272312 0.5784701678661045 L -0.5913417161825449 0.5619397662556433 L -0.6356983684129989 0.5409606321741776 L -0.677785116509801 0.5157348061512727 L -0.7171966420818228 0.48650522668136853 L -0.7535533905932738 0.4535533905932738 L -0.7865052266813686 0.4171966420818227 L -0.8157348061512727 0.37778511650980107 L -0.8409606321741775 0.33569836841299894 L -0.8619397662556434 0.29134171618254495 L -0.8784701678661044 0.2451423386272312 L -0.8903926402016152 0.1975451610080643 L -0.8975923633360985 0.14900857016478042 L -0.9 0.10000000000000006 L -0.8975923633360985 0.05099142983521971 L -0.8903926402016152 0.002454838991935826 L -0.8784701678661044 -0.04514233862723105 L -0.8619397662556434 -0.09134171618254483 L -0.8409606321741776 -0.13569836841299882 L -0.8157348061512728 -0.17778511650980097 L -0.7865052266813686 -0.21719664208182263 L -0.7535533905932739 -0.25355339059327375 L -0.7171966420818225 -0.2865052266813686 L -0.6777851165098011 -0.3157348061512726 L -0.635698368412999 -0.3409606321741775 L -0.5913417161825452 -0.3619397662556433 L -0.5451423386272313 -0.37847016786610443 L -0.49754516100806434 -0.3903926402016151 L -0.44900857016478024 -0.3975923633360985 L -0.40000000000000013 -0.4 L 0.6 -0.4 L 0.6 -0.4 L 0.6 -0.4 Z" fill="none" stroke="#000000" stroke-width="0.1"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M -4.9 -4.9 L 5.1 -4.9 L 5.1 5.1 L -4.9 5.1 L -4.9 -4.9 L -4.9 -4.9 Z" fill="none" stroke="#FF0000" stroke-width="0.1"/></g></g>
6
+ <rect x="-14.9" y="-14.9" width="30" height="30" fill="white"/><g transform="matrix(1 0 0 -1 0 0.1999999999999993)"><g transform="matrix(1,0,0,1,0,0)"><path d="M 0.6 -0.4 L 0.6490085701647803 -0.3975923633360984 L 0.6975451610080642 -0.39039264020161524 L 0.7451423386272311 -0.37847016786610443 L 0.7913417161825449 -0.3619397662556434 L 0.8356983684129988 -0.3409606321741775 L 0.8777851165098012 -0.3157348061512726 L 0.9171966420818227 -0.28650522668136846 L 0.9535533905932738 -0.25355339059327375 L 0.9865052266813685 -0.21719664208182274 L 1.0157348061512725 -0.17778511650980108 L 1.0409606321741776 -0.13569836841299887 L 1.0619397662556433 -0.09134171618254489 L 1.0784701678661044 -0.04514233862723113 L 1.0903926402016153 0.0024548389919358815 L 1.0975923633360984 0.05099142983521965 L 1.1 0.1 L 1.0975923633360984 0.14900857016478036 L 1.0903926402016153 0.19754516100806413 L 1.0784701678661044 0.24514233862723114 L 1.0619397662556433 0.2913417161825449 L 1.0409606321741776 0.3356983684129989 L 1.0157348061512725 0.37778511650980107 L 0.9865052266813685 0.4171966420818227 L 0.9535533905932738 0.4535533905932737 L 0.9171966420818227 0.48650522668136853 L 0.877785116509801 0.5157348061512727 L 0.8356983684129988 0.5409606321741774 L 0.7913417161825449 0.5619397662556433 L 0.7451423386272311 0.5784701678661044 L 0.6975451610080643 0.5903926402016152 L 0.6490085701647803 0.5975923633360984 L 0.6 0.6 L -0.4 0.6 L -0.39999999999999997 0.6 L -0.44900857016478035 0.5975923633360984 L -0.4975451610080641 0.5903926402016152 L -0.5451423386272312 0.5784701678661045 L -0.5913417161825449 0.5619397662556433 L -0.6356983684129989 0.5409606321741776 L -0.677785116509801 0.5157348061512727 L -0.7171966420818228 0.48650522668136853 L -0.7535533905932738 0.4535533905932738 L -0.7865052266813686 0.4171966420818227 L -0.8157348061512727 0.37778511650980107 L -0.8409606321741775 0.33569836841299894 L -0.8619397662556434 0.29134171618254495 L -0.8784701678661044 0.2451423386272312 L -0.8903926402016152 0.1975451610080643 L -0.8975923633360985 0.14900857016478042 L -0.9 0.10000000000000006 L -0.8975923633360985 0.05099142983521971 L -0.8903926402016152 0.002454838991935826 L -0.8784701678661044 -0.04514233862723105 L -0.8619397662556434 -0.09134171618254483 L -0.8409606321741776 -0.13569836841299882 L -0.8157348061512728 -0.17778511650980097 L -0.7865052266813686 -0.21719664208182263 L -0.7535533905932739 -0.25355339059327375 L -0.7171966420818225 -0.2865052266813686 L -0.6777851165098011 -0.3157348061512726 L -0.635698368412999 -0.3409606321741775 L -0.5913417161825452 -0.3619397662556433 L -0.5451423386272313 -0.37847016786610443 L -0.49754516100806434 -0.3903926402016151 L -0.44900857016478024 -0.3975923633360985 L -0.40000000000000013 -0.4 L 0.6 -0.4 L 0.6 -0.4 L 0.6 -0.4 Z" fill="none" stroke="#000000" stroke-width="0.1" stroke-linecap="round" stroke-linejoin="round"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M -4.9 -4.9 L 5.1 -4.9 L 5.1 5.1 L -4.9 5.1 L -4.9 -4.9 L -4.9 -4.9 Z" fill="none" stroke="#FF0000" stroke-width="0.1" stroke-linecap="round" stroke-linejoin="round"/></g></g>
7
7
  </g>
8
8
  </svg>
@@ -3,6 +3,6 @@
3
3
  <style></style><rect class="boundary" x="0" y="0" fill="#000" width="800" height="600" data-type="pcb_background" data-pcb-layer="global"/><rect class="pcb-boundary" fill="none" stroke="#fff" stroke-width="0.3" x="150" y="50" width="500" height="500" data-type="pcb_boundary" data-pcb-layer="global"/><path class="pcb-board" d="M 150 550 L 650 550 L 650 50 L 150 50 Z" fill="none" stroke="rgba(255, 255, 255, 0.5)" stroke-width="5" data-type="pcb_board" data-pcb-layer="board"/><polygon class="pcb-pad" fill="rgb(200, 52, 52)" points="400,300 500,300 500,250 450,250 450,200 400,200 400,250" data-type="pcb_smtpad" data-pcb-layer="top"/>
4
4
  </g>
5
5
  <g transform="translate(0, 600) scale(26.666666666666668, 26.666666666666668) translate(14.9, 14.9)">
6
- <rect x="-14.9" y="-14.9" width="30" height="30" fill="white"/><g transform="matrix(1 0 0 -1 0 0.1999999999999993)"><g transform="matrix(1,0,0,1,0,0)"><path d="M 0.1 0.1 L 2.1 0.1 L 2.1 1.1 L 1.1 1.1 L 1.1 2.1 L 0.1 2.1 L 0.1 1.1 L 0.1 0.1 L 0.1 0.1 Z" fill="none" stroke="#000000" stroke-width="0.1"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M -4.9 -4.9 L 5.1 -4.9 L 5.1 5.1 L -4.9 5.1 L -4.9 -4.9 L -4.9 -4.9 Z" fill="none" stroke="#FF0000" stroke-width="0.1"/></g></g>
6
+ <rect x="-14.9" y="-14.9" width="30" height="30" fill="white"/><g transform="matrix(1 0 0 -1 0 0.1999999999999993)"><g transform="matrix(1,0,0,1,0,0)"><path d="M 0.1 0.1 L 2.1 0.1 L 2.1 1.1 L 1.1 1.1 L 1.1 2.1 L 0.1 2.1 L 0.1 1.1 L 0.1 0.1 L 0.1 0.1 Z" fill="none" stroke="#000000" stroke-width="0.1" stroke-linecap="round" stroke-linejoin="round"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M -4.9 -4.9 L 5.1 -4.9 L 5.1 5.1 L -4.9 5.1 L -4.9 -4.9 L -4.9 -4.9 Z" fill="none" stroke="#FF0000" stroke-width="0.1" stroke-linecap="round" stroke-linejoin="round"/></g></g>
7
7
  </g>
8
8
  </svg>
@@ -3,6 +3,6 @@
3
3
  <style></style><rect class="boundary" x="0" y="0" fill="#000" width="800" height="600" data-type="pcb_background" data-pcb-layer="global"/><rect class="pcb-boundary" fill="none" stroke="#fff" stroke-width="0.3" x="150" y="50" width="500" height="500" data-type="pcb_boundary" data-pcb-layer="global"/><path class="pcb-board" d="M 150 550 L 650 550 L 650 50 L 150 50 Z" fill="none" stroke="rgba(255, 255, 255, 0.5)" stroke-width="5" data-type="pcb_board" data-pcb-layer="board"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="-50" y="-25" width="100" height="50" rx="25" ry="25" data-type="pcb_smtpad" data-pcb-layer="top" transform="translate(400 300) rotate(-45)"/>
4
4
  </g>
5
5
  <g transform="translate(0, 600) scale(26.666666666666668, 26.666666666666668) translate(14.9, 14.9)">
6
- <rect x="-14.9" y="-14.9" width="30" height="30" fill="white"/><g transform="matrix(1 0 0 -1 0 0.1999999999999993)"><g transform="matrix(1,0,0,1,0,0)"><path d="M 0.8071067811865476 0.09999999999999992 L 0.8400586172746423 0.13635674851145102 L 0.8692881967445465 0.17576827408347262 L 0.8945140227674512 0.21785502218027492 L 0.9154931568489171 0.2622116744107289 L 0.9320235584593782 0.30841105196604257 L 0.943946030794889 0.35600822958520967 L 0.9511457539293722 0.40454482042849343 L 0.9535533905932738 0.4535533905932737 L 0.9511457539293723 0.502561960758054 L 0.9439460307948889 0.5510985516013378 L 0.9320235584593782 0.5986957292205048 L 0.9154931568489172 0.6448951067758186 L 0.8945140227674513 0.6892517590062724 L 0.8692881967445465 0.7313385071030748 L 0.8400586172746424 0.7707500326750965 L 0.8071067811865476 0.8071067811865474 L 0.7707500326750966 0.8400586172746423 L 0.7313385071030749 0.8692881967445464 L 0.6892517590062726 0.8945140227674512 L 0.6448951067758187 0.9154931568489171 L 0.598695729220505 0.9320235584593781 L 0.5510985516013379 0.9439460307948888 L 0.5025619607580541 0.9511457539293722 L 0.4535533905932739 0.9535533905932737 L 0.4045448204284935 0.9511457539293722 L 0.3560082295852095 0.9439460307948888 L 0.3084110519660427 0.9320235584593781 L 0.26221167441072896 0.9154931568489172 L 0.21785502218027497 0.8945140227674513 L 0.1757682740834729 0.8692881967445465 L 0.13635674851145113 0.8400586172746423 L 0.10000000000000009 0.8071067811865476 L -0.6071067811865475 0.10000000000000003 L -0.6071067811865475 0.10000000000000003 L -0.6400586172746423 0.06364325148854899 L -0.6692881967445463 0.024231725916527447 L -0.6945140227674513 -0.017855022180274738 L -0.7154931568489171 -0.062211674410728834 L -0.7320235584593784 -0.1084110519660425 L -0.743946030794889 -0.15600822958520943 L -0.7511457539293723 -0.20454482042849337 L -0.7535533905932739 -0.2535533905932737 L -0.7511457539293723 -0.3025619607580541 L -0.7439460307948891 -0.35109855160133796 L -0.7320235584593784 -0.3986957292205048 L -0.7154931568489173 -0.44489510677581856 L -0.6945140227674513 -0.4892517590062725 L -0.6692881967445466 -0.5313385071030747 L -0.6400586172746424 -0.5707500326750965 L -0.6071067811865476 -0.6071067811865475 L -0.5707500326750966 -0.6400586172746423 L -0.531338507103075 -0.6692881967445464 L -0.4892517590062727 -0.6945140227674511 L -0.4448951067758188 -0.7154931568489171 L -0.398695729220505 -0.7320235584593782 L -0.3510985516013382 -0.7439460307948891 L -0.3025619607580543 -0.7511457539293722 L -0.2535533905932739 -0.7535533905932738 L -0.2045448204284933 -0.751145753929372 L -0.15600822958520977 -0.7439460307948889 L -0.10841105196604273 -0.7320235584593783 L -0.06221167441072917 -0.7154931568489171 L -0.017855022180275126 -0.6945140227674513 L 0.024231725916527114 -0.6692881967445465 L 0.06364325148854905 -0.6400586172746422 L 0.09999999999999987 -0.6071067811865476 L 0.8071067811865476 0.09999999999999992 L 0.8071067811865476 0.09999999999999992 L 0.8071067811865476 0.09999999999999992 Z" fill="none" stroke="#000000" stroke-width="0.1"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M -4.9 -4.9 L 5.1 -4.9 L 5.1 5.1 L -4.9 5.1 L -4.9 -4.9 L -4.9 -4.9 Z" fill="none" stroke="#FF0000" stroke-width="0.1"/></g></g>
6
+ <rect x="-14.9" y="-14.9" width="30" height="30" fill="white"/><g transform="matrix(1 0 0 -1 0 0.1999999999999993)"><g transform="matrix(1,0,0,1,0,0)"><path d="M 0.8071067811865476 0.09999999999999992 L 0.8400586172746423 0.13635674851145102 L 0.8692881967445465 0.17576827408347262 L 0.8945140227674512 0.21785502218027492 L 0.9154931568489171 0.2622116744107289 L 0.9320235584593782 0.30841105196604257 L 0.943946030794889 0.35600822958520967 L 0.9511457539293722 0.40454482042849343 L 0.9535533905932738 0.4535533905932737 L 0.9511457539293723 0.502561960758054 L 0.9439460307948889 0.5510985516013378 L 0.9320235584593782 0.5986957292205048 L 0.9154931568489172 0.6448951067758186 L 0.8945140227674513 0.6892517590062724 L 0.8692881967445465 0.7313385071030748 L 0.8400586172746424 0.7707500326750965 L 0.8071067811865476 0.8071067811865474 L 0.7707500326750966 0.8400586172746423 L 0.7313385071030749 0.8692881967445464 L 0.6892517590062726 0.8945140227674512 L 0.6448951067758187 0.9154931568489171 L 0.598695729220505 0.9320235584593781 L 0.5510985516013379 0.9439460307948888 L 0.5025619607580541 0.9511457539293722 L 0.4535533905932739 0.9535533905932737 L 0.4045448204284935 0.9511457539293722 L 0.3560082295852095 0.9439460307948888 L 0.3084110519660427 0.9320235584593781 L 0.26221167441072896 0.9154931568489172 L 0.21785502218027497 0.8945140227674513 L 0.1757682740834729 0.8692881967445465 L 0.13635674851145113 0.8400586172746423 L 0.10000000000000009 0.8071067811865476 L -0.6071067811865475 0.10000000000000003 L -0.6071067811865475 0.10000000000000003 L -0.6400586172746423 0.06364325148854899 L -0.6692881967445463 0.024231725916527447 L -0.6945140227674513 -0.017855022180274738 L -0.7154931568489171 -0.062211674410728834 L -0.7320235584593784 -0.1084110519660425 L -0.743946030794889 -0.15600822958520943 L -0.7511457539293723 -0.20454482042849337 L -0.7535533905932739 -0.2535533905932737 L -0.7511457539293723 -0.3025619607580541 L -0.7439460307948891 -0.35109855160133796 L -0.7320235584593784 -0.3986957292205048 L -0.7154931568489173 -0.44489510677581856 L -0.6945140227674513 -0.4892517590062725 L -0.6692881967445466 -0.5313385071030747 L -0.6400586172746424 -0.5707500326750965 L -0.6071067811865476 -0.6071067811865475 L -0.5707500326750966 -0.6400586172746423 L -0.531338507103075 -0.6692881967445464 L -0.4892517590062727 -0.6945140227674511 L -0.4448951067758188 -0.7154931568489171 L -0.398695729220505 -0.7320235584593782 L -0.3510985516013382 -0.7439460307948891 L -0.3025619607580543 -0.7511457539293722 L -0.2535533905932739 -0.7535533905932738 L -0.2045448204284933 -0.751145753929372 L -0.15600822958520977 -0.7439460307948889 L -0.10841105196604273 -0.7320235584593783 L -0.06221167441072917 -0.7154931568489171 L -0.017855022180275126 -0.6945140227674513 L 0.024231725916527114 -0.6692881967445465 L 0.06364325148854905 -0.6400586172746422 L 0.09999999999999987 -0.6071067811865476 L 0.8071067811865476 0.09999999999999992 L 0.8071067811865476 0.09999999999999992 L 0.8071067811865476 0.09999999999999992 Z" fill="none" stroke="#000000" stroke-width="0.1" stroke-linecap="round" stroke-linejoin="round"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M -4.9 -4.9 L 5.1 -4.9 L 5.1 5.1 L -4.9 5.1 L -4.9 -4.9 L -4.9 -4.9 Z" fill="none" stroke="#FF0000" stroke-width="0.1" stroke-linecap="round" stroke-linejoin="round"/></g></g>
7
7
  </g>
8
8
  </svg>
@@ -3,6 +3,6 @@
3
3
  <style></style><rect class="boundary" x="0" y="0" fill="#000" width="800" height="600" data-type="pcb_background" data-pcb-layer="global"/><rect class="pcb-boundary" fill="none" stroke="#fff" stroke-width="0.3" x="100" y="50" width="600" height="500" data-type="pcb_boundary" data-pcb-layer="global"/><path class="pcb-board" d="M 100 550 L 700 550 L 700 50 L 100 50 Z" fill="none" stroke="rgba(255, 255, 255, 0.5)" stroke-width="5" data-type="pcb_board" data-pcb-layer="board"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="-50" y="-50" width="100" height="100" transform="translate(200 300) rotate(-45)" data-type="pcb_smtpad" data-pcb-layer="top" rx="25" ry="25"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="-50" y="-50" width="100" height="100" transform="translate(400 300) rotate(-30)" data-type="pcb_smtpad" data-pcb-layer="top" rx="25" ry="25"/><rect class="pcb-pad" fill="rgb(200, 52, 52)" x="550" y="250" width="100" height="100" data-type="pcb_smtpad" data-pcb-layer="top"/>
4
4
  </g>
5
5
  <g transform="translate(0, 600) scale(25, 25) translate(15.9, 14.9)">
6
- <rect x="-15.9" y="-14.9" width="32" height="30" fill="white"/><g transform="matrix(1 0 0 -1 0 0.1999999999999993)"><g transform="matrix(1,0,0,1,0,0)"><path d="M -3.5464466094067264 -0.9606601717798214 L -2.8393398282201785 -0.25355339059327386 L -2.8393398282201785 -0.25355339059327386 L -2.730953452557809 -0.0913417161825448 L -2.6928932188134524 0.0999999999999999 L -2.7309534525578085 0.29134171618254445 L -2.8393398282201785 0.4535533905932736 L -2.8393398282201785 0.4535533905932737 L -3.546446609406726 1.1606601717798213 L -3.546446609406726 1.1606601717798213 L -3.708658283817455 1.269046547442191 L -3.9 1.3071067811865476 L -4.091341716182544 1.269046547442191 L -4.253553390593273 1.1606601717798215 L -4.253553390593273 1.1606601717798215 L -4.960660171779821 0.4535533905932738 L -4.960660171779821 0.45355339059327393 L -5.069046547442191 0.2913417161825451 L -5.107106781186547 0.1 L -5.069046547442191 -0.0913417161825448 L -4.960660171779821 -0.25355339059327364 L -4.960660171779821 -0.25355339059327364 L -4.253553390593273 -0.9606601717798212 L -4.253553390593273 -0.9606601717798212 L -4.091341716182545 -1.0690465474421909 L -3.9 -1.1071067811865474 L -3.7086582838174555 -1.0690465474421909 L -3.5464466094067264 -0.9606601717798214 L -3.5464466094067264 -0.9606601717798214 L -3.5464466094067264 -0.9606601717798214 Z" fill="none" stroke="#000000" stroke-width="0.1"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M 0.1669872981077806 -1.0160254037844385 L 1.0330127018922193 -0.5160254037844387 L 1.0330127018922193 -0.5160254037844388 L 1.179689372037837 -0.38739341639657954 L 1.2659756150367536 -0.21242222444347994 L 1.2787351325791247 -0.017749605782194006 L 1.216025403784439 0.16698729810778049 L 1.2160254037844387 0.1669872981077806 L 0.7160254037844387 1.0330127018922193 L 0.7160254037844387 1.0330127018922193 L 0.5873934163965797 1.179689372037837 L 0.41242222444347987 1.2659756150367536 L 0.21774960578219363 1.2787351325791247 L 0.033012701892219415 1.2160254037844387 L 0.033012701892219415 1.2160254037844387 L -0.8330127018922193 0.7160254037844387 L -0.8330127018922192 0.7160254037844388 L -0.9796893720378367 0.5873934163965798 L -1.0659756150367534 0.41242222444347987 L -1.0787351325791246 0.21774960578219363 L -1.0160254037844387 0.033012701892219526 L -1.0160254037844385 0.033012701892219415 L -0.5160254037844387 -0.8330127018922193 L -0.5160254037844388 -0.8330127018922192 L -0.38739341639657987 -0.9796893720378369 L -0.21242222444347994 -1.0659756150367534 L -0.017749605782193895 -1.0787351325791246 L 0.16698729810778049 -1.0160254037844387 L 0.1669872981077806 -1.0160254037844385 L 0.1669872981077806 -1.0160254037844385 Z" fill="none" stroke="#000000" stroke-width="0.1"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M 3.0999999999999996 -0.9 L 5.1 -0.9 L 5.1 -0.9 L 5.1 -0.9 L 5.1 1.1 L 5.1 1.1 L 5.1 1.1 L 3.0999999999999996 1.1 L 3.0999999999999996 1.1 L 3.0999999999999996 1.1 L 3.0999999999999996 -0.9 L 3.0999999999999996 -0.9 L 3.0999999999999996 -0.9 L 3.0999999999999996 -0.9 Z" fill="none" stroke="#000000" stroke-width="0.1"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M -5.9 -4.9 L 6.1 -4.9 L 6.1 5.1 L -5.9 5.1 L -5.9 -4.9 L -5.9 -4.9 Z" fill="none" stroke="#FF0000" stroke-width="0.1"/></g></g>
6
+ <rect x="-15.9" y="-14.9" width="32" height="30" fill="white"/><g transform="matrix(1 0 0 -1 0 0.1999999999999993)"><g transform="matrix(1,0,0,1,0,0)"><path d="M -3.5464466094067264 -0.9606601717798214 L -2.8393398282201785 -0.25355339059327386 L -2.8393398282201785 -0.25355339059327386 L -2.730953452557809 -0.0913417161825448 L -2.6928932188134524 0.0999999999999999 L -2.7309534525578085 0.29134171618254445 L -2.8393398282201785 0.4535533905932736 L -2.8393398282201785 0.4535533905932737 L -3.546446609406726 1.1606601717798213 L -3.546446609406726 1.1606601717798213 L -3.708658283817455 1.269046547442191 L -3.9 1.3071067811865476 L -4.091341716182544 1.269046547442191 L -4.253553390593273 1.1606601717798215 L -4.253553390593273 1.1606601717798215 L -4.960660171779821 0.4535533905932738 L -4.960660171779821 0.45355339059327393 L -5.069046547442191 0.2913417161825451 L -5.107106781186547 0.1 L -5.069046547442191 -0.0913417161825448 L -4.960660171779821 -0.25355339059327364 L -4.960660171779821 -0.25355339059327364 L -4.253553390593273 -0.9606601717798212 L -4.253553390593273 -0.9606601717798212 L -4.091341716182545 -1.0690465474421909 L -3.9 -1.1071067811865474 L -3.7086582838174555 -1.0690465474421909 L -3.5464466094067264 -0.9606601717798214 L -3.5464466094067264 -0.9606601717798214 L -3.5464466094067264 -0.9606601717798214 Z" fill="none" stroke="#000000" stroke-width="0.1" stroke-linecap="round" stroke-linejoin="round"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M 0.1669872981077806 -1.0160254037844385 L 1.0330127018922193 -0.5160254037844387 L 1.0330127018922193 -0.5160254037844388 L 1.179689372037837 -0.38739341639657954 L 1.2659756150367536 -0.21242222444347994 L 1.2787351325791247 -0.017749605782194006 L 1.216025403784439 0.16698729810778049 L 1.2160254037844387 0.1669872981077806 L 0.7160254037844387 1.0330127018922193 L 0.7160254037844387 1.0330127018922193 L 0.5873934163965797 1.179689372037837 L 0.41242222444347987 1.2659756150367536 L 0.21774960578219363 1.2787351325791247 L 0.033012701892219415 1.2160254037844387 L 0.033012701892219415 1.2160254037844387 L -0.8330127018922193 0.7160254037844387 L -0.8330127018922192 0.7160254037844388 L -0.9796893720378367 0.5873934163965798 L -1.0659756150367534 0.41242222444347987 L -1.0787351325791246 0.21774960578219363 L -1.0160254037844387 0.033012701892219526 L -1.0160254037844385 0.033012701892219415 L -0.5160254037844387 -0.8330127018922193 L -0.5160254037844388 -0.8330127018922192 L -0.38739341639657987 -0.9796893720378369 L -0.21242222444347994 -1.0659756150367534 L -0.017749605782193895 -1.0787351325791246 L 0.16698729810778049 -1.0160254037844387 L 0.1669872981077806 -1.0160254037844385 L 0.1669872981077806 -1.0160254037844385 Z" fill="none" stroke="#000000" stroke-width="0.1" stroke-linecap="round" stroke-linejoin="round"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M 3.0999999999999996 -0.9 L 5.1 -0.9 L 5.1 -0.9 L 5.1 -0.9 L 5.1 1.1 L 5.1 1.1 L 5.1 1.1 L 3.0999999999999996 1.1 L 3.0999999999999996 1.1 L 3.0999999999999996 1.1 L 3.0999999999999996 -0.9 L 3.0999999999999996 -0.9 L 3.0999999999999996 -0.9 L 3.0999999999999996 -0.9 Z" fill="none" stroke="#000000" stroke-width="0.1" stroke-linecap="round" stroke-linejoin="round"/></g><g transform="matrix(1,0,0,1,0,0)"><path d="M -5.9 -4.9 L 6.1 -4.9 L 6.1 5.1 L -5.9 5.1 L -5.9 -4.9 L -5.9 -4.9 Z" fill="none" stroke="#FF0000" stroke-width="0.1" stroke-linecap="round" stroke-linejoin="round"/></g></g>
7
7
  </g>
8
8
  </svg>
@@ -35,7 +35,7 @@ const circuitJson: CircuitJson = [
35
35
  test("renders a circle smt pad", async () => {
36
36
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
37
37
 
38
- const project = convertCircuitJsonToLbrn(circuitJson)
38
+ const project = await convertCircuitJsonToLbrn(circuitJson)
39
39
 
40
40
  const lbrnSvg = await generateLightBurnSvg(project)
41
41
 
@@ -37,7 +37,7 @@ const circuitJson: CircuitJson = [
37
37
  test("renders a pill smt pad", async () => {
38
38
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
39
39
 
40
- const project = convertCircuitJsonToLbrn(circuitJson)
40
+ const project = await convertCircuitJsonToLbrn(circuitJson)
41
41
 
42
42
  const lbrnSvg = await generateLightBurnSvg(project)
43
43
 
@@ -41,7 +41,7 @@ const circuitJson: CircuitJson = [
41
41
  test("renders a polygon smt pad", async () => {
42
42
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
43
43
 
44
- const project = convertCircuitJsonToLbrn(circuitJson)
44
+ const project = await convertCircuitJsonToLbrn(circuitJson)
45
45
 
46
46
  const lbrnSvg = await generateLightBurnSvg(project)
47
47
 
@@ -38,7 +38,7 @@ const circuitJson: CircuitJson = [
38
38
  test("renders a rotated pill smt pad", async () => {
39
39
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
40
40
 
41
- const project = convertCircuitJsonToLbrn(circuitJson)
41
+ const project = await convertCircuitJsonToLbrn(circuitJson)
42
42
 
43
43
  const lbrnSvg = await generateLightBurnSvg(project)
44
44
 
@@ -61,7 +61,7 @@ const circuitJson: CircuitJson = [
61
61
  test("renders a rotated rect smt pad", async () => {
62
62
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
63
63
 
64
- const project = convertCircuitJsonToLbrn(circuitJson)
64
+ const project = await convertCircuitJsonToLbrn(circuitJson)
65
65
 
66
66
  const lbrnSvg = await generateLightBurnSvg(project)
67
67
 
@@ -31,7 +31,7 @@ const circuitJson: CircuitJson = [
31
31
  test("board outline does not appear in soldermask cuts", async () => {
32
32
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
33
33
 
34
- const project = convertCircuitJsonToLbrn(circuitJson, {
34
+ const project = await convertCircuitJsonToLbrn(circuitJson, {
35
35
  includeCopper: false,
36
36
  includeSoldermask: true,
37
37
  })
@@ -92,7 +92,7 @@ const circuitJson: CircuitJson = [
92
92
  test("creates board outline cut with through-board setting", async () => {
93
93
  const pcbSvg = await convertCircuitJsonToPcbSvg(circuitJson)
94
94
 
95
- const project = convertCircuitJsonToLbrn(circuitJson)
95
+ const project = await convertCircuitJsonToLbrn(circuitJson)
96
96
 
97
97
  const lbrnSvg = await generateLightBurnSvg(project)
98
98