@tscircuit/footprinter 0.0.181 → 0.0.182
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 +91 -0
- package/dist/index.js +119 -26
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1026,6 +1026,92 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
|
|
|
1026
1026
|
}, {
|
|
1027
1027
|
w: string | number;
|
|
1028
1028
|
h: string | number;
|
|
1029
|
+
}>, z.ZodEffects<z.ZodObject<{
|
|
1030
|
+
fn: z.ZodString;
|
|
1031
|
+
circle: z.ZodOptional<z.ZodBoolean>;
|
|
1032
|
+
rect: z.ZodOptional<z.ZodBoolean>;
|
|
1033
|
+
square: z.ZodOptional<z.ZodBoolean>;
|
|
1034
|
+
d: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1035
|
+
pd: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1036
|
+
diameter: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1037
|
+
r: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1038
|
+
pr: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1039
|
+
radius: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1040
|
+
w: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1041
|
+
pw: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1042
|
+
width: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1043
|
+
h: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1044
|
+
ph: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1045
|
+
height: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1046
|
+
s: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1047
|
+
size: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1048
|
+
string: z.ZodOptional<z.ZodString>;
|
|
1049
|
+
}, "strip", z.ZodTypeAny, {
|
|
1050
|
+
fn: string;
|
|
1051
|
+
string?: string | undefined;
|
|
1052
|
+
circle?: boolean | undefined;
|
|
1053
|
+
w?: number | undefined;
|
|
1054
|
+
rect?: boolean | undefined;
|
|
1055
|
+
width?: number | undefined;
|
|
1056
|
+
height?: number | undefined;
|
|
1057
|
+
radius?: number | undefined;
|
|
1058
|
+
pw?: number | undefined;
|
|
1059
|
+
ph?: number | undefined;
|
|
1060
|
+
h?: number | undefined;
|
|
1061
|
+
square?: boolean | undefined;
|
|
1062
|
+
d?: number | undefined;
|
|
1063
|
+
pd?: number | undefined;
|
|
1064
|
+
diameter?: number | undefined;
|
|
1065
|
+
r?: number | undefined;
|
|
1066
|
+
pr?: number | undefined;
|
|
1067
|
+
s?: number | undefined;
|
|
1068
|
+
size?: number | undefined;
|
|
1069
|
+
}, {
|
|
1070
|
+
fn: string;
|
|
1071
|
+
string?: string | undefined;
|
|
1072
|
+
circle?: boolean | undefined;
|
|
1073
|
+
w?: string | number | undefined;
|
|
1074
|
+
rect?: boolean | undefined;
|
|
1075
|
+
width?: string | number | undefined;
|
|
1076
|
+
height?: string | number | undefined;
|
|
1077
|
+
radius?: string | number | undefined;
|
|
1078
|
+
pw?: string | number | undefined;
|
|
1079
|
+
ph?: string | number | undefined;
|
|
1080
|
+
h?: string | number | undefined;
|
|
1081
|
+
square?: boolean | undefined;
|
|
1082
|
+
d?: string | number | undefined;
|
|
1083
|
+
pd?: string | number | undefined;
|
|
1084
|
+
diameter?: string | number | undefined;
|
|
1085
|
+
r?: string | number | undefined;
|
|
1086
|
+
pr?: string | number | undefined;
|
|
1087
|
+
s?: string | number | undefined;
|
|
1088
|
+
size?: string | number | undefined;
|
|
1089
|
+
}>, {
|
|
1090
|
+
fn: string;
|
|
1091
|
+
shape: "circle" | "rect" | "square";
|
|
1092
|
+
radius: number | undefined;
|
|
1093
|
+
width: number | undefined;
|
|
1094
|
+
height: number | undefined;
|
|
1095
|
+
}, {
|
|
1096
|
+
fn: string;
|
|
1097
|
+
string?: string | undefined;
|
|
1098
|
+
circle?: boolean | undefined;
|
|
1099
|
+
w?: string | number | undefined;
|
|
1100
|
+
rect?: boolean | undefined;
|
|
1101
|
+
width?: string | number | undefined;
|
|
1102
|
+
height?: string | number | undefined;
|
|
1103
|
+
radius?: string | number | undefined;
|
|
1104
|
+
pw?: string | number | undefined;
|
|
1105
|
+
ph?: string | number | undefined;
|
|
1106
|
+
h?: string | number | undefined;
|
|
1107
|
+
square?: boolean | undefined;
|
|
1108
|
+
d?: string | number | undefined;
|
|
1109
|
+
pd?: string | number | undefined;
|
|
1110
|
+
diameter?: string | number | undefined;
|
|
1111
|
+
r?: string | number | undefined;
|
|
1112
|
+
pr?: string | number | undefined;
|
|
1113
|
+
s?: string | number | undefined;
|
|
1114
|
+
size?: string | number | undefined;
|
|
1029
1115
|
}>]>;
|
|
1030
1116
|
type AnyFootprinterDefinitionOutput = z.infer<typeof any_footprinter_def>;
|
|
1031
1117
|
|
|
@@ -1111,6 +1197,11 @@ type Footprinter = {
|
|
|
1111
1197
|
stampboard: () => FootprinterParamsBuilder<"w" | "h" | "left" | "right" | "top" | "bottom" | "p" | "pw" | "pl" | "innerhole" | "innerholeedgedistance">;
|
|
1112
1198
|
stampreceiver: () => FootprinterParamsBuilder<"w" | "h" | "left" | "right" | "top" | "bottom" | "p" | "pw" | "pl" | "innerhole" | "innerholeedgedistance">;
|
|
1113
1199
|
breakoutheaders: () => FootprinterParamsBuilder<"w" | "h" | "left" | "right" | "top" | "bottom" | "p" | "id" | "od">;
|
|
1200
|
+
smtpad: () => FootprinterParamsBuilder<"circle" | "rect" | "square" | "d" | "pd" | "diameter" | "r" | "pr" | "radius" | "w" | "pw" | "width" | "h" | "ph" | "height" | "s" | "size"> & {
|
|
1201
|
+
params: () => any;
|
|
1202
|
+
soup: () => AnySoupElement[];
|
|
1203
|
+
circuitJson: () => AnyCircuitElement[];
|
|
1204
|
+
};
|
|
1114
1205
|
pad: () => FootprinterParamsBuilder<"w" | "h"> & {
|
|
1115
1206
|
params: () => any;
|
|
1116
1207
|
soup: () => AnySoupElement[];
|
package/dist/index.js
CHANGED
|
@@ -40,6 +40,7 @@ __export(fn_exports, {
|
|
|
40
40
|
smbf: () => smbf,
|
|
41
41
|
smc: () => smc,
|
|
42
42
|
smf: () => smf,
|
|
43
|
+
smtpad: () => smtpad,
|
|
43
44
|
sod110: () => sod110,
|
|
44
45
|
sod123: () => sod123,
|
|
45
46
|
sod123f: () => sod123f,
|
|
@@ -4041,12 +4042,12 @@ var sot89_3 = (parameters) => {
|
|
|
4041
4042
|
const pads = [];
|
|
4042
4043
|
const padGap = Number.parseFloat(parameters.p);
|
|
4043
4044
|
const padWidth = Number.parseFloat(parameters.pw);
|
|
4044
|
-
const
|
|
4045
|
+
const length47 = Number.parseFloat(parameters.w);
|
|
4045
4046
|
const padHeight = Number.parseFloat(parameters.pl);
|
|
4046
4047
|
pads.push(
|
|
4047
|
-
rectpad(1, -
|
|
4048
|
-
rectpad(2, -
|
|
4049
|
-
rectpad(3, -
|
|
4048
|
+
rectpad(1, -length47 / 2, padGap, padHeight, padWidth),
|
|
4049
|
+
rectpad(2, -length47 / 2 + (1.5 - 1.3) / 2, 0, 1.5, padWidth),
|
|
4050
|
+
rectpad(3, -length47 / 2, -padGap, padHeight, padWidth)
|
|
4050
4051
|
);
|
|
4051
4052
|
const silkscreenRefText = silkscreenRef(0, 0, 0.3);
|
|
4052
4053
|
const width = Number.parseFloat(parameters.w) / 2 - 1;
|
|
@@ -4086,7 +4087,7 @@ var sot89_5 = (parameters) => {
|
|
|
4086
4087
|
const pads = [];
|
|
4087
4088
|
const padGap = Number.parseFloat(parameters.p);
|
|
4088
4089
|
const padWidth = Number.parseFloat(parameters.pw);
|
|
4089
|
-
const
|
|
4090
|
+
const length47 = Number.parseFloat(parameters.w);
|
|
4090
4091
|
pads.push(
|
|
4091
4092
|
rectpad(1, -1.85, -1.5, 1.5, 0.7),
|
|
4092
4093
|
rectpad(2, -1.85, 1.5, 1.5, 0.7),
|
|
@@ -6613,29 +6614,121 @@ var sot323_3 = (parameters) => {
|
|
|
6613
6614
|
];
|
|
6614
6615
|
};
|
|
6615
6616
|
|
|
6616
|
-
// src/fn/
|
|
6617
|
+
// src/fn/smtpad.ts
|
|
6617
6618
|
import { z as z58 } from "zod";
|
|
6618
6619
|
import { length as length45 } from "circuit-json";
|
|
6620
|
+
|
|
6621
|
+
// src/helpers/circlepad.ts
|
|
6622
|
+
var circlepad = (pn, { x, y, radius }) => {
|
|
6623
|
+
return {
|
|
6624
|
+
type: "pcb_smtpad",
|
|
6625
|
+
x,
|
|
6626
|
+
y,
|
|
6627
|
+
radius,
|
|
6628
|
+
layer: "top",
|
|
6629
|
+
shape: "circle",
|
|
6630
|
+
pcb_smtpad_id: "",
|
|
6631
|
+
port_hints: Array.isArray(pn) ? pn.map((item) => item.toString()) : [pn.toString()]
|
|
6632
|
+
};
|
|
6633
|
+
};
|
|
6634
|
+
|
|
6635
|
+
// src/fn/smtpad.ts
|
|
6619
6636
|
import { mm as mm6 } from "@tscircuit/mm";
|
|
6620
|
-
var
|
|
6637
|
+
var smtpad_def = z58.object({
|
|
6621
6638
|
fn: z58.string(),
|
|
6639
|
+
circle: z58.boolean().optional(),
|
|
6640
|
+
rect: z58.boolean().optional(),
|
|
6641
|
+
square: z58.boolean().optional(),
|
|
6622
6642
|
d: length45.optional(),
|
|
6623
|
-
hd: length45.optional(),
|
|
6624
|
-
r: length45.optional(),
|
|
6625
|
-
hr: length45.optional(),
|
|
6626
6643
|
pd: length45.optional(),
|
|
6644
|
+
diameter: length45.optional(),
|
|
6645
|
+
r: length45.optional(),
|
|
6627
6646
|
pr: length45.optional(),
|
|
6628
|
-
|
|
6647
|
+
radius: length45.optional(),
|
|
6648
|
+
w: length45.optional(),
|
|
6649
|
+
pw: length45.optional(),
|
|
6650
|
+
width: length45.optional(),
|
|
6651
|
+
h: length45.optional(),
|
|
6652
|
+
ph: length45.optional(),
|
|
6653
|
+
height: length45.optional(),
|
|
6654
|
+
s: length45.optional(),
|
|
6655
|
+
size: length45.optional(),
|
|
6656
|
+
string: z58.string().optional()
|
|
6657
|
+
}).transform((v) => {
|
|
6658
|
+
let shape = "rect";
|
|
6659
|
+
if (v.circle) shape = "circle";
|
|
6660
|
+
if (v.square) shape = "square";
|
|
6661
|
+
if (v.rect) shape = "rect";
|
|
6662
|
+
let radius;
|
|
6663
|
+
let width;
|
|
6664
|
+
let height;
|
|
6665
|
+
if (shape === "circle") {
|
|
6666
|
+
if (v.r !== void 0) radius = mm6(v.r);
|
|
6667
|
+
else if (v.pr !== void 0) radius = mm6(v.pr);
|
|
6668
|
+
else if (v.radius !== void 0) radius = mm6(v.radius);
|
|
6669
|
+
else if (v.d !== void 0) radius = mm6(v.d) / 2;
|
|
6670
|
+
else if (v.pd !== void 0) radius = mm6(v.pd) / 2;
|
|
6671
|
+
else if (v.diameter !== void 0) radius = mm6(v.diameter) / 2;
|
|
6672
|
+
else radius = mm6("1mm") / 2;
|
|
6673
|
+
} else {
|
|
6674
|
+
if (v.w !== void 0) width = mm6(v.w);
|
|
6675
|
+
else if (v.pw !== void 0) width = mm6(v.pw);
|
|
6676
|
+
else if (v.width !== void 0) width = mm6(v.width);
|
|
6677
|
+
else if (v.s !== void 0) width = mm6(v.s);
|
|
6678
|
+
else if (v.size !== void 0) width = mm6(v.size);
|
|
6679
|
+
else width = mm6("1mm");
|
|
6680
|
+
if (v.h !== void 0) height = mm6(v.h);
|
|
6681
|
+
else if (v.ph !== void 0) height = mm6(v.ph);
|
|
6682
|
+
else if (v.height !== void 0) height = mm6(v.height);
|
|
6683
|
+
else height = width;
|
|
6684
|
+
}
|
|
6685
|
+
return {
|
|
6686
|
+
fn: v.fn,
|
|
6687
|
+
shape,
|
|
6688
|
+
radius,
|
|
6689
|
+
width,
|
|
6690
|
+
height
|
|
6691
|
+
};
|
|
6692
|
+
});
|
|
6693
|
+
var smtpad = (raw_params) => {
|
|
6694
|
+
const params = smtpad_def.parse(raw_params);
|
|
6695
|
+
const { shape, radius, width, height } = params;
|
|
6696
|
+
return {
|
|
6697
|
+
circuitJson: [
|
|
6698
|
+
shape === "circle" ? circlepad(1, { x: 0, y: 0, radius }) : rectpad(1, 0, 0, width, height),
|
|
6699
|
+
silkscreenRef(
|
|
6700
|
+
0,
|
|
6701
|
+
shape === "circle" ? radius + 0.5 : height / 2 + 0.5,
|
|
6702
|
+
0.2
|
|
6703
|
+
)
|
|
6704
|
+
],
|
|
6705
|
+
parameters: params
|
|
6706
|
+
};
|
|
6707
|
+
};
|
|
6708
|
+
|
|
6709
|
+
// src/fn/platedhole.ts
|
|
6710
|
+
import { z as z59 } from "zod";
|
|
6711
|
+
import { length as length46 } from "circuit-json";
|
|
6712
|
+
import { mm as mm7 } from "@tscircuit/mm";
|
|
6713
|
+
var platedhole_def = z59.object({
|
|
6714
|
+
fn: z59.string(),
|
|
6715
|
+
d: length46.optional(),
|
|
6716
|
+
hd: length46.optional(),
|
|
6717
|
+
r: length46.optional(),
|
|
6718
|
+
hr: length46.optional(),
|
|
6719
|
+
pd: length46.optional(),
|
|
6720
|
+
pr: length46.optional(),
|
|
6721
|
+
squarepad: z59.boolean().optional().default(false)
|
|
6629
6722
|
}).transform((v) => {
|
|
6630
6723
|
let holeD;
|
|
6631
|
-
if (v.d !== void 0) holeD =
|
|
6632
|
-
else if (v.hd !== void 0) holeD =
|
|
6633
|
-
else if (v.r !== void 0) holeD =
|
|
6634
|
-
else if (v.hr !== void 0) holeD =
|
|
6635
|
-
else holeD =
|
|
6724
|
+
if (v.d !== void 0) holeD = mm7(v.d);
|
|
6725
|
+
else if (v.hd !== void 0) holeD = mm7(v.hd);
|
|
6726
|
+
else if (v.r !== void 0) holeD = mm7(v.r) * 2;
|
|
6727
|
+
else if (v.hr !== void 0) holeD = mm7(v.hr) * 2;
|
|
6728
|
+
else holeD = mm7("1mm");
|
|
6636
6729
|
let padD;
|
|
6637
|
-
if (v.pd !== void 0) padD =
|
|
6638
|
-
else if (v.pr !== void 0) padD =
|
|
6730
|
+
if (v.pd !== void 0) padD = mm7(v.pd);
|
|
6731
|
+
else if (v.pr !== void 0) padD = mm7(v.pr) * 2;
|
|
6639
6732
|
else padD = holeD * (1.5 / 1);
|
|
6640
6733
|
return {
|
|
6641
6734
|
fn: v.fn,
|
|
@@ -6657,14 +6750,14 @@ var platedhole3 = (raw_params) => {
|
|
|
6657
6750
|
};
|
|
6658
6751
|
|
|
6659
6752
|
// src/fn/sot.ts
|
|
6660
|
-
import { z as
|
|
6661
|
-
var sot_def =
|
|
6662
|
-
fn:
|
|
6663
|
-
num_pins:
|
|
6664
|
-
h:
|
|
6665
|
-
pl:
|
|
6666
|
-
pw:
|
|
6667
|
-
p:
|
|
6753
|
+
import { z as z60 } from "zod";
|
|
6754
|
+
var sot_def = z60.object({
|
|
6755
|
+
fn: z60.string(),
|
|
6756
|
+
num_pins: z60.literal(6).default(6),
|
|
6757
|
+
h: z60.string().default("1.6mm"),
|
|
6758
|
+
pl: z60.string().default("1mm"),
|
|
6759
|
+
pw: z60.string().default("0.7mm"),
|
|
6760
|
+
p: z60.string().default("0.95mm")
|
|
6668
6761
|
});
|
|
6669
6762
|
var sot = (raw_params) => {
|
|
6670
6763
|
const parameters = sot_def.parse(raw_params);
|