easyeda 0.0.267 → 0.0.269

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/main.cjs CHANGED
@@ -997,7 +997,7 @@ var import_promises = __toESM(require("fs/promises"), 1);
997
997
  var package_default = {
998
998
  name: "easyeda",
999
999
  type: "module",
1000
- version: "0.0.266",
1000
+ version: "0.0.268",
1001
1001
  files: [
1002
1002
  "dist"
1003
1003
  ],
@@ -6392,6 +6392,11 @@ var handleSilkscreenPath = (track, index) => {
6392
6392
  });
6393
6393
  };
6394
6394
  var isCourtyardLayer = (layer) => layer === 13 || layer === 14 || layer === 15;
6395
+ var isSilkscreenLayer = (layer) => layer === 3 || layer === 4;
6396
+ var getSideFromLayer = (layer) => {
6397
+ if (layer === 4 || layer === 14) return "bottom";
6398
+ return "top";
6399
+ };
6395
6400
  var handleSilkscreenArc = (arc, index) => {
6396
6401
  const arcPath = generateArcFromSweep(
6397
6402
  arc.start.x,
@@ -6415,6 +6420,27 @@ var handleSilkscreenArc = (arc, index) => {
6415
6420
  stroke_width: mil10ToMm(arc.width)
6416
6421
  });
6417
6422
  };
6423
+ var SILKSCREEN_CIRCLE_SEGMENTS = 24;
6424
+ var handleSilkscreenCircle = (circle, index) => {
6425
+ const route = Array.from(
6426
+ { length: SILKSCREEN_CIRCLE_SEGMENTS + 1 },
6427
+ (_, segmentIndex) => {
6428
+ const angle = Math.PI * 2 * segmentIndex / SILKSCREEN_CIRCLE_SEGMENTS;
6429
+ return {
6430
+ x: milx10(circle.center.x + Math.cos(angle) * circle.radius),
6431
+ y: milx10(circle.center.y + Math.sin(angle) * circle.radius)
6432
+ };
6433
+ }
6434
+ );
6435
+ return pcb_silkscreen_path.parse({
6436
+ type: "pcb_silkscreen_path",
6437
+ pcb_silkscreen_path_id: `pcb_silkscreen_circle_${index + 1}`,
6438
+ pcb_component_id: "pcb_component_1",
6439
+ layer: getSideFromLayer(circle.layer),
6440
+ route,
6441
+ stroke_width: mil10ToMm(circle.width)
6442
+ });
6443
+ };
6418
6444
  var handleHole = (hole, index) => {
6419
6445
  return pcb_hole.parse({
6420
6446
  type: "pcb_hole",
@@ -6677,6 +6703,10 @@ var convertEasyEdaJsonToCircuitJson = (easyEdaJson, {
6677
6703
  if (!isCourtyardLayer(shape.layer)) {
6678
6704
  circuitElements.push(handleSilkscreenPath(shape, index));
6679
6705
  }
6706
+ } else if (shape.type === "CIRCLE") {
6707
+ if (isSilkscreenLayer(shape.layer)) {
6708
+ circuitElements.push(handleSilkscreenCircle(shape, index));
6709
+ }
6680
6710
  } else if (shape.type === "ARC") {
6681
6711
  if (!isCourtyardLayer(shape.layer)) {
6682
6712
  circuitElements.push(handleSilkscreenArc(shape, index));