@tscircuit/footprinter 0.0.182 → 0.0.183

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
@@ -39,6 +39,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
39
39
  h: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
40
40
  ball: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
41
41
  pad: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
42
+ circularpads: z.ZodOptional<z.ZodBoolean>;
42
43
  tlorigin: z.ZodOptional<z.ZodBoolean>;
43
44
  blorigin: z.ZodOptional<z.ZodBoolean>;
44
45
  trorigin: z.ZodOptional<z.ZodBoolean>;
@@ -57,6 +58,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
57
58
  } | undefined;
58
59
  ball?: number | undefined;
59
60
  pad?: number | undefined;
61
+ circularpads?: boolean | undefined;
60
62
  tlorigin?: boolean | undefined;
61
63
  blorigin?: boolean | undefined;
62
64
  trorigin?: boolean | undefined;
@@ -70,6 +72,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
70
72
  grid?: string | undefined;
71
73
  ball?: string | number | undefined;
72
74
  pad?: string | number | undefined;
75
+ circularpads?: boolean | undefined;
73
76
  tlorigin?: boolean | undefined;
74
77
  blorigin?: boolean | undefined;
75
78
  trorigin?: boolean | undefined;
@@ -89,6 +92,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
89
92
  } | undefined;
90
93
  ball?: number | undefined;
91
94
  pad?: number | undefined;
95
+ circularpads?: boolean | undefined;
92
96
  tlorigin?: boolean | undefined;
93
97
  blorigin?: boolean | undefined;
94
98
  trorigin?: boolean | undefined;
@@ -102,6 +106,7 @@ declare const any_footprinter_def: z.ZodUnion<[z.ZodObject<{
102
106
  grid?: string | undefined;
103
107
  ball?: string | number | undefined;
104
108
  pad?: string | number | undefined;
109
+ circularpads?: boolean | undefined;
105
110
  tlorigin?: boolean | undefined;
106
111
  blorigin?: boolean | undefined;
107
112
  trorigin?: boolean | undefined;
@@ -1137,7 +1142,7 @@ type Footprinter = {
1137
1142
  lr: (num_pins?: number) => FootprinterParamsBuilder<"w" | "l" | "pl" | "pr">;
1138
1143
  qfp: (num_pins?: number) => FootprinterParamsBuilder<"w" | "p" | "id" | "od" | "wide" | "narrow">;
1139
1144
  quad: (num_pins?: number) => FootprinterParamsBuilder<"w" | "l" | "square" | "pl" | "pr" | "pb" | "pt" | "p" | "pw" | "ph">;
1140
- bga: (num_pins?: number) => FootprinterParamsBuilder<"grid" | "p" | "w" | "h" | "ball" | "pad" | "missing" | "tlorigin" | "blorigin" | "trorigin" | "brorigin">;
1145
+ bga: (num_pins?: number) => FootprinterParamsBuilder<"grid" | "p" | "w" | "h" | "ball" | "pad" | "missing" | "tlorigin" | "blorigin" | "trorigin" | "brorigin" | "circularpads">;
1141
1146
  qfn: (num_pins?: number) => FootprinterParamsBuilder<"w" | "h" | "p">;
1142
1147
  soic: (num_pins?: number) => FootprinterParamsBuilder<"w" | "p" | "id" | "od">;
1143
1148
  mlp: (num_pins?: number) => FootprinterParamsBuilder<"w" | "h" | "p">;
package/dist/index.js CHANGED
@@ -476,6 +476,20 @@ var res = (parameters) => {
476
476
  return { circuitJson: passive(parameters), parameters };
477
477
  };
478
478
 
479
+ // src/helpers/circlepad.ts
480
+ var circlepad = (pn, { x, y, radius }) => {
481
+ return {
482
+ type: "pcb_smtpad",
483
+ x,
484
+ y,
485
+ radius,
486
+ layer: "top",
487
+ shape: "circle",
488
+ pcb_smtpad_id: "",
489
+ port_hints: Array.isArray(pn) ? pn.map((item) => item.toString()) : [pn.toString()]
490
+ };
491
+ };
492
+
479
493
  // src/helpers/zod/ALPHABET.ts
480
494
  var ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
481
495
 
@@ -522,6 +536,7 @@ var bga_def = z5.object({
522
536
  h: length2.optional(),
523
537
  ball: length2.optional().describe("ball diameter"),
524
538
  pad: length2.optional().describe("pad width/height"),
539
+ circularpads: z5.boolean().optional().describe("use circular pads"),
525
540
  tlorigin: z5.boolean().optional(),
526
541
  blorigin: z5.boolean().optional(),
527
542
  trorigin: z5.boolean().optional(),
@@ -610,14 +625,13 @@ var bga = (raw_params) => {
610
625
  continue;
611
626
  }
612
627
  pin_num -= missing_pins_passed;
628
+ const portHints = [pin_num, `${ALPHABET[pin_y]}${pin_x + 1}`];
613
629
  pads.push(
614
- rectpad(
615
- [pin_num, `${ALPHABET[pin_y]}${pin_x + 1}`],
616
- pad_x,
617
- pad_y,
618
- pad2,
619
- pad2
620
- )
630
+ parameters.circularpads ? circlepad(portHints, {
631
+ x: pad_x,
632
+ y: pad_y,
633
+ radius: pad2 / 2
634
+ }) : rectpad(portHints, pad_x, pad_y, pad2, pad2)
621
635
  );
622
636
  }
623
637
  }
@@ -6617,22 +6631,6 @@ var sot323_3 = (parameters) => {
6617
6631
  // src/fn/smtpad.ts
6618
6632
  import { z as z58 } from "zod";
6619
6633
  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
6636
6634
  import { mm as mm6 } from "@tscircuit/mm";
6637
6635
  var smtpad_def = z58.object({
6638
6636
  fn: z58.string(),