easyeda 0.0.190 → 0.0.192

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.
@@ -835,6 +835,16 @@ declare const EasyEdaJsonSchema: z.ZodObject<{
835
835
  radius: number;
836
836
  id?: string | undefined;
837
837
  layer?: number | undefined;
838
+ } | {
839
+ type: "VIA";
840
+ center: {
841
+ x: number;
842
+ y: number;
843
+ };
844
+ outerDiameter: number;
845
+ holeDiameter: number;
846
+ id?: string | undefined;
847
+ layer?: number | undefined;
838
848
  } | {
839
849
  type: "RECT";
840
850
  x: string;
@@ -1172,6 +1182,40 @@ declare const EasyEdaJsonSchema: z.ZodObject<{
1172
1182
  }>, z.ZodObject<{
1173
1183
  id: z.ZodOptional<z.ZodString>;
1174
1184
  layer: z.ZodOptional<z.ZodNumber>;
1185
+ } & {
1186
+ type: z.ZodLiteral<"VIA">;
1187
+ center: z.ZodPipeline<z.ZodEffects<z.ZodAny, any, any>, z.ZodObject<{
1188
+ x: z.ZodNumber;
1189
+ y: z.ZodNumber;
1190
+ }, "strip", z.ZodTypeAny, {
1191
+ x: number;
1192
+ y: number;
1193
+ }, {
1194
+ x: number;
1195
+ y: number;
1196
+ }>>;
1197
+ outerDiameter: z.ZodNumber;
1198
+ holeDiameter: z.ZodNumber;
1199
+ }, "strip", z.ZodTypeAny, {
1200
+ type: "VIA";
1201
+ center: {
1202
+ x: number;
1203
+ y: number;
1204
+ };
1205
+ outerDiameter: number;
1206
+ holeDiameter: number;
1207
+ id?: string | undefined;
1208
+ layer?: number | undefined;
1209
+ }, {
1210
+ type: "VIA";
1211
+ outerDiameter: number;
1212
+ holeDiameter: number;
1213
+ id?: string | undefined;
1214
+ layer?: number | undefined;
1215
+ center?: any;
1216
+ }>, z.ZodObject<{
1217
+ id: z.ZodOptional<z.ZodString>;
1218
+ layer: z.ZodOptional<z.ZodNumber>;
1175
1219
  } & {
1176
1220
  type: z.ZodLiteral<"RECT">;
1177
1221
  x: z.ZodPipeline<z.ZodEffects<z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>, string, string | number | undefined>, z.ZodString>;
@@ -1357,6 +1401,16 @@ declare const EasyEdaJsonSchema: z.ZodObject<{
1357
1401
  radius: number;
1358
1402
  id?: string | undefined;
1359
1403
  layer?: number | undefined;
1404
+ } | {
1405
+ type: "VIA";
1406
+ center: {
1407
+ x: number;
1408
+ y: number;
1409
+ };
1410
+ outerDiameter: number;
1411
+ holeDiameter: number;
1412
+ id?: string | undefined;
1413
+ layer?: number | undefined;
1360
1414
  } | {
1361
1415
  type: "RECT";
1362
1416
  x: string;
@@ -1542,6 +1596,16 @@ declare const EasyEdaJsonSchema: z.ZodObject<{
1542
1596
  radius: number;
1543
1597
  id?: string | undefined;
1544
1598
  layer?: number | undefined;
1599
+ } | {
1600
+ type: "VIA";
1601
+ center: {
1602
+ x: number;
1603
+ y: number;
1604
+ };
1605
+ outerDiameter: number;
1606
+ holeDiameter: number;
1607
+ id?: string | undefined;
1608
+ layer?: number | undefined;
1545
1609
  } | {
1546
1610
  type: "RECT";
1547
1611
  x: string;
@@ -1896,6 +1960,16 @@ declare const EasyEdaJsonSchema: z.ZodObject<{
1896
1960
  radius: number;
1897
1961
  id?: string | undefined;
1898
1962
  layer?: number | undefined;
1963
+ } | {
1964
+ type: "VIA";
1965
+ center: {
1966
+ x: number;
1967
+ y: number;
1968
+ };
1969
+ outerDiameter: number;
1970
+ holeDiameter: number;
1971
+ id?: string | undefined;
1972
+ layer?: number | undefined;
1899
1973
  } | {
1900
1974
  type: "RECT";
1901
1975
  x: string;
@@ -91,6 +91,12 @@ var HoleSchema = BaseShapeSchema.extend({
91
91
  center: PointSchema,
92
92
  radius: z.number()
93
93
  });
94
+ var ViaSchema = BaseShapeSchema.extend({
95
+ type: z.literal("VIA"),
96
+ center: PointSchema,
97
+ outerDiameter: z.number(),
98
+ holeDiameter: z.number()
99
+ });
94
100
  var RectSchema = BaseShapeSchema.extend({
95
101
  type: z.literal("RECT"),
96
102
  x: tenthmil,
@@ -120,6 +126,7 @@ var PackageDetailShapeSchema = z.discriminatedUnion("type", [
120
126
  SolidRegionSchema,
121
127
  SVGNodeSchema,
122
128
  HoleSchema,
129
+ ViaSchema,
123
130
  RectSchema,
124
131
  TextSchema
125
132
  ]);
@@ -239,6 +246,17 @@ var ShapeItemSchema = z.object({
239
246
  id
240
247
  });
241
248
  }
249
+ case "VIA": {
250
+ const [x, y, outerDiameter, , holeDiameter, id] = shape.data.split("~");
251
+ const center = [Number(x), Number(y)];
252
+ return ViaSchema.parse({
253
+ type: "VIA",
254
+ center,
255
+ outerDiameter: Number(outerDiameter),
256
+ holeDiameter: Number(holeDiameter),
257
+ id
258
+ });
259
+ }
242
260
  case "SOLIDREGION": {
243
261
  const [layermask, , pathData, fillStyle, id] = shape.data.split("~");
244
262
  const points = pathData.match(/[ML] ?(-?[\d.]+)[ ,](-?[\d.]+)/g)?.map((point2) => {
@@ -2781,6 +2799,7 @@ var generateFootprintTsx = (circuitJson) => {
2781
2799
  const holes = su_default(circuitJson).pcb_hole.list();
2782
2800
  const platedHoles = su_default(circuitJson).pcb_plated_hole.list();
2783
2801
  const smtPads = su_default(circuitJson).pcb_smtpad.list();
2802
+ const vias = su_default(circuitJson).pcb_via.list();
2784
2803
  const silkscreenPaths = su_default(circuitJson).pcb_silkscreen_path.list();
2785
2804
  const silkscreenTexts = su_default(circuitJson).pcb_silkscreen_text.list();
2786
2805
  const elementStrings = [];
@@ -2815,6 +2834,11 @@ var generateFootprintTsx = (circuitJson) => {
2815
2834
  );
2816
2835
  }
2817
2836
  }
2837
+ for (const via of vias) {
2838
+ elementStrings.push(
2839
+ `<via pcbX="${mmStr(via.x)}" pcbY="${mmStr(via.y)}" outerDiameter="${mmStr(via.outer_diameter)}" holeDiameter="${mmStr(via.hole_diameter)}" layers={${JSON.stringify(via.layers)}} />`
2840
+ );
2841
+ }
2818
2842
  for (const silkscreenPath of silkscreenPaths) {
2819
2843
  elementStrings.push(
2820
2844
  `<silkscreenpath route={${JSON.stringify(silkscreenPath.route)}} />`
@@ -3014,6 +3038,17 @@ var handleHoleCutout = (hole, index) => {
3014
3038
  radius: milx10(hole.radius)
3015
3039
  });
3016
3040
  };
3041
+ var handleVia = (via, index) => {
3042
+ return pcb_via.parse({
3043
+ type: "pcb_via",
3044
+ pcb_via_id: `pcb_via_${index + 1}`,
3045
+ x: milx10(via.center.x),
3046
+ y: milx10(via.center.y),
3047
+ outer_diameter: milx10(via.outerDiameter),
3048
+ hole_diameter: milx10(via.holeDiameter),
3049
+ layers: ["top", "bottom"]
3050
+ });
3051
+ };
3017
3052
  var handleCutout = (solidRegion, index) => {
3018
3053
  return pcb_cutout.parse({
3019
3054
  type: "pcb_cutout",
@@ -3160,6 +3195,9 @@ var convertEasyEdaJsonToCircuitJson = (easyEdaJson, { useModelCdn, shouldRecente
3160
3195
  soupElements.push(handleHole(h, index));
3161
3196
  soupElements.push(handleHoleCutout(h, index));
3162
3197
  });
3198
+ easyEdaJson.packageDetail.dataStr.shape.filter((shape) => shape.type === "VIA").forEach((v, index) => {
3199
+ soupElements.push(handleVia(v, index));
3200
+ });
3163
3201
  easyEdaJson.packageDetail.dataStr.shape.filter(
3164
3202
  (shape) => shape.type === "SOLIDREGION" && shape.fillStyle === "cutout"
3165
3203
  ).forEach((sr, index) => {