@tscircuit/footprinter 0.0.150 → 0.0.151
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 +2 -2
- package/dist/index.js +94 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -988,7 +988,7 @@ declare const footprintSizes: {
|
|
|
988
988
|
}[];
|
|
989
989
|
|
|
990
990
|
type FootprinterParamsBuilder<K extends string> = {
|
|
991
|
-
[P in K | "params" | "soup" | "circuitJson"]: P extends "params" | "soup" | "circuitJson" ? Footprinter[P] : (v?: number | string) => FootprinterParamsBuilder<K>;
|
|
991
|
+
[P in K | "params" | "soup" | "circuitJson"]: P extends "params" | "soup" | "circuitJson" ? Footprinter[P] : (v?: number | string | boolean) => FootprinterParamsBuilder<K>;
|
|
992
992
|
};
|
|
993
993
|
type CommonPassiveOptionKey = "metric" | "imperial" | "tht" | "p" | "pw" | "ph" | "w" | "h";
|
|
994
994
|
type Footprinter = {
|
|
@@ -1000,7 +1000,7 @@ type Footprinter = {
|
|
|
1000
1000
|
lr: (num_pins?: number) => FootprinterParamsBuilder<"w" | "l" | "pl" | "pr">;
|
|
1001
1001
|
qfp: (num_pins?: number) => FootprinterParamsBuilder<"w" | "p" | "id" | "od" | "wide" | "narrow">;
|
|
1002
1002
|
quad: (num_pins?: number) => FootprinterParamsBuilder<"w" | "l" | "square" | "pl" | "pr" | "pb" | "pt" | "p" | "pw" | "ph">;
|
|
1003
|
-
bga: (num_pins?: number) => FootprinterParamsBuilder<"grid" | "p" | "w" | "h" | "ball" | "pad" | "missing">;
|
|
1003
|
+
bga: (num_pins?: number) => FootprinterParamsBuilder<"grid" | "p" | "w" | "h" | "ball" | "pad" | "missing" | "tlorigin" | "blorigin" | "trorigin" | "brorigin">;
|
|
1004
1004
|
qfn: (num_pins?: number) => FootprinterParamsBuilder<"w" | "h" | "p">;
|
|
1005
1005
|
soic: (num_pins?: number) => FootprinterParamsBuilder<"w" | "p" | "id" | "od">;
|
|
1006
1006
|
mlp: (num_pins?: number) => FootprinterParamsBuilder<"w" | "h" | "p">;
|
package/dist/index.js
CHANGED
|
@@ -510,6 +510,7 @@ var function_call = z4.string().or(z4.array(z4.any())).transform((a) => {
|
|
|
510
510
|
}).pipe(z4.array(z4.string().or(z4.number())));
|
|
511
511
|
|
|
512
512
|
// src/fn/bga.ts
|
|
513
|
+
import "circuit-json";
|
|
513
514
|
var bga_def = z5.object({
|
|
514
515
|
fn: z5.string(),
|
|
515
516
|
num_pins: z5.number().optional().default(64),
|
|
@@ -587,16 +588,41 @@ var bga = (raw_params) => {
|
|
|
587
588
|
let missing_pins_passed = 0;
|
|
588
589
|
for (let y = 0; y < grid.y; y++) {
|
|
589
590
|
for (let x = 0; x < grid.x; x++) {
|
|
590
|
-
|
|
591
|
+
const pad_x = (x - (grid.x - 1) / 2) * p;
|
|
592
|
+
const pad_y = (y - (grid.y - 1) / 2) * p;
|
|
593
|
+
let pin_x = x;
|
|
594
|
+
let pin_y = y;
|
|
595
|
+
switch (parameters.origin) {
|
|
596
|
+
case "bl":
|
|
597
|
+
pin_x = x;
|
|
598
|
+
pin_y = grid.y - 1 - y;
|
|
599
|
+
break;
|
|
600
|
+
case "br":
|
|
601
|
+
pin_x = grid.x - 1 - x;
|
|
602
|
+
pin_y = grid.y - 1 - y;
|
|
603
|
+
break;
|
|
604
|
+
case "tr":
|
|
605
|
+
pin_x = grid.x - 1 - x;
|
|
606
|
+
pin_y = y;
|
|
607
|
+
break;
|
|
608
|
+
case "tl":
|
|
609
|
+
default:
|
|
610
|
+
break;
|
|
611
|
+
}
|
|
612
|
+
let pin_num = pin_y * grid.x + pin_x + 1;
|
|
591
613
|
if (missing_pin_nums_set.has(pin_num)) {
|
|
592
614
|
missing_pins_passed++;
|
|
593
615
|
continue;
|
|
594
616
|
}
|
|
595
617
|
pin_num -= missing_pins_passed;
|
|
596
|
-
const pad_x = (x - (grid.x - 1) / 2) * p;
|
|
597
|
-
const pad_y = -(y - (grid.y - 1) / 2) * p;
|
|
598
618
|
pads.push(
|
|
599
|
-
rectpad(
|
|
619
|
+
rectpad(
|
|
620
|
+
[pin_num, `${ALPHABET[pin_y]}${pin_x + 1}`],
|
|
621
|
+
pad_x,
|
|
622
|
+
pad_y,
|
|
623
|
+
pad2,
|
|
624
|
+
pad2
|
|
625
|
+
)
|
|
600
626
|
);
|
|
601
627
|
}
|
|
602
628
|
}
|
|
@@ -605,8 +631,71 @@ var bga = (raw_params) => {
|
|
|
605
631
|
grid.y * p / 2,
|
|
606
632
|
0.2
|
|
607
633
|
);
|
|
634
|
+
const pin1MarkerSize = p / 6;
|
|
635
|
+
let markerRoute;
|
|
636
|
+
const edgeX = grid.x * p / 2;
|
|
637
|
+
const edgeY = grid.y * p / 2;
|
|
638
|
+
switch (parameters.origin) {
|
|
639
|
+
case "bl":
|
|
640
|
+
markerRoute = [
|
|
641
|
+
{ x: -edgeX, y: -edgeY },
|
|
642
|
+
// Start at corner
|
|
643
|
+
{ x: -edgeX, y: -edgeY - pin1MarkerSize },
|
|
644
|
+
// Up
|
|
645
|
+
{ x: -edgeX - pin1MarkerSize, y: -edgeY },
|
|
646
|
+
// Left
|
|
647
|
+
{ x: -edgeX, y: -edgeY }
|
|
648
|
+
// Back to start
|
|
649
|
+
];
|
|
650
|
+
break;
|
|
651
|
+
case "br":
|
|
652
|
+
markerRoute = [
|
|
653
|
+
{ x: edgeX, y: -edgeY },
|
|
654
|
+
// Start at corner
|
|
655
|
+
{ x: edgeX, y: -edgeY - pin1MarkerSize },
|
|
656
|
+
// Up
|
|
657
|
+
{ x: edgeX + pin1MarkerSize, y: -edgeY },
|
|
658
|
+
// Right
|
|
659
|
+
{ x: edgeX, y: -edgeY }
|
|
660
|
+
// Back to start
|
|
661
|
+
];
|
|
662
|
+
break;
|
|
663
|
+
case "tr":
|
|
664
|
+
markerRoute = [
|
|
665
|
+
{ x: edgeX, y: edgeY },
|
|
666
|
+
// Start at corner
|
|
667
|
+
{ x: edgeX, y: edgeY + pin1MarkerSize },
|
|
668
|
+
// Down
|
|
669
|
+
{ x: edgeX + pin1MarkerSize, y: edgeY },
|
|
670
|
+
// Right
|
|
671
|
+
{ x: edgeX, y: edgeY }
|
|
672
|
+
// Back to start
|
|
673
|
+
];
|
|
674
|
+
break;
|
|
675
|
+
case "tl":
|
|
676
|
+
default:
|
|
677
|
+
markerRoute = [
|
|
678
|
+
{ x: -edgeX, y: edgeY },
|
|
679
|
+
// Start at corner
|
|
680
|
+
{ x: -edgeX, y: edgeY + pin1MarkerSize },
|
|
681
|
+
// Down
|
|
682
|
+
{ x: -edgeX - pin1MarkerSize, y: edgeY },
|
|
683
|
+
// Left
|
|
684
|
+
{ x: -edgeX, y: edgeY }
|
|
685
|
+
// Back to start
|
|
686
|
+
];
|
|
687
|
+
break;
|
|
688
|
+
}
|
|
689
|
+
const pin1Marker = {
|
|
690
|
+
type: "pcb_silkscreen_path",
|
|
691
|
+
layer: "top",
|
|
692
|
+
pcb_component_id: "",
|
|
693
|
+
pcb_silkscreen_path_id: "pin1_marker",
|
|
694
|
+
route: markerRoute,
|
|
695
|
+
stroke_width: 0.05
|
|
696
|
+
};
|
|
608
697
|
return {
|
|
609
|
-
circuitJson: [...pads, silkscreenRefText],
|
|
698
|
+
circuitJson: [...pads, silkscreenRefText, pin1Marker],
|
|
610
699
|
parameters
|
|
611
700
|
};
|
|
612
701
|
};
|