@tscircuit/footprinter 0.0.336 → 0.0.338

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
@@ -2018,6 +2018,20 @@ var tssop = (raw_params) => {
2018
2018
  // src/fn/sot363.ts
2019
2019
  import { z as z18 } from "zod";
2020
2020
  import { length as length13 } from "circuit-json";
2021
+ var sot363CourtyardOutline = [
2022
+ { x: -1.45, y: 0.93 },
2023
+ { x: -0.73, y: 0.93 },
2024
+ { x: -0.73, y: 1.1 },
2025
+ { x: 0.73, y: 1.1 },
2026
+ { x: 0.73, y: 0.93 },
2027
+ { x: 1.45, y: 0.93 },
2028
+ { x: 1.45, y: -0.93 },
2029
+ { x: 0.73, y: -0.93 },
2030
+ { x: 0.73, y: -1.1 },
2031
+ { x: -0.73, y: -1.1 },
2032
+ { x: -0.73, y: -0.93 },
2033
+ { x: -1.45, y: -0.93 }
2034
+ ];
2021
2035
  var sot363_def = base_def.extend({
2022
2036
  fn: z18.string(),
2023
2037
  num_pins: z18.literal(6).default(6),
@@ -2077,18 +2091,11 @@ var sot363 = (raw_params) => {
2077
2091
  pcb_silkscreen_path_id: "pin_marker_1"
2078
2092
  };
2079
2093
  const silkscreenRefText = silkscreenRef(0, h / 2 + 0.4, 0.25);
2080
- const courtyardPadding = 0.25;
2081
- const crtMinX = -(0.84 + pl / 2) - courtyardPadding;
2082
- const crtMaxX = 0.84 + pl / 2 + courtyardPadding;
2083
- const crtMinY = -(h / 2 + 0.1) - courtyardPadding;
2084
- const crtMaxY = h / 2 + 0.1 + courtyardPadding;
2085
2094
  const courtyard = {
2086
- type: "pcb_courtyard_rect",
2087
- pcb_courtyard_rect_id: "",
2095
+ type: "pcb_courtyard_outline",
2096
+ pcb_courtyard_outline_id: "",
2088
2097
  pcb_component_id: "",
2089
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
2090
- width: crtMaxX - crtMinX,
2091
- height: crtMaxY - crtMinY,
2098
+ outline: sot363CourtyardOutline,
2092
2099
  layer: "top"
2093
2100
  };
2094
2101
  return {
@@ -2114,6 +2121,12 @@ var getSot363PadCoord = (pn, w, p, pl) => {
2114
2121
  // src/fn/sot886.ts
2115
2122
  import { z as z19 } from "zod";
2116
2123
  import { length as length14 } from "circuit-json";
2124
+ var sot886CourtyardOutline = [
2125
+ { x: -0.75, y: 1 },
2126
+ { x: -0.75, y: -1 },
2127
+ { x: 0.75, y: -1 },
2128
+ { x: 0.75, y: 1 }
2129
+ ];
2117
2130
  var sot886_def = base_def.extend({
2118
2131
  fn: z19.string(),
2119
2132
  num_pins: z19.literal(6).default(6),
@@ -2173,18 +2186,11 @@ var sot886 = (raw_params) => {
2173
2186
  pcb_silkscreen_path_id: "pin_marker_1"
2174
2187
  };
2175
2188
  const silkscreenRefText = silkscreenRef(0, h / 2 + 0.4, 0.25);
2176
- const courtyardPadding = 0.25;
2177
- const crtMinX = -w / 2 - courtyardPadding;
2178
- const crtMaxX = w / 2 + courtyardPadding;
2179
- const crtMinY = -h / 2 - courtyardPadding;
2180
- const crtMaxY = h / 2 + courtyardPadding;
2181
2189
  const courtyard = {
2182
- type: "pcb_courtyard_rect",
2183
- pcb_courtyard_rect_id: "",
2190
+ type: "pcb_courtyard_outline",
2191
+ pcb_courtyard_outline_id: "",
2184
2192
  pcb_component_id: "",
2185
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
2186
- width: crtMaxX - crtMinX,
2187
- height: crtMaxY - crtMinY,
2193
+ outline: sot886CourtyardOutline,
2188
2194
  layer: "top"
2189
2195
  };
2190
2196
  return {
@@ -2209,6 +2215,42 @@ var getSot886PadCoord = (pn, w, p, pl) => {
2209
2215
 
2210
2216
  // src/fn/sot23.ts
2211
2217
  import { z as z20 } from "zod";
2218
+ var sot23_3CourtyardOutline = [
2219
+ { x: -2.05, y: 1.5 },
2220
+ { x: -1.05, y: 1.5 },
2221
+ { x: -1.05, y: 1.7 },
2222
+ { x: 1.05, y: 1.7 },
2223
+ { x: 1.05, y: 0.55 },
2224
+ { x: 2.05, y: 0.55 },
2225
+ { x: 2.05, y: -0.55 },
2226
+ { x: 1.05, y: -0.55 },
2227
+ { x: 1.05, y: -1.7 },
2228
+ { x: -1.05, y: -1.7 },
2229
+ { x: -1.05, y: -1.5 },
2230
+ { x: -2.05, y: -1.5 },
2231
+ { x: -2.05, y: -0.39 },
2232
+ { x: -1.05, y: -0.39 },
2233
+ { x: -1.05, y: 0.39 },
2234
+ { x: -2.05, y: 0.39 }
2235
+ ];
2236
+ var sot23_5CourtyardOutline = [
2237
+ { x: -2.05, y: 1.5 },
2238
+ { x: -1.05, y: 1.5 },
2239
+ { x: -1.05, y: 1.7 },
2240
+ { x: 1.05, y: 1.7 },
2241
+ { x: 1.05, y: 1.5 },
2242
+ { x: 2.05, y: 1.5 },
2243
+ { x: 2.05, y: 0.39 },
2244
+ { x: 1.05, y: 0.39 },
2245
+ { x: 1.05, y: -0.39 },
2246
+ { x: 2.05, y: -0.39 },
2247
+ { x: 2.05, y: -1.5 },
2248
+ { x: 1.05, y: -1.5 },
2249
+ { x: 1.05, y: -1.7 },
2250
+ { x: -1.05, y: -1.7 },
2251
+ { x: -1.05, y: -1.5 },
2252
+ { x: -2.05, y: -1.5 }
2253
+ ];
2212
2254
  var sot23_def = base_def.extend({
2213
2255
  fn: z20.string(),
2214
2256
  num_pins: z20.number().default(3),
@@ -2291,21 +2333,11 @@ var sot23_3 = (parameters) => {
2291
2333
  Number.parseInt(parameters.h),
2292
2334
  0.3
2293
2335
  );
2294
- const courtyardPadding = 0.25;
2295
- const pl_val = Number.parseFloat(parameters.pl);
2296
- const pw_val = Number.parseFloat(parameters.pw);
2297
- const p_val = Number.parseFloat(parameters.p);
2298
- const crtMinX = -1.1375 - pl_val / 2 - courtyardPadding;
2299
- const crtMaxX = 1.1375 + pl_val / 2 + courtyardPadding;
2300
- const crtMinY = -(p_val + pw_val / 2) - courtyardPadding;
2301
- const crtMaxY = p_val + pw_val / 2 + courtyardPadding;
2302
2336
  const courtyard = {
2303
- type: "pcb_courtyard_rect",
2304
- pcb_courtyard_rect_id: "",
2337
+ type: "pcb_courtyard_outline",
2338
+ pcb_courtyard_outline_id: "",
2305
2339
  pcb_component_id: "",
2306
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
2307
- width: crtMaxX - crtMinX,
2308
- height: crtMaxY - crtMinY,
2340
+ outline: sot23_3CourtyardOutline,
2309
2341
  layer: "top"
2310
2342
  };
2311
2343
  return [...pads, silkscreenRefText, courtyard];
@@ -2409,24 +2441,11 @@ var sot23_5 = (parameters) => {
2409
2441
  ],
2410
2442
  stroke_width: 0.05
2411
2443
  };
2412
- const courtyardPadding = 0.25;
2413
- const pl_val = Number.parseFloat(parameters.pl);
2414
- const pw_val = Number.parseFloat(parameters.pw);
2415
- const p_val = Number.parseFloat(parameters.p);
2416
- const silkY = height / 2 + p_val / 1.3;
2417
- const padYExtent = p_val + pw_val / 2;
2418
- const padXExtent = 1.1375 + pl_val / 2;
2419
- const crtMinX = -padXExtent - courtyardPadding;
2420
- const crtMaxX = padXExtent + courtyardPadding;
2421
- const crtMinY = -Math.max(silkY, padYExtent) - courtyardPadding;
2422
- const crtMaxY = Math.max(silkY, padYExtent) + courtyardPadding;
2423
2444
  const courtyard = {
2424
- type: "pcb_courtyard_rect",
2425
- pcb_courtyard_rect_id: "",
2445
+ type: "pcb_courtyard_outline",
2446
+ pcb_courtyard_outline_id: "",
2426
2447
  pcb_component_id: "",
2427
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
2428
- width: crtMaxX - crtMinX,
2429
- height: crtMaxY - crtMinY,
2448
+ outline: sot23_5CourtyardOutline,
2430
2449
  layer: "top"
2431
2450
  };
2432
2451
  return [
@@ -2940,6 +2959,20 @@ var pinrow = (raw_params) => {
2940
2959
  // src/fn/sot563.ts
2941
2960
  import { z as z24 } from "zod";
2942
2961
  import { length as length16 } from "circuit-json";
2962
+ var sot563CourtyardOutline = [
2963
+ { x: -1.2, y: 0.83 },
2964
+ { x: -0.75, y: 0.83 },
2965
+ { x: -0.75, y: 0.95 },
2966
+ { x: 0.75, y: 0.95 },
2967
+ { x: 0.75, y: 0.83 },
2968
+ { x: 1.2, y: 0.83 },
2969
+ { x: 1.2, y: -0.83 },
2970
+ { x: 0.75, y: -0.83 },
2971
+ { x: 0.75, y: -0.95 },
2972
+ { x: -0.75, y: -0.95 },
2973
+ { x: -0.75, y: -0.83 },
2974
+ { x: -1.2, y: -0.83 }
2975
+ ];
2943
2976
  var sot563_def = base_def.extend({
2944
2977
  fn: z24.string(),
2945
2978
  num_pins: z24.literal(6).default(6),
@@ -2999,18 +3032,11 @@ var sot563 = (raw_params) => {
2999
3032
  pcb_silkscreen_path_id: "pin_marker_1"
3000
3033
  };
3001
3034
  const silkscreenRefText = silkscreenRef(0, h / 2 + 0.4, 0.25);
3002
- const courtyardPadding = 0.25;
3003
- const crtMinX = -w / 2 - courtyardPadding;
3004
- const crtMaxX = w / 2 + courtyardPadding;
3005
- const crtMinY = -h / 2 - courtyardPadding;
3006
- const crtMaxY = h / 2 + courtyardPadding;
3007
3035
  const courtyard = {
3008
- type: "pcb_courtyard_rect",
3009
- pcb_courtyard_rect_id: "",
3036
+ type: "pcb_courtyard_outline",
3037
+ pcb_courtyard_outline_id: "",
3010
3038
  pcb_component_id: "",
3011
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
3012
- width: crtMaxX - crtMinX,
3013
- height: crtMaxY - crtMinY,
3039
+ outline: sot563CourtyardOutline,
3014
3040
  layer: "top"
3015
3041
  };
3016
3042
  return {
@@ -3083,22 +3109,18 @@ var sot723 = (raw_params) => {
3083
3109
  length17.parse(parameters.h),
3084
3110
  0.2
3085
3111
  );
3086
- const p_val = length17.parse(parameters.p);
3087
- const pl_val = length17.parse(parameters.pl);
3088
- const pw_val = length17.parse(parameters.pw);
3089
- const h_val = length17.parse(parameters.h);
3090
- const courtyardPadding = 0.25;
3091
- const crtMinX = -(p_val + pl_val / 2 + courtyardPadding);
3092
- const crtMaxX = p_val + pl_val / 2 + courtyardPadding;
3093
- const crtMinY = -(Math.max(h_val / 2, 0.4 + pw_val / 2) + courtyardPadding);
3094
- const crtMaxY = Math.max(h_val / 2, 0.4 + pw_val / 2) + courtyardPadding;
3112
+ const courtyardWidthMm = 1.8;
3113
+ const courtyardHeightMm = 1.8;
3095
3114
  const courtyard = {
3096
- type: "pcb_courtyard_rect",
3097
- pcb_courtyard_rect_id: "",
3115
+ type: "pcb_courtyard_outline",
3116
+ pcb_courtyard_outline_id: "",
3098
3117
  pcb_component_id: "",
3099
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
3100
- width: crtMaxX - crtMinX,
3101
- height: crtMaxY - crtMinY,
3118
+ outline: [
3119
+ { x: -courtyardWidthMm / 2, y: courtyardHeightMm / 2 },
3120
+ { x: courtyardWidthMm / 2, y: courtyardHeightMm / 2 },
3121
+ { x: courtyardWidthMm / 2, y: -courtyardHeightMm / 2 },
3122
+ { x: -courtyardWidthMm / 2, y: -courtyardHeightMm / 2 }
3123
+ ],
3102
3124
  layer: "top"
3103
3125
  };
3104
3126
  return {
@@ -3159,21 +3181,15 @@ var sod123 = (raw_params) => {
3159
3181
  length18.parse(parameters.h) / 4 + 0.4,
3160
3182
  0.3
3161
3183
  );
3162
- const p_val = length18.parse(parameters.p);
3163
- const pl_val = length18.parse(parameters.pl);
3164
- const pw_val = length18.parse(parameters.pw);
3165
- const courtyardPadding = 0.25;
3166
- const crtMinX = -(p_val / 2 + pl_val / 2 + courtyardPadding);
3167
- const crtMaxX = p_val / 2 + pl_val / 2 + courtyardPadding;
3168
- const crtMinY = -(pw_val / 2 + courtyardPadding);
3169
- const crtMaxY = pw_val / 2 + courtyardPadding;
3184
+ const courtyardWidthMm = 4.7;
3185
+ const courtyardHeightMm = 2.3;
3170
3186
  const courtyard = {
3171
3187
  type: "pcb_courtyard_rect",
3172
3188
  pcb_courtyard_rect_id: "",
3173
3189
  pcb_component_id: "",
3174
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
3175
- width: crtMaxX - crtMinX,
3176
- height: crtMaxY - crtMinY,
3190
+ center: { x: 0, y: 0 },
3191
+ width: courtyardWidthMm,
3192
+ height: courtyardHeightMm,
3177
3193
  layer: "top"
3178
3194
  };
3179
3195
  return {
@@ -3398,18 +3414,13 @@ var radial = (raw_params) => {
3398
3414
  if (hasPolarity) {
3399
3415
  circuitJson.push(plusHoriz, plusVert);
3400
3416
  }
3401
- const courtyardPadding = 0.25;
3402
- const crtMinX = hasPolarity ? plusX - plusSize - courtyardPadding : -(bodyR + courtyardPadding);
3403
- const crtMaxX = bodyR + courtyardPadding;
3404
- const crtMinY = -(bodyR + courtyardPadding);
3405
- const crtMaxY = bodyR + courtyardPadding;
3417
+ const courtyardRadiusMm = p + 0.25;
3406
3418
  const courtyard = {
3407
- type: "pcb_courtyard_rect",
3408
- pcb_courtyard_rect_id: "",
3419
+ type: "pcb_courtyard_circle",
3420
+ pcb_courtyard_circle_id: "",
3409
3421
  pcb_component_id: "",
3410
- center: { x: (crtMinX + crtMaxX) / 2, y: 0 },
3411
- width: crtMaxX - crtMinX,
3412
- height: crtMaxY - crtMinY,
3422
+ center: { x: 0, y: 0 },
3423
+ radius: courtyardRadiusMm,
3413
3424
  layer: "top"
3414
3425
  };
3415
3426
  circuitJson.push(courtyard);
@@ -4566,6 +4577,12 @@ var platedHolePill = (pn, x, y, holeDiameter, outerWidth, outerHeight) => {
4566
4577
  };
4567
4578
 
4568
4579
  // src/fn/to92.ts
4580
+ var to92CourtyardOutline = [
4581
+ { x: -2.73, y: 3.71 },
4582
+ { x: -2.73, y: -1.03 },
4583
+ { x: 2.73, y: -1.03 },
4584
+ { x: 2.73, y: 3.71 }
4585
+ ];
4569
4586
  var to92_def = base_def.extend({
4570
4587
  fn: z35.string(),
4571
4588
  num_pins: z35.union([z35.literal(3), z35.literal(2)]).default(3),
@@ -4674,18 +4691,11 @@ var to92 = (raw_params) => {
4674
4691
  pcb_silkscreen_path_id: ""
4675
4692
  };
4676
4693
  const silkscreenRefText = silkscreenRef(0, holeY + 1, 0.5);
4677
- const courtyardPadding = 0.25;
4678
- const crtMinX = -(radius + courtyardPadding);
4679
- const crtMaxX = radius + courtyardPadding;
4680
- const crtMaxY = holeY + radius + courtyardPadding;
4681
- const crtMinY = -courtyardPadding;
4682
4694
  const courtyard = {
4683
- type: "pcb_courtyard_rect",
4684
- pcb_courtyard_rect_id: "",
4695
+ type: "pcb_courtyard_outline",
4696
+ pcb_courtyard_outline_id: "",
4685
4697
  pcb_component_id: "",
4686
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
4687
- width: crtMaxX - crtMinX,
4688
- height: crtMaxY - crtMinY,
4698
+ outline: to92CourtyardOutline,
4689
4699
  layer: "top"
4690
4700
  };
4691
4701
  return {
@@ -4743,23 +4753,15 @@ var sod523 = (raw_params) => {
4743
4753
  stroke_width: 0.1,
4744
4754
  pcb_silkscreen_path_id: ""
4745
4755
  };
4746
- const p_v = length27.parse(parameters.p);
4747
- const pl_v = length27.parse(parameters.pl);
4748
- const pw_v = length27.parse(parameters.pw);
4749
- const h_v = length27.parse(parameters.h);
4750
- const w_v = length27.parse(parameters.w);
4751
- const courtyardPadding = 0.25;
4752
- const crtMinX = -(Math.max(w_v / 2 + 0.2, p_v / 2 + pl_v / 2) + courtyardPadding);
4753
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
4754
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
4755
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
4756
+ const courtyardWidthMm = 2.5;
4757
+ const courtyardHeightMm = 1.4;
4756
4758
  const courtyard = {
4757
4759
  type: "pcb_courtyard_rect",
4758
4760
  pcb_courtyard_rect_id: "",
4759
4761
  pcb_component_id: "",
4760
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
4761
- width: crtMaxX - crtMinX,
4762
- height: crtMaxY - crtMinY,
4762
+ center: { x: 0, y: 0 },
4763
+ width: courtyardWidthMm,
4764
+ height: courtyardHeightMm,
4763
4765
  layer: "top"
4764
4766
  };
4765
4767
  return {
@@ -4904,23 +4906,15 @@ var sod80 = (raw_params) => {
4904
4906
  stroke_width: 0.1,
4905
4907
  pcb_silkscreen_path_id: ""
4906
4908
  };
4907
- const p_v = length28.parse(parameters.p);
4908
- const pl_v = length28.parse(parameters.pl);
4909
- const pw_v = length28.parse(parameters.pw);
4910
- const h_v = length28.parse(parameters.h);
4911
- const w_v = length28.parse(parameters.w);
4912
- const courtyardPadding = 0.25;
4913
- const crtMinX = -(Math.max(w_v / 2 + 0.5, p_v / 2 + pl_v / 2) + courtyardPadding);
4914
- const crtMaxX = Math.max(p_v / 2 + 0.5, p_v / 2 + pl_v / 2) + courtyardPadding;
4915
- const crtMinY = -(Math.max(h_v / 2 + 0.5, pw_v / 2) + courtyardPadding);
4916
- const crtMaxY = Math.max(h_v / 2 + 0.5, pw_v / 2) + courtyardPadding;
4909
+ const courtyardWidthMm = 5.1;
4910
+ const courtyardHeightMm = 2.8;
4917
4911
  const courtyard = {
4918
4912
  type: "pcb_courtyard_rect",
4919
4913
  pcb_courtyard_rect_id: "",
4920
4914
  pcb_component_id: "",
4921
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
4922
- width: crtMaxX - crtMinX,
4923
- height: crtMaxY - crtMinY,
4915
+ center: { x: 0, y: 0 },
4916
+ width: courtyardWidthMm,
4917
+ height: courtyardHeightMm,
4924
4918
  layer: "top"
4925
4919
  };
4926
4920
  return {
@@ -5000,23 +4994,15 @@ var sod123w = (raw_params) => {
5000
4994
  stroke_width: 0.1,
5001
4995
  pcb_silkscreen_path_id: ""
5002
4996
  };
5003
- const p_v = length29.parse(parameters.p);
5004
- const pl_v = length29.parse(parameters.pl);
5005
- const pw_v = length29.parse(parameters.pw);
5006
- const h_v = length29.parse(parameters.h);
5007
- const w_v = length29.parse(parameters.w);
5008
- const courtyardPadding = 0.25;
5009
- const crtMinX = -(Math.max(w_v / 2 + 0.2, p_v / 2 + pl_v / 2) + courtyardPadding);
5010
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
5011
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
5012
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
4997
+ const courtyardWidthMm = 4.5;
4998
+ const courtyardHeightMm = 2.2;
5013
4999
  const courtyard = {
5014
5000
  type: "pcb_courtyard_rect",
5015
5001
  pcb_courtyard_rect_id: "",
5016
5002
  pcb_component_id: "",
5017
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5018
- width: crtMaxX - crtMinX,
5019
- height: crtMaxY - crtMinY,
5003
+ center: { x: 0, y: 0 },
5004
+ width: courtyardWidthMm,
5005
+ height: courtyardHeightMm,
5020
5006
  layer: "top"
5021
5007
  };
5022
5008
  return {
@@ -5099,23 +5085,15 @@ var sod323 = (raw_params) => {
5099
5085
  stroke_width: 0.1,
5100
5086
  pcb_silkscreen_path_id: ""
5101
5087
  };
5102
- const p_v = length30.parse(parameters.p);
5103
- const pl_v = length30.parse(parameters.pl);
5104
- const pw_v = length30.parse(parameters.pw);
5105
- const h_v = length30.parse(parameters.h);
5106
- const w_v = length30.parse(parameters.w);
5107
- const courtyardPadding = 0.25;
5108
- const crtMinX = -(Math.max(w_v / 2, p_v / 2 + pl_v / 2) + courtyardPadding);
5109
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
5110
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
5111
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
5088
+ const courtyardWidthMm = 3.2;
5089
+ const courtyardHeightMm = 1.9;
5112
5090
  const courtyard = {
5113
5091
  type: "pcb_courtyard_rect",
5114
5092
  pcb_courtyard_rect_id: "",
5115
5093
  pcb_component_id: "",
5116
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5117
- width: crtMaxX - crtMinX,
5118
- height: crtMaxY - crtMinY,
5094
+ center: { x: 0, y: 0 },
5095
+ width: courtyardWidthMm,
5096
+ height: courtyardHeightMm,
5119
5097
  layer: "top"
5120
5098
  };
5121
5099
  return {
@@ -5198,23 +5176,15 @@ var sod923 = (raw_params) => {
5198
5176
  stroke_width: 0.1,
5199
5177
  pcb_silkscreen_path_id: ""
5200
5178
  };
5201
- const p_v = length31.parse(parameters.p);
5202
- const pl_v = length31.parse(parameters.pl);
5203
- const pw_v = length31.parse(parameters.pw);
5204
- const h_v = length31.parse(parameters.h);
5205
- const w_v = length31.parse(parameters.w);
5206
- const courtyardPadding = 0.25;
5207
- const crtMinX = -(Math.max(w_v / 2 + 0.15, p_v / 2 + pl_v / 2) + courtyardPadding);
5208
- const crtMaxX = Math.max(p_v / 2 + 0.15, p_v / 2 + pl_v / 2) + courtyardPadding;
5209
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
5210
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
5179
+ const courtyardWidthMm = 1.5;
5180
+ const courtyardHeightMm = 0.9;
5211
5181
  const courtyard = {
5212
5182
  type: "pcb_courtyard_rect",
5213
5183
  pcb_courtyard_rect_id: "",
5214
5184
  pcb_component_id: "",
5215
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5216
- width: crtMaxX - crtMinX,
5217
- height: crtMaxY - crtMinY,
5185
+ center: { x: 0, y: 0 },
5186
+ width: courtyardWidthMm,
5187
+ height: courtyardHeightMm,
5218
5188
  layer: "top"
5219
5189
  };
5220
5190
  return {
@@ -5298,23 +5268,15 @@ var sod882 = (raw_params) => {
5298
5268
  stroke_width: 0.1,
5299
5269
  pcb_silkscreen_path_id: ""
5300
5270
  };
5301
- const p_v = length32.parse(parameters.p);
5302
- const pl_v = length32.parse(parameters.pl);
5303
- const pw_v = length32.parse(parameters.pw);
5304
- const h_v = length32.parse(parameters.h);
5305
- const w_v = length32.parse(parameters.w);
5306
- const courtyardPadding = 0.25;
5307
- const crtMinX = -(Math.max(w_v / 2 + 0.2, p_v / 2 + pl_v / 2) + courtyardPadding);
5308
- const crtMaxX = Math.max(p_v / 2 + 0.2, p_v / 2 + pl_v / 2) + courtyardPadding;
5309
- const crtMinY = -(Math.max(h_v / 2 + 0.2, pw_v / 2) + courtyardPadding);
5310
- const crtMaxY = Math.max(h_v / 2 + 0.2, pw_v / 2) + courtyardPadding;
5271
+ const courtyardWidthMm = 1.6;
5272
+ const courtyardHeightMm = 1.2;
5311
5273
  const courtyard = {
5312
5274
  type: "pcb_courtyard_rect",
5313
5275
  pcb_courtyard_rect_id: "",
5314
5276
  pcb_component_id: "",
5315
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5316
- width: crtMaxX - crtMinX,
5317
- height: crtMaxY - crtMinY,
5277
+ center: { x: 0, y: 0 },
5278
+ width: courtyardWidthMm,
5279
+ height: courtyardHeightMm,
5318
5280
  layer: "top"
5319
5281
  };
5320
5282
  return {
@@ -5398,23 +5360,15 @@ var sod323f = (raw_params) => {
5398
5360
  stroke_width: 0.1,
5399
5361
  pcb_silkscreen_path_id: ""
5400
5362
  };
5401
- const pl_v = length33.parse(parameters.pl);
5402
- const pw_v = length33.parse(parameters.pw);
5403
- const h_v = length33.parse(parameters.h);
5404
- const w_v = length33.parse(parameters.w);
5405
- const ps_v = length33.parse(parameters.pad_spacing);
5406
- const courtyardPadding = 0.25;
5407
- const crtMinX = -(Math.max(w_v / 2 + 0.2, ps_v / 2 + pl_v / 2) + courtyardPadding);
5408
- const crtMaxX = ps_v / 2 + pl_v / 2 + courtyardPadding;
5409
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
5410
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
5363
+ const courtyardWidthMm = 3.2;
5364
+ const courtyardHeightMm = 1.9;
5411
5365
  const courtyard = {
5412
5366
  type: "pcb_courtyard_rect",
5413
5367
  pcb_courtyard_rect_id: "",
5414
5368
  pcb_component_id: "",
5415
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5416
- width: crtMaxX - crtMinX,
5417
- height: crtMaxY - crtMinY,
5369
+ center: { x: 0, y: 0 },
5370
+ width: courtyardWidthMm,
5371
+ height: courtyardHeightMm,
5418
5372
  layer: "top"
5419
5373
  };
5420
5374
  return {
@@ -5498,23 +5452,15 @@ var sod123f = (raw_params) => {
5498
5452
  stroke_width: 0.1,
5499
5453
  pcb_silkscreen_path_id: ""
5500
5454
  };
5501
- const p_v = length34.parse(parameters.p);
5502
- const pl_v = length34.parse(parameters.pl);
5503
- const pw_v = length34.parse(parameters.pw);
5504
- const h_v = length34.parse(parameters.h);
5505
- const w_v = length34.parse(parameters.w);
5506
- const courtyardPadding = 0.25;
5507
- const crtMinX = -(Math.max(w_v / 2 + 0.2, p_v / 2 + pl_v / 2) + courtyardPadding);
5508
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
5509
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
5510
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
5455
+ const courtyardWidthMm = 4.4;
5456
+ const courtyardHeightMm = 2.3;
5511
5457
  const courtyard = {
5512
5458
  type: "pcb_courtyard_rect",
5513
5459
  pcb_courtyard_rect_id: "",
5514
5460
  pcb_component_id: "",
5515
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5516
- width: crtMaxX - crtMinX,
5517
- height: crtMaxY - crtMinY,
5461
+ center: { x: 0, y: 0 },
5462
+ width: courtyardWidthMm,
5463
+ height: courtyardHeightMm,
5518
5464
  layer: "top"
5519
5465
  };
5520
5466
  return {
@@ -5598,23 +5544,15 @@ var sod123fl = (raw_params) => {
5598
5544
  stroke_width: 0.1,
5599
5545
  pcb_silkscreen_path_id: ""
5600
5546
  };
5601
- const p_v = length35.parse(parameters.p);
5602
- const pl_v = length35.parse(parameters.pl);
5603
- const pw_v = length35.parse(parameters.pw);
5604
- const h_v = length35.parse(parameters.h);
5605
- const w_v = length35.parse(parameters.w);
5606
- const courtyardPadding = 0.25;
5607
- const crtMinX = -(Math.max(w_v / 2 + 0.2, p_v / 2 + pl_v / 2) + courtyardPadding);
5608
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
5609
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
5610
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
5547
+ const courtyardWidthMm = 4.9;
5548
+ const courtyardHeightMm = 2.7;
5611
5549
  const courtyard = {
5612
5550
  type: "pcb_courtyard_rect",
5613
5551
  pcb_courtyard_rect_id: "",
5614
5552
  pcb_component_id: "",
5615
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5616
- width: crtMaxX - crtMinX,
5617
- height: crtMaxY - crtMinY,
5553
+ center: { x: 0, y: 0 },
5554
+ width: courtyardWidthMm,
5555
+ height: courtyardHeightMm,
5618
5556
  layer: "top"
5619
5557
  };
5620
5558
  return {
@@ -5698,23 +5636,15 @@ var sod723 = (raw_params) => {
5698
5636
  stroke_width: 0.1,
5699
5637
  pcb_silkscreen_path_id: ""
5700
5638
  };
5701
- const p_v = length36.parse(parameters.p);
5702
- const pl_v = length36.parse(parameters.pl);
5703
- const pw_v = length36.parse(parameters.pw);
5704
- const h_v = length36.parse(parameters.h);
5705
- const w_v = length36.parse(parameters.w);
5706
- const courtyardPadding = 0.25;
5707
- const crtMinX = -(Math.max(w_v / 2 + 0.1, p_v / 2 + pl_v / 2) + courtyardPadding);
5708
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
5709
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
5710
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
5639
+ const courtyardWidthMm = 2.3;
5640
+ const courtyardHeightMm = 1.5;
5711
5641
  const courtyard = {
5712
5642
  type: "pcb_courtyard_rect",
5713
5643
  pcb_courtyard_rect_id: "",
5714
5644
  pcb_component_id: "",
5715
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5716
- width: crtMaxX - crtMinX,
5717
- height: crtMaxY - crtMinY,
5645
+ center: { x: 0, y: 0 },
5646
+ width: courtyardWidthMm,
5647
+ height: courtyardHeightMm,
5718
5648
  layer: "top"
5719
5649
  };
5720
5650
  return {
@@ -5798,23 +5728,15 @@ var sod128 = (raw_params) => {
5798
5728
  stroke_width: 0.1,
5799
5729
  pcb_silkscreen_path_id: ""
5800
5730
  };
5801
- const p_v = length37.parse(parameters.p);
5802
- const pl_v = length37.parse(parameters.pl);
5803
- const pw_v = length37.parse(parameters.pw);
5804
- const h_v = length37.parse(parameters.h);
5805
- const w_v = length37.parse(parameters.w);
5806
- const courtyardPadding = 0.25;
5807
- const crtMinX = -(Math.max(w_v / 2 + 0.2, p_v / 2 + pl_v / 2) + courtyardPadding);
5808
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
5809
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
5810
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
5731
+ const courtyardWidthMm = 6.3;
5732
+ const courtyardHeightMm = 3;
5811
5733
  const courtyard = {
5812
5734
  type: "pcb_courtyard_rect",
5813
5735
  pcb_courtyard_rect_id: "",
5814
5736
  pcb_component_id: "",
5815
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5816
- width: crtMaxX - crtMinX,
5817
- height: crtMaxY - crtMinY,
5737
+ center: { x: 0, y: 0 },
5738
+ width: courtyardWidthMm,
5739
+ height: courtyardHeightMm,
5818
5740
  layer: "top"
5819
5741
  };
5820
5742
  return {
@@ -5856,6 +5778,18 @@ var sodWithoutParsing11 = (parameters) => {
5856
5778
 
5857
5779
  // src/fn/sot89.ts
5858
5780
  import { z as z47 } from "zod";
5781
+ var sot89_3CourtyardOutline = [
5782
+ { x: -3.0875, y: -2.5 },
5783
+ { x: -3.0875, y: 2.5 },
5784
+ { x: 2.0125, y: 2.5 },
5785
+ { x: 2.0125, y: -2.5 }
5786
+ ];
5787
+ var sot89_5CourtyardOutline = [
5788
+ { x: -2.85, y: -2.5 },
5789
+ { x: -2.85, y: 2.5 },
5790
+ { x: 2.85, y: 2.5 },
5791
+ { x: 2.85, y: -2.5 }
5792
+ ];
5859
5793
  var sot89_def = base_def.extend({
5860
5794
  fn: z47.string(),
5861
5795
  num_pins: z47.union([z47.literal(3), z47.literal(5)]).default(3),
@@ -5906,19 +5840,11 @@ var sot89_3 = (parameters) => {
5906
5840
  type: "pcb_silkscreen_path",
5907
5841
  stroke_width: 0.1
5908
5842
  };
5909
- const courtyardPadding = 0.25;
5910
- const padOuterX = length63 / 2 + (padHeight + centerExtra) / 2;
5911
- const crtMinX = -(padOuterX + courtyardPadding);
5912
- const crtMaxX = length63 / 2 - 1 + courtyardPadding;
5913
- const crtMinY = -(height + courtyardPadding);
5914
- const crtMaxY = height + courtyardPadding;
5915
5843
  const courtyard = {
5916
- type: "pcb_courtyard_rect",
5917
- pcb_courtyard_rect_id: "",
5844
+ type: "pcb_courtyard_outline",
5845
+ pcb_courtyard_outline_id: "",
5918
5846
  pcb_component_id: "",
5919
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5920
- width: crtMaxX - crtMinX,
5921
- height: crtMaxY - crtMinY,
5847
+ outline: sot89_3CourtyardOutline,
5922
5848
  layer: "top"
5923
5849
  };
5924
5850
  return [
@@ -5970,18 +5896,11 @@ var sot89_5 = (parameters) => {
5970
5896
  type: "pcb_silkscreen_path",
5971
5897
  stroke_width: 0.1
5972
5898
  };
5973
- const courtyardPadding = 0.25;
5974
- const crtMinX = -(2.6 + courtyardPadding);
5975
- const crtMaxX = 2.6 + courtyardPadding;
5976
- const crtMinY = -(height + courtyardPadding);
5977
- const crtMaxY = height + courtyardPadding;
5978
5899
  const courtyard = {
5979
- type: "pcb_courtyard_rect",
5980
- pcb_courtyard_rect_id: "",
5900
+ type: "pcb_courtyard_outline",
5901
+ pcb_courtyard_outline_id: "",
5981
5902
  pcb_component_id: "",
5982
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
5983
- width: crtMaxX - crtMinX,
5984
- height: crtMaxY - crtMinY,
5903
+ outline: sot89_5CourtyardOutline,
5985
5904
  layer: "top"
5986
5905
  };
5987
5906
  return [
@@ -6226,23 +6145,15 @@ var minimelf = (raw_params) => {
6226
6145
  stroke_width: 0.1,
6227
6146
  pcb_silkscreen_path_id: ""
6228
6147
  };
6229
- const p_v = length40.parse(parameters.p);
6230
- const pl_v = length40.parse(parameters.pl);
6231
- const pw_v = length40.parse(parameters.pw);
6232
- const h_v = length40.parse(parameters.h);
6233
- const w_v = length40.parse(parameters.w);
6234
- const courtyardPadding = 0.25;
6235
- const crtMinX = -(Math.max(w_v / 2, p_v / 2 + pl_v / 2) + courtyardPadding);
6236
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
6237
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
6238
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
6148
+ const courtyardWidthMm = 5.3;
6149
+ const courtyardHeightMm = 2.2;
6239
6150
  const courtyard = {
6240
6151
  type: "pcb_courtyard_rect",
6241
6152
  pcb_courtyard_rect_id: "",
6242
6153
  pcb_component_id: "",
6243
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
6244
- width: crtMaxX - crtMinX,
6245
- height: crtMaxY - crtMinY,
6154
+ center: { x: 0, y: 0 },
6155
+ width: courtyardWidthMm,
6156
+ height: courtyardHeightMm,
6246
6157
  layer: "top"
6247
6158
  };
6248
6159
  return {
@@ -6322,23 +6233,15 @@ var sod882d = (raw_params) => {
6322
6233
  stroke_width: 0.1,
6323
6234
  pcb_silkscreen_path_id: ""
6324
6235
  };
6325
- const p_v = length41.parse(parameters.p);
6326
- const pl_v = length41.parse(parameters.pl);
6327
- const pw_v = length41.parse(parameters.pw);
6328
- const h_v = length41.parse(parameters.h);
6329
- const w_v = length41.parse(parameters.w);
6330
- const courtyardPadding = 0.25;
6331
- const crtMinX = -(Math.max(w_v / 2, p_v / 2 + pl_v / 2) + courtyardPadding);
6332
- const crtMaxX = Math.max(p_v / 2 + 0.1, p_v / 2 + pl_v / 2) + courtyardPadding;
6333
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
6334
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
6236
+ const courtyardWidthMm = 1.8;
6237
+ const courtyardHeightMm = 1.2;
6335
6238
  const courtyard = {
6336
6239
  type: "pcb_courtyard_rect",
6337
6240
  pcb_courtyard_rect_id: "",
6338
6241
  pcb_component_id: "",
6339
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
6340
- width: crtMaxX - crtMinX,
6341
- height: crtMaxY - crtMinY,
6242
+ center: { x: 0, y: 0 },
6243
+ width: courtyardWidthMm,
6244
+ height: courtyardHeightMm,
6342
6245
  layer: "top"
6343
6246
  };
6344
6247
  return {
@@ -6422,23 +6325,15 @@ var melf = (raw_params) => {
6422
6325
  stroke_width: 0.1,
6423
6326
  pcb_silkscreen_path_id: ""
6424
6327
  };
6425
- const p_v = length42.parse(parameters.p);
6426
- const pl_v = length42.parse(parameters.pl);
6427
- const pw_v = length42.parse(parameters.pw);
6428
- const h_v = length42.parse(parameters.h);
6429
- const w_v = length42.parse(parameters.w);
6430
- const courtyardPadding = 0.25;
6431
- const crtMinX = -(Math.max(w_v / 2, p_v / 2 + pl_v / 2) + courtyardPadding);
6432
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
6433
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
6434
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
6328
+ const courtyardWidthMm = 6.8;
6329
+ const courtyardHeightMm = 3.2;
6435
6330
  const courtyard = {
6436
6331
  type: "pcb_courtyard_rect",
6437
6332
  pcb_courtyard_rect_id: "",
6438
6333
  pcb_component_id: "",
6439
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
6440
- width: crtMaxX - crtMinX,
6441
- height: crtMaxY - crtMinY,
6334
+ center: { x: 0, y: 0 },
6335
+ width: courtyardWidthMm,
6336
+ height: courtyardHeightMm,
6442
6337
  layer: "top"
6443
6338
  };
6444
6339
  return {
@@ -6522,23 +6417,15 @@ var micromelf = (raw_params) => {
6522
6417
  stroke_width: 0.1,
6523
6418
  pcb_silkscreen_path_id: ""
6524
6419
  };
6525
- const p_v = length43.parse(parameters.p);
6526
- const pl_v = length43.parse(parameters.pl);
6527
- const pw_v = length43.parse(parameters.pw);
6528
- const h_v = length43.parse(parameters.h);
6529
- const w_v = length43.parse(parameters.w);
6530
- const courtyardPadding = 0.25;
6531
- const crtMinX = -(Math.max(w_v / 2 + 0.1, p_v / 2 + pl_v / 2) + courtyardPadding);
6532
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
6533
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
6534
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
6420
+ const courtyardWidthMm = 2.9;
6421
+ const courtyardHeightMm = 1.7;
6535
6422
  const courtyard = {
6536
6423
  type: "pcb_courtyard_rect",
6537
6424
  pcb_courtyard_rect_id: "",
6538
6425
  pcb_component_id: "",
6539
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
6540
- width: crtMaxX - crtMinX,
6541
- height: crtMaxY - crtMinY,
6426
+ center: { x: 0, y: 0 },
6427
+ width: courtyardWidthMm,
6428
+ height: courtyardHeightMm,
6542
6429
  layer: "top"
6543
6430
  };
6544
6431
  return {
@@ -6622,22 +6509,15 @@ var sma = (raw_params) => {
6622
6509
  stroke_width: 0.1,
6623
6510
  pcb_silkscreen_path_id: ""
6624
6511
  };
6625
- const p_val = length44.parse(parameters.p);
6626
- const pl_val = length44.parse(parameters.pl);
6627
- const h_val = length44.parse(parameters.h);
6628
- const w_val = length44.parse(parameters.w);
6629
- const courtyardPadding = 0.25;
6630
- const crtMinX = -(w_val / 2 + 0.5 + courtyardPadding);
6631
- const crtMaxX = p_val / 2 + pl_val / 2 + courtyardPadding;
6632
- const crtMinY = -(h_val / 2 + courtyardPadding);
6633
- const crtMaxY = h_val / 2 + courtyardPadding;
6512
+ const courtyardWidthMm = 7;
6513
+ const courtyardHeightMm = 3.5;
6634
6514
  const courtyard = {
6635
6515
  type: "pcb_courtyard_rect",
6636
6516
  pcb_courtyard_rect_id: "",
6637
6517
  pcb_component_id: "",
6638
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
6639
- width: crtMaxX - crtMinX,
6640
- height: crtMaxY - crtMinY,
6518
+ center: { x: 0, y: 0 },
6519
+ width: courtyardWidthMm,
6520
+ height: courtyardHeightMm,
6641
6521
  layer: "top"
6642
6522
  };
6643
6523
  return {
@@ -6720,23 +6600,15 @@ var smf = (raw_params) => {
6720
6600
  stroke_width: 0.1,
6721
6601
  pcb_silkscreen_path_id: ""
6722
6602
  };
6723
- const p_v = length45.parse(parameters.p);
6724
- const pl_v = length45.parse(parameters.pl);
6725
- const pw_v = length45.parse(parameters.pw);
6726
- const h_v = length45.parse(parameters.h);
6727
- const w_v = length45.parse(parameters.w);
6728
- const courtyardPadding = 0.25;
6729
- const crtMinX = -(Math.max(w_v / 2, p_v / 2 + pl_v / 2) + courtyardPadding);
6730
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
6731
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
6732
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
6603
+ const courtyardWidthMm = 4.7;
6604
+ const courtyardHeightMm = 2.3;
6733
6605
  const courtyard = {
6734
6606
  type: "pcb_courtyard_rect",
6735
6607
  pcb_courtyard_rect_id: "",
6736
6608
  pcb_component_id: "",
6737
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
6738
- width: crtMaxX - crtMinX,
6739
- height: crtMaxY - crtMinY,
6609
+ center: { x: 0, y: 0 },
6610
+ width: courtyardWidthMm,
6611
+ height: courtyardHeightMm,
6740
6612
  layer: "top"
6741
6613
  };
6742
6614
  return {
@@ -6820,23 +6692,15 @@ var smb = (raw_params) => {
6820
6692
  stroke_width: 0.1,
6821
6693
  pcb_silkscreen_path_id: ""
6822
6694
  };
6823
- const p_v = length46.parse(parameters.p);
6824
- const pl_v = length46.parse(parameters.pl);
6825
- const pw_v = length46.parse(parameters.pw);
6826
- const h_v = length46.parse(parameters.h);
6827
- const w_v = length46.parse(parameters.w);
6828
- const courtyardPadding = 0.25;
6829
- const crtMinX = -(Math.max(w_v / 2 + 0.1, p_v / 2 + pl_v / 2) + courtyardPadding);
6830
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
6831
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
6832
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
6695
+ const courtyardWidthMm = 7.3;
6696
+ const courtyardHeightMm = 4.5;
6833
6697
  const courtyard = {
6834
6698
  type: "pcb_courtyard_rect",
6835
6699
  pcb_courtyard_rect_id: "",
6836
6700
  pcb_component_id: "",
6837
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
6838
- width: crtMaxX - crtMinX,
6839
- height: crtMaxY - crtMinY,
6701
+ center: { x: 0, y: 0 },
6702
+ width: courtyardWidthMm,
6703
+ height: courtyardHeightMm,
6840
6704
  layer: "top"
6841
6705
  };
6842
6706
  return {
@@ -6916,23 +6780,15 @@ var smc = (raw_params) => {
6916
6780
  stroke_width: 0.1,
6917
6781
  pcb_silkscreen_path_id: ""
6918
6782
  };
6919
- const p_v = length47.parse(parameters.p);
6920
- const pl_v = length47.parse(parameters.pl);
6921
- const pw_v = length47.parse(parameters.pw);
6922
- const h_v = length47.parse(parameters.h);
6923
- const w_v = length47.parse(parameters.w);
6924
- const courtyardPadding = 0.25;
6925
- const crtMinX = -(Math.max(w_v / 2 + 0.8, p_v / 2 + pl_v / 2) + courtyardPadding);
6926
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
6927
- const crtMinY = -(Math.max(h_v / 2 - 0.8, pw_v / 2) + courtyardPadding);
6928
- const crtMaxY = Math.max(h_v / 2 - 0.8, pw_v / 2) + courtyardPadding;
6783
+ const courtyardWidthMm = 9.8;
6784
+ const courtyardHeightMm = 6.7;
6929
6785
  const courtyard = {
6930
6786
  type: "pcb_courtyard_rect",
6931
6787
  pcb_courtyard_rect_id: "",
6932
6788
  pcb_component_id: "",
6933
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
6934
- width: crtMaxX - crtMinX,
6935
- height: crtMaxY - crtMinY,
6789
+ center: { x: 0, y: 0 },
6790
+ width: courtyardWidthMm,
6791
+ height: courtyardHeightMm,
6936
6792
  layer: "top"
6937
6793
  };
6938
6794
  return {
@@ -7785,23 +7641,15 @@ var sod110 = (raw_params) => {
7785
7641
  stroke_width: 0.1,
7786
7642
  pcb_silkscreen_path_id: ""
7787
7643
  };
7788
- const p_v = length49.parse(parameters.p);
7789
- const pl_v = length49.parse(parameters.pl);
7790
- const pw_v = length49.parse(parameters.pw);
7791
- const h_v = length49.parse(parameters.h);
7792
- const w_v = length49.parse(parameters.w);
7793
- const courtyardPadding = 0.25;
7794
- const crtMinX = -(Math.max(w_v / 2, p_v / 2 + pl_v / 2) + courtyardPadding);
7795
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
7796
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
7797
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
7644
+ const courtyardWidthMm = 3.2;
7645
+ const courtyardHeightMm = 2;
7798
7646
  const courtyard = {
7799
7647
  type: "pcb_courtyard_rect",
7800
7648
  pcb_courtyard_rect_id: "",
7801
7649
  pcb_component_id: "",
7802
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
7803
- width: crtMaxX - crtMinX,
7804
- height: crtMaxY - crtMinY,
7650
+ center: { x: 0, y: 0 },
7651
+ width: courtyardWidthMm,
7652
+ height: courtyardHeightMm,
7805
7653
  layer: "top"
7806
7654
  };
7807
7655
  return {
@@ -8182,23 +8030,15 @@ var sod323w = (raw_params) => {
8182
8030
  stroke_width: 0.1,
8183
8031
  pcb_silkscreen_path_id: ""
8184
8032
  };
8185
- const pl_v = length52.parse(parameters.pl);
8186
- const pw_v = length52.parse(parameters.pw);
8187
- const h_v = length52.parse(parameters.h);
8188
- const w_v = length52.parse(parameters.w);
8189
- const ps_v = length52.parse(parameters.pad_spacing);
8190
- const courtyardPadding = 0.25;
8191
- const crtMinX = -(Math.max(w_v / 2 + 0.2, ps_v / 2 + pl_v / 2) + courtyardPadding);
8192
- const crtMaxX = ps_v / 2 + pl_v / 2 + courtyardPadding;
8193
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
8194
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
8033
+ const courtyardWidthMm = 4.3;
8034
+ const courtyardHeightMm = 2.15;
8195
8035
  const courtyard = {
8196
8036
  type: "pcb_courtyard_rect",
8197
8037
  pcb_courtyard_rect_id: "",
8198
8038
  pcb_component_id: "",
8199
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
8200
- width: crtMaxX - crtMinX,
8201
- height: crtMaxY - crtMinY,
8039
+ center: { x: 0, y: 0 },
8040
+ width: courtyardWidthMm,
8041
+ height: courtyardHeightMm,
8202
8042
  layer: "top"
8203
8043
  };
8204
8044
  return {
@@ -8282,23 +8122,15 @@ var sod323fl = (raw_params) => {
8282
8122
  stroke_width: 0.1,
8283
8123
  pcb_silkscreen_path_id: ""
8284
8124
  };
8285
- const pl_v = length53.parse(parameters.pl);
8286
- const pw_v = length53.parse(parameters.pw);
8287
- const h_v = length53.parse(parameters.h);
8288
- const w_v = length53.parse(parameters.w);
8289
- const ps_v = length53.parse(parameters.pad_spacing);
8290
- const courtyardPadding = 0.25;
8291
- const crtMinX = -(Math.max(w_v / 2 + 0.2, ps_v / 2 + pl_v / 2) + courtyardPadding);
8292
- const crtMaxX = ps_v / 2 + pl_v / 2 + courtyardPadding;
8293
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
8294
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
8125
+ const courtyardWidthMm = 3.7;
8126
+ const courtyardHeightMm = 2.15;
8295
8127
  const courtyard = {
8296
8128
  type: "pcb_courtyard_rect",
8297
8129
  pcb_courtyard_rect_id: "",
8298
8130
  pcb_component_id: "",
8299
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
8300
- width: crtMaxX - crtMinX,
8301
- height: crtMaxY - crtMinY,
8131
+ center: { x: 0, y: 0 },
8132
+ width: courtyardWidthMm,
8133
+ height: courtyardHeightMm,
8302
8134
  layer: "top"
8303
8135
  };
8304
8136
  return {
@@ -8902,6 +8734,12 @@ var sot457 = (rawParams) => {
8902
8734
  // src/fn/sot963.ts
8903
8735
  import { z as z70 } from "zod";
8904
8736
  import { length as length57 } from "circuit-json";
8737
+ var sot963CourtyardOutline = [
8738
+ { x: -0.8, y: 0.75 },
8739
+ { x: 0.8, y: 0.75 },
8740
+ { x: 0.8, y: -0.75 },
8741
+ { x: -0.8, y: -0.75 }
8742
+ ];
8905
8743
  var sot963_def = base_def.extend({
8906
8744
  fn: z70.string(),
8907
8745
  num_pins: z70.literal(6).default(6),
@@ -8961,18 +8799,11 @@ var sot963 = (raw_params) => {
8961
8799
  pcb_silkscreen_path_id: "pin_marker_1"
8962
8800
  };
8963
8801
  const silkscreenRefText = silkscreenRef(0, h / 2 + 0.4, 0.25);
8964
- const courtyardPadding = 0.25;
8965
- const crtMinX = -(w / 2 + courtyardPadding);
8966
- const crtMaxX = w / 2 + courtyardPadding;
8967
- const crtMinY = -(Math.max(h / 2, p + pw / 2) + courtyardPadding);
8968
- const crtMaxY = Math.max(h / 2, p + pw / 2) + courtyardPadding;
8969
8802
  const courtyard = {
8970
- type: "pcb_courtyard_rect",
8971
- pcb_courtyard_rect_id: "",
8803
+ type: "pcb_courtyard_outline",
8804
+ pcb_courtyard_outline_id: "",
8972
8805
  pcb_component_id: "",
8973
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
8974
- width: crtMaxX - crtMinX,
8975
- height: crtMaxY - crtMinY,
8806
+ outline: sot963CourtyardOutline,
8976
8807
  layer: "top"
8977
8808
  };
8978
8809
  return {
@@ -9267,23 +9098,15 @@ var smbf = (raw_params) => {
9267
9098
  stroke_width: 0.1,
9268
9099
  pcb_silkscreen_path_id: ""
9269
9100
  };
9270
- const p_v = length59.parse(parameters.p);
9271
- const pl_v = length59.parse(parameters.pl);
9272
- const pw_v = length59.parse(parameters.pw);
9273
- const h_v = length59.parse(parameters.h);
9274
- const w_v = length59.parse(parameters.w);
9275
- const courtyardPadding = 0.25;
9276
- const crtMinX = -(Math.max(w_v / 2 + 0.3, p_v / 2 + pl_v / 2) + courtyardPadding);
9277
- const crtMaxX = p_v / 2 + pl_v / 2 + courtyardPadding;
9278
- const crtMinY = -(Math.max(h_v / 2, pw_v / 2) + courtyardPadding);
9279
- const crtMaxY = Math.max(h_v / 2, pw_v / 2) + courtyardPadding;
9101
+ const courtyardWidthMm = 7;
9102
+ const courtyardHeightMm = 3.5;
9280
9103
  const courtyard = {
9281
9104
  type: "pcb_courtyard_rect",
9282
9105
  pcb_courtyard_rect_id: "",
9283
9106
  pcb_component_id: "",
9284
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
9285
- width: crtMaxX - crtMinX,
9286
- height: crtMaxY - crtMinY,
9107
+ center: { x: 0, y: 0 },
9108
+ width: courtyardWidthMm,
9109
+ height: courtyardHeightMm,
9287
9110
  layer: "top"
9288
9111
  };
9289
9112
  return {
@@ -9324,6 +9147,24 @@ var smbfWithoutParsing = (parameters) => {
9324
9147
 
9325
9148
  // src/fn/sot323.ts
9326
9149
  import { z as z74 } from "zod";
9150
+ var sot323CourtyardOutline = [
9151
+ { x: -1.45, y: 0.98 },
9152
+ { x: -0.73, y: 0.98 },
9153
+ { x: -0.73, y: 1.1 },
9154
+ { x: 0.73, y: 1.1 },
9155
+ { x: 0.73, y: 0.33 },
9156
+ { x: 1.45, y: 0.33 },
9157
+ { x: 1.45, y: -0.33 },
9158
+ { x: 0.73, y: -0.33 },
9159
+ { x: 0.73, y: -1.1 },
9160
+ { x: -0.73, y: -1.1 },
9161
+ { x: -0.73, y: -0.98 },
9162
+ { x: -1.45, y: -0.98 },
9163
+ { x: -1.45, y: -0.32 },
9164
+ { x: -0.73, y: -0.32 },
9165
+ { x: -0.73, y: 0.32 },
9166
+ { x: -1.45, y: 0.32 }
9167
+ ];
9327
9168
  var sot323_def = base_def.extend({
9328
9169
  fn: z74.string(),
9329
9170
  num_pins: z74.number().default(3),
@@ -9411,22 +9252,11 @@ var sot323_3 = (parameters) => {
9411
9252
  type: "pcb_silkscreen_path",
9412
9253
  stroke_width: 0.1
9413
9254
  };
9414
- const p = Number.parseFloat(parameters.p);
9415
- const pl = Number.parseFloat(parameters.pl);
9416
- const pw = Number.parseFloat(parameters.pw);
9417
- const h = Number.parseFloat(parameters.h);
9418
- const courtyardPadding = 0.25;
9419
- const crtMinX = -(p + pl / 2 + courtyardPadding);
9420
- const crtMaxX = p + pl / 2 + courtyardPadding;
9421
- const crtMinY = -(Math.max(h / 2 + 0.3, 0.65 + pw / 2) + courtyardPadding);
9422
- const crtMaxY = Math.max(h / 2 + 0.3, 0.65 + pw / 2) + courtyardPadding;
9423
9255
  const courtyard = {
9424
- type: "pcb_courtyard_rect",
9425
- pcb_courtyard_rect_id: "",
9256
+ type: "pcb_courtyard_outline",
9257
+ pcb_courtyard_outline_id: "",
9426
9258
  pcb_component_id: "",
9427
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
9428
- width: crtMaxX - crtMinX,
9429
- height: crtMaxY - crtMinY,
9259
+ outline: sot323CourtyardOutline,
9430
9260
  layer: "top"
9431
9261
  };
9432
9262
  return [
@@ -9724,6 +9554,20 @@ var sotWithoutParsing = (parameters) => {
9724
9554
 
9725
9555
  // src/fn/sot343.ts
9726
9556
  import { z as z78 } from "zod";
9557
+ var sot343CourtyardOutline = [
9558
+ { x: -1.703, y: 0.98 },
9559
+ { x: -0.983, y: 0.98 },
9560
+ { x: -0.983, y: 1.1 },
9561
+ { x: 0.477, y: 1.1 },
9562
+ { x: 0.477, y: 0.98 },
9563
+ { x: 1.197, y: 0.98 },
9564
+ { x: 1.197, y: -0.98 },
9565
+ { x: 0.477, y: -0.98 },
9566
+ { x: 0.477, y: -1.1 },
9567
+ { x: -0.983, y: -1.1 },
9568
+ { x: -0.983, y: -0.98 },
9569
+ { x: -1.703, y: -0.98 }
9570
+ ];
9727
9571
  var sot343_def = base_def.extend({
9728
9572
  fn: z78.string(),
9729
9573
  num_pins: z78.number().default(4),
@@ -9818,18 +9662,11 @@ var sot343_4 = (parameters) => {
9818
9662
  type: "pcb_silkscreen_path",
9819
9663
  stroke_width: 0.1
9820
9664
  };
9821
- const courtyardPadding = 0.25;
9822
- const crtMinX = minX - pl / 2 - courtyardPadding;
9823
- const crtMaxX = maxX + pl / 2 + courtyardPadding;
9824
- const crtMinY = -(offsetY + courtyardPadding);
9825
- const crtMaxY = offsetY + courtyardPadding;
9826
9665
  const courtyard = {
9827
- type: "pcb_courtyard_rect",
9828
- pcb_courtyard_rect_id: "",
9666
+ type: "pcb_courtyard_outline",
9667
+ pcb_courtyard_outline_id: "",
9829
9668
  pcb_component_id: "",
9830
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
9831
- width: crtMaxX - crtMinX,
9832
- height: crtMaxY - crtMinY,
9669
+ outline: sot343CourtyardOutline,
9833
9670
  layer: "top"
9834
9671
  };
9835
9672
  return [
@@ -10443,6 +10280,18 @@ var mountedpcbmodule = (raw_params) => {
10443
10280
 
10444
10281
  // src/fn/to92l.ts
10445
10282
  import { z as z81 } from "zod";
10283
+ var to92lCourtyardOutline = [
10284
+ { x: -1.45, y: 2.75 },
10285
+ { x: -1.45, y: -1.85 },
10286
+ { x: 4.05, y: -1.85 },
10287
+ { x: 4.05, y: 2.75 }
10288
+ ];
10289
+ var to92lInlineCourtyardOutline = [
10290
+ { x: -1.55, y: 2.75 },
10291
+ { x: -1.55, y: -1.85 },
10292
+ { x: 3.95, y: -1.85 },
10293
+ { x: 3.95, y: 2.75 }
10294
+ ];
10446
10295
  var to92l_def = base_def.extend({
10447
10296
  fn: z81.string(),
10448
10297
  num_pins: z81.number().default(3),
@@ -10501,18 +10350,11 @@ var to92l = (raw_params) => {
10501
10350
  cy + radius + 1,
10502
10351
  0.5
10503
10352
  );
10504
- const courtyardPadding = 0.25;
10505
- const crtMinX = cx - radius - courtyardPadding;
10506
- const crtMaxX = cx + radius + courtyardPadding;
10507
- const crtMaxY = cy + radius + courtyardPadding;
10508
- const crtMinY = y_bottom - courtyardPadding;
10509
10353
  const courtyard = {
10510
- type: "pcb_courtyard_rect",
10511
- pcb_courtyard_rect_id: "",
10354
+ type: "pcb_courtyard_outline",
10355
+ pcb_courtyard_outline_id: "",
10512
10356
  pcb_component_id: "",
10513
- center: { x: (crtMinX + crtMaxX) / 2, y: (crtMinY + crtMaxY) / 2 },
10514
- width: crtMaxX - crtMinX,
10515
- height: crtMaxY - crtMinY,
10357
+ outline: parameters.inline ? to92lInlineCourtyardOutline : to92lCourtyardOutline,
10516
10358
  layer: "top"
10517
10359
  };
10518
10360
  return {