@tscircuit/footprinter 0.0.115 → 0.0.117

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.d.ts CHANGED
@@ -1001,6 +1001,7 @@ type Footprinter = {
1001
1001
  hc49: () => FootprinterParamsBuilder<"p" | "id" | "od" | "w" | "h">;
1002
1002
  sot235: () => FootprinterParamsBuilder<"h" | "p" | "pl" | "pw">;
1003
1003
  to92: () => FootprinterParamsBuilder<"w" | "h" | "p" | "id" | "od">;
1004
+ minimelf: () => FootprinterParamsBuilder<"w" | "h" | "p" | "pw" | "pl">;
1004
1005
  lqfp: (num_pins?: number) => FootprinterParamsBuilder<"w" | "h" | "pl" | "pw">;
1005
1006
  pushbutton: () => FootprinterParamsBuilder<"tllabel" | "trlabel" | "bllabel" | "brlabel">;
1006
1007
  stampboard: () => FootprinterParamsBuilder<"w" | "h" | "left" | "right" | "top" | "bottom" | "p" | "pw" | "pl" | "innerhole" | "innerholeedgedistance">;
package/dist/index.js CHANGED
@@ -19,6 +19,7 @@ __export(fn_exports, {
19
19
  lqfp: () => lqfp,
20
20
  melf: () => melf,
21
21
  micromelf: () => micromelf,
22
+ minimelf: () => minimelf,
22
23
  mlp: () => mlp,
23
24
  ms012: () => ms012,
24
25
  ms013: () => ms013,
@@ -3153,23 +3154,23 @@ var sodWithoutParsing7 = (parameters) => {
3153
3154
  return pads;
3154
3155
  };
3155
3156
 
3156
- // src/fn/sod882d.ts
3157
+ // src/fn/minimelf.ts
3157
3158
  import { z as z29 } from "zod";
3158
3159
  import { length as length23 } from "circuit-json";
3159
- var sod_def8 = z29.object({
3160
+ var minimelf_def = z29.object({
3160
3161
  fn: z29.string(),
3161
3162
  num_pins: z29.literal(2).default(2),
3162
- w: z29.string().default("1.90mm"),
3163
- h: z29.string().default("1.33mm"),
3164
- pl: z29.string().default("0.5mm"),
3165
- pw: z29.string().default("0.7mm"),
3166
- pad_spacing: z29.string().default("0.8mm")
3163
+ w: z29.string().default("5.40mm"),
3164
+ h: z29.string().default("2.30mm"),
3165
+ pl: z29.string().default("1.30mm"),
3166
+ pw: z29.string().default("1.70mm"),
3167
+ p: z29.string().default("3.5mm")
3167
3168
  });
3168
- var sod882d = (raw_params) => {
3169
- const parameters = sod_def8.parse(raw_params);
3169
+ var minimelf = (raw_params) => {
3170
+ const parameters = minimelf_def.parse(raw_params);
3170
3171
  const silkscreenRefText = silkscreenRef(
3171
3172
  0,
3172
- length23.parse(parameters.h) + 0.1,
3173
+ length23.parse(parameters.h) / 2 + 0.4,
3173
3174
  0.3
3174
3175
  );
3175
3176
  const silkscreenLine = {
@@ -3178,7 +3179,7 @@ var sod882d = (raw_params) => {
3178
3179
  pcb_component_id: "",
3179
3180
  route: [
3180
3181
  {
3181
- x: length23.parse(parameters.pad_spacing) / 2 + 0.1,
3182
+ x: length23.parse(parameters.p) / 2,
3182
3183
  y: length23.parse(parameters.h) / 2
3183
3184
  },
3184
3185
  {
@@ -3190,7 +3191,7 @@ var sod882d = (raw_params) => {
3190
3191
  y: -length23.parse(parameters.h) / 2
3191
3192
  },
3192
3193
  {
3193
- x: length23.parse(parameters.pad_spacing) / 2 + 0.1,
3194
+ x: length23.parse(parameters.p) / 2,
3194
3195
  y: -length23.parse(parameters.h) / 2
3195
3196
  }
3196
3197
  ],
@@ -3198,27 +3199,23 @@ var sod882d = (raw_params) => {
3198
3199
  pcb_silkscreen_path_id: ""
3199
3200
  };
3200
3201
  return {
3201
- circuitJson: sodWithoutParsing8(parameters).concat(
3202
+ circuitJson: miniMelfWithoutParsing(parameters).concat(
3202
3203
  silkscreenLine,
3203
3204
  silkscreenRefText
3204
3205
  ),
3205
3206
  parameters
3206
3207
  };
3207
3208
  };
3208
- var getSodCoords8 = (parameters) => {
3209
- const { pn, pad_spacing } = parameters;
3210
- if (pn === 1) {
3211
- return { x: -pad_spacing / 2, y: 0 };
3212
- } else {
3213
- return { x: pad_spacing / 2, y: 0 };
3214
- }
3209
+ var getMiniMelfCoords = (parameters) => {
3210
+ const { pn, p } = parameters;
3211
+ return pn === 1 ? { x: -p / 2, y: 0 } : { x: p / 2, y: 0 };
3215
3212
  };
3216
- var sodWithoutParsing8 = (parameters) => {
3213
+ var miniMelfWithoutParsing = (parameters) => {
3217
3214
  const pads = [];
3218
3215
  for (let i = 1; i <= parameters.num_pins; i++) {
3219
- const { x, y } = getSodCoords8({
3216
+ const { x, y } = getMiniMelfCoords({
3220
3217
  pn: i,
3221
- pad_spacing: Number.parseFloat(parameters.pad_spacing)
3218
+ p: Number.parseFloat(parameters.p)
3222
3219
  });
3223
3220
  pads.push(
3224
3221
  rectpad(
@@ -3233,23 +3230,23 @@ var sodWithoutParsing8 = (parameters) => {
3233
3230
  return pads;
3234
3231
  };
3235
3232
 
3236
- // src/fn/melf.ts
3233
+ // src/fn/sod882d.ts
3237
3234
  import { z as z30 } from "zod";
3238
3235
  import { length as length24 } from "circuit-json";
3239
- var melf_def = z30.object({
3236
+ var sod_def8 = z30.object({
3240
3237
  fn: z30.string(),
3241
3238
  num_pins: z30.literal(2).default(2),
3242
- w: z30.string().default("7.0mm"),
3243
- h: z30.string().default("3.35mm"),
3244
- pl: z30.string().default("1.50mm"),
3245
- pw: z30.string().default("2.70mm"),
3246
- pad_spacing: z30.string().default("4.8mm")
3239
+ w: z30.string().default("1.90mm"),
3240
+ h: z30.string().default("1.33mm"),
3241
+ pl: z30.string().default("0.5mm"),
3242
+ pw: z30.string().default("0.7mm"),
3243
+ pad_spacing: z30.string().default("0.8mm")
3247
3244
  });
3248
- var melf = (raw_params) => {
3249
- const parameters = melf_def.parse(raw_params);
3245
+ var sod882d = (raw_params) => {
3246
+ const parameters = sod_def8.parse(raw_params);
3250
3247
  const silkscreenRefText = silkscreenRef(
3251
3248
  0,
3252
- length24.parse(parameters.h),
3249
+ length24.parse(parameters.h) + 0.1,
3253
3250
  0.3
3254
3251
  );
3255
3252
  const silkscreenLine = {
@@ -3258,7 +3255,7 @@ var melf = (raw_params) => {
3258
3255
  pcb_component_id: "",
3259
3256
  route: [
3260
3257
  {
3261
- x: length24.parse(parameters.pad_spacing) / 2,
3258
+ x: length24.parse(parameters.pad_spacing) / 2 + 0.1,
3262
3259
  y: length24.parse(parameters.h) / 2
3263
3260
  },
3264
3261
  {
@@ -3270,7 +3267,7 @@ var melf = (raw_params) => {
3270
3267
  y: -length24.parse(parameters.h) / 2
3271
3268
  },
3272
3269
  {
3273
- x: length24.parse(parameters.pad_spacing) / 2,
3270
+ x: length24.parse(parameters.pad_spacing) / 2 + 0.1,
3274
3271
  y: -length24.parse(parameters.h) / 2
3275
3272
  }
3276
3273
  ],
@@ -3278,14 +3275,14 @@ var melf = (raw_params) => {
3278
3275
  pcb_silkscreen_path_id: ""
3279
3276
  };
3280
3277
  return {
3281
- circuitJson: melfWithoutParsing(parameters).concat(
3278
+ circuitJson: sodWithoutParsing8(parameters).concat(
3282
3279
  silkscreenLine,
3283
3280
  silkscreenRefText
3284
3281
  ),
3285
3282
  parameters
3286
3283
  };
3287
3284
  };
3288
- var getMelfCoords = (parameters) => {
3285
+ var getSodCoords8 = (parameters) => {
3289
3286
  const { pn, pad_spacing } = parameters;
3290
3287
  if (pn === 1) {
3291
3288
  return { x: -pad_spacing / 2, y: 0 };
@@ -3293,10 +3290,10 @@ var getMelfCoords = (parameters) => {
3293
3290
  return { x: pad_spacing / 2, y: 0 };
3294
3291
  }
3295
3292
  };
3296
- var melfWithoutParsing = (parameters) => {
3293
+ var sodWithoutParsing8 = (parameters) => {
3297
3294
  const pads = [];
3298
3295
  for (let i = 1; i <= parameters.num_pins; i++) {
3299
- const { x, y } = getMelfCoords({
3296
+ const { x, y } = getSodCoords8({
3300
3297
  pn: i,
3301
3298
  pad_spacing: Number.parseFloat(parameters.pad_spacing)
3302
3299
  });
@@ -3313,20 +3310,20 @@ var melfWithoutParsing = (parameters) => {
3313
3310
  return pads;
3314
3311
  };
3315
3312
 
3316
- // src/fn/micromelf.ts
3313
+ // src/fn/melf.ts
3317
3314
  import { z as z31 } from "zod";
3318
3315
  import { length as length25 } from "circuit-json";
3319
- var micromelf_def = z31.object({
3316
+ var melf_def = z31.object({
3320
3317
  fn: z31.string(),
3321
3318
  num_pins: z31.literal(2).default(2),
3322
- w: z31.string().default("3.0mm"),
3323
- h: z31.string().default("1.80mm"),
3324
- pl: z31.string().default("0.80mm"),
3325
- pw: z31.string().default("1.20mm"),
3326
- pad_spacing: z31.string().default("1.6mm")
3319
+ w: z31.string().default("7.0mm"),
3320
+ h: z31.string().default("3.35mm"),
3321
+ pl: z31.string().default("1.50mm"),
3322
+ pw: z31.string().default("2.70mm"),
3323
+ pad_spacing: z31.string().default("4.8mm")
3327
3324
  });
3328
- var micromelf = (raw_params) => {
3329
- const parameters = micromelf_def.parse(raw_params);
3325
+ var melf = (raw_params) => {
3326
+ const parameters = melf_def.parse(raw_params);
3330
3327
  const silkscreenRefText = silkscreenRef(
3331
3328
  0,
3332
3329
  length25.parse(parameters.h),
@@ -3342,11 +3339,11 @@ var micromelf = (raw_params) => {
3342
3339
  y: length25.parse(parameters.h) / 2
3343
3340
  },
3344
3341
  {
3345
- x: -length25.parse(parameters.w) / 2 - 0.1,
3342
+ x: -length25.parse(parameters.w) / 2,
3346
3343
  y: length25.parse(parameters.h) / 2
3347
3344
  },
3348
3345
  {
3349
- x: -length25.parse(parameters.w) / 2 - 0.1,
3346
+ x: -length25.parse(parameters.w) / 2,
3350
3347
  y: -length25.parse(parameters.h) / 2
3351
3348
  },
3352
3349
  {
@@ -3357,6 +3354,86 @@ var micromelf = (raw_params) => {
3357
3354
  stroke_width: 0.1,
3358
3355
  pcb_silkscreen_path_id: ""
3359
3356
  };
3357
+ return {
3358
+ circuitJson: melfWithoutParsing(parameters).concat(
3359
+ silkscreenLine,
3360
+ silkscreenRefText
3361
+ ),
3362
+ parameters
3363
+ };
3364
+ };
3365
+ var getMelfCoords = (parameters) => {
3366
+ const { pn, pad_spacing } = parameters;
3367
+ if (pn === 1) {
3368
+ return { x: -pad_spacing / 2, y: 0 };
3369
+ } else {
3370
+ return { x: pad_spacing / 2, y: 0 };
3371
+ }
3372
+ };
3373
+ var melfWithoutParsing = (parameters) => {
3374
+ const pads = [];
3375
+ for (let i = 1; i <= parameters.num_pins; i++) {
3376
+ const { x, y } = getMelfCoords({
3377
+ pn: i,
3378
+ pad_spacing: Number.parseFloat(parameters.pad_spacing)
3379
+ });
3380
+ pads.push(
3381
+ rectpad(
3382
+ i,
3383
+ x,
3384
+ y,
3385
+ Number.parseFloat(parameters.pl),
3386
+ Number.parseFloat(parameters.pw)
3387
+ )
3388
+ );
3389
+ }
3390
+ return pads;
3391
+ };
3392
+
3393
+ // src/fn/micromelf.ts
3394
+ import { z as z32 } from "zod";
3395
+ import { length as length26 } from "circuit-json";
3396
+ var micromelf_def = z32.object({
3397
+ fn: z32.string(),
3398
+ num_pins: z32.literal(2).default(2),
3399
+ w: z32.string().default("3.0mm"),
3400
+ h: z32.string().default("1.80mm"),
3401
+ pl: z32.string().default("0.80mm"),
3402
+ pw: z32.string().default("1.20mm"),
3403
+ pad_spacing: z32.string().default("1.6mm")
3404
+ });
3405
+ var micromelf = (raw_params) => {
3406
+ const parameters = micromelf_def.parse(raw_params);
3407
+ const silkscreenRefText = silkscreenRef(
3408
+ 0,
3409
+ length26.parse(parameters.h),
3410
+ 0.3
3411
+ );
3412
+ const silkscreenLine = {
3413
+ type: "pcb_silkscreen_path",
3414
+ layer: "top",
3415
+ pcb_component_id: "",
3416
+ route: [
3417
+ {
3418
+ x: length26.parse(parameters.pad_spacing) / 2,
3419
+ y: length26.parse(parameters.h) / 2
3420
+ },
3421
+ {
3422
+ x: -length26.parse(parameters.w) / 2 - 0.1,
3423
+ y: length26.parse(parameters.h) / 2
3424
+ },
3425
+ {
3426
+ x: -length26.parse(parameters.w) / 2 - 0.1,
3427
+ y: -length26.parse(parameters.h) / 2
3428
+ },
3429
+ {
3430
+ x: length26.parse(parameters.pad_spacing) / 2,
3431
+ y: -length26.parse(parameters.h) / 2
3432
+ }
3433
+ ],
3434
+ stroke_width: 0.1,
3435
+ pcb_silkscreen_path_id: ""
3436
+ };
3360
3437
  return {
3361
3438
  circuitJson: microMelfWithoutParsing(parameters).concat(
3362
3439
  silkscreenLine,