@tscircuit/footprinter 0.0.338 → 0.0.339

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 CHANGED
@@ -1313,22 +1313,33 @@ var soicWithoutParsing = (parameters) => {
1313
1313
  { x: -sw / 2, y: -sh / 2 }
1314
1314
  ]
1315
1315
  };
1316
- const courtyardPadding = 0.25;
1317
- const silkXs = silkscreenBorder.route.map((pt) => pt.x);
1318
- const silkYs = silkscreenBorder.route.map((pt) => pt.y);
1319
- const padXExtent = parameters.legsoutside ? parameters.w / 2 + parameters.pl : parameters.w / 2;
1320
- const crtMinX = Math.min(-padXExtent, ...silkXs) - courtyardPadding;
1321
- const crtMaxX = Math.max(padXExtent, ...silkXs) + courtyardPadding;
1322
- const crtMinY = Math.min(...silkYs) - courtyardPadding;
1323
- const crtMaxY = Math.max(...silkYs) + courtyardPadding;
1316
+ const roundToCourtyardGrid = (value) => Math.round(value / 0.01) * 0.01;
1317
+ const pinRowSpanY = (parameters.num_pins / 2 - 1) * parameters.p + parameters.pw;
1318
+ const courtyardStepInnerHalfX = roundToCourtyardGrid(parameters.w / 2 + 0.25);
1319
+ const courtyardStepOuterHalfX = roundToCourtyardGrid(
1320
+ courtyardStepInnerHalfX + 1.93
1321
+ );
1322
+ const courtyardStepInnerHalfY = roundToCourtyardGrid(pinRowSpanY / 2 + 0.27);
1323
+ const courtyardStepOuterHalfY = roundToCourtyardGrid(pinRowSpanY / 2 + 0.63);
1324
1324
  const courtyard = {
1325
- type: "pcb_courtyard_rect",
1326
- pcb_courtyard_rect_id: "",
1325
+ type: "pcb_courtyard_outline",
1326
+ pcb_courtyard_outline_id: "",
1327
1327
  pcb_component_id: "",
1328
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
1329
- width: crtMaxX - crtMinX,
1330
- height: crtMaxY - crtMinY,
1331
- layer: "top"
1328
+ layer: "top",
1329
+ outline: [
1330
+ { x: -courtyardStepOuterHalfX, y: courtyardStepInnerHalfY },
1331
+ { x: -courtyardStepInnerHalfX, y: courtyardStepInnerHalfY },
1332
+ { x: -courtyardStepInnerHalfX, y: courtyardStepOuterHalfY },
1333
+ { x: courtyardStepInnerHalfX, y: courtyardStepOuterHalfY },
1334
+ { x: courtyardStepInnerHalfX, y: courtyardStepInnerHalfY },
1335
+ { x: courtyardStepOuterHalfX, y: courtyardStepInnerHalfY },
1336
+ { x: courtyardStepOuterHalfX, y: -courtyardStepInnerHalfY },
1337
+ { x: courtyardStepInnerHalfX, y: -courtyardStepInnerHalfY },
1338
+ { x: courtyardStepInnerHalfX, y: -courtyardStepOuterHalfY },
1339
+ { x: -courtyardStepInnerHalfX, y: -courtyardStepOuterHalfY },
1340
+ { x: -courtyardStepInnerHalfX, y: -courtyardStepInnerHalfY },
1341
+ { x: -courtyardStepOuterHalfX, y: -courtyardStepInnerHalfY }
1342
+ ]
1332
1343
  };
1333
1344
  return [
1334
1345
  ...pads,
@@ -2553,18 +2564,17 @@ var dfn = (raw_params) => {
2553
2564
  sh / 2 + 0.4,
2554
2565
  sh / 12
2555
2566
  );
2556
- const courtyardPadding = 0.25;
2557
- const crtMinX = -sw / 2 - courtyardPadding;
2558
- const crtMaxX = sw / 2 + courtyardPadding;
2559
- const crtMinY = -sh / 2 - courtyardPadding;
2560
- const crtMaxY = sh / 2 + courtyardPadding;
2567
+ const roundUpToCourtyardGrid = (value) => Math.ceil(value / 0.05) * 0.05;
2568
+ const pinRowSpanY = (parameters.num_pins / 2 - 1) * parameters.p + parameters.pw;
2569
+ const courtyardHalfWidthMm = roundUpToCourtyardGrid(parameters.w / 2 + 0.25);
2570
+ const courtyardHalfHeightMm = roundUpToCourtyardGrid(pinRowSpanY / 2 + 0.45);
2561
2571
  const courtyard = {
2562
2572
  type: "pcb_courtyard_rect",
2563
2573
  pcb_courtyard_rect_id: "",
2564
2574
  pcb_component_id: "",
2565
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
2566
- width: crtMaxX - crtMinX,
2567
- height: crtMaxY - crtMinY,
2575
+ center: { x: 0, y: 0 },
2576
+ width: courtyardHalfWidthMm * 2,
2577
+ height: courtyardHalfHeightMm * 2,
2568
2578
  layer: "top"
2569
2579
  };
2570
2580
  return {
@@ -7958,20 +7968,33 @@ var msop = (raw_params) => {
7958
7968
  silkscreenBoxHeight / 2 + 0.5,
7959
7969
  0.3
7960
7970
  );
7961
- const courtyardPadding = 0.25;
7962
- const padCenterX = length51.parse("2mm");
7963
- const crtMinX = -(padCenterX + pl / 2) - courtyardPadding;
7964
- const crtMaxX = padCenterX + pl / 2 + courtyardPadding;
7965
- const crtMinY = -silkscreenBoxHeight / 2 - courtyardPadding;
7966
- const crtMaxY = silkscreenBoxHeight / 2 + courtyardPadding;
7971
+ const roundToCourtyardGrid = (value) => Math.round(value / 0.01) * 0.01;
7972
+ const pinRowSpanY = (parameters.num_pins / 2 - 1) * p + pw;
7973
+ const courtyardStepInnerHalfX = roundToCourtyardGrid(w / 2 + 0.25);
7974
+ const courtyardStepOuterHalfX = roundToCourtyardGrid(
7975
+ courtyardStepInnerHalfX + 1.43
7976
+ );
7977
+ const courtyardStepInnerHalfY = roundToCourtyardGrid(pinRowSpanY / 2 + 0.255);
7978
+ const courtyardStepOuterHalfY = roundToCourtyardGrid(h / 2 + 0.25);
7967
7979
  const courtyard = {
7968
- type: "pcb_courtyard_rect",
7969
- pcb_courtyard_rect_id: "",
7980
+ type: "pcb_courtyard_outline",
7981
+ pcb_courtyard_outline_id: "",
7970
7982
  pcb_component_id: "",
7971
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
7972
- width: crtMaxX - crtMinX,
7973
- height: crtMaxY - crtMinY,
7974
- layer: "top"
7983
+ layer: "top",
7984
+ outline: [
7985
+ { x: -courtyardStepOuterHalfX, y: courtyardStepInnerHalfY },
7986
+ { x: -courtyardStepInnerHalfX, y: courtyardStepInnerHalfY },
7987
+ { x: -courtyardStepInnerHalfX, y: courtyardStepOuterHalfY },
7988
+ { x: courtyardStepInnerHalfX, y: courtyardStepOuterHalfY },
7989
+ { x: courtyardStepInnerHalfX, y: courtyardStepInnerHalfY },
7990
+ { x: courtyardStepOuterHalfX, y: courtyardStepInnerHalfY },
7991
+ { x: courtyardStepOuterHalfX, y: -courtyardStepInnerHalfY },
7992
+ { x: courtyardStepInnerHalfX, y: -courtyardStepInnerHalfY },
7993
+ { x: courtyardStepInnerHalfX, y: -courtyardStepOuterHalfY },
7994
+ { x: -courtyardStepInnerHalfX, y: -courtyardStepOuterHalfY },
7995
+ { x: -courtyardStepInnerHalfX, y: -courtyardStepInnerHalfY },
7996
+ { x: -courtyardStepOuterHalfX, y: -courtyardStepInnerHalfY }
7997
+ ]
7975
7998
  };
7976
7999
  return {
7977
8000
  circuitJson: [