@tscircuit/footprinter 0.0.347 → 0.0.349

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
@@ -1400,6 +1400,8 @@ var soic = (raw_params) => {
1400
1400
  };
1401
1401
  var soicWithoutParsing = (parameters) => {
1402
1402
  const pads = [];
1403
+ let maxPadExtentX = 0;
1404
+ let maxPadExtentY = 0;
1403
1405
  for (let i = 0; i < parameters.num_pins; i++) {
1404
1406
  const { x, y } = getCcwSoicCoords({
1405
1407
  num_pins: parameters.num_pins,
@@ -1409,6 +1411,8 @@ var soicWithoutParsing = (parameters) => {
1409
1411
  pl: parameters.pl,
1410
1412
  legsoutside: parameters.legsoutside
1411
1413
  });
1414
+ maxPadExtentX = Math.max(maxPadExtentX, Math.abs(x) + parameters.pl / 2);
1415
+ maxPadExtentY = Math.max(maxPadExtentY, Math.abs(y) + parameters.pw / 2);
1412
1416
  if (parameters.pillpads) {
1413
1417
  pads.push(pillpad(i + 1, x, y, parameters.pl, parameters.pw));
1414
1418
  } else {
@@ -1442,11 +1446,12 @@ var soicWithoutParsing = (parameters) => {
1442
1446
  { x: -sw / 2, y: -sh / 2 }
1443
1447
  ]
1444
1448
  };
1445
- const pinRowSpanY = (parameters.num_pins / 2 - 1) * parameters.p + parameters.pw;
1446
- const courtyardStepInnerHalfWidth = parameters.w / 2 + 0.25;
1447
- const courtyardStepOuterHalfWidth = courtyardStepInnerHalfWidth + 1.93;
1448
- const courtyardStepInnerHalfHeight = pinRowSpanY / 2 + 0.275;
1449
- const courtyardStepOuterHalfHeight = pinRowSpanY / 2 + 0.635;
1449
+ const bodyHalfWidth = parameters.w / 2;
1450
+ const bodyHalfHeight = sh / 2;
1451
+ const courtyardStepOuterHalfWidth = Math.max(maxPadExtentX, bodyHalfWidth) + 0.25;
1452
+ const courtyardStepInnerHalfHeight = Math.min(maxPadExtentY, bodyHalfHeight) + 0.25;
1453
+ const courtyardStepInnerHalfWidth = Math.min(maxPadExtentX, bodyHalfWidth) + 0.25;
1454
+ const courtyardStepOuterHalfHeight = Math.max(maxPadExtentY, bodyHalfHeight) + 0.25;
1450
1455
  const courtyard = {
1451
1456
  type: "pcb_courtyard_outline",
1452
1457
  pcb_courtyard_outline_id: "",
@@ -5012,9 +5017,9 @@ var sod_def2 = base_def.extend({
5012
5017
  fn: z36.string(),
5013
5018
  num_pins: z36.literal(2).default(2),
5014
5019
  w: z36.string().default("2.15mm"),
5015
- h: z36.string().default("1.20mm"),
5016
- pl: z36.string().default("0.5mm"),
5017
- pw: z36.string().default("0.6mm"),
5020
+ h: z36.string().default("0.7mm"),
5021
+ pl: z36.string().default("0.6mm"),
5022
+ pw: z36.string().default("0.7mm"),
5018
5023
  p: z36.string().default("1.4mm")
5019
5024
  });
5020
5025
  var sod523 = (raw_params) => {
@@ -5031,19 +5036,19 @@ var sod523 = (raw_params) => {
5031
5036
  route: [
5032
5037
  {
5033
5038
  x: length27.parse(parameters.p) / 2,
5034
- y: length27.parse(parameters.h) / 2
5039
+ y: length27.parse(parameters.h) / 2 + 0.2
5035
5040
  },
5036
5041
  {
5037
5042
  x: -length27.parse(parameters.w) / 2 - 0.2,
5038
- y: length27.parse(parameters.h) / 2
5043
+ y: length27.parse(parameters.h) / 2 + 0.2
5039
5044
  },
5040
5045
  {
5041
5046
  x: -length27.parse(parameters.w) / 2 - 0.2,
5042
- y: -length27.parse(parameters.h) / 2
5047
+ y: -length27.parse(parameters.h) / 2 - 0.2
5043
5048
  },
5044
5049
  {
5045
5050
  x: length27.parse(parameters.p) / 2,
5046
- y: -length27.parse(parameters.h) / 2
5051
+ y: -length27.parse(parameters.h) / 2 - 0.2
5047
5052
  }
5048
5053
  ],
5049
5054
  stroke_width: 0.1,
@@ -5264,10 +5269,10 @@ var sod_def3 = base_def.extend({
5264
5269
  fn: z38.string(),
5265
5270
  num_pins: z38.literal(2).default(2),
5266
5271
  w: z38.string().default("4.4mm"),
5267
- h: z38.string().default("2.1mm"),
5272
+ h: z38.string().default("1.7mm"),
5268
5273
  pl: z38.string().default("1.2mm"),
5269
5274
  pw: z38.string().default("1.2mm"),
5270
- p: z38.string().default("2.9mm")
5275
+ p: z38.string().default("2.8mm")
5271
5276
  });
5272
5277
  var sod123w = (raw_params) => {
5273
5278
  const parameters = sod_def3.parse(raw_params);
@@ -5654,9 +5659,9 @@ var sod_def7 = base_def.extend({
5654
5659
  fn: z42.string(),
5655
5660
  num_pins: z42.literal(2).default(2),
5656
5661
  w: z42.string().default("3.05mm"),
5657
- h: z42.string().default("1.65mm"),
5658
- pl: z42.string().default("0.6mm"),
5659
- pw: z42.string().default("0.6mm"),
5662
+ h: z42.string().default("1.4mm"),
5663
+ pl: z42.string().default("0.5mm"),
5664
+ pw: z42.string().default("0.5mm"),
5660
5665
  pad_spacing: z42.string().default("2.2mm")
5661
5666
  });
5662
5667
  var sod323f = (raw_params) => {
@@ -9955,9 +9960,9 @@ import { z as z77 } from "zod";
9955
9960
  var sot_def = base_def.extend({
9956
9961
  fn: z77.string(),
9957
9962
  num_pins: z77.literal(6).default(6),
9958
- h: z77.string().default("1.6mm"),
9959
- pl: z77.string().default("1mm"),
9960
- pw: z77.string().default("0.7mm"),
9963
+ h: z77.string().default("1.3mm"),
9964
+ pl: z77.string().default("1.325mm"),
9965
+ pw: z77.string().default("0.6mm"),
9961
9966
  p: z77.string().default("0.95mm")
9962
9967
  });
9963
9968
  var sot = (raw_params) => {
@@ -9970,22 +9975,22 @@ var sot = (raw_params) => {
9970
9975
  var getCcwSotCoords = (parameters) => {
9971
9976
  const { p, h, pn } = parameters;
9972
9977
  if (pn === 1) {
9973
- return { x: -h / 2 - 0.5, y: p };
9978
+ return { x: -h / 2 - 0.4875, y: p };
9974
9979
  }
9975
9980
  if (pn === 2) {
9976
- return { x: -h / 2 - 0.5, y: 0 };
9981
+ return { x: -h / 2 - 0.4875, y: 0 };
9977
9982
  }
9978
9983
  if (pn === 3) {
9979
- return { x: -h / 2 - 0.5, y: -p };
9984
+ return { x: -h / 2 - 0.4875, y: -p };
9980
9985
  }
9981
9986
  if (pn === 4) {
9982
- return { x: h / 2 + 0.5, y: -p };
9987
+ return { x: h / 2 + 0.4875, y: -p };
9983
9988
  }
9984
9989
  if (pn === 5) {
9985
- return { x: h / 2 + 0.5, y: 0 };
9990
+ return { x: h / 2 + 0.4875, y: 0 };
9986
9991
  }
9987
9992
  if (pn === 6) {
9988
- return { x: h / 2 + 0.5, y: p };
9993
+ return { x: h / 2 + 0.4875, y: p };
9989
9994
  }
9990
9995
  throw new Error("Invalid pin number");
9991
9996
  };
@@ -10047,7 +10052,7 @@ var sotWithoutParsing = (parameters) => {
10047
10052
  pcb_silkscreen_path_id: "pin1_indicator",
10048
10053
  route: [
10049
10054
  {
10050
- x: pin1Position.x + triangleHeight / 2,
10055
+ x: pin1Position.x + triangleHeight / 2 - 0.2,
10051
10056
  y: pin1Position.y
10052
10057
  },
10053
10058
  {
@@ -10059,7 +10064,7 @@ var sotWithoutParsing = (parameters) => {
10059
10064
  y: pin1Position.y - triangleWidth / 2
10060
10065
  },
10061
10066
  {
10062
- x: pin1Position.x + triangleHeight / 2,
10067
+ x: pin1Position.x + triangleHeight / 2 - 0.2,
10063
10068
  y: pin1Position.y
10064
10069
  }
10065
10070
  ],
@@ -10069,12 +10074,12 @@ var sotWithoutParsing = (parameters) => {
10069
10074
  const p_val = Number.parseFloat(parameters.p);
10070
10075
  const pl_val = Number.parseFloat(parameters.pl);
10071
10076
  const pw_val = Number.parseFloat(parameters.pw);
10072
- const pinColumnCenterX = h_val / 2 + 0.5;
10077
+ const pinColumnCenterX = h_val / 2 + 0.4875;
10073
10078
  const pinRowSpanY = p_val * 2 + pw_val;
10074
10079
  const pinToeHalfSpanX = pinColumnCenterX + pl_val / 2;
10075
- const courtyardStepInnerHalfWidth = h_val / 2 + 0.25;
10080
+ const courtyardStepInnerHalfWidth = h_val / 2 + 0.4;
10076
10081
  const courtyardStepOuterHalfWidth = pinToeHalfSpanX + 0.25;
10077
- const courtyardStepInnerHalfHeight = pinRowSpanY / 2 + 0.2;
10082
+ const courtyardStepInnerHalfHeight = pinRowSpanY / 2 + 0.25;
10078
10083
  const courtyardStepOuterHalfHeight = courtyardStepInnerHalfHeight + 0.2;
10079
10084
  const courtyard = {
10080
10085
  type: "pcb_courtyard_outline",