@tscircuit/footprinter 0.0.113 → 0.0.115
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/README.md +2 -0
- package/dist/index.js +108 -27
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -61,6 +61,8 @@ fp.dip(4).w(7.62).socket()
|
|
|
61
61
|
|
|
62
62
|
Watch this [getting started with footprinter contribution guide!](https://blog.tscircuit.com/p/learn-how-to-contribute-to-tscircuits?utm_campaign=post&utm_medium=web)
|
|
63
63
|
|
|
64
|
+
https://github.com/user-attachments/assets/72596154-1410-4b2d-9e35-0e2d1af9415f
|
|
65
|
+
|
|
64
66
|
## Footprinter Strings
|
|
65
67
|
|
|
66
68
|
A footprinter string is a string that maps to a set of builder calls.
|
package/dist/index.js
CHANGED
|
@@ -36,6 +36,7 @@ __export(fn_exports, {
|
|
|
36
36
|
sod523: () => sod523,
|
|
37
37
|
sod723: () => sod723,
|
|
38
38
|
sod882: () => sod882,
|
|
39
|
+
sod882d: () => sod882d,
|
|
39
40
|
soic: () => soic,
|
|
40
41
|
sop8: () => sop8,
|
|
41
42
|
sot23: () => sot23,
|
|
@@ -3152,23 +3153,23 @@ var sodWithoutParsing7 = (parameters) => {
|
|
|
3152
3153
|
return pads;
|
|
3153
3154
|
};
|
|
3154
3155
|
|
|
3155
|
-
// src/fn/
|
|
3156
|
+
// src/fn/sod882d.ts
|
|
3156
3157
|
import { z as z29 } from "zod";
|
|
3157
3158
|
import { length as length23 } from "circuit-json";
|
|
3158
|
-
var
|
|
3159
|
+
var sod_def8 = z29.object({
|
|
3159
3160
|
fn: z29.string(),
|
|
3160
3161
|
num_pins: z29.literal(2).default(2),
|
|
3161
|
-
w: z29.string().default("
|
|
3162
|
-
h: z29.string().default("
|
|
3163
|
-
pl: z29.string().default("
|
|
3164
|
-
pw: z29.string().default("
|
|
3165
|
-
pad_spacing: z29.string().default("
|
|
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")
|
|
3166
3167
|
});
|
|
3167
|
-
var
|
|
3168
|
-
const parameters =
|
|
3168
|
+
var sod882d = (raw_params) => {
|
|
3169
|
+
const parameters = sod_def8.parse(raw_params);
|
|
3169
3170
|
const silkscreenRefText = silkscreenRef(
|
|
3170
3171
|
0,
|
|
3171
|
-
length23.parse(parameters.h),
|
|
3172
|
+
length23.parse(parameters.h) + 0.1,
|
|
3172
3173
|
0.3
|
|
3173
3174
|
);
|
|
3174
3175
|
const silkscreenLine = {
|
|
@@ -3177,7 +3178,7 @@ var melf = (raw_params) => {
|
|
|
3177
3178
|
pcb_component_id: "",
|
|
3178
3179
|
route: [
|
|
3179
3180
|
{
|
|
3180
|
-
x: length23.parse(parameters.pad_spacing) / 2,
|
|
3181
|
+
x: length23.parse(parameters.pad_spacing) / 2 + 0.1,
|
|
3181
3182
|
y: length23.parse(parameters.h) / 2
|
|
3182
3183
|
},
|
|
3183
3184
|
{
|
|
@@ -3189,7 +3190,7 @@ var melf = (raw_params) => {
|
|
|
3189
3190
|
y: -length23.parse(parameters.h) / 2
|
|
3190
3191
|
},
|
|
3191
3192
|
{
|
|
3192
|
-
x: length23.parse(parameters.pad_spacing) / 2,
|
|
3193
|
+
x: length23.parse(parameters.pad_spacing) / 2 + 0.1,
|
|
3193
3194
|
y: -length23.parse(parameters.h) / 2
|
|
3194
3195
|
}
|
|
3195
3196
|
],
|
|
@@ -3197,14 +3198,14 @@ var melf = (raw_params) => {
|
|
|
3197
3198
|
pcb_silkscreen_path_id: ""
|
|
3198
3199
|
};
|
|
3199
3200
|
return {
|
|
3200
|
-
circuitJson:
|
|
3201
|
+
circuitJson: sodWithoutParsing8(parameters).concat(
|
|
3201
3202
|
silkscreenLine,
|
|
3202
3203
|
silkscreenRefText
|
|
3203
3204
|
),
|
|
3204
3205
|
parameters
|
|
3205
3206
|
};
|
|
3206
3207
|
};
|
|
3207
|
-
var
|
|
3208
|
+
var getSodCoords8 = (parameters) => {
|
|
3208
3209
|
const { pn, pad_spacing } = parameters;
|
|
3209
3210
|
if (pn === 1) {
|
|
3210
3211
|
return { x: -pad_spacing / 2, y: 0 };
|
|
@@ -3212,10 +3213,10 @@ var getMelfCoords = (parameters) => {
|
|
|
3212
3213
|
return { x: pad_spacing / 2, y: 0 };
|
|
3213
3214
|
}
|
|
3214
3215
|
};
|
|
3215
|
-
var
|
|
3216
|
+
var sodWithoutParsing8 = (parameters) => {
|
|
3216
3217
|
const pads = [];
|
|
3217
3218
|
for (let i = 1; i <= parameters.num_pins; i++) {
|
|
3218
|
-
const { x, y } =
|
|
3219
|
+
const { x, y } = getSodCoords8({
|
|
3219
3220
|
pn: i,
|
|
3220
3221
|
pad_spacing: Number.parseFloat(parameters.pad_spacing)
|
|
3221
3222
|
});
|
|
@@ -3232,20 +3233,20 @@ var melfWithoutParsing = (parameters) => {
|
|
|
3232
3233
|
return pads;
|
|
3233
3234
|
};
|
|
3234
3235
|
|
|
3235
|
-
// src/fn/
|
|
3236
|
+
// src/fn/melf.ts
|
|
3236
3237
|
import { z as z30 } from "zod";
|
|
3237
3238
|
import { length as length24 } from "circuit-json";
|
|
3238
|
-
var
|
|
3239
|
+
var melf_def = z30.object({
|
|
3239
3240
|
fn: z30.string(),
|
|
3240
3241
|
num_pins: z30.literal(2).default(2),
|
|
3241
|
-
w: z30.string().default("
|
|
3242
|
-
h: z30.string().default("
|
|
3243
|
-
pl: z30.string().default("
|
|
3244
|
-
pw: z30.string().default("
|
|
3245
|
-
pad_spacing: z30.string().default("
|
|
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")
|
|
3246
3247
|
});
|
|
3247
|
-
var
|
|
3248
|
-
const parameters =
|
|
3248
|
+
var melf = (raw_params) => {
|
|
3249
|
+
const parameters = melf_def.parse(raw_params);
|
|
3249
3250
|
const silkscreenRefText = silkscreenRef(
|
|
3250
3251
|
0,
|
|
3251
3252
|
length24.parse(parameters.h),
|
|
@@ -3261,11 +3262,11 @@ var micromelf = (raw_params) => {
|
|
|
3261
3262
|
y: length24.parse(parameters.h) / 2
|
|
3262
3263
|
},
|
|
3263
3264
|
{
|
|
3264
|
-
x: -length24.parse(parameters.w) / 2
|
|
3265
|
+
x: -length24.parse(parameters.w) / 2,
|
|
3265
3266
|
y: length24.parse(parameters.h) / 2
|
|
3266
3267
|
},
|
|
3267
3268
|
{
|
|
3268
|
-
x: -length24.parse(parameters.w) / 2
|
|
3269
|
+
x: -length24.parse(parameters.w) / 2,
|
|
3269
3270
|
y: -length24.parse(parameters.h) / 2
|
|
3270
3271
|
},
|
|
3271
3272
|
{
|
|
@@ -3276,6 +3277,86 @@ var micromelf = (raw_params) => {
|
|
|
3276
3277
|
stroke_width: 0.1,
|
|
3277
3278
|
pcb_silkscreen_path_id: ""
|
|
3278
3279
|
};
|
|
3280
|
+
return {
|
|
3281
|
+
circuitJson: melfWithoutParsing(parameters).concat(
|
|
3282
|
+
silkscreenLine,
|
|
3283
|
+
silkscreenRefText
|
|
3284
|
+
),
|
|
3285
|
+
parameters
|
|
3286
|
+
};
|
|
3287
|
+
};
|
|
3288
|
+
var getMelfCoords = (parameters) => {
|
|
3289
|
+
const { pn, pad_spacing } = parameters;
|
|
3290
|
+
if (pn === 1) {
|
|
3291
|
+
return { x: -pad_spacing / 2, y: 0 };
|
|
3292
|
+
} else {
|
|
3293
|
+
return { x: pad_spacing / 2, y: 0 };
|
|
3294
|
+
}
|
|
3295
|
+
};
|
|
3296
|
+
var melfWithoutParsing = (parameters) => {
|
|
3297
|
+
const pads = [];
|
|
3298
|
+
for (let i = 1; i <= parameters.num_pins; i++) {
|
|
3299
|
+
const { x, y } = getMelfCoords({
|
|
3300
|
+
pn: i,
|
|
3301
|
+
pad_spacing: Number.parseFloat(parameters.pad_spacing)
|
|
3302
|
+
});
|
|
3303
|
+
pads.push(
|
|
3304
|
+
rectpad(
|
|
3305
|
+
i,
|
|
3306
|
+
x,
|
|
3307
|
+
y,
|
|
3308
|
+
Number.parseFloat(parameters.pl),
|
|
3309
|
+
Number.parseFloat(parameters.pw)
|
|
3310
|
+
)
|
|
3311
|
+
);
|
|
3312
|
+
}
|
|
3313
|
+
return pads;
|
|
3314
|
+
};
|
|
3315
|
+
|
|
3316
|
+
// src/fn/micromelf.ts
|
|
3317
|
+
import { z as z31 } from "zod";
|
|
3318
|
+
import { length as length25 } from "circuit-json";
|
|
3319
|
+
var micromelf_def = z31.object({
|
|
3320
|
+
fn: z31.string(),
|
|
3321
|
+
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")
|
|
3327
|
+
});
|
|
3328
|
+
var micromelf = (raw_params) => {
|
|
3329
|
+
const parameters = micromelf_def.parse(raw_params);
|
|
3330
|
+
const silkscreenRefText = silkscreenRef(
|
|
3331
|
+
0,
|
|
3332
|
+
length25.parse(parameters.h),
|
|
3333
|
+
0.3
|
|
3334
|
+
);
|
|
3335
|
+
const silkscreenLine = {
|
|
3336
|
+
type: "pcb_silkscreen_path",
|
|
3337
|
+
layer: "top",
|
|
3338
|
+
pcb_component_id: "",
|
|
3339
|
+
route: [
|
|
3340
|
+
{
|
|
3341
|
+
x: length25.parse(parameters.pad_spacing) / 2,
|
|
3342
|
+
y: length25.parse(parameters.h) / 2
|
|
3343
|
+
},
|
|
3344
|
+
{
|
|
3345
|
+
x: -length25.parse(parameters.w) / 2 - 0.1,
|
|
3346
|
+
y: length25.parse(parameters.h) / 2
|
|
3347
|
+
},
|
|
3348
|
+
{
|
|
3349
|
+
x: -length25.parse(parameters.w) / 2 - 0.1,
|
|
3350
|
+
y: -length25.parse(parameters.h) / 2
|
|
3351
|
+
},
|
|
3352
|
+
{
|
|
3353
|
+
x: length25.parse(parameters.pad_spacing) / 2,
|
|
3354
|
+
y: -length25.parse(parameters.h) / 2
|
|
3355
|
+
}
|
|
3356
|
+
],
|
|
3357
|
+
stroke_width: 0.1,
|
|
3358
|
+
pcb_silkscreen_path_id: ""
|
|
3359
|
+
};
|
|
3279
3360
|
return {
|
|
3280
3361
|
circuitJson: microMelfWithoutParsing(parameters).concat(
|
|
3281
3362
|
silkscreenLine,
|