@tscircuit/footprinter 0.0.272 → 0.0.273
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 +1 -0
- package/dist/index.js +107 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1807,6 +1807,7 @@ type Footprinter = {
|
|
|
1807
1807
|
sot: () => FootprinterParamsBuilder<"w" | "h" | "p" | "pl" | "pw">;
|
|
1808
1808
|
sot323: () => FootprinterParamsBuilder<"w" | "h" | "p" | "pl" | "pw">;
|
|
1809
1809
|
sot89: () => FootprinterParamsBuilder<"w" | "p" | "pl" | "pw" | "h">;
|
|
1810
|
+
sot343: () => FootprinterParamsBuilder<"w" | "h" | "p" | "pl" | "pw">;
|
|
1810
1811
|
sod323w: () => FootprinterParamsBuilder<"w" | "h" | "p" | "pl" | "pw">;
|
|
1811
1812
|
smc: () => FootprinterParamsBuilder<"w" | "h" | "p" | "pw" | "pl">;
|
|
1812
1813
|
minimelf: () => FootprinterParamsBuilder<"w" | "h" | "p" | "pw" | "pl">;
|
package/dist/index.js
CHANGED
|
@@ -68,6 +68,7 @@ __export(fn_exports, {
|
|
|
68
68
|
sot23w: () => sot23w,
|
|
69
69
|
sot25: () => sot25,
|
|
70
70
|
sot323: () => sot323,
|
|
71
|
+
sot343: () => sot343,
|
|
71
72
|
sot363: () => sot363,
|
|
72
73
|
sot457: () => sot457,
|
|
73
74
|
sot563: () => sot563,
|
|
@@ -7438,10 +7439,114 @@ var sotWithoutParsing = (parameters) => {
|
|
|
7438
7439
|
];
|
|
7439
7440
|
};
|
|
7440
7441
|
|
|
7441
|
-
// src/fn/
|
|
7442
|
+
// src/fn/sot343.ts
|
|
7442
7443
|
import { z as z66 } from "zod";
|
|
7444
|
+
var sot343_def = base_def.extend({
|
|
7445
|
+
fn: z66.string(),
|
|
7446
|
+
num_pins: z66.number().default(4),
|
|
7447
|
+
w: z66.string().default("3.2mm"),
|
|
7448
|
+
h: z66.string().default("2.6mm"),
|
|
7449
|
+
pl: z66.string().default("0.65mm"),
|
|
7450
|
+
pw: z66.string().default("0.39mm"),
|
|
7451
|
+
p: z66.string().default("0.65mm"),
|
|
7452
|
+
string: z66.string().optional()
|
|
7453
|
+
});
|
|
7454
|
+
var sot343 = (raw_params) => {
|
|
7455
|
+
const match = raw_params.string?.match(/^sot343_(\d+)/);
|
|
7456
|
+
const numPins = match ? Number.parseInt(match[1], 4) : 4;
|
|
7457
|
+
const parameters = sot343_def.parse({
|
|
7458
|
+
...raw_params,
|
|
7459
|
+
num_pins: numPins
|
|
7460
|
+
});
|
|
7461
|
+
if (parameters.num_pins === 4) {
|
|
7462
|
+
return {
|
|
7463
|
+
circuitJson: sot343_4(parameters),
|
|
7464
|
+
parameters
|
|
7465
|
+
};
|
|
7466
|
+
}
|
|
7467
|
+
throw new Error("Invalid number of pins");
|
|
7468
|
+
};
|
|
7469
|
+
var getCcwSot343Coords = (parameters) => {
|
|
7470
|
+
const { pn, p } = parameters;
|
|
7471
|
+
if (pn === 1) return { x: -p * 1.92, y: -0.65 };
|
|
7472
|
+
if (pn === 2) return { x: -p * 1.92, y: 0.65 };
|
|
7473
|
+
if (pn === 3) return { x: p, y: 0.65 };
|
|
7474
|
+
if (pn === 4) return { x: p, y: -0.65 };
|
|
7475
|
+
return { x: 0, y: 0 };
|
|
7476
|
+
};
|
|
7477
|
+
var sot343_4 = (parameters) => {
|
|
7478
|
+
const pads = [];
|
|
7479
|
+
const w = Number.parseFloat(parameters.w);
|
|
7480
|
+
const h = Number.parseFloat(parameters.h);
|
|
7481
|
+
const pl = Number.parseFloat(parameters.pl);
|
|
7482
|
+
const pw = Number.parseFloat(parameters.pw);
|
|
7483
|
+
const p = Number.parseFloat(parameters.p);
|
|
7484
|
+
let minX = Infinity;
|
|
7485
|
+
let maxX = -Infinity;
|
|
7486
|
+
let minY = Infinity;
|
|
7487
|
+
let maxY = -Infinity;
|
|
7488
|
+
for (let i = 0; i < parameters.num_pins; i++) {
|
|
7489
|
+
const { x, y } = getCcwSot343Coords({
|
|
7490
|
+
num_pins: parameters.num_pins,
|
|
7491
|
+
pn: i + 1,
|
|
7492
|
+
w,
|
|
7493
|
+
h,
|
|
7494
|
+
pl,
|
|
7495
|
+
p
|
|
7496
|
+
});
|
|
7497
|
+
pads.push(rectpad(i + 1, x, y, pl, pw));
|
|
7498
|
+
if (x < minX) minX = x;
|
|
7499
|
+
if (x > maxX) maxX = x;
|
|
7500
|
+
if (y < minY) minY = y;
|
|
7501
|
+
if (y > maxY) maxY = y;
|
|
7502
|
+
}
|
|
7503
|
+
const silkscreenXOffset = (minX + maxX) / 2;
|
|
7504
|
+
const padVerticalDistance = maxY - minY;
|
|
7505
|
+
const silkscreenMargin = h * 0.3;
|
|
7506
|
+
const offsetY = padVerticalDistance / 2 + silkscreenMargin;
|
|
7507
|
+
let silkscreenLineLength = w * 0.8;
|
|
7508
|
+
if (h <= 2.6) {
|
|
7509
|
+
silkscreenLineLength /= 2;
|
|
7510
|
+
}
|
|
7511
|
+
const silkscreenRefText = silkscreenRef(
|
|
7512
|
+
silkscreenXOffset,
|
|
7513
|
+
offsetY + 0.5,
|
|
7514
|
+
0.3
|
|
7515
|
+
);
|
|
7516
|
+
const silkscreenPathTop = {
|
|
7517
|
+
layer: "top",
|
|
7518
|
+
pcb_component_id: "",
|
|
7519
|
+
pcb_silkscreen_path_id: "silkscreen_path_top",
|
|
7520
|
+
route: [
|
|
7521
|
+
{ x: silkscreenXOffset - silkscreenLineLength / 2, y: offsetY },
|
|
7522
|
+
{ x: silkscreenXOffset + silkscreenLineLength / 2, y: offsetY }
|
|
7523
|
+
],
|
|
7524
|
+
type: "pcb_silkscreen_path",
|
|
7525
|
+
stroke_width: 0.1
|
|
7526
|
+
};
|
|
7527
|
+
const silkscreenPathBottom = {
|
|
7528
|
+
layer: "top",
|
|
7529
|
+
pcb_component_id: "",
|
|
7530
|
+
pcb_silkscreen_path_id: "silkscreen_path_bottom",
|
|
7531
|
+
route: [
|
|
7532
|
+
{ x: silkscreenXOffset - silkscreenLineLength / 2, y: -offsetY },
|
|
7533
|
+
{ x: silkscreenXOffset + silkscreenLineLength / 2, y: -offsetY }
|
|
7534
|
+
],
|
|
7535
|
+
type: "pcb_silkscreen_path",
|
|
7536
|
+
stroke_width: 0.1
|
|
7537
|
+
};
|
|
7538
|
+
return [
|
|
7539
|
+
...pads,
|
|
7540
|
+
silkscreenPathTop,
|
|
7541
|
+
silkscreenPathBottom,
|
|
7542
|
+
silkscreenRefText
|
|
7543
|
+
];
|
|
7544
|
+
};
|
|
7545
|
+
|
|
7546
|
+
// src/fn/m2host.ts
|
|
7547
|
+
import { z as z67 } from "zod";
|
|
7443
7548
|
var m2host_def = base_def.extend({
|
|
7444
|
-
fn:
|
|
7549
|
+
fn: z67.string()
|
|
7445
7550
|
});
|
|
7446
7551
|
var m2host = (raw_params) => {
|
|
7447
7552
|
const parameters = m2host_def.parse(raw_params);
|