@tscircuit/3d-viewer 0.0.474 → 0.0.476
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.js +1325 -1298
- package/package.json +2 -11
package/dist/index.js
CHANGED
|
@@ -144,8 +144,8 @@ var require_dist = __commonJS({
|
|
|
144
144
|
fromValues: (x, y) => [x, y]
|
|
145
145
|
},
|
|
146
146
|
vec3: {
|
|
147
|
-
create: (x, y,
|
|
148
|
-
fromValues: (x, y,
|
|
147
|
+
create: (x, y, z138) => [x, y, z138],
|
|
148
|
+
fromValues: (x, y, z138) => [x, y, z138]
|
|
149
149
|
}
|
|
150
150
|
},
|
|
151
151
|
geometries: {
|
|
@@ -532,29 +532,29 @@ var require_fromRotation = __commonJS({
|
|
|
532
532
|
var { sin: sin2, cos: cos2 } = require_trigonometry();
|
|
533
533
|
var identity = require_identity();
|
|
534
534
|
var fromRotation = (out, rad, axis) => {
|
|
535
|
-
let [x, y,
|
|
536
|
-
const lengthSquared = x * x + y * y +
|
|
535
|
+
let [x, y, z138] = axis;
|
|
536
|
+
const lengthSquared = x * x + y * y + z138 * z138;
|
|
537
537
|
if (Math.abs(lengthSquared) < EPS) {
|
|
538
538
|
return identity(out);
|
|
539
539
|
}
|
|
540
540
|
const len = 1 / Math.sqrt(lengthSquared);
|
|
541
541
|
x *= len;
|
|
542
542
|
y *= len;
|
|
543
|
-
|
|
543
|
+
z138 *= len;
|
|
544
544
|
const s = sin2(rad);
|
|
545
545
|
const c = cos2(rad);
|
|
546
546
|
const t = 1 - c;
|
|
547
547
|
out[0] = x * x * t + c;
|
|
548
|
-
out[1] = y * x * t +
|
|
549
|
-
out[2] =
|
|
548
|
+
out[1] = y * x * t + z138 * s;
|
|
549
|
+
out[2] = z138 * x * t - y * s;
|
|
550
550
|
out[3] = 0;
|
|
551
|
-
out[4] = x * y * t -
|
|
551
|
+
out[4] = x * y * t - z138 * s;
|
|
552
552
|
out[5] = y * y * t + c;
|
|
553
|
-
out[6] =
|
|
553
|
+
out[6] = z138 * y * t + x * s;
|
|
554
554
|
out[7] = 0;
|
|
555
|
-
out[8] = x *
|
|
556
|
-
out[9] = y *
|
|
557
|
-
out[10] =
|
|
555
|
+
out[8] = x * z138 * t + y * s;
|
|
556
|
+
out[9] = y * z138 * t - x * s;
|
|
557
|
+
out[10] = z138 * z138 * t + c;
|
|
558
558
|
out[11] = 0;
|
|
559
559
|
out[12] = 0;
|
|
560
560
|
out[13] = 0;
|
|
@@ -808,8 +808,8 @@ var require_distance = __commonJS({
|
|
|
808
808
|
var distance2 = (a, b) => {
|
|
809
809
|
const x = b[0] - a[0];
|
|
810
810
|
const y = b[1] - a[1];
|
|
811
|
-
const
|
|
812
|
-
return Math.sqrt(x * x + y * y +
|
|
811
|
+
const z138 = b[2] - a[2];
|
|
812
|
+
return Math.sqrt(x * x + y * y + z138 * z138);
|
|
813
813
|
};
|
|
814
814
|
module.exports = distance2;
|
|
815
815
|
}
|
|
@@ -857,11 +857,11 @@ var require_fromValues2 = __commonJS({
|
|
|
857
857
|
"node_modules/@jscad/modeling/src/maths/vec3/fromValues.js"(exports, module) {
|
|
858
858
|
"use strict";
|
|
859
859
|
var create = require_create2();
|
|
860
|
-
var fromValues = (x, y,
|
|
860
|
+
var fromValues = (x, y, z138) => {
|
|
861
861
|
const out = create();
|
|
862
862
|
out[0] = x;
|
|
863
863
|
out[1] = y;
|
|
864
|
-
out[2] =
|
|
864
|
+
out[2] = z138;
|
|
865
865
|
return out;
|
|
866
866
|
};
|
|
867
867
|
module.exports = fromValues;
|
|
@@ -872,10 +872,10 @@ var require_fromValues2 = __commonJS({
|
|
|
872
872
|
var require_fromVec2 = __commonJS({
|
|
873
873
|
"node_modules/@jscad/modeling/src/maths/vec3/fromVec2.js"(exports, module) {
|
|
874
874
|
"use strict";
|
|
875
|
-
var fromVector2 = (out, vector,
|
|
875
|
+
var fromVector2 = (out, vector, z138 = 0) => {
|
|
876
876
|
out[0] = vector[0];
|
|
877
877
|
out[1] = vector[1];
|
|
878
|
-
out[2] =
|
|
878
|
+
out[2] = z138;
|
|
879
879
|
return out;
|
|
880
880
|
};
|
|
881
881
|
module.exports = fromVector2;
|
|
@@ -889,8 +889,8 @@ var require_length = __commonJS({
|
|
|
889
889
|
var length2 = (vector) => {
|
|
890
890
|
const x = vector[0];
|
|
891
891
|
const y = vector[1];
|
|
892
|
-
const
|
|
893
|
-
return Math.sqrt(x * x + y * y +
|
|
892
|
+
const z138 = vector[2];
|
|
893
|
+
return Math.sqrt(x * x + y * y + z138 * z138);
|
|
894
894
|
};
|
|
895
895
|
module.exports = length2;
|
|
896
896
|
}
|
|
@@ -973,14 +973,14 @@ var require_normalize = __commonJS({
|
|
|
973
973
|
var normalize = (out, vector) => {
|
|
974
974
|
const x = vector[0];
|
|
975
975
|
const y = vector[1];
|
|
976
|
-
const
|
|
977
|
-
let len = x * x + y * y +
|
|
976
|
+
const z138 = vector[2];
|
|
977
|
+
let len = x * x + y * y + z138 * z138;
|
|
978
978
|
if (len > 0) {
|
|
979
979
|
len = 1 / Math.sqrt(len);
|
|
980
980
|
}
|
|
981
981
|
out[0] = x * len;
|
|
982
982
|
out[1] = y * len;
|
|
983
|
-
out[2] =
|
|
983
|
+
out[2] = z138 * len;
|
|
984
984
|
return out;
|
|
985
985
|
};
|
|
986
986
|
module.exports = normalize;
|
|
@@ -1104,8 +1104,8 @@ var require_squaredDistance = __commonJS({
|
|
|
1104
1104
|
var squaredDistance = (a, b) => {
|
|
1105
1105
|
const x = b[0] - a[0];
|
|
1106
1106
|
const y = b[1] - a[1];
|
|
1107
|
-
const
|
|
1108
|
-
return x * x + y * y +
|
|
1107
|
+
const z138 = b[2] - a[2];
|
|
1108
|
+
return x * x + y * y + z138 * z138;
|
|
1109
1109
|
};
|
|
1110
1110
|
module.exports = squaredDistance;
|
|
1111
1111
|
}
|
|
@@ -1118,8 +1118,8 @@ var require_squaredLength = __commonJS({
|
|
|
1118
1118
|
var squaredLength = (vector) => {
|
|
1119
1119
|
const x = vector[0];
|
|
1120
1120
|
const y = vector[1];
|
|
1121
|
-
const
|
|
1122
|
-
return x * x + y * y +
|
|
1121
|
+
const z138 = vector[2];
|
|
1122
|
+
return x * x + y * y + z138 * z138;
|
|
1123
1123
|
};
|
|
1124
1124
|
module.exports = squaredLength;
|
|
1125
1125
|
}
|
|
@@ -1155,12 +1155,12 @@ var require_transform = __commonJS({
|
|
|
1155
1155
|
var transform2 = (out, vector, matrix) => {
|
|
1156
1156
|
const x = vector[0];
|
|
1157
1157
|
const y = vector[1];
|
|
1158
|
-
const
|
|
1159
|
-
let w = matrix[3] * x + matrix[7] * y + matrix[11] *
|
|
1158
|
+
const z138 = vector[2];
|
|
1159
|
+
let w = matrix[3] * x + matrix[7] * y + matrix[11] * z138 + matrix[15];
|
|
1160
1160
|
w = w || 1;
|
|
1161
|
-
out[0] = (matrix[0] * x + matrix[4] * y + matrix[8] *
|
|
1162
|
-
out[1] = (matrix[1] * x + matrix[5] * y + matrix[9] *
|
|
1163
|
-
out[2] = (matrix[2] * x + matrix[6] * y + matrix[10] *
|
|
1161
|
+
out[0] = (matrix[0] * x + matrix[4] * y + matrix[8] * z138 + matrix[12]) / w;
|
|
1162
|
+
out[1] = (matrix[1] * x + matrix[5] * y + matrix[9] * z138 + matrix[13]) / w;
|
|
1163
|
+
out[2] = (matrix[2] * x + matrix[6] * y + matrix[10] * z138 + matrix[14]) / w;
|
|
1164
1164
|
return out;
|
|
1165
1165
|
};
|
|
1166
1166
|
module.exports = transform2;
|
|
@@ -1362,8 +1362,8 @@ var require_isMirroring = __commonJS({
|
|
|
1362
1362
|
var isMirroring = (matrix) => {
|
|
1363
1363
|
const x = matrix[4] * matrix[9] - matrix[8] * matrix[5];
|
|
1364
1364
|
const y = matrix[8] * matrix[1] - matrix[0] * matrix[9];
|
|
1365
|
-
const
|
|
1366
|
-
const d = x * matrix[2] + y * matrix[6] +
|
|
1365
|
+
const z138 = matrix[0] * matrix[5] - matrix[4] * matrix[1];
|
|
1366
|
+
const d = x * matrix[2] + y * matrix[6] + z138 * matrix[10];
|
|
1367
1367
|
return d < 0;
|
|
1368
1368
|
};
|
|
1369
1369
|
module.exports = isMirroring;
|
|
@@ -1465,15 +1465,15 @@ var require_rotate = __commonJS({
|
|
|
1465
1465
|
var { sin: sin2, cos: cos2 } = require_trigonometry();
|
|
1466
1466
|
var copy = require_copy();
|
|
1467
1467
|
var rotate3 = (out, matrix, radians, axis) => {
|
|
1468
|
-
let [x, y,
|
|
1469
|
-
const lengthSquared = x * x + y * y +
|
|
1468
|
+
let [x, y, z138] = axis;
|
|
1469
|
+
const lengthSquared = x * x + y * y + z138 * z138;
|
|
1470
1470
|
if (Math.abs(lengthSquared) < EPS) {
|
|
1471
1471
|
return copy(out, matrix);
|
|
1472
1472
|
}
|
|
1473
1473
|
const len = 1 / Math.sqrt(lengthSquared);
|
|
1474
1474
|
x *= len;
|
|
1475
1475
|
y *= len;
|
|
1476
|
-
|
|
1476
|
+
z138 *= len;
|
|
1477
1477
|
const s = sin2(radians);
|
|
1478
1478
|
const c = cos2(radians);
|
|
1479
1479
|
const t = 1 - c;
|
|
@@ -1490,14 +1490,14 @@ var require_rotate = __commonJS({
|
|
|
1490
1490
|
const a22 = matrix[10];
|
|
1491
1491
|
const a23 = matrix[11];
|
|
1492
1492
|
const b00 = x * x * t + c;
|
|
1493
|
-
const b01 = y * x * t +
|
|
1494
|
-
const b02 =
|
|
1495
|
-
const b10 = x * y * t -
|
|
1493
|
+
const b01 = y * x * t + z138 * s;
|
|
1494
|
+
const b02 = z138 * x * t - y * s;
|
|
1495
|
+
const b10 = x * y * t - z138 * s;
|
|
1496
1496
|
const b11 = y * y * t + c;
|
|
1497
|
-
const b12 =
|
|
1498
|
-
const b20 = x *
|
|
1499
|
-
const b21 = y *
|
|
1500
|
-
const b22 =
|
|
1497
|
+
const b12 = z138 * y * t + x * s;
|
|
1498
|
+
const b20 = x * z138 * t + y * s;
|
|
1499
|
+
const b21 = y * z138 * t - x * s;
|
|
1500
|
+
const b22 = z138 * z138 * t + c;
|
|
1501
1501
|
out[0] = a00 * b00 + a10 * b01 + a20 * b02;
|
|
1502
1502
|
out[1] = a01 * b00 + a11 * b01 + a21 * b02;
|
|
1503
1503
|
out[2] = a02 * b00 + a12 * b01 + a22 * b02;
|
|
@@ -1649,7 +1649,7 @@ var require_scale2 = __commonJS({
|
|
|
1649
1649
|
var scale3 = (out, matrix, dimensions) => {
|
|
1650
1650
|
const x = dimensions[0];
|
|
1651
1651
|
const y = dimensions[1];
|
|
1652
|
-
const
|
|
1652
|
+
const z138 = dimensions[2];
|
|
1653
1653
|
out[0] = matrix[0] * x;
|
|
1654
1654
|
out[1] = matrix[1] * x;
|
|
1655
1655
|
out[2] = matrix[2] * x;
|
|
@@ -1658,10 +1658,10 @@ var require_scale2 = __commonJS({
|
|
|
1658
1658
|
out[5] = matrix[5] * y;
|
|
1659
1659
|
out[6] = matrix[6] * y;
|
|
1660
1660
|
out[7] = matrix[7] * y;
|
|
1661
|
-
out[8] = matrix[8] *
|
|
1662
|
-
out[9] = matrix[9] *
|
|
1663
|
-
out[10] = matrix[10] *
|
|
1664
|
-
out[11] = matrix[11] *
|
|
1661
|
+
out[8] = matrix[8] * z138;
|
|
1662
|
+
out[9] = matrix[9] * z138;
|
|
1663
|
+
out[10] = matrix[10] * z138;
|
|
1664
|
+
out[11] = matrix[11] * z138;
|
|
1665
1665
|
out[12] = matrix[12];
|
|
1666
1666
|
out[13] = matrix[13];
|
|
1667
1667
|
out[14] = matrix[14];
|
|
@@ -1715,7 +1715,7 @@ var require_translate = __commonJS({
|
|
|
1715
1715
|
var translate7 = (out, matrix, offsets) => {
|
|
1716
1716
|
const x = offsets[0];
|
|
1717
1717
|
const y = offsets[1];
|
|
1718
|
-
const
|
|
1718
|
+
const z138 = offsets[2];
|
|
1719
1719
|
let a00;
|
|
1720
1720
|
let a01;
|
|
1721
1721
|
let a02;
|
|
@@ -1729,10 +1729,10 @@ var require_translate = __commonJS({
|
|
|
1729
1729
|
let a22;
|
|
1730
1730
|
let a23;
|
|
1731
1731
|
if (matrix === out) {
|
|
1732
|
-
out[12] = matrix[0] * x + matrix[4] * y + matrix[8] *
|
|
1733
|
-
out[13] = matrix[1] * x + matrix[5] * y + matrix[9] *
|
|
1734
|
-
out[14] = matrix[2] * x + matrix[6] * y + matrix[10] *
|
|
1735
|
-
out[15] = matrix[3] * x + matrix[7] * y + matrix[11] *
|
|
1732
|
+
out[12] = matrix[0] * x + matrix[4] * y + matrix[8] * z138 + matrix[12];
|
|
1733
|
+
out[13] = matrix[1] * x + matrix[5] * y + matrix[9] * z138 + matrix[13];
|
|
1734
|
+
out[14] = matrix[2] * x + matrix[6] * y + matrix[10] * z138 + matrix[14];
|
|
1735
|
+
out[15] = matrix[3] * x + matrix[7] * y + matrix[11] * z138 + matrix[15];
|
|
1736
1736
|
} else {
|
|
1737
1737
|
a00 = matrix[0];
|
|
1738
1738
|
a01 = matrix[1];
|
|
@@ -1758,10 +1758,10 @@ var require_translate = __commonJS({
|
|
|
1758
1758
|
out[9] = a21;
|
|
1759
1759
|
out[10] = a22;
|
|
1760
1760
|
out[11] = a23;
|
|
1761
|
-
out[12] = a00 * x + a10 * y + a20 *
|
|
1762
|
-
out[13] = a01 * x + a11 * y + a21 *
|
|
1763
|
-
out[14] = a02 * x + a12 * y + a22 *
|
|
1764
|
-
out[15] = a03 * x + a13 * y + a23 *
|
|
1761
|
+
out[12] = a00 * x + a10 * y + a20 * z138 + matrix[12];
|
|
1762
|
+
out[13] = a01 * x + a11 * y + a21 * z138 + matrix[13];
|
|
1763
|
+
out[14] = a02 * x + a12 * y + a22 * z138 + matrix[14];
|
|
1764
|
+
out[15] = a03 * x + a13 * y + a23 * z138 + matrix[15];
|
|
1765
1765
|
}
|
|
1766
1766
|
return out;
|
|
1767
1767
|
};
|
|
@@ -3831,11 +3831,11 @@ var require_fromValues4 = __commonJS({
|
|
|
3831
3831
|
"node_modules/@jscad/modeling/src/maths/vec4/fromValues.js"(exports, module) {
|
|
3832
3832
|
"use strict";
|
|
3833
3833
|
var create = require_create7();
|
|
3834
|
-
var fromValues = (x, y,
|
|
3834
|
+
var fromValues = (x, y, z138, w) => {
|
|
3835
3835
|
const out = create();
|
|
3836
3836
|
out[0] = x;
|
|
3837
3837
|
out[1] = y;
|
|
3838
|
-
out[2] =
|
|
3838
|
+
out[2] = z138;
|
|
3839
3839
|
out[3] = w;
|
|
3840
3840
|
return out;
|
|
3841
3841
|
};
|
|
@@ -3993,8 +3993,8 @@ var require_projectionOfPoint = __commonJS({
|
|
|
3993
3993
|
const a = point2[0] * plane[0] + point2[1] * plane[1] + point2[2] * plane[2] - plane[3];
|
|
3994
3994
|
const x = point2[0] - a * plane[0];
|
|
3995
3995
|
const y = point2[1] - a * plane[1];
|
|
3996
|
-
const
|
|
3997
|
-
return vec3.fromValues(x, y,
|
|
3996
|
+
const z138 = point2[2] - a * plane[2];
|
|
3997
|
+
return vec3.fromValues(x, y, z138);
|
|
3998
3998
|
};
|
|
3999
3999
|
module.exports = projectionOfPoint;
|
|
4000
4000
|
}
|
|
@@ -4298,11 +4298,11 @@ var require_transform5 = __commonJS({
|
|
|
4298
4298
|
"node_modules/@jscad/modeling/src/maths/vec4/transform.js"(exports, module) {
|
|
4299
4299
|
"use strict";
|
|
4300
4300
|
var transform2 = (out, vector, matrix) => {
|
|
4301
|
-
const [x, y,
|
|
4302
|
-
out[0] = matrix[0] * x + matrix[4] * y + matrix[8] *
|
|
4303
|
-
out[1] = matrix[1] * x + matrix[5] * y + matrix[9] *
|
|
4304
|
-
out[2] = matrix[2] * x + matrix[6] * y + matrix[10] *
|
|
4305
|
-
out[3] = matrix[3] * x + matrix[7] * y + matrix[11] *
|
|
4301
|
+
const [x, y, z138, w] = vector;
|
|
4302
|
+
out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z138 + matrix[12] * w;
|
|
4303
|
+
out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z138 + matrix[13] * w;
|
|
4304
|
+
out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z138 + matrix[14] * w;
|
|
4305
|
+
out[3] = matrix[3] * x + matrix[7] * y + matrix[11] * z138 + matrix[15] * w;
|
|
4306
4306
|
return out;
|
|
4307
4307
|
};
|
|
4308
4308
|
module.exports = transform2;
|
|
@@ -4364,8 +4364,8 @@ var require_measureBoundingSphere = __commonJS({
|
|
|
4364
4364
|
out[2] = (minz[2] + maxz[2]) * 0.5;
|
|
4365
4365
|
const x = out[0] - maxx[0];
|
|
4366
4366
|
const y = out[1] - maxy[1];
|
|
4367
|
-
const
|
|
4368
|
-
out[3] = Math.sqrt(x * x + y * y +
|
|
4367
|
+
const z138 = out[2] - maxz[2];
|
|
4368
|
+
out[3] = Math.sqrt(x * x + y * y + z138 * z138);
|
|
4369
4369
|
cache.set(polygon3, out);
|
|
4370
4370
|
return out;
|
|
4371
4371
|
};
|
|
@@ -12563,31 +12563,29 @@ var require_extrudeHelical = __commonJS({
|
|
|
12563
12563
|
"node_modules/@jscad/modeling/src/operations/extrusions/extrudeHelical.js"(exports, module) {
|
|
12564
12564
|
"use strict";
|
|
12565
12565
|
var { TAU } = require_constants();
|
|
12566
|
-
var slice = require_slice();
|
|
12567
12566
|
var mat4 = require_mat4();
|
|
12568
|
-
var extrudeFromSlices = require_extrudeFromSlices();
|
|
12569
12567
|
var geom2 = require_geom2();
|
|
12568
|
+
var extrudeFromSlices = require_extrudeFromSlices();
|
|
12569
|
+
var slice = require_slice();
|
|
12570
12570
|
var extrudeHelical = (options, geometry) => {
|
|
12571
12571
|
const defaults = {
|
|
12572
12572
|
angle: TAU,
|
|
12573
12573
|
startAngle: 0,
|
|
12574
12574
|
pitch: 10,
|
|
12575
|
+
height: 0,
|
|
12575
12576
|
endOffset: 0,
|
|
12576
12577
|
segmentsPerRotation: 32
|
|
12577
12578
|
};
|
|
12578
|
-
|
|
12579
|
-
|
|
12580
|
-
|
|
12581
|
-
pitch = options.height / (angle / TAU);
|
|
12582
|
-
} else {
|
|
12583
|
-
pitch = options.pitch ? options.pitch : defaults.pitch;
|
|
12579
|
+
let { angle, startAngle, pitch, height: height10, endOffset, segmentsPerRotation } = Object.assign({}, defaults, options);
|
|
12580
|
+
if (height10 != 0) {
|
|
12581
|
+
pitch = height10 / (angle / TAU);
|
|
12584
12582
|
}
|
|
12585
12583
|
const minNumberOfSegments = 3;
|
|
12586
12584
|
if (segmentsPerRotation < minNumberOfSegments) {
|
|
12587
12585
|
throw new Error("The number of segments per rotation needs to be at least 3.");
|
|
12588
12586
|
}
|
|
12589
12587
|
const shapeSides = geom2.toSides(geometry);
|
|
12590
|
-
if (shapeSides.length === 0) throw new Error("
|
|
12588
|
+
if (shapeSides.length === 0) throw new Error("The given geometry cannot be empty");
|
|
12591
12589
|
const pointsWithPositiveX = shapeSides.filter((s) => s[0][0] >= 0);
|
|
12592
12590
|
let baseSlice = slice.fromSides(shapeSides);
|
|
12593
12591
|
if (pointsWithPositiveX.length === 0) {
|
|
@@ -12596,7 +12594,7 @@ var require_extrudeHelical = __commonJS({
|
|
|
12596
12594
|
const calculatedSegments = Math.round(segmentsPerRotation / TAU * Math.abs(angle));
|
|
12597
12595
|
const segments = calculatedSegments >= 2 ? calculatedSegments : 2;
|
|
12598
12596
|
const step1 = mat4.create();
|
|
12599
|
-
|
|
12597
|
+
const step2 = mat4.create();
|
|
12600
12598
|
const sliceCallback = (progress, index2, base) => {
|
|
12601
12599
|
const zRotation = startAngle + angle / segments * index2;
|
|
12602
12600
|
const xOffset = endOffset / segments * index2;
|
|
@@ -12609,14 +12607,13 @@ var require_extrudeHelical = __commonJS({
|
|
|
12609
12607
|
mat4.fromXRotation(mat4.create(), -TAU / 4 * Math.sign(angle))
|
|
12610
12608
|
// rotate the slice correctly to not create inside-out polygon
|
|
12611
12609
|
);
|
|
12612
|
-
matrix = mat4.create();
|
|
12613
12610
|
mat4.multiply(
|
|
12614
|
-
|
|
12611
|
+
step2,
|
|
12615
12612
|
// finally rotate around Z axis
|
|
12616
12613
|
mat4.fromZRotation(mat4.create(), zRotation),
|
|
12617
12614
|
step1
|
|
12618
12615
|
);
|
|
12619
|
-
return slice.transform(
|
|
12616
|
+
return slice.transform(step2, base);
|
|
12620
12617
|
};
|
|
12621
12618
|
return extrudeFromSlices(
|
|
12622
12619
|
{
|
|
@@ -14791,7 +14788,7 @@ var import_jscad_planner = __toESM(require_dist(), 1);
|
|
|
14791
14788
|
var import_modeling = __toESM(require_src(), 1);
|
|
14792
14789
|
|
|
14793
14790
|
// node_modules/@tscircuit/footprinter/dist/index.js
|
|
14794
|
-
import { z as
|
|
14791
|
+
import { z as z136 } from "zod";
|
|
14795
14792
|
|
|
14796
14793
|
// node_modules/@tscircuit/mm/dist/index.js
|
|
14797
14794
|
var unitToMm = {
|
|
@@ -14835,8 +14832,8 @@ import { z as z12 } from "zod";
|
|
|
14835
14832
|
import { z as z13 } from "zod";
|
|
14836
14833
|
import { z as z14 } from "zod";
|
|
14837
14834
|
import { z as z15 } from "zod";
|
|
14838
|
-
import { z as z36 } from "zod";
|
|
14839
14835
|
import { z as z16 } from "zod";
|
|
14836
|
+
import { z as z38 } from "zod";
|
|
14840
14837
|
import { z as z17 } from "zod";
|
|
14841
14838
|
import { z as z18 } from "zod";
|
|
14842
14839
|
import { z as z19 } from "zod";
|
|
@@ -14856,17 +14853,17 @@ import { z as z32 } from "zod";
|
|
|
14856
14853
|
import { z as z33 } from "zod";
|
|
14857
14854
|
import { z as z34 } from "zod";
|
|
14858
14855
|
import { z as z35 } from "zod";
|
|
14856
|
+
import { z as z36 } from "zod";
|
|
14859
14857
|
import { z as z37 } from "zod";
|
|
14860
|
-
import { z as z38 } from "zod";
|
|
14861
14858
|
import { z as z39 } from "zod";
|
|
14862
14859
|
import { z as z40 } from "zod";
|
|
14863
14860
|
import { z as z41 } from "zod";
|
|
14864
14861
|
import { z as z42 } from "zod";
|
|
14865
|
-
import { z as z44 } from "zod";
|
|
14866
14862
|
import { z as z43 } from "zod";
|
|
14863
|
+
import { z as z44 } from "zod";
|
|
14867
14864
|
import { z as z45 } from "zod";
|
|
14868
|
-
import { z as z46 } from "zod";
|
|
14869
14865
|
import { z as z47 } from "zod";
|
|
14866
|
+
import { z as z46 } from "zod";
|
|
14870
14867
|
import { z as z48 } from "zod";
|
|
14871
14868
|
import { z as z49 } from "zod";
|
|
14872
14869
|
import { z as z50 } from "zod";
|
|
@@ -14874,11 +14871,11 @@ import { z as z51 } from "zod";
|
|
|
14874
14871
|
import { z as z52 } from "zod";
|
|
14875
14872
|
import { z as z53 } from "zod";
|
|
14876
14873
|
import { z as z54 } from "zod";
|
|
14877
|
-
import { z as z56 } from "zod";
|
|
14878
14874
|
import { z as z55 } from "zod";
|
|
14875
|
+
import { z as z56 } from "zod";
|
|
14879
14876
|
import { z as z57 } from "zod";
|
|
14880
|
-
import { z as z58 } from "zod";
|
|
14881
14877
|
import { z as z59 } from "zod";
|
|
14878
|
+
import { z as z58 } from "zod";
|
|
14882
14879
|
import { z as z60 } from "zod";
|
|
14883
14880
|
import { z as z61 } from "zod";
|
|
14884
14881
|
import { z as z62 } from "zod";
|
|
@@ -14952,6 +14949,9 @@ import { z as z129 } from "zod";
|
|
|
14952
14949
|
import { z as z130 } from "zod";
|
|
14953
14950
|
import { z as z131 } from "zod";
|
|
14954
14951
|
import { z as z132 } from "zod";
|
|
14952
|
+
import { z as z133 } from "zod";
|
|
14953
|
+
import { z as z134 } from "zod";
|
|
14954
|
+
import { z as z135 } from "zod";
|
|
14955
14955
|
var unitMappings = {
|
|
14956
14956
|
Hz: {
|
|
14957
14957
|
baseUnit: "Hz",
|
|
@@ -15288,191 +15288,200 @@ var source_simple_diode = source_component_base.extend({
|
|
|
15288
15288
|
ftype: z11.literal("simple_diode")
|
|
15289
15289
|
});
|
|
15290
15290
|
expectTypesMatch(true);
|
|
15291
|
+
var source_simple_fiducial = source_component_base.extend({
|
|
15292
|
+
ftype: z12.literal("simple_fiducial")
|
|
15293
|
+
});
|
|
15294
|
+
expectTypesMatch(true);
|
|
15291
15295
|
var source_simple_led = source_simple_diode.extend({
|
|
15292
|
-
ftype:
|
|
15293
|
-
color:
|
|
15294
|
-
wavelength:
|
|
15296
|
+
ftype: z13.literal("simple_led"),
|
|
15297
|
+
color: z13.string().optional(),
|
|
15298
|
+
wavelength: z13.string().optional()
|
|
15295
15299
|
});
|
|
15296
15300
|
expectTypesMatch(true);
|
|
15297
15301
|
var source_simple_ground = source_component_base.extend({
|
|
15298
|
-
ftype:
|
|
15302
|
+
ftype: z14.literal("simple_ground")
|
|
15299
15303
|
});
|
|
15300
15304
|
expectTypesMatch(true);
|
|
15301
15305
|
var source_simple_chip = source_component_base.extend({
|
|
15302
|
-
ftype:
|
|
15306
|
+
ftype: z15.literal("simple_chip")
|
|
15303
15307
|
});
|
|
15304
15308
|
expectTypesMatch(true);
|
|
15305
15309
|
var source_simple_power_source = source_component_base.extend({
|
|
15306
|
-
ftype:
|
|
15310
|
+
ftype: z16.literal("simple_power_source"),
|
|
15307
15311
|
voltage
|
|
15308
15312
|
});
|
|
15309
15313
|
expectTypesMatch(true);
|
|
15310
15314
|
var source_simple_fuse = source_component_base.extend({
|
|
15311
|
-
ftype:
|
|
15312
|
-
current_rating_amps:
|
|
15313
|
-
voltage_rating_volts:
|
|
15315
|
+
ftype: z17.literal("simple_fuse"),
|
|
15316
|
+
current_rating_amps: z17.number().describe("Nominal current in amps the fuse is rated for"),
|
|
15317
|
+
voltage_rating_volts: z17.number().describe("Voltage rating in volts, e.g. \xB15V would be 5")
|
|
15314
15318
|
});
|
|
15315
15319
|
expectTypesMatch(true);
|
|
15316
15320
|
var source_simple_battery = source_component_base.extend({
|
|
15317
|
-
ftype:
|
|
15321
|
+
ftype: z18.literal("simple_battery"),
|
|
15318
15322
|
capacity: battery_capacity
|
|
15319
15323
|
});
|
|
15320
15324
|
expectTypesMatch(true);
|
|
15321
15325
|
var source_simple_inductor = source_component_base.extend({
|
|
15322
|
-
ftype:
|
|
15326
|
+
ftype: z19.literal("simple_inductor"),
|
|
15323
15327
|
inductance,
|
|
15324
|
-
max_current_rating:
|
|
15328
|
+
max_current_rating: z19.number().optional()
|
|
15325
15329
|
});
|
|
15326
15330
|
expectTypesMatch(true);
|
|
15327
15331
|
var source_simple_push_button = source_component_base.extend({
|
|
15328
|
-
ftype:
|
|
15332
|
+
ftype: z20.literal("simple_push_button")
|
|
15329
15333
|
});
|
|
15330
15334
|
expectTypesMatch(true);
|
|
15331
15335
|
var source_simple_potentiometer = source_component_base.extend({
|
|
15332
|
-
ftype:
|
|
15336
|
+
ftype: z21.literal("simple_potentiometer"),
|
|
15333
15337
|
max_resistance: resistance
|
|
15334
15338
|
});
|
|
15335
15339
|
expectTypesMatch(
|
|
15336
15340
|
true
|
|
15337
15341
|
);
|
|
15338
15342
|
var source_simple_crystal = source_component_base.extend({
|
|
15339
|
-
ftype:
|
|
15340
|
-
frequency:
|
|
15341
|
-
load_capacitance:
|
|
15343
|
+
ftype: z22.literal("simple_crystal"),
|
|
15344
|
+
frequency: z22.number().describe("Frequency in Hz"),
|
|
15345
|
+
load_capacitance: z22.number().optional().describe("Load capacitance in pF")
|
|
15342
15346
|
});
|
|
15343
15347
|
expectTypesMatch(true);
|
|
15344
15348
|
var source_simple_pin_header = source_component_base.extend({
|
|
15345
|
-
ftype:
|
|
15346
|
-
pin_count:
|
|
15347
|
-
gender:
|
|
15349
|
+
ftype: z23.literal("simple_pin_header"),
|
|
15350
|
+
pin_count: z23.number(),
|
|
15351
|
+
gender: z23.enum(["male", "female"]).optional().default("male")
|
|
15348
15352
|
});
|
|
15349
15353
|
expectTypesMatch(true);
|
|
15350
15354
|
var source_simple_pinout = source_component_base.extend({
|
|
15351
|
-
ftype:
|
|
15355
|
+
ftype: z24.literal("simple_pinout")
|
|
15352
15356
|
});
|
|
15353
15357
|
expectTypesMatch(true);
|
|
15354
15358
|
var source_simple_resonator = source_component_base.extend({
|
|
15355
|
-
ftype:
|
|
15359
|
+
ftype: z25.literal("simple_resonator"),
|
|
15356
15360
|
load_capacitance: capacitance,
|
|
15357
15361
|
equivalent_series_resistance: resistance.optional(),
|
|
15358
15362
|
frequency
|
|
15359
15363
|
});
|
|
15360
15364
|
expectTypesMatch(true);
|
|
15361
15365
|
var source_simple_transistor = source_component_base.extend({
|
|
15362
|
-
ftype:
|
|
15363
|
-
transistor_type:
|
|
15366
|
+
ftype: z26.literal("simple_transistor"),
|
|
15367
|
+
transistor_type: z26.enum(["npn", "pnp"])
|
|
15364
15368
|
});
|
|
15365
15369
|
expectTypesMatch(true);
|
|
15366
15370
|
var source_simple_test_point = source_component_base.extend({
|
|
15367
|
-
ftype:
|
|
15368
|
-
footprint_variant:
|
|
15369
|
-
pad_shape:
|
|
15370
|
-
pad_diameter:
|
|
15371
|
-
hole_diameter:
|
|
15372
|
-
width:
|
|
15373
|
-
height:
|
|
15371
|
+
ftype: z27.literal("simple_test_point"),
|
|
15372
|
+
footprint_variant: z27.enum(["pad", "through_hole"]).optional(),
|
|
15373
|
+
pad_shape: z27.enum(["rect", "circle"]).optional(),
|
|
15374
|
+
pad_diameter: z27.union([z27.number(), z27.string()]).optional(),
|
|
15375
|
+
hole_diameter: z27.union([z27.number(), z27.string()]).optional(),
|
|
15376
|
+
width: z27.union([z27.number(), z27.string()]).optional(),
|
|
15377
|
+
height: z27.union([z27.number(), z27.string()]).optional()
|
|
15374
15378
|
});
|
|
15375
15379
|
expectTypesMatch(true);
|
|
15376
15380
|
var source_simple_mosfet = source_component_base.extend({
|
|
15377
|
-
ftype:
|
|
15378
|
-
channel_type:
|
|
15379
|
-
mosfet_mode:
|
|
15381
|
+
ftype: z28.literal("simple_mosfet"),
|
|
15382
|
+
channel_type: z28.enum(["n", "p"]),
|
|
15383
|
+
mosfet_mode: z28.enum(["enhancement", "depletion"])
|
|
15380
15384
|
});
|
|
15381
15385
|
expectTypesMatch(true);
|
|
15382
15386
|
var source_simple_switch = source_component_base.extend({
|
|
15383
|
-
ftype:
|
|
15387
|
+
ftype: z29.literal("simple_switch")
|
|
15384
15388
|
});
|
|
15385
15389
|
expectTypesMatch(true);
|
|
15386
|
-
var source_project_metadata =
|
|
15387
|
-
type:
|
|
15388
|
-
name:
|
|
15389
|
-
software_used_string:
|
|
15390
|
-
project_url:
|
|
15390
|
+
var source_project_metadata = z30.object({
|
|
15391
|
+
type: z30.literal("source_project_metadata"),
|
|
15392
|
+
name: z30.string().optional(),
|
|
15393
|
+
software_used_string: z30.string().optional(),
|
|
15394
|
+
project_url: z30.string().optional(),
|
|
15391
15395
|
created_at: timestamp.optional()
|
|
15392
15396
|
});
|
|
15393
15397
|
expectTypesMatch(true);
|
|
15394
|
-
var source_missing_property_error =
|
|
15395
|
-
type:
|
|
15398
|
+
var source_missing_property_error = z31.object({
|
|
15399
|
+
type: z31.literal("source_missing_property_error"),
|
|
15396
15400
|
source_missing_property_error_id: getZodPrefixedIdWithDefault(
|
|
15397
15401
|
"source_missing_property_error"
|
|
15398
15402
|
),
|
|
15399
|
-
source_component_id:
|
|
15400
|
-
property_name:
|
|
15401
|
-
subcircuit_id:
|
|
15402
|
-
error_type:
|
|
15403
|
-
message:
|
|
15403
|
+
source_component_id: z31.string(),
|
|
15404
|
+
property_name: z31.string(),
|
|
15405
|
+
subcircuit_id: z31.string().optional(),
|
|
15406
|
+
error_type: z31.literal("source_missing_property_error").default("source_missing_property_error"),
|
|
15407
|
+
message: z31.string()
|
|
15404
15408
|
}).describe("The source code is missing a property");
|
|
15405
15409
|
expectTypesMatch(true);
|
|
15406
|
-
var source_failed_to_create_component_error =
|
|
15407
|
-
type:
|
|
15410
|
+
var source_failed_to_create_component_error = z32.object({
|
|
15411
|
+
type: z32.literal("source_failed_to_create_component_error"),
|
|
15408
15412
|
source_failed_to_create_component_error_id: getZodPrefixedIdWithDefault(
|
|
15409
15413
|
"source_failed_to_create_component_error"
|
|
15410
15414
|
),
|
|
15411
|
-
error_type:
|
|
15412
|
-
component_name:
|
|
15413
|
-
subcircuit_id:
|
|
15414
|
-
parent_source_component_id:
|
|
15415
|
-
message:
|
|
15416
|
-
pcb_center:
|
|
15417
|
-
x:
|
|
15418
|
-
y:
|
|
15415
|
+
error_type: z32.literal("source_failed_to_create_component_error").default("source_failed_to_create_component_error"),
|
|
15416
|
+
component_name: z32.string().optional(),
|
|
15417
|
+
subcircuit_id: z32.string().optional(),
|
|
15418
|
+
parent_source_component_id: z32.string().optional(),
|
|
15419
|
+
message: z32.string(),
|
|
15420
|
+
pcb_center: z32.object({
|
|
15421
|
+
x: z32.number().optional(),
|
|
15422
|
+
y: z32.number().optional()
|
|
15419
15423
|
}).optional(),
|
|
15420
|
-
schematic_center:
|
|
15421
|
-
x:
|
|
15422
|
-
y:
|
|
15424
|
+
schematic_center: z32.object({
|
|
15425
|
+
x: z32.number().optional(),
|
|
15426
|
+
y: z32.number().optional()
|
|
15423
15427
|
}).optional()
|
|
15424
15428
|
}).describe("Error emitted when a component fails to be constructed");
|
|
15425
15429
|
expectTypesMatch(true);
|
|
15426
|
-
var source_trace_not_connected_error =
|
|
15427
|
-
type:
|
|
15430
|
+
var source_trace_not_connected_error = z33.object({
|
|
15431
|
+
type: z33.literal("source_trace_not_connected_error"),
|
|
15428
15432
|
source_trace_not_connected_error_id: getZodPrefixedIdWithDefault(
|
|
15429
15433
|
"source_trace_not_connected_error"
|
|
15430
15434
|
),
|
|
15431
|
-
error_type:
|
|
15432
|
-
message:
|
|
15433
|
-
subcircuit_id:
|
|
15434
|
-
source_group_id:
|
|
15435
|
-
source_trace_id:
|
|
15436
|
-
connected_source_port_ids:
|
|
15437
|
-
selectors_not_found:
|
|
15435
|
+
error_type: z33.literal("source_trace_not_connected_error").default("source_trace_not_connected_error"),
|
|
15436
|
+
message: z33.string(),
|
|
15437
|
+
subcircuit_id: z33.string().optional(),
|
|
15438
|
+
source_group_id: z33.string().optional(),
|
|
15439
|
+
source_trace_id: z33.string().optional(),
|
|
15440
|
+
connected_source_port_ids: z33.array(z33.string()).optional(),
|
|
15441
|
+
selectors_not_found: z33.array(z33.string()).optional()
|
|
15438
15442
|
}).describe("Occurs when a source trace selector does not match any ports");
|
|
15439
15443
|
expectTypesMatch(true);
|
|
15440
|
-
var source_property_ignored_warning =
|
|
15441
|
-
type:
|
|
15444
|
+
var source_property_ignored_warning = z34.object({
|
|
15445
|
+
type: z34.literal("source_property_ignored_warning"),
|
|
15442
15446
|
source_property_ignored_warning_id: getZodPrefixedIdWithDefault(
|
|
15443
15447
|
"source_property_ignored_warning"
|
|
15444
15448
|
),
|
|
15445
|
-
source_component_id:
|
|
15446
|
-
property_name:
|
|
15447
|
-
subcircuit_id:
|
|
15448
|
-
error_type:
|
|
15449
|
-
message:
|
|
15449
|
+
source_component_id: z34.string(),
|
|
15450
|
+
property_name: z34.string(),
|
|
15451
|
+
subcircuit_id: z34.string().optional(),
|
|
15452
|
+
error_type: z34.literal("source_property_ignored_warning").default("source_property_ignored_warning"),
|
|
15453
|
+
message: z34.string()
|
|
15450
15454
|
}).describe("The source property was ignored");
|
|
15451
15455
|
expectTypesMatch(true);
|
|
15452
|
-
var source_pin_missing_trace_warning =
|
|
15453
|
-
type:
|
|
15456
|
+
var source_pin_missing_trace_warning = z35.object({
|
|
15457
|
+
type: z35.literal("source_pin_missing_trace_warning"),
|
|
15454
15458
|
source_pin_missing_trace_warning_id: getZodPrefixedIdWithDefault(
|
|
15455
15459
|
"source_pin_missing_trace_warning"
|
|
15456
15460
|
),
|
|
15457
|
-
warning_type:
|
|
15458
|
-
message:
|
|
15459
|
-
source_component_id:
|
|
15460
|
-
source_port_id:
|
|
15461
|
-
subcircuit_id:
|
|
15461
|
+
warning_type: z35.literal("source_pin_missing_trace_warning").default("source_pin_missing_trace_warning"),
|
|
15462
|
+
message: z35.string(),
|
|
15463
|
+
source_component_id: z35.string(),
|
|
15464
|
+
source_port_id: z35.string(),
|
|
15465
|
+
subcircuit_id: z35.string().optional()
|
|
15462
15466
|
}).describe(
|
|
15463
15467
|
"Warning emitted when a source component pin is missing a trace connection"
|
|
15464
15468
|
);
|
|
15465
15469
|
expectTypesMatch(true);
|
|
15466
15470
|
var source_simple_voltage_probe = source_component_base.extend({
|
|
15467
|
-
ftype:
|
|
15471
|
+
ftype: z36.literal("simple_voltage_probe")
|
|
15468
15472
|
});
|
|
15469
15473
|
expectTypesMatch(
|
|
15470
15474
|
true
|
|
15471
15475
|
);
|
|
15472
|
-
var
|
|
15476
|
+
var source_interconnect = source_component_base.extend({
|
|
15477
|
+
ftype: z37.literal("interconnect")
|
|
15478
|
+
});
|
|
15479
|
+
expectTypesMatch(true);
|
|
15480
|
+
var any_source_component = z38.union([
|
|
15473
15481
|
source_simple_resistor,
|
|
15474
15482
|
source_simple_capacitor,
|
|
15475
15483
|
source_simple_diode,
|
|
15484
|
+
source_simple_fiducial,
|
|
15476
15485
|
source_simple_led,
|
|
15477
15486
|
source_simple_ground,
|
|
15478
15487
|
source_simple_chip,
|
|
@@ -15491,6 +15500,7 @@ var any_source_component = z36.union([
|
|
|
15491
15500
|
source_simple_mosfet,
|
|
15492
15501
|
source_simple_fuse,
|
|
15493
15502
|
source_simple_voltage_probe,
|
|
15503
|
+
source_interconnect,
|
|
15494
15504
|
source_project_metadata,
|
|
15495
15505
|
source_missing_property_error,
|
|
15496
15506
|
source_failed_to_create_component_error,
|
|
@@ -15499,71 +15509,79 @@ var any_source_component = z36.union([
|
|
|
15499
15509
|
source_pin_missing_trace_warning
|
|
15500
15510
|
]);
|
|
15501
15511
|
expectTypesMatch(true);
|
|
15502
|
-
var source_port =
|
|
15503
|
-
type:
|
|
15504
|
-
pin_number:
|
|
15505
|
-
port_hints:
|
|
15506
|
-
name:
|
|
15507
|
-
source_port_id:
|
|
15508
|
-
source_component_id:
|
|
15509
|
-
source_group_id:
|
|
15510
|
-
subcircuit_id:
|
|
15511
|
-
subcircuit_connectivity_map_key:
|
|
15512
|
-
must_be_connected:
|
|
15512
|
+
var source_port = z39.object({
|
|
15513
|
+
type: z39.literal("source_port"),
|
|
15514
|
+
pin_number: z39.number().optional(),
|
|
15515
|
+
port_hints: z39.array(z39.string()).optional(),
|
|
15516
|
+
name: z39.string(),
|
|
15517
|
+
source_port_id: z39.string(),
|
|
15518
|
+
source_component_id: z39.string().optional(),
|
|
15519
|
+
source_group_id: z39.string().optional(),
|
|
15520
|
+
subcircuit_id: z39.string().optional(),
|
|
15521
|
+
subcircuit_connectivity_map_key: z39.string().optional(),
|
|
15522
|
+
must_be_connected: z39.boolean().optional()
|
|
15513
15523
|
});
|
|
15514
15524
|
expectTypesMatch(true);
|
|
15515
|
-
var
|
|
15516
|
-
type:
|
|
15517
|
-
|
|
15518
|
-
|
|
15519
|
-
|
|
15520
|
-
subcircuit_id:
|
|
15521
|
-
subcircuit_connectivity_map_key: z38.string().optional(),
|
|
15522
|
-
max_length: z38.number().optional(),
|
|
15523
|
-
min_trace_thickness: z38.number().optional(),
|
|
15524
|
-
display_name: z38.string().optional()
|
|
15525
|
+
var source_component_internal_connection = z40.object({
|
|
15526
|
+
type: z40.literal("source_component_internal_connection"),
|
|
15527
|
+
source_component_internal_connection_id: z40.string(),
|
|
15528
|
+
source_component_id: z40.string(),
|
|
15529
|
+
source_port_ids: z40.array(z40.string()),
|
|
15530
|
+
subcircuit_id: z40.string().optional()
|
|
15525
15531
|
});
|
|
15526
15532
|
expectTypesMatch(true);
|
|
15527
|
-
var
|
|
15528
|
-
type:
|
|
15529
|
-
|
|
15530
|
-
|
|
15531
|
-
|
|
15532
|
-
|
|
15533
|
-
|
|
15534
|
-
|
|
15535
|
-
|
|
15536
|
-
|
|
15533
|
+
var source_trace = z41.object({
|
|
15534
|
+
type: z41.literal("source_trace"),
|
|
15535
|
+
source_trace_id: z41.string(),
|
|
15536
|
+
connected_source_port_ids: z41.array(z41.string()),
|
|
15537
|
+
connected_source_net_ids: z41.array(z41.string()),
|
|
15538
|
+
subcircuit_id: z41.string().optional(),
|
|
15539
|
+
subcircuit_connectivity_map_key: z41.string().optional(),
|
|
15540
|
+
max_length: z41.number().optional(),
|
|
15541
|
+
min_trace_thickness: z41.number().optional(),
|
|
15542
|
+
display_name: z41.string().optional()
|
|
15537
15543
|
});
|
|
15538
15544
|
expectTypesMatch(true);
|
|
15539
|
-
var
|
|
15540
|
-
type:
|
|
15541
|
-
|
|
15542
|
-
|
|
15543
|
-
|
|
15544
|
-
|
|
15545
|
-
|
|
15546
|
-
|
|
15547
|
-
|
|
15548
|
-
|
|
15549
|
-
trace_width: z40.number().optional(),
|
|
15550
|
-
subcircuit_id: z40.string().optional(),
|
|
15551
|
-
subcircuit_connectivity_map_key: z40.string().optional()
|
|
15545
|
+
var source_group = z42.object({
|
|
15546
|
+
type: z42.literal("source_group"),
|
|
15547
|
+
source_group_id: z42.string(),
|
|
15548
|
+
subcircuit_id: z42.string().optional(),
|
|
15549
|
+
parent_subcircuit_id: z42.string().optional(),
|
|
15550
|
+
parent_source_group_id: z42.string().optional(),
|
|
15551
|
+
is_subcircuit: z42.boolean().optional(),
|
|
15552
|
+
show_as_schematic_box: z42.boolean().optional(),
|
|
15553
|
+
name: z42.string().optional(),
|
|
15554
|
+
was_automatically_named: z42.boolean().optional()
|
|
15552
15555
|
});
|
|
15553
15556
|
expectTypesMatch(true);
|
|
15554
|
-
var
|
|
15555
|
-
type:
|
|
15556
|
-
|
|
15557
|
-
|
|
15558
|
-
|
|
15557
|
+
var source_net = z43.object({
|
|
15558
|
+
type: z43.literal("source_net"),
|
|
15559
|
+
source_net_id: z43.string(),
|
|
15560
|
+
name: z43.string(),
|
|
15561
|
+
member_source_group_ids: z43.array(z43.string()),
|
|
15562
|
+
is_power: z43.boolean().optional(),
|
|
15563
|
+
is_ground: z43.boolean().optional(),
|
|
15564
|
+
is_digital_signal: z43.boolean().optional(),
|
|
15565
|
+
is_analog_signal: z43.boolean().optional(),
|
|
15566
|
+
is_positive_voltage_source: z43.boolean().optional(),
|
|
15567
|
+
trace_width: z43.number().optional(),
|
|
15568
|
+
subcircuit_id: z43.string().optional(),
|
|
15569
|
+
subcircuit_connectivity_map_key: z43.string().optional()
|
|
15570
|
+
});
|
|
15571
|
+
expectTypesMatch(true);
|
|
15572
|
+
var source_board = z44.object({
|
|
15573
|
+
type: z44.literal("source_board"),
|
|
15574
|
+
source_board_id: z44.string(),
|
|
15575
|
+
source_group_id: z44.string(),
|
|
15576
|
+
title: z44.string().optional()
|
|
15559
15577
|
}).describe("Defines a board in the source domain");
|
|
15560
15578
|
expectTypesMatch(true);
|
|
15561
|
-
var source_pcb_ground_plane =
|
|
15562
|
-
type:
|
|
15563
|
-
source_pcb_ground_plane_id:
|
|
15564
|
-
source_group_id:
|
|
15565
|
-
source_net_id:
|
|
15566
|
-
subcircuit_id:
|
|
15579
|
+
var source_pcb_ground_plane = z45.object({
|
|
15580
|
+
type: z45.literal("source_pcb_ground_plane"),
|
|
15581
|
+
source_pcb_ground_plane_id: z45.string(),
|
|
15582
|
+
source_group_id: z45.string(),
|
|
15583
|
+
source_net_id: z45.string(),
|
|
15584
|
+
subcircuit_id: z45.string().optional()
|
|
15567
15585
|
}).describe("Defines a ground plane in the source domain");
|
|
15568
15586
|
expectTypesMatch(true);
|
|
15569
15587
|
var all_layers = [
|
|
@@ -15576,9 +15594,9 @@ var all_layers = [
|
|
|
15576
15594
|
"inner5",
|
|
15577
15595
|
"inner6"
|
|
15578
15596
|
];
|
|
15579
|
-
var layer_string =
|
|
15597
|
+
var layer_string = z46.enum(all_layers);
|
|
15580
15598
|
var layer_ref = layer_string.or(
|
|
15581
|
-
|
|
15599
|
+
z46.object({
|
|
15582
15600
|
name: layer_string
|
|
15583
15601
|
})
|
|
15584
15602
|
).transform((layer) => {
|
|
@@ -15588,215 +15606,215 @@ var layer_ref = layer_string.or(
|
|
|
15588
15606
|
return layer.name;
|
|
15589
15607
|
});
|
|
15590
15608
|
expectTypesMatch(true);
|
|
15591
|
-
var visible_layer =
|
|
15592
|
-
var source_manually_placed_via =
|
|
15593
|
-
type:
|
|
15594
|
-
source_manually_placed_via_id:
|
|
15595
|
-
source_group_id:
|
|
15596
|
-
source_net_id:
|
|
15597
|
-
subcircuit_id:
|
|
15598
|
-
source_trace_id:
|
|
15609
|
+
var visible_layer = z46.enum(["top", "bottom"]);
|
|
15610
|
+
var source_manually_placed_via = z47.object({
|
|
15611
|
+
type: z47.literal("source_manually_placed_via"),
|
|
15612
|
+
source_manually_placed_via_id: z47.string(),
|
|
15613
|
+
source_group_id: z47.string(),
|
|
15614
|
+
source_net_id: z47.string(),
|
|
15615
|
+
subcircuit_id: z47.string().optional(),
|
|
15616
|
+
source_trace_id: z47.string().optional()
|
|
15599
15617
|
}).describe("Defines a via that is manually placed in the source domain");
|
|
15600
15618
|
expectTypesMatch(true);
|
|
15601
|
-
var source_pin_must_be_connected_error =
|
|
15602
|
-
type:
|
|
15619
|
+
var source_pin_must_be_connected_error = z48.object({
|
|
15620
|
+
type: z48.literal("source_pin_must_be_connected_error"),
|
|
15603
15621
|
source_pin_must_be_connected_error_id: getZodPrefixedIdWithDefault(
|
|
15604
15622
|
"source_pin_must_be_connected_error"
|
|
15605
15623
|
),
|
|
15606
|
-
error_type:
|
|
15607
|
-
message:
|
|
15608
|
-
source_component_id:
|
|
15609
|
-
source_port_id:
|
|
15610
|
-
subcircuit_id:
|
|
15624
|
+
error_type: z48.literal("source_pin_must_be_connected_error").default("source_pin_must_be_connected_error"),
|
|
15625
|
+
message: z48.string(),
|
|
15626
|
+
source_component_id: z48.string(),
|
|
15627
|
+
source_port_id: z48.string(),
|
|
15628
|
+
subcircuit_id: z48.string().optional()
|
|
15611
15629
|
}).describe(
|
|
15612
15630
|
"Error emitted when a pin with mustBeConnected attribute is not connected to any trace"
|
|
15613
15631
|
);
|
|
15614
15632
|
expectTypesMatch(true);
|
|
15615
|
-
var unknown_error_finding_part =
|
|
15616
|
-
type:
|
|
15633
|
+
var unknown_error_finding_part = z49.object({
|
|
15634
|
+
type: z49.literal("unknown_error_finding_part"),
|
|
15617
15635
|
unknown_error_finding_part_id: getZodPrefixedIdWithDefault(
|
|
15618
15636
|
"unknown_error_finding_part"
|
|
15619
15637
|
),
|
|
15620
|
-
error_type:
|
|
15621
|
-
message:
|
|
15622
|
-
source_component_id:
|
|
15623
|
-
subcircuit_id:
|
|
15638
|
+
error_type: z49.literal("unknown_error_finding_part").default("unknown_error_finding_part"),
|
|
15639
|
+
message: z49.string(),
|
|
15640
|
+
source_component_id: z49.string().optional(),
|
|
15641
|
+
subcircuit_id: z49.string().optional()
|
|
15624
15642
|
}).describe(
|
|
15625
15643
|
"Error emitted when an unexpected error occurs while finding a part"
|
|
15626
15644
|
);
|
|
15627
15645
|
expectTypesMatch(true);
|
|
15628
|
-
var schematic_box =
|
|
15629
|
-
type:
|
|
15630
|
-
schematic_component_id:
|
|
15646
|
+
var schematic_box = z50.object({
|
|
15647
|
+
type: z50.literal("schematic_box"),
|
|
15648
|
+
schematic_component_id: z50.string().optional(),
|
|
15631
15649
|
width: distance,
|
|
15632
15650
|
height: distance,
|
|
15633
|
-
is_dashed:
|
|
15651
|
+
is_dashed: z50.boolean().default(false),
|
|
15634
15652
|
x: distance,
|
|
15635
15653
|
y: distance,
|
|
15636
|
-
subcircuit_id:
|
|
15654
|
+
subcircuit_id: z50.string().optional()
|
|
15637
15655
|
}).describe("Draws a box on the schematic");
|
|
15638
15656
|
expectTypesMatch(true);
|
|
15639
|
-
var schematic_path =
|
|
15640
|
-
type:
|
|
15641
|
-
schematic_component_id:
|
|
15642
|
-
fill_color:
|
|
15643
|
-
is_filled:
|
|
15644
|
-
points:
|
|
15645
|
-
subcircuit_id:
|
|
15657
|
+
var schematic_path = z51.object({
|
|
15658
|
+
type: z51.literal("schematic_path"),
|
|
15659
|
+
schematic_component_id: z51.string(),
|
|
15660
|
+
fill_color: z51.enum(["red", "blue"]).optional(),
|
|
15661
|
+
is_filled: z51.boolean().optional(),
|
|
15662
|
+
points: z51.array(point),
|
|
15663
|
+
subcircuit_id: z51.string().optional()
|
|
15646
15664
|
});
|
|
15647
15665
|
expectTypesMatch(true);
|
|
15648
|
-
var schematic_pin_styles =
|
|
15649
|
-
|
|
15666
|
+
var schematic_pin_styles = z52.record(
|
|
15667
|
+
z52.object({
|
|
15650
15668
|
left_margin: length.optional(),
|
|
15651
15669
|
right_margin: length.optional(),
|
|
15652
15670
|
top_margin: length.optional(),
|
|
15653
15671
|
bottom_margin: length.optional()
|
|
15654
15672
|
})
|
|
15655
15673
|
);
|
|
15656
|
-
var schematic_component_port_arrangement_by_size =
|
|
15657
|
-
left_size:
|
|
15658
|
-
right_size:
|
|
15659
|
-
top_size:
|
|
15660
|
-
bottom_size:
|
|
15674
|
+
var schematic_component_port_arrangement_by_size = z52.object({
|
|
15675
|
+
left_size: z52.number(),
|
|
15676
|
+
right_size: z52.number(),
|
|
15677
|
+
top_size: z52.number().optional(),
|
|
15678
|
+
bottom_size: z52.number().optional()
|
|
15661
15679
|
});
|
|
15662
15680
|
expectTypesMatch(true);
|
|
15663
|
-
var schematic_component_port_arrangement_by_sides =
|
|
15664
|
-
left_side:
|
|
15665
|
-
pins:
|
|
15681
|
+
var schematic_component_port_arrangement_by_sides = z52.object({
|
|
15682
|
+
left_side: z52.object({
|
|
15683
|
+
pins: z52.array(z52.number()),
|
|
15666
15684
|
// @ts-ignore
|
|
15667
|
-
direction:
|
|
15685
|
+
direction: z52.enum(["top-to-bottom", "bottom-to-top"]).optional()
|
|
15668
15686
|
}).optional(),
|
|
15669
|
-
right_side:
|
|
15670
|
-
pins:
|
|
15687
|
+
right_side: z52.object({
|
|
15688
|
+
pins: z52.array(z52.number()),
|
|
15671
15689
|
// @ts-ignore
|
|
15672
|
-
direction:
|
|
15690
|
+
direction: z52.enum(["top-to-bottom", "bottom-to-top"]).optional()
|
|
15673
15691
|
}).optional(),
|
|
15674
|
-
top_side:
|
|
15675
|
-
pins:
|
|
15692
|
+
top_side: z52.object({
|
|
15693
|
+
pins: z52.array(z52.number()),
|
|
15676
15694
|
// @ts-ignore
|
|
15677
|
-
direction:
|
|
15695
|
+
direction: z52.enum(["left-to-right", "right-to-left"]).optional()
|
|
15678
15696
|
}).optional(),
|
|
15679
|
-
bottom_side:
|
|
15680
|
-
pins:
|
|
15697
|
+
bottom_side: z52.object({
|
|
15698
|
+
pins: z52.array(z52.number()),
|
|
15681
15699
|
// @ts-ignore
|
|
15682
|
-
direction:
|
|
15700
|
+
direction: z52.enum(["left-to-right", "right-to-left"]).optional()
|
|
15683
15701
|
}).optional()
|
|
15684
15702
|
});
|
|
15685
15703
|
expectTypesMatch(true);
|
|
15686
|
-
var port_arrangement =
|
|
15704
|
+
var port_arrangement = z52.union([
|
|
15687
15705
|
schematic_component_port_arrangement_by_size,
|
|
15688
15706
|
schematic_component_port_arrangement_by_sides
|
|
15689
15707
|
]);
|
|
15690
|
-
var schematic_component =
|
|
15691
|
-
type:
|
|
15708
|
+
var schematic_component = z52.object({
|
|
15709
|
+
type: z52.literal("schematic_component"),
|
|
15692
15710
|
size,
|
|
15693
15711
|
center: point,
|
|
15694
|
-
source_component_id:
|
|
15695
|
-
schematic_component_id:
|
|
15712
|
+
source_component_id: z52.string().optional(),
|
|
15713
|
+
schematic_component_id: z52.string(),
|
|
15696
15714
|
pin_spacing: length.optional(),
|
|
15697
15715
|
pin_styles: schematic_pin_styles.optional(),
|
|
15698
15716
|
box_width: length.optional(),
|
|
15699
|
-
symbol_name:
|
|
15717
|
+
symbol_name: z52.string().optional(),
|
|
15700
15718
|
port_arrangement: port_arrangement.optional(),
|
|
15701
|
-
port_labels:
|
|
15702
|
-
symbol_display_value:
|
|
15703
|
-
subcircuit_id:
|
|
15704
|
-
schematic_group_id:
|
|
15705
|
-
is_schematic_group:
|
|
15706
|
-
source_group_id:
|
|
15707
|
-
is_box_with_pins:
|
|
15719
|
+
port_labels: z52.record(z52.string()).optional(),
|
|
15720
|
+
symbol_display_value: z52.string().optional(),
|
|
15721
|
+
subcircuit_id: z52.string().optional(),
|
|
15722
|
+
schematic_group_id: z52.string().optional(),
|
|
15723
|
+
is_schematic_group: z52.boolean().optional(),
|
|
15724
|
+
source_group_id: z52.string().optional(),
|
|
15725
|
+
is_box_with_pins: z52.boolean().optional().default(true)
|
|
15708
15726
|
});
|
|
15709
15727
|
expectTypesMatch(true);
|
|
15710
|
-
var schematic_line =
|
|
15711
|
-
type:
|
|
15728
|
+
var schematic_line = z53.object({
|
|
15729
|
+
type: z53.literal("schematic_line"),
|
|
15712
15730
|
schematic_line_id: getZodPrefixedIdWithDefault("schematic_line"),
|
|
15713
|
-
schematic_component_id:
|
|
15731
|
+
schematic_component_id: z53.string(),
|
|
15714
15732
|
x1: distance,
|
|
15715
15733
|
y1: distance,
|
|
15716
15734
|
x2: distance,
|
|
15717
15735
|
y2: distance,
|
|
15718
15736
|
stroke_width: distance.nullable().optional(),
|
|
15719
|
-
color:
|
|
15720
|
-
is_dashed:
|
|
15721
|
-
subcircuit_id:
|
|
15737
|
+
color: z53.string().default("#000000"),
|
|
15738
|
+
is_dashed: z53.boolean().default(false),
|
|
15739
|
+
subcircuit_id: z53.string().optional()
|
|
15722
15740
|
}).describe("Draws a styled line on the schematic");
|
|
15723
15741
|
expectTypesMatch(true);
|
|
15724
|
-
var schematic_rect =
|
|
15725
|
-
type:
|
|
15742
|
+
var schematic_rect = z54.object({
|
|
15743
|
+
type: z54.literal("schematic_rect"),
|
|
15726
15744
|
schematic_rect_id: getZodPrefixedIdWithDefault("schematic_rect"),
|
|
15727
|
-
schematic_component_id:
|
|
15745
|
+
schematic_component_id: z54.string(),
|
|
15728
15746
|
center: point,
|
|
15729
15747
|
width: distance,
|
|
15730
15748
|
height: distance,
|
|
15731
15749
|
rotation: rotation.default(0),
|
|
15732
15750
|
stroke_width: distance.nullable().optional(),
|
|
15733
|
-
color:
|
|
15734
|
-
is_filled:
|
|
15735
|
-
fill_color:
|
|
15736
|
-
is_dashed:
|
|
15737
|
-
subcircuit_id:
|
|
15751
|
+
color: z54.string().default("#000000"),
|
|
15752
|
+
is_filled: z54.boolean().default(false),
|
|
15753
|
+
fill_color: z54.string().optional(),
|
|
15754
|
+
is_dashed: z54.boolean().default(false),
|
|
15755
|
+
subcircuit_id: z54.string().optional()
|
|
15738
15756
|
}).describe("Draws a styled rectangle on the schematic");
|
|
15739
15757
|
expectTypesMatch(true);
|
|
15740
|
-
var schematic_circle =
|
|
15741
|
-
type:
|
|
15758
|
+
var schematic_circle = z55.object({
|
|
15759
|
+
type: z55.literal("schematic_circle"),
|
|
15742
15760
|
schematic_circle_id: getZodPrefixedIdWithDefault("schematic_circle"),
|
|
15743
|
-
schematic_component_id:
|
|
15761
|
+
schematic_component_id: z55.string(),
|
|
15744
15762
|
center: point,
|
|
15745
15763
|
radius: distance,
|
|
15746
15764
|
stroke_width: distance.nullable().optional(),
|
|
15747
|
-
color:
|
|
15748
|
-
is_filled:
|
|
15749
|
-
fill_color:
|
|
15750
|
-
is_dashed:
|
|
15751
|
-
subcircuit_id:
|
|
15765
|
+
color: z55.string().default("#000000"),
|
|
15766
|
+
is_filled: z55.boolean().default(false),
|
|
15767
|
+
fill_color: z55.string().optional(),
|
|
15768
|
+
is_dashed: z55.boolean().default(false),
|
|
15769
|
+
subcircuit_id: z55.string().optional()
|
|
15752
15770
|
}).describe("Draws a styled circle on the schematic");
|
|
15753
15771
|
expectTypesMatch(true);
|
|
15754
|
-
var schematic_arc =
|
|
15755
|
-
type:
|
|
15772
|
+
var schematic_arc = z56.object({
|
|
15773
|
+
type: z56.literal("schematic_arc"),
|
|
15756
15774
|
schematic_arc_id: getZodPrefixedIdWithDefault("schematic_arc"),
|
|
15757
|
-
schematic_component_id:
|
|
15775
|
+
schematic_component_id: z56.string(),
|
|
15758
15776
|
center: point,
|
|
15759
15777
|
radius: distance,
|
|
15760
15778
|
start_angle_degrees: rotation,
|
|
15761
15779
|
end_angle_degrees: rotation,
|
|
15762
|
-
direction:
|
|
15780
|
+
direction: z56.enum(["clockwise", "counterclockwise"]).default("counterclockwise"),
|
|
15763
15781
|
stroke_width: distance.nullable().optional(),
|
|
15764
|
-
color:
|
|
15765
|
-
is_dashed:
|
|
15766
|
-
subcircuit_id:
|
|
15782
|
+
color: z56.string().default("#000000"),
|
|
15783
|
+
is_dashed: z56.boolean().default(false),
|
|
15784
|
+
subcircuit_id: z56.string().optional()
|
|
15767
15785
|
}).describe("Draws a styled arc on the schematic");
|
|
15768
15786
|
expectTypesMatch(true);
|
|
15769
|
-
var schematic_trace =
|
|
15770
|
-
type:
|
|
15771
|
-
schematic_trace_id:
|
|
15772
|
-
source_trace_id:
|
|
15773
|
-
junctions:
|
|
15774
|
-
|
|
15775
|
-
x:
|
|
15776
|
-
y:
|
|
15787
|
+
var schematic_trace = z57.object({
|
|
15788
|
+
type: z57.literal("schematic_trace"),
|
|
15789
|
+
schematic_trace_id: z57.string(),
|
|
15790
|
+
source_trace_id: z57.string().optional(),
|
|
15791
|
+
junctions: z57.array(
|
|
15792
|
+
z57.object({
|
|
15793
|
+
x: z57.number(),
|
|
15794
|
+
y: z57.number()
|
|
15777
15795
|
})
|
|
15778
15796
|
),
|
|
15779
|
-
edges:
|
|
15780
|
-
|
|
15781
|
-
from:
|
|
15782
|
-
x:
|
|
15783
|
-
y:
|
|
15797
|
+
edges: z57.array(
|
|
15798
|
+
z57.object({
|
|
15799
|
+
from: z57.object({
|
|
15800
|
+
x: z57.number(),
|
|
15801
|
+
y: z57.number()
|
|
15784
15802
|
}),
|
|
15785
|
-
to:
|
|
15786
|
-
x:
|
|
15787
|
-
y:
|
|
15803
|
+
to: z57.object({
|
|
15804
|
+
x: z57.number(),
|
|
15805
|
+
y: z57.number()
|
|
15788
15806
|
}),
|
|
15789
|
-
is_crossing:
|
|
15790
|
-
from_schematic_port_id:
|
|
15791
|
-
to_schematic_port_id:
|
|
15807
|
+
is_crossing: z57.boolean().optional(),
|
|
15808
|
+
from_schematic_port_id: z57.string().optional(),
|
|
15809
|
+
to_schematic_port_id: z57.string().optional()
|
|
15792
15810
|
})
|
|
15793
15811
|
),
|
|
15794
|
-
subcircuit_id:
|
|
15812
|
+
subcircuit_id: z57.string().optional(),
|
|
15795
15813
|
// TODO: make required in a future release
|
|
15796
|
-
subcircuit_connectivity_map_key:
|
|
15814
|
+
subcircuit_connectivity_map_key: z57.string().optional()
|
|
15797
15815
|
});
|
|
15798
15816
|
expectTypesMatch(true);
|
|
15799
|
-
var fivePointAnchor =
|
|
15817
|
+
var fivePointAnchor = z58.enum([
|
|
15800
15818
|
"center",
|
|
15801
15819
|
"left",
|
|
15802
15820
|
"right",
|
|
@@ -15804,475 +15822,484 @@ var fivePointAnchor = z55.enum([
|
|
|
15804
15822
|
"bottom"
|
|
15805
15823
|
]);
|
|
15806
15824
|
expectTypesMatch(true);
|
|
15807
|
-
var schematic_text =
|
|
15808
|
-
type:
|
|
15809
|
-
schematic_component_id:
|
|
15810
|
-
schematic_text_id:
|
|
15811
|
-
text:
|
|
15812
|
-
font_size:
|
|
15813
|
-
position:
|
|
15825
|
+
var schematic_text = z59.object({
|
|
15826
|
+
type: z59.literal("schematic_text"),
|
|
15827
|
+
schematic_component_id: z59.string().optional(),
|
|
15828
|
+
schematic_text_id: z59.string(),
|
|
15829
|
+
text: z59.string(),
|
|
15830
|
+
font_size: z59.number().default(0.18),
|
|
15831
|
+
position: z59.object({
|
|
15814
15832
|
x: distance,
|
|
15815
15833
|
y: distance
|
|
15816
15834
|
}),
|
|
15817
|
-
rotation:
|
|
15818
|
-
anchor:
|
|
15819
|
-
color:
|
|
15820
|
-
subcircuit_id:
|
|
15835
|
+
rotation: z59.number().default(0),
|
|
15836
|
+
anchor: z59.union([fivePointAnchor.describe("legacy"), ninePointAnchor]).default("center"),
|
|
15837
|
+
color: z59.string().default("#000000"),
|
|
15838
|
+
subcircuit_id: z59.string().optional()
|
|
15821
15839
|
});
|
|
15822
15840
|
expectTypesMatch(true);
|
|
15823
|
-
var schematic_port =
|
|
15824
|
-
type:
|
|
15825
|
-
schematic_port_id:
|
|
15826
|
-
source_port_id:
|
|
15827
|
-
schematic_component_id:
|
|
15841
|
+
var schematic_port = z60.object({
|
|
15842
|
+
type: z60.literal("schematic_port"),
|
|
15843
|
+
schematic_port_id: z60.string(),
|
|
15844
|
+
source_port_id: z60.string(),
|
|
15845
|
+
schematic_component_id: z60.string().optional(),
|
|
15828
15846
|
center: point,
|
|
15829
|
-
facing_direction:
|
|
15830
|
-
distance_from_component_edge:
|
|
15831
|
-
side_of_component:
|
|
15832
|
-
true_ccw_index:
|
|
15833
|
-
pin_number:
|
|
15834
|
-
display_pin_label:
|
|
15835
|
-
subcircuit_id:
|
|
15836
|
-
is_connected:
|
|
15837
|
-
has_input_arrow:
|
|
15838
|
-
has_output_arrow:
|
|
15847
|
+
facing_direction: z60.enum(["up", "down", "left", "right"]).optional(),
|
|
15848
|
+
distance_from_component_edge: z60.number().optional(),
|
|
15849
|
+
side_of_component: z60.enum(["top", "bottom", "left", "right"]).optional(),
|
|
15850
|
+
true_ccw_index: z60.number().optional(),
|
|
15851
|
+
pin_number: z60.number().optional(),
|
|
15852
|
+
display_pin_label: z60.string().optional(),
|
|
15853
|
+
subcircuit_id: z60.string().optional(),
|
|
15854
|
+
is_connected: z60.boolean().optional(),
|
|
15855
|
+
has_input_arrow: z60.boolean().optional(),
|
|
15856
|
+
has_output_arrow: z60.boolean().optional()
|
|
15839
15857
|
}).describe("Defines a port on a schematic component");
|
|
15840
15858
|
expectTypesMatch(true);
|
|
15841
|
-
var schematic_net_label =
|
|
15842
|
-
type:
|
|
15859
|
+
var schematic_net_label = z61.object({
|
|
15860
|
+
type: z61.literal("schematic_net_label"),
|
|
15843
15861
|
schematic_net_label_id: getZodPrefixedIdWithDefault("schematic_net_label"),
|
|
15844
|
-
schematic_trace_id:
|
|
15845
|
-
source_trace_id:
|
|
15846
|
-
source_net_id:
|
|
15862
|
+
schematic_trace_id: z61.string().optional(),
|
|
15863
|
+
source_trace_id: z61.string().optional(),
|
|
15864
|
+
source_net_id: z61.string(),
|
|
15847
15865
|
center: point,
|
|
15848
15866
|
anchor_position: point.optional(),
|
|
15849
|
-
anchor_side:
|
|
15850
|
-
text:
|
|
15851
|
-
symbol_name:
|
|
15852
|
-
is_movable:
|
|
15853
|
-
subcircuit_id:
|
|
15867
|
+
anchor_side: z61.enum(["top", "bottom", "left", "right"]),
|
|
15868
|
+
text: z61.string(),
|
|
15869
|
+
symbol_name: z61.string().optional(),
|
|
15870
|
+
is_movable: z61.boolean().optional(),
|
|
15871
|
+
subcircuit_id: z61.string().optional()
|
|
15854
15872
|
});
|
|
15855
15873
|
expectTypesMatch(true);
|
|
15856
|
-
var schematic_error =
|
|
15857
|
-
type:
|
|
15858
|
-
schematic_error_id:
|
|
15874
|
+
var schematic_error = z62.object({
|
|
15875
|
+
type: z62.literal("schematic_error"),
|
|
15876
|
+
schematic_error_id: z62.string(),
|
|
15859
15877
|
// eventually each error type should be broken out into a dir of files
|
|
15860
|
-
error_type:
|
|
15861
|
-
message:
|
|
15862
|
-
subcircuit_id:
|
|
15878
|
+
error_type: z62.literal("schematic_port_not_found").default("schematic_port_not_found"),
|
|
15879
|
+
message: z62.string(),
|
|
15880
|
+
subcircuit_id: z62.string().optional()
|
|
15863
15881
|
}).describe("Defines a schematic error on the schematic");
|
|
15864
15882
|
expectTypesMatch(true);
|
|
15865
|
-
var schematic_layout_error =
|
|
15866
|
-
type:
|
|
15883
|
+
var schematic_layout_error = z63.object({
|
|
15884
|
+
type: z63.literal("schematic_layout_error"),
|
|
15867
15885
|
schematic_layout_error_id: getZodPrefixedIdWithDefault(
|
|
15868
15886
|
"schematic_layout_error"
|
|
15869
15887
|
),
|
|
15870
|
-
error_type:
|
|
15871
|
-
message:
|
|
15872
|
-
source_group_id:
|
|
15873
|
-
schematic_group_id:
|
|
15874
|
-
subcircuit_id:
|
|
15888
|
+
error_type: z63.literal("schematic_layout_error").default("schematic_layout_error"),
|
|
15889
|
+
message: z63.string(),
|
|
15890
|
+
source_group_id: z63.string(),
|
|
15891
|
+
schematic_group_id: z63.string(),
|
|
15892
|
+
subcircuit_id: z63.string().optional()
|
|
15875
15893
|
}).describe("Error emitted when schematic layout fails for a group");
|
|
15876
15894
|
expectTypesMatch(true);
|
|
15877
|
-
var schematic_debug_object_base =
|
|
15878
|
-
type:
|
|
15879
|
-
label:
|
|
15880
|
-
subcircuit_id:
|
|
15895
|
+
var schematic_debug_object_base = z64.object({
|
|
15896
|
+
type: z64.literal("schematic_debug_object"),
|
|
15897
|
+
label: z64.string().optional(),
|
|
15898
|
+
subcircuit_id: z64.string().optional()
|
|
15881
15899
|
});
|
|
15882
15900
|
var schematic_debug_rect = schematic_debug_object_base.extend({
|
|
15883
|
-
shape:
|
|
15901
|
+
shape: z64.literal("rect"),
|
|
15884
15902
|
center: point,
|
|
15885
15903
|
size
|
|
15886
15904
|
});
|
|
15887
15905
|
var schematic_debug_line = schematic_debug_object_base.extend({
|
|
15888
|
-
shape:
|
|
15906
|
+
shape: z64.literal("line"),
|
|
15889
15907
|
start: point,
|
|
15890
15908
|
end: point
|
|
15891
15909
|
});
|
|
15892
15910
|
var schematic_debug_point = schematic_debug_object_base.extend({
|
|
15893
|
-
shape:
|
|
15911
|
+
shape: z64.literal("point"),
|
|
15894
15912
|
center: point
|
|
15895
15913
|
});
|
|
15896
|
-
var schematic_debug_object =
|
|
15914
|
+
var schematic_debug_object = z64.discriminatedUnion("shape", [
|
|
15897
15915
|
schematic_debug_rect,
|
|
15898
15916
|
schematic_debug_line,
|
|
15899
15917
|
schematic_debug_point
|
|
15900
15918
|
]);
|
|
15901
15919
|
expectTypesMatch(true);
|
|
15902
|
-
var schematic_voltage_probe =
|
|
15903
|
-
type:
|
|
15904
|
-
schematic_voltage_probe_id:
|
|
15905
|
-
source_component_id:
|
|
15906
|
-
name:
|
|
15920
|
+
var schematic_voltage_probe = z65.object({
|
|
15921
|
+
type: z65.literal("schematic_voltage_probe"),
|
|
15922
|
+
schematic_voltage_probe_id: z65.string(),
|
|
15923
|
+
source_component_id: z65.string().optional(),
|
|
15924
|
+
name: z65.string().optional(),
|
|
15907
15925
|
position: point,
|
|
15908
|
-
schematic_trace_id:
|
|
15926
|
+
schematic_trace_id: z65.string(),
|
|
15909
15927
|
voltage: voltage.optional(),
|
|
15910
|
-
subcircuit_id:
|
|
15911
|
-
color:
|
|
15928
|
+
subcircuit_id: z65.string().optional(),
|
|
15929
|
+
color: z65.string().optional(),
|
|
15930
|
+
label_alignment: ninePointAnchor.optional()
|
|
15912
15931
|
}).describe("Defines a voltage probe measurement point on a schematic trace");
|
|
15913
15932
|
expectTypesMatch(true);
|
|
15914
|
-
var schematic_manual_edit_conflict_warning =
|
|
15915
|
-
type:
|
|
15933
|
+
var schematic_manual_edit_conflict_warning = z66.object({
|
|
15934
|
+
type: z66.literal("schematic_manual_edit_conflict_warning"),
|
|
15916
15935
|
schematic_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
|
|
15917
15936
|
"schematic_manual_edit_conflict_warning"
|
|
15918
15937
|
),
|
|
15919
|
-
warning_type:
|
|
15920
|
-
message:
|
|
15921
|
-
schematic_component_id:
|
|
15922
|
-
schematic_group_id:
|
|
15923
|
-
subcircuit_id:
|
|
15924
|
-
source_component_id:
|
|
15938
|
+
warning_type: z66.literal("schematic_manual_edit_conflict_warning").default("schematic_manual_edit_conflict_warning"),
|
|
15939
|
+
message: z66.string(),
|
|
15940
|
+
schematic_component_id: z66.string(),
|
|
15941
|
+
schematic_group_id: z66.string().optional(),
|
|
15942
|
+
subcircuit_id: z66.string().optional(),
|
|
15943
|
+
source_component_id: z66.string()
|
|
15925
15944
|
}).describe(
|
|
15926
15945
|
"Warning emitted when a component has both manual placement and explicit schX/schY coordinates"
|
|
15927
15946
|
);
|
|
15928
15947
|
expectTypesMatch(true);
|
|
15929
|
-
var schematic_group =
|
|
15930
|
-
type:
|
|
15948
|
+
var schematic_group = z67.object({
|
|
15949
|
+
type: z67.literal("schematic_group"),
|
|
15931
15950
|
schematic_group_id: getZodPrefixedIdWithDefault("schematic_group"),
|
|
15932
|
-
source_group_id:
|
|
15933
|
-
is_subcircuit:
|
|
15934
|
-
subcircuit_id:
|
|
15951
|
+
source_group_id: z67.string(),
|
|
15952
|
+
is_subcircuit: z67.boolean().optional(),
|
|
15953
|
+
subcircuit_id: z67.string().optional(),
|
|
15935
15954
|
width: length,
|
|
15936
15955
|
height: length,
|
|
15937
15956
|
center: point,
|
|
15938
|
-
schematic_component_ids:
|
|
15939
|
-
show_as_schematic_box:
|
|
15940
|
-
name:
|
|
15941
|
-
description:
|
|
15957
|
+
schematic_component_ids: z67.array(z67.string()),
|
|
15958
|
+
show_as_schematic_box: z67.boolean().optional(),
|
|
15959
|
+
name: z67.string().optional(),
|
|
15960
|
+
description: z67.string().optional()
|
|
15942
15961
|
}).describe("Defines a group of components on the schematic");
|
|
15943
15962
|
expectTypesMatch(true);
|
|
15944
|
-
var schematic_table =
|
|
15945
|
-
type:
|
|
15963
|
+
var schematic_table = z68.object({
|
|
15964
|
+
type: z68.literal("schematic_table"),
|
|
15946
15965
|
schematic_table_id: getZodPrefixedIdWithDefault("schematic_table"),
|
|
15947
15966
|
anchor_position: point,
|
|
15948
|
-
column_widths:
|
|
15949
|
-
row_heights:
|
|
15967
|
+
column_widths: z68.array(distance),
|
|
15968
|
+
row_heights: z68.array(distance),
|
|
15950
15969
|
cell_padding: distance.optional(),
|
|
15951
15970
|
border_width: distance.optional(),
|
|
15952
|
-
subcircuit_id:
|
|
15953
|
-
schematic_component_id:
|
|
15971
|
+
subcircuit_id: z68.string().optional(),
|
|
15972
|
+
schematic_component_id: z68.string().optional(),
|
|
15954
15973
|
anchor: ninePointAnchor.optional()
|
|
15955
15974
|
}).describe("Defines a table on the schematic");
|
|
15956
15975
|
expectTypesMatch(true);
|
|
15957
|
-
var schematic_table_cell =
|
|
15958
|
-
type:
|
|
15976
|
+
var schematic_table_cell = z69.object({
|
|
15977
|
+
type: z69.literal("schematic_table_cell"),
|
|
15959
15978
|
schematic_table_cell_id: getZodPrefixedIdWithDefault(
|
|
15960
15979
|
"schematic_table_cell"
|
|
15961
15980
|
),
|
|
15962
|
-
schematic_table_id:
|
|
15963
|
-
start_row_index:
|
|
15964
|
-
end_row_index:
|
|
15965
|
-
start_column_index:
|
|
15966
|
-
end_column_index:
|
|
15967
|
-
text:
|
|
15981
|
+
schematic_table_id: z69.string(),
|
|
15982
|
+
start_row_index: z69.number(),
|
|
15983
|
+
end_row_index: z69.number(),
|
|
15984
|
+
start_column_index: z69.number(),
|
|
15985
|
+
end_column_index: z69.number(),
|
|
15986
|
+
text: z69.string().optional(),
|
|
15968
15987
|
center: point,
|
|
15969
15988
|
width: distance,
|
|
15970
15989
|
height: distance,
|
|
15971
|
-
horizontal_align:
|
|
15972
|
-
vertical_align:
|
|
15990
|
+
horizontal_align: z69.enum(["left", "center", "right"]).optional(),
|
|
15991
|
+
vertical_align: z69.enum(["top", "middle", "bottom"]).optional(),
|
|
15973
15992
|
font_size: distance.optional(),
|
|
15974
|
-
subcircuit_id:
|
|
15993
|
+
subcircuit_id: z69.string().optional()
|
|
15975
15994
|
}).describe("Defines a cell within a schematic_table");
|
|
15976
15995
|
expectTypesMatch(true);
|
|
15977
|
-
var schematic_sheet =
|
|
15978
|
-
type:
|
|
15996
|
+
var schematic_sheet = z70.object({
|
|
15997
|
+
type: z70.literal("schematic_sheet"),
|
|
15979
15998
|
schematic_sheet_id: getZodPrefixedIdWithDefault("schematic_sheet"),
|
|
15980
|
-
name:
|
|
15981
|
-
subcircuit_id:
|
|
15999
|
+
name: z70.string().optional(),
|
|
16000
|
+
subcircuit_id: z70.string().optional()
|
|
15982
16001
|
}).describe(
|
|
15983
16002
|
"Defines a schematic sheet or page that components can be placed on"
|
|
15984
16003
|
);
|
|
15985
16004
|
expectTypesMatch(true);
|
|
15986
|
-
var point_with_bulge =
|
|
16005
|
+
var point_with_bulge = z71.object({
|
|
15987
16006
|
x: distance,
|
|
15988
16007
|
y: distance,
|
|
15989
|
-
bulge:
|
|
16008
|
+
bulge: z71.number().optional()
|
|
15990
16009
|
});
|
|
15991
16010
|
expectTypesMatch(true);
|
|
15992
|
-
var ring =
|
|
15993
|
-
vertices:
|
|
16011
|
+
var ring = z71.object({
|
|
16012
|
+
vertices: z71.array(point_with_bulge)
|
|
15994
16013
|
});
|
|
15995
16014
|
expectTypesMatch(true);
|
|
15996
|
-
var brep_shape =
|
|
16015
|
+
var brep_shape = z71.object({
|
|
15997
16016
|
outer_ring: ring,
|
|
15998
|
-
inner_rings:
|
|
16017
|
+
inner_rings: z71.array(ring).default([])
|
|
15999
16018
|
});
|
|
16000
16019
|
expectTypesMatch(true);
|
|
16001
|
-
var pcb_route_hint =
|
|
16020
|
+
var pcb_route_hint = z72.object({
|
|
16002
16021
|
x: distance,
|
|
16003
16022
|
y: distance,
|
|
16004
|
-
via:
|
|
16023
|
+
via: z72.boolean().optional(),
|
|
16005
16024
|
via_to_layer: layer_ref.optional()
|
|
16006
16025
|
});
|
|
16007
|
-
var pcb_route_hints =
|
|
16026
|
+
var pcb_route_hints = z72.array(pcb_route_hint);
|
|
16008
16027
|
expectTypesMatch(true);
|
|
16009
16028
|
expectTypesMatch(true);
|
|
16010
|
-
var route_hint_point =
|
|
16029
|
+
var route_hint_point = z73.object({
|
|
16011
16030
|
x: distance,
|
|
16012
16031
|
y: distance,
|
|
16013
|
-
via:
|
|
16032
|
+
via: z73.boolean().optional(),
|
|
16014
16033
|
to_layer: layer_ref.optional(),
|
|
16015
16034
|
trace_width: distance.optional()
|
|
16016
16035
|
});
|
|
16017
16036
|
expectTypesMatch(true);
|
|
16018
|
-
var pcb_component =
|
|
16019
|
-
type:
|
|
16037
|
+
var pcb_component = z74.object({
|
|
16038
|
+
type: z74.literal("pcb_component"),
|
|
16020
16039
|
pcb_component_id: getZodPrefixedIdWithDefault("pcb_component"),
|
|
16021
|
-
source_component_id:
|
|
16040
|
+
source_component_id: z74.string(),
|
|
16022
16041
|
center: point,
|
|
16023
16042
|
layer: layer_ref,
|
|
16024
16043
|
rotation,
|
|
16044
|
+
display_offset_x: z74.string().optional().describe(
|
|
16045
|
+
"How to display the x offset for this part, usually corresponding with how the user specified it"
|
|
16046
|
+
),
|
|
16047
|
+
display_offset_y: z74.string().optional().describe(
|
|
16048
|
+
"How to display the y offset for this part, usually corresponding with how the user specified it"
|
|
16049
|
+
),
|
|
16025
16050
|
width: length,
|
|
16026
16051
|
height: length,
|
|
16027
|
-
do_not_place:
|
|
16028
|
-
subcircuit_id:
|
|
16029
|
-
pcb_group_id:
|
|
16030
|
-
position_mode:
|
|
16031
|
-
positioned_relative_to_pcb_group_id:
|
|
16032
|
-
|
|
16052
|
+
do_not_place: z74.boolean().optional(),
|
|
16053
|
+
subcircuit_id: z74.string().optional(),
|
|
16054
|
+
pcb_group_id: z74.string().optional(),
|
|
16055
|
+
position_mode: z74.enum(["packed", "relative_to_group_anchor", "none"]).optional(),
|
|
16056
|
+
positioned_relative_to_pcb_group_id: z74.string().optional(),
|
|
16057
|
+
positioned_relative_to_pcb_board_id: z74.string().optional(),
|
|
16058
|
+
obstructs_within_bounds: z74.boolean().default(true).describe(
|
|
16033
16059
|
"Does this component take up all the space within its bounds on a layer. This is generally true except for when separated pin headers are being represented by a single component (in which case, chips can be placed between the pin headers) or for tall modules where chips fit underneath"
|
|
16034
16060
|
)
|
|
16035
16061
|
}).describe("Defines a component on the PCB");
|
|
16036
16062
|
expectTypesMatch(true);
|
|
16037
|
-
var pcb_hole_circle =
|
|
16038
|
-
type:
|
|
16063
|
+
var pcb_hole_circle = z75.object({
|
|
16064
|
+
type: z75.literal("pcb_hole"),
|
|
16039
16065
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
16040
|
-
pcb_group_id:
|
|
16041
|
-
subcircuit_id:
|
|
16042
|
-
hole_shape:
|
|
16043
|
-
hole_diameter:
|
|
16066
|
+
pcb_group_id: z75.string().optional(),
|
|
16067
|
+
subcircuit_id: z75.string().optional(),
|
|
16068
|
+
hole_shape: z75.literal("circle"),
|
|
16069
|
+
hole_diameter: z75.number(),
|
|
16044
16070
|
x: distance,
|
|
16045
16071
|
y: distance,
|
|
16046
|
-
is_covered_with_solder_mask:
|
|
16047
|
-
soldermask_margin:
|
|
16072
|
+
is_covered_with_solder_mask: z75.boolean().optional(),
|
|
16073
|
+
soldermask_margin: z75.number().optional()
|
|
16048
16074
|
});
|
|
16049
16075
|
var pcb_hole_circle_shape = pcb_hole_circle.describe(
|
|
16050
16076
|
"Defines a circular hole on the PCB"
|
|
16051
16077
|
);
|
|
16052
16078
|
expectTypesMatch(true);
|
|
16053
|
-
var pcb_hole_rect =
|
|
16054
|
-
type:
|
|
16079
|
+
var pcb_hole_rect = z75.object({
|
|
16080
|
+
type: z75.literal("pcb_hole"),
|
|
16055
16081
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
16056
|
-
pcb_group_id:
|
|
16057
|
-
subcircuit_id:
|
|
16058
|
-
hole_shape:
|
|
16059
|
-
hole_width:
|
|
16060
|
-
hole_height:
|
|
16082
|
+
pcb_group_id: z75.string().optional(),
|
|
16083
|
+
subcircuit_id: z75.string().optional(),
|
|
16084
|
+
hole_shape: z75.literal("rect"),
|
|
16085
|
+
hole_width: z75.number(),
|
|
16086
|
+
hole_height: z75.number(),
|
|
16061
16087
|
x: distance,
|
|
16062
16088
|
y: distance,
|
|
16063
|
-
is_covered_with_solder_mask:
|
|
16064
|
-
soldermask_margin:
|
|
16089
|
+
is_covered_with_solder_mask: z75.boolean().optional(),
|
|
16090
|
+
soldermask_margin: z75.number().optional()
|
|
16065
16091
|
});
|
|
16066
16092
|
var pcb_hole_rect_shape = pcb_hole_rect.describe(
|
|
16067
16093
|
"Defines a rectangular (square-capable) hole on the PCB. Use equal width/height for square."
|
|
16068
16094
|
);
|
|
16069
16095
|
expectTypesMatch(true);
|
|
16070
|
-
var pcb_hole_circle_or_square =
|
|
16071
|
-
type:
|
|
16096
|
+
var pcb_hole_circle_or_square = z75.object({
|
|
16097
|
+
type: z75.literal("pcb_hole"),
|
|
16072
16098
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
16073
|
-
pcb_group_id:
|
|
16074
|
-
subcircuit_id:
|
|
16075
|
-
hole_shape:
|
|
16076
|
-
hole_diameter:
|
|
16099
|
+
pcb_group_id: z75.string().optional(),
|
|
16100
|
+
subcircuit_id: z75.string().optional(),
|
|
16101
|
+
hole_shape: z75.enum(["circle", "square"]),
|
|
16102
|
+
hole_diameter: z75.number(),
|
|
16077
16103
|
x: distance,
|
|
16078
16104
|
y: distance,
|
|
16079
|
-
is_covered_with_solder_mask:
|
|
16080
|
-
soldermask_margin:
|
|
16105
|
+
is_covered_with_solder_mask: z75.boolean().optional(),
|
|
16106
|
+
soldermask_margin: z75.number().optional()
|
|
16081
16107
|
});
|
|
16082
16108
|
var pcb_hole_circle_or_square_shape = pcb_hole_circle_or_square.describe(
|
|
16083
16109
|
"Defines a circular or square hole on the PCB"
|
|
16084
16110
|
);
|
|
16085
16111
|
expectTypesMatch(true);
|
|
16086
|
-
var pcb_hole_oval =
|
|
16087
|
-
type:
|
|
16112
|
+
var pcb_hole_oval = z75.object({
|
|
16113
|
+
type: z75.literal("pcb_hole"),
|
|
16088
16114
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
16089
|
-
pcb_group_id:
|
|
16090
|
-
subcircuit_id:
|
|
16091
|
-
hole_shape:
|
|
16092
|
-
hole_width:
|
|
16093
|
-
hole_height:
|
|
16115
|
+
pcb_group_id: z75.string().optional(),
|
|
16116
|
+
subcircuit_id: z75.string().optional(),
|
|
16117
|
+
hole_shape: z75.literal("oval"),
|
|
16118
|
+
hole_width: z75.number(),
|
|
16119
|
+
hole_height: z75.number(),
|
|
16094
16120
|
x: distance,
|
|
16095
16121
|
y: distance,
|
|
16096
|
-
is_covered_with_solder_mask:
|
|
16097
|
-
soldermask_margin:
|
|
16122
|
+
is_covered_with_solder_mask: z75.boolean().optional(),
|
|
16123
|
+
soldermask_margin: z75.number().optional()
|
|
16098
16124
|
});
|
|
16099
16125
|
var pcb_hole_oval_shape = pcb_hole_oval.describe(
|
|
16100
16126
|
"Defines an oval hole on the PCB"
|
|
16101
16127
|
);
|
|
16102
16128
|
expectTypesMatch(true);
|
|
16103
|
-
var pcb_hole_pill =
|
|
16104
|
-
type:
|
|
16129
|
+
var pcb_hole_pill = z75.object({
|
|
16130
|
+
type: z75.literal("pcb_hole"),
|
|
16105
16131
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
16106
|
-
pcb_group_id:
|
|
16107
|
-
subcircuit_id:
|
|
16108
|
-
hole_shape:
|
|
16109
|
-
hole_width:
|
|
16110
|
-
hole_height:
|
|
16132
|
+
pcb_group_id: z75.string().optional(),
|
|
16133
|
+
subcircuit_id: z75.string().optional(),
|
|
16134
|
+
hole_shape: z75.literal("pill"),
|
|
16135
|
+
hole_width: z75.number(),
|
|
16136
|
+
hole_height: z75.number(),
|
|
16111
16137
|
x: distance,
|
|
16112
16138
|
y: distance,
|
|
16113
|
-
is_covered_with_solder_mask:
|
|
16114
|
-
soldermask_margin:
|
|
16139
|
+
is_covered_with_solder_mask: z75.boolean().optional(),
|
|
16140
|
+
soldermask_margin: z75.number().optional()
|
|
16115
16141
|
});
|
|
16116
16142
|
var pcb_hole_pill_shape = pcb_hole_pill.describe(
|
|
16117
16143
|
"Defines a pill-shaped hole on the PCB"
|
|
16118
16144
|
);
|
|
16119
16145
|
expectTypesMatch(true);
|
|
16120
|
-
var pcb_hole_rotated_pill =
|
|
16121
|
-
type:
|
|
16146
|
+
var pcb_hole_rotated_pill = z75.object({
|
|
16147
|
+
type: z75.literal("pcb_hole"),
|
|
16122
16148
|
pcb_hole_id: getZodPrefixedIdWithDefault("pcb_hole"),
|
|
16123
|
-
pcb_group_id:
|
|
16124
|
-
subcircuit_id:
|
|
16125
|
-
hole_shape:
|
|
16126
|
-
hole_width:
|
|
16127
|
-
hole_height:
|
|
16149
|
+
pcb_group_id: z75.string().optional(),
|
|
16150
|
+
subcircuit_id: z75.string().optional(),
|
|
16151
|
+
hole_shape: z75.literal("rotated_pill"),
|
|
16152
|
+
hole_width: z75.number(),
|
|
16153
|
+
hole_height: z75.number(),
|
|
16128
16154
|
x: distance,
|
|
16129
16155
|
y: distance,
|
|
16130
16156
|
ccw_rotation: rotation,
|
|
16131
|
-
is_covered_with_solder_mask:
|
|
16132
|
-
soldermask_margin:
|
|
16157
|
+
is_covered_with_solder_mask: z75.boolean().optional(),
|
|
16158
|
+
soldermask_margin: z75.number().optional()
|
|
16133
16159
|
});
|
|
16134
16160
|
var pcb_hole_rotated_pill_shape = pcb_hole_rotated_pill.describe(
|
|
16135
16161
|
"Defines a rotated pill-shaped hole on the PCB"
|
|
16136
16162
|
);
|
|
16137
16163
|
expectTypesMatch(true);
|
|
16138
16164
|
var pcb_hole = pcb_hole_circle_or_square.or(pcb_hole_oval).or(pcb_hole_pill).or(pcb_hole_rotated_pill).or(pcb_hole_circle).or(pcb_hole_rect);
|
|
16139
|
-
var pcb_plated_hole_circle =
|
|
16140
|
-
type:
|
|
16141
|
-
shape:
|
|
16142
|
-
pcb_group_id:
|
|
16143
|
-
subcircuit_id:
|
|
16144
|
-
outer_diameter:
|
|
16145
|
-
hole_diameter:
|
|
16165
|
+
var pcb_plated_hole_circle = z76.object({
|
|
16166
|
+
type: z76.literal("pcb_plated_hole"),
|
|
16167
|
+
shape: z76.literal("circle"),
|
|
16168
|
+
pcb_group_id: z76.string().optional(),
|
|
16169
|
+
subcircuit_id: z76.string().optional(),
|
|
16170
|
+
outer_diameter: z76.number(),
|
|
16171
|
+
hole_diameter: z76.number(),
|
|
16172
|
+
is_covered_with_solder_mask: z76.boolean().optional(),
|
|
16146
16173
|
x: distance,
|
|
16147
16174
|
y: distance,
|
|
16148
|
-
layers:
|
|
16149
|
-
port_hints:
|
|
16150
|
-
pcb_component_id:
|
|
16151
|
-
pcb_port_id:
|
|
16175
|
+
layers: z76.array(layer_ref),
|
|
16176
|
+
port_hints: z76.array(z76.string()).optional(),
|
|
16177
|
+
pcb_component_id: z76.string().optional(),
|
|
16178
|
+
pcb_port_id: z76.string().optional(),
|
|
16152
16179
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
16153
|
-
soldermask_margin:
|
|
16154
|
-
});
|
|
16155
|
-
var pcb_plated_hole_oval =
|
|
16156
|
-
type:
|
|
16157
|
-
shape:
|
|
16158
|
-
pcb_group_id:
|
|
16159
|
-
subcircuit_id:
|
|
16160
|
-
outer_width:
|
|
16161
|
-
outer_height:
|
|
16162
|
-
hole_width:
|
|
16163
|
-
hole_height:
|
|
16164
|
-
is_covered_with_solder_mask:
|
|
16180
|
+
soldermask_margin: z76.number().optional()
|
|
16181
|
+
});
|
|
16182
|
+
var pcb_plated_hole_oval = z76.object({
|
|
16183
|
+
type: z76.literal("pcb_plated_hole"),
|
|
16184
|
+
shape: z76.enum(["oval", "pill"]),
|
|
16185
|
+
pcb_group_id: z76.string().optional(),
|
|
16186
|
+
subcircuit_id: z76.string().optional(),
|
|
16187
|
+
outer_width: z76.number(),
|
|
16188
|
+
outer_height: z76.number(),
|
|
16189
|
+
hole_width: z76.number(),
|
|
16190
|
+
hole_height: z76.number(),
|
|
16191
|
+
is_covered_with_solder_mask: z76.boolean().optional(),
|
|
16165
16192
|
x: distance,
|
|
16166
16193
|
y: distance,
|
|
16167
16194
|
ccw_rotation: rotation,
|
|
16168
|
-
layers:
|
|
16169
|
-
port_hints:
|
|
16170
|
-
pcb_component_id:
|
|
16171
|
-
pcb_port_id:
|
|
16195
|
+
layers: z76.array(layer_ref),
|
|
16196
|
+
port_hints: z76.array(z76.string()).optional(),
|
|
16197
|
+
pcb_component_id: z76.string().optional(),
|
|
16198
|
+
pcb_port_id: z76.string().optional(),
|
|
16172
16199
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
16173
|
-
soldermask_margin:
|
|
16174
|
-
});
|
|
16175
|
-
var pcb_circular_hole_with_rect_pad =
|
|
16176
|
-
type:
|
|
16177
|
-
shape:
|
|
16178
|
-
pcb_group_id:
|
|
16179
|
-
subcircuit_id:
|
|
16180
|
-
hole_shape:
|
|
16181
|
-
pad_shape:
|
|
16182
|
-
hole_diameter:
|
|
16183
|
-
rect_pad_width:
|
|
16184
|
-
rect_pad_height:
|
|
16185
|
-
rect_border_radius:
|
|
16200
|
+
soldermask_margin: z76.number().optional()
|
|
16201
|
+
});
|
|
16202
|
+
var pcb_circular_hole_with_rect_pad = z76.object({
|
|
16203
|
+
type: z76.literal("pcb_plated_hole"),
|
|
16204
|
+
shape: z76.literal("circular_hole_with_rect_pad"),
|
|
16205
|
+
pcb_group_id: z76.string().optional(),
|
|
16206
|
+
subcircuit_id: z76.string().optional(),
|
|
16207
|
+
hole_shape: z76.literal("circle"),
|
|
16208
|
+
pad_shape: z76.literal("rect"),
|
|
16209
|
+
hole_diameter: z76.number(),
|
|
16210
|
+
rect_pad_width: z76.number(),
|
|
16211
|
+
rect_pad_height: z76.number(),
|
|
16212
|
+
rect_border_radius: z76.number().optional(),
|
|
16186
16213
|
hole_offset_x: distance.default(0),
|
|
16187
16214
|
hole_offset_y: distance.default(0),
|
|
16188
|
-
is_covered_with_solder_mask:
|
|
16215
|
+
is_covered_with_solder_mask: z76.boolean().optional(),
|
|
16189
16216
|
x: distance,
|
|
16190
16217
|
y: distance,
|
|
16191
|
-
layers:
|
|
16192
|
-
port_hints:
|
|
16193
|
-
pcb_component_id:
|
|
16194
|
-
pcb_port_id:
|
|
16218
|
+
layers: z76.array(layer_ref),
|
|
16219
|
+
port_hints: z76.array(z76.string()).optional(),
|
|
16220
|
+
pcb_component_id: z76.string().optional(),
|
|
16221
|
+
pcb_port_id: z76.string().optional(),
|
|
16195
16222
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
16196
|
-
soldermask_margin:
|
|
16197
|
-
});
|
|
16198
|
-
var pcb_pill_hole_with_rect_pad =
|
|
16199
|
-
type:
|
|
16200
|
-
shape:
|
|
16201
|
-
pcb_group_id:
|
|
16202
|
-
subcircuit_id:
|
|
16203
|
-
hole_shape:
|
|
16204
|
-
pad_shape:
|
|
16205
|
-
hole_width:
|
|
16206
|
-
hole_height:
|
|
16207
|
-
rect_pad_width:
|
|
16208
|
-
rect_pad_height:
|
|
16209
|
-
rect_border_radius:
|
|
16223
|
+
soldermask_margin: z76.number().optional()
|
|
16224
|
+
});
|
|
16225
|
+
var pcb_pill_hole_with_rect_pad = z76.object({
|
|
16226
|
+
type: z76.literal("pcb_plated_hole"),
|
|
16227
|
+
shape: z76.literal("pill_hole_with_rect_pad"),
|
|
16228
|
+
pcb_group_id: z76.string().optional(),
|
|
16229
|
+
subcircuit_id: z76.string().optional(),
|
|
16230
|
+
hole_shape: z76.literal("pill"),
|
|
16231
|
+
pad_shape: z76.literal("rect"),
|
|
16232
|
+
hole_width: z76.number(),
|
|
16233
|
+
hole_height: z76.number(),
|
|
16234
|
+
rect_pad_width: z76.number(),
|
|
16235
|
+
rect_pad_height: z76.number(),
|
|
16236
|
+
rect_border_radius: z76.number().optional(),
|
|
16210
16237
|
hole_offset_x: distance.default(0),
|
|
16211
16238
|
hole_offset_y: distance.default(0),
|
|
16212
|
-
is_covered_with_solder_mask:
|
|
16239
|
+
is_covered_with_solder_mask: z76.boolean().optional(),
|
|
16213
16240
|
x: distance,
|
|
16214
16241
|
y: distance,
|
|
16215
|
-
layers:
|
|
16216
|
-
port_hints:
|
|
16217
|
-
pcb_component_id:
|
|
16218
|
-
pcb_port_id:
|
|
16242
|
+
layers: z76.array(layer_ref),
|
|
16243
|
+
port_hints: z76.array(z76.string()).optional(),
|
|
16244
|
+
pcb_component_id: z76.string().optional(),
|
|
16245
|
+
pcb_port_id: z76.string().optional(),
|
|
16219
16246
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
16220
|
-
soldermask_margin:
|
|
16221
|
-
});
|
|
16222
|
-
var pcb_rotated_pill_hole_with_rect_pad =
|
|
16223
|
-
type:
|
|
16224
|
-
shape:
|
|
16225
|
-
pcb_group_id:
|
|
16226
|
-
subcircuit_id:
|
|
16227
|
-
hole_shape:
|
|
16228
|
-
pad_shape:
|
|
16229
|
-
hole_width:
|
|
16230
|
-
hole_height:
|
|
16247
|
+
soldermask_margin: z76.number().optional()
|
|
16248
|
+
});
|
|
16249
|
+
var pcb_rotated_pill_hole_with_rect_pad = z76.object({
|
|
16250
|
+
type: z76.literal("pcb_plated_hole"),
|
|
16251
|
+
shape: z76.literal("rotated_pill_hole_with_rect_pad"),
|
|
16252
|
+
pcb_group_id: z76.string().optional(),
|
|
16253
|
+
subcircuit_id: z76.string().optional(),
|
|
16254
|
+
hole_shape: z76.literal("rotated_pill"),
|
|
16255
|
+
pad_shape: z76.literal("rect"),
|
|
16256
|
+
hole_width: z76.number(),
|
|
16257
|
+
hole_height: z76.number(),
|
|
16231
16258
|
hole_ccw_rotation: rotation,
|
|
16232
|
-
rect_pad_width:
|
|
16233
|
-
rect_pad_height:
|
|
16234
|
-
rect_border_radius:
|
|
16259
|
+
rect_pad_width: z76.number(),
|
|
16260
|
+
rect_pad_height: z76.number(),
|
|
16261
|
+
rect_border_radius: z76.number().optional(),
|
|
16235
16262
|
rect_ccw_rotation: rotation,
|
|
16236
16263
|
hole_offset_x: distance.default(0),
|
|
16237
16264
|
hole_offset_y: distance.default(0),
|
|
16238
|
-
is_covered_with_solder_mask:
|
|
16265
|
+
is_covered_with_solder_mask: z76.boolean().optional(),
|
|
16239
16266
|
x: distance,
|
|
16240
16267
|
y: distance,
|
|
16241
|
-
layers:
|
|
16242
|
-
port_hints:
|
|
16243
|
-
pcb_component_id:
|
|
16244
|
-
pcb_port_id:
|
|
16268
|
+
layers: z76.array(layer_ref),
|
|
16269
|
+
port_hints: z76.array(z76.string()).optional(),
|
|
16270
|
+
pcb_component_id: z76.string().optional(),
|
|
16271
|
+
pcb_port_id: z76.string().optional(),
|
|
16245
16272
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
16246
|
-
soldermask_margin:
|
|
16247
|
-
});
|
|
16248
|
-
var pcb_hole_with_polygon_pad =
|
|
16249
|
-
type:
|
|
16250
|
-
shape:
|
|
16251
|
-
pcb_group_id:
|
|
16252
|
-
subcircuit_id:
|
|
16253
|
-
hole_shape:
|
|
16254
|
-
hole_diameter:
|
|
16255
|
-
hole_width:
|
|
16256
|
-
hole_height:
|
|
16257
|
-
pad_outline:
|
|
16258
|
-
|
|
16273
|
+
soldermask_margin: z76.number().optional()
|
|
16274
|
+
});
|
|
16275
|
+
var pcb_hole_with_polygon_pad = z76.object({
|
|
16276
|
+
type: z76.literal("pcb_plated_hole"),
|
|
16277
|
+
shape: z76.literal("hole_with_polygon_pad"),
|
|
16278
|
+
pcb_group_id: z76.string().optional(),
|
|
16279
|
+
subcircuit_id: z76.string().optional(),
|
|
16280
|
+
hole_shape: z76.enum(["circle", "oval", "pill", "rotated_pill"]),
|
|
16281
|
+
hole_diameter: z76.number().optional(),
|
|
16282
|
+
hole_width: z76.number().optional(),
|
|
16283
|
+
hole_height: z76.number().optional(),
|
|
16284
|
+
pad_outline: z76.array(
|
|
16285
|
+
z76.object({
|
|
16259
16286
|
x: distance,
|
|
16260
16287
|
y: distance
|
|
16261
16288
|
})
|
|
16262
16289
|
).min(3),
|
|
16263
16290
|
hole_offset_x: distance.default(0),
|
|
16264
16291
|
hole_offset_y: distance.default(0),
|
|
16265
|
-
is_covered_with_solder_mask:
|
|
16292
|
+
is_covered_with_solder_mask: z76.boolean().optional(),
|
|
16266
16293
|
x: distance,
|
|
16267
16294
|
y: distance,
|
|
16268
|
-
layers:
|
|
16269
|
-
port_hints:
|
|
16270
|
-
pcb_component_id:
|
|
16271
|
-
pcb_port_id:
|
|
16295
|
+
layers: z76.array(layer_ref),
|
|
16296
|
+
port_hints: z76.array(z76.string()).optional(),
|
|
16297
|
+
pcb_component_id: z76.string().optional(),
|
|
16298
|
+
pcb_port_id: z76.string().optional(),
|
|
16272
16299
|
pcb_plated_hole_id: getZodPrefixedIdWithDefault("pcb_plated_hole"),
|
|
16273
|
-
soldermask_margin:
|
|
16300
|
+
soldermask_margin: z76.number().optional()
|
|
16274
16301
|
});
|
|
16275
|
-
var pcb_plated_hole =
|
|
16302
|
+
var pcb_plated_hole = z76.union([
|
|
16276
16303
|
pcb_plated_hole_circle,
|
|
16277
16304
|
pcb_plated_hole_oval,
|
|
16278
16305
|
pcb_circular_hole_with_rect_pad,
|
|
@@ -16288,126 +16315,126 @@ expectTypesMatch(true);
|
|
|
16288
16315
|
expectTypesMatch(true);
|
|
16289
16316
|
expectTypesMatch(true);
|
|
16290
16317
|
expectTypesMatch(true);
|
|
16291
|
-
var pcb_port =
|
|
16292
|
-
type:
|
|
16318
|
+
var pcb_port = z77.object({
|
|
16319
|
+
type: z77.literal("pcb_port"),
|
|
16293
16320
|
pcb_port_id: getZodPrefixedIdWithDefault("pcb_port"),
|
|
16294
|
-
pcb_group_id:
|
|
16295
|
-
subcircuit_id:
|
|
16296
|
-
source_port_id:
|
|
16297
|
-
pcb_component_id:
|
|
16321
|
+
pcb_group_id: z77.string().optional(),
|
|
16322
|
+
subcircuit_id: z77.string().optional(),
|
|
16323
|
+
source_port_id: z77.string(),
|
|
16324
|
+
pcb_component_id: z77.string().optional(),
|
|
16298
16325
|
x: distance,
|
|
16299
16326
|
y: distance,
|
|
16300
|
-
layers:
|
|
16301
|
-
is_board_pinout:
|
|
16327
|
+
layers: z77.array(layer_ref),
|
|
16328
|
+
is_board_pinout: z77.boolean().optional()
|
|
16302
16329
|
}).describe("Defines a port on the PCB");
|
|
16303
16330
|
expectTypesMatch(true);
|
|
16304
|
-
var pcb_smtpad_circle =
|
|
16305
|
-
type:
|
|
16306
|
-
shape:
|
|
16331
|
+
var pcb_smtpad_circle = z78.object({
|
|
16332
|
+
type: z78.literal("pcb_smtpad"),
|
|
16333
|
+
shape: z78.literal("circle"),
|
|
16307
16334
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
16308
|
-
pcb_group_id:
|
|
16309
|
-
subcircuit_id:
|
|
16335
|
+
pcb_group_id: z78.string().optional(),
|
|
16336
|
+
subcircuit_id: z78.string().optional(),
|
|
16310
16337
|
x: distance,
|
|
16311
16338
|
y: distance,
|
|
16312
|
-
radius:
|
|
16339
|
+
radius: z78.number(),
|
|
16313
16340
|
layer: layer_ref,
|
|
16314
|
-
port_hints:
|
|
16315
|
-
pcb_component_id:
|
|
16316
|
-
pcb_port_id:
|
|
16317
|
-
is_covered_with_solder_mask:
|
|
16318
|
-
soldermask_margin:
|
|
16341
|
+
port_hints: z78.array(z78.string()).optional(),
|
|
16342
|
+
pcb_component_id: z78.string().optional(),
|
|
16343
|
+
pcb_port_id: z78.string().optional(),
|
|
16344
|
+
is_covered_with_solder_mask: z78.boolean().optional(),
|
|
16345
|
+
soldermask_margin: z78.number().optional()
|
|
16319
16346
|
});
|
|
16320
|
-
var pcb_smtpad_rect =
|
|
16321
|
-
type:
|
|
16322
|
-
shape:
|
|
16347
|
+
var pcb_smtpad_rect = z78.object({
|
|
16348
|
+
type: z78.literal("pcb_smtpad"),
|
|
16349
|
+
shape: z78.literal("rect"),
|
|
16323
16350
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
16324
|
-
pcb_group_id:
|
|
16325
|
-
subcircuit_id:
|
|
16351
|
+
pcb_group_id: z78.string().optional(),
|
|
16352
|
+
subcircuit_id: z78.string().optional(),
|
|
16326
16353
|
x: distance,
|
|
16327
16354
|
y: distance,
|
|
16328
|
-
width:
|
|
16329
|
-
height:
|
|
16330
|
-
rect_border_radius:
|
|
16331
|
-
corner_radius:
|
|
16355
|
+
width: z78.number(),
|
|
16356
|
+
height: z78.number(),
|
|
16357
|
+
rect_border_radius: z78.number().optional(),
|
|
16358
|
+
corner_radius: z78.number().optional(),
|
|
16332
16359
|
layer: layer_ref,
|
|
16333
|
-
port_hints:
|
|
16334
|
-
pcb_component_id:
|
|
16335
|
-
pcb_port_id:
|
|
16336
|
-
is_covered_with_solder_mask:
|
|
16337
|
-
soldermask_margin:
|
|
16360
|
+
port_hints: z78.array(z78.string()).optional(),
|
|
16361
|
+
pcb_component_id: z78.string().optional(),
|
|
16362
|
+
pcb_port_id: z78.string().optional(),
|
|
16363
|
+
is_covered_with_solder_mask: z78.boolean().optional(),
|
|
16364
|
+
soldermask_margin: z78.number().optional()
|
|
16338
16365
|
});
|
|
16339
|
-
var pcb_smtpad_rotated_rect =
|
|
16340
|
-
type:
|
|
16341
|
-
shape:
|
|
16366
|
+
var pcb_smtpad_rotated_rect = z78.object({
|
|
16367
|
+
type: z78.literal("pcb_smtpad"),
|
|
16368
|
+
shape: z78.literal("rotated_rect"),
|
|
16342
16369
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
16343
|
-
pcb_group_id:
|
|
16344
|
-
subcircuit_id:
|
|
16370
|
+
pcb_group_id: z78.string().optional(),
|
|
16371
|
+
subcircuit_id: z78.string().optional(),
|
|
16345
16372
|
x: distance,
|
|
16346
16373
|
y: distance,
|
|
16347
|
-
width:
|
|
16348
|
-
height:
|
|
16349
|
-
rect_border_radius:
|
|
16350
|
-
corner_radius:
|
|
16374
|
+
width: z78.number(),
|
|
16375
|
+
height: z78.number(),
|
|
16376
|
+
rect_border_radius: z78.number().optional(),
|
|
16377
|
+
corner_radius: z78.number().optional(),
|
|
16351
16378
|
ccw_rotation: rotation,
|
|
16352
16379
|
layer: layer_ref,
|
|
16353
|
-
port_hints:
|
|
16354
|
-
pcb_component_id:
|
|
16355
|
-
pcb_port_id:
|
|
16356
|
-
is_covered_with_solder_mask:
|
|
16357
|
-
soldermask_margin:
|
|
16380
|
+
port_hints: z78.array(z78.string()).optional(),
|
|
16381
|
+
pcb_component_id: z78.string().optional(),
|
|
16382
|
+
pcb_port_id: z78.string().optional(),
|
|
16383
|
+
is_covered_with_solder_mask: z78.boolean().optional(),
|
|
16384
|
+
soldermask_margin: z78.number().optional()
|
|
16358
16385
|
});
|
|
16359
|
-
var pcb_smtpad_pill =
|
|
16360
|
-
type:
|
|
16361
|
-
shape:
|
|
16386
|
+
var pcb_smtpad_pill = z78.object({
|
|
16387
|
+
type: z78.literal("pcb_smtpad"),
|
|
16388
|
+
shape: z78.literal("pill"),
|
|
16362
16389
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
16363
|
-
pcb_group_id:
|
|
16364
|
-
subcircuit_id:
|
|
16390
|
+
pcb_group_id: z78.string().optional(),
|
|
16391
|
+
subcircuit_id: z78.string().optional(),
|
|
16365
16392
|
x: distance,
|
|
16366
16393
|
y: distance,
|
|
16367
|
-
width:
|
|
16368
|
-
height:
|
|
16369
|
-
radius:
|
|
16394
|
+
width: z78.number(),
|
|
16395
|
+
height: z78.number(),
|
|
16396
|
+
radius: z78.number(),
|
|
16370
16397
|
layer: layer_ref,
|
|
16371
|
-
port_hints:
|
|
16372
|
-
pcb_component_id:
|
|
16373
|
-
pcb_port_id:
|
|
16374
|
-
is_covered_with_solder_mask:
|
|
16375
|
-
soldermask_margin:
|
|
16398
|
+
port_hints: z78.array(z78.string()).optional(),
|
|
16399
|
+
pcb_component_id: z78.string().optional(),
|
|
16400
|
+
pcb_port_id: z78.string().optional(),
|
|
16401
|
+
is_covered_with_solder_mask: z78.boolean().optional(),
|
|
16402
|
+
soldermask_margin: z78.number().optional()
|
|
16376
16403
|
});
|
|
16377
|
-
var pcb_smtpad_rotated_pill =
|
|
16378
|
-
type:
|
|
16379
|
-
shape:
|
|
16404
|
+
var pcb_smtpad_rotated_pill = z78.object({
|
|
16405
|
+
type: z78.literal("pcb_smtpad"),
|
|
16406
|
+
shape: z78.literal("rotated_pill"),
|
|
16380
16407
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
16381
|
-
pcb_group_id:
|
|
16382
|
-
subcircuit_id:
|
|
16408
|
+
pcb_group_id: z78.string().optional(),
|
|
16409
|
+
subcircuit_id: z78.string().optional(),
|
|
16383
16410
|
x: distance,
|
|
16384
16411
|
y: distance,
|
|
16385
|
-
width:
|
|
16386
|
-
height:
|
|
16387
|
-
radius:
|
|
16412
|
+
width: z78.number(),
|
|
16413
|
+
height: z78.number(),
|
|
16414
|
+
radius: z78.number(),
|
|
16388
16415
|
ccw_rotation: rotation,
|
|
16389
16416
|
layer: layer_ref,
|
|
16390
|
-
port_hints:
|
|
16391
|
-
pcb_component_id:
|
|
16392
|
-
pcb_port_id:
|
|
16393
|
-
is_covered_with_solder_mask:
|
|
16394
|
-
soldermask_margin:
|
|
16417
|
+
port_hints: z78.array(z78.string()).optional(),
|
|
16418
|
+
pcb_component_id: z78.string().optional(),
|
|
16419
|
+
pcb_port_id: z78.string().optional(),
|
|
16420
|
+
is_covered_with_solder_mask: z78.boolean().optional(),
|
|
16421
|
+
soldermask_margin: z78.number().optional()
|
|
16395
16422
|
});
|
|
16396
|
-
var pcb_smtpad_polygon =
|
|
16397
|
-
type:
|
|
16398
|
-
shape:
|
|
16423
|
+
var pcb_smtpad_polygon = z78.object({
|
|
16424
|
+
type: z78.literal("pcb_smtpad"),
|
|
16425
|
+
shape: z78.literal("polygon"),
|
|
16399
16426
|
pcb_smtpad_id: getZodPrefixedIdWithDefault("pcb_smtpad"),
|
|
16400
|
-
pcb_group_id:
|
|
16401
|
-
subcircuit_id:
|
|
16402
|
-
points:
|
|
16427
|
+
pcb_group_id: z78.string().optional(),
|
|
16428
|
+
subcircuit_id: z78.string().optional(),
|
|
16429
|
+
points: z78.array(point),
|
|
16403
16430
|
layer: layer_ref,
|
|
16404
|
-
port_hints:
|
|
16405
|
-
pcb_component_id:
|
|
16406
|
-
pcb_port_id:
|
|
16407
|
-
is_covered_with_solder_mask:
|
|
16408
|
-
soldermask_margin:
|
|
16431
|
+
port_hints: z78.array(z78.string()).optional(),
|
|
16432
|
+
pcb_component_id: z78.string().optional(),
|
|
16433
|
+
pcb_port_id: z78.string().optional(),
|
|
16434
|
+
is_covered_with_solder_mask: z78.boolean().optional(),
|
|
16435
|
+
soldermask_margin: z78.number().optional()
|
|
16409
16436
|
});
|
|
16410
|
-
var pcb_smtpad =
|
|
16437
|
+
var pcb_smtpad = z78.discriminatedUnion("shape", [
|
|
16411
16438
|
pcb_smtpad_circle,
|
|
16412
16439
|
pcb_smtpad_rect,
|
|
16413
16440
|
pcb_smtpad_rotated_rect,
|
|
@@ -16421,78 +16448,78 @@ expectTypesMatch(true);
|
|
|
16421
16448
|
expectTypesMatch(true);
|
|
16422
16449
|
expectTypesMatch(true);
|
|
16423
16450
|
expectTypesMatch(true);
|
|
16424
|
-
var pcb_solder_paste_circle =
|
|
16425
|
-
type:
|
|
16426
|
-
shape:
|
|
16451
|
+
var pcb_solder_paste_circle = z79.object({
|
|
16452
|
+
type: z79.literal("pcb_solder_paste"),
|
|
16453
|
+
shape: z79.literal("circle"),
|
|
16427
16454
|
pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
|
|
16428
|
-
pcb_group_id:
|
|
16429
|
-
subcircuit_id:
|
|
16455
|
+
pcb_group_id: z79.string().optional(),
|
|
16456
|
+
subcircuit_id: z79.string().optional(),
|
|
16430
16457
|
x: distance,
|
|
16431
16458
|
y: distance,
|
|
16432
|
-
radius:
|
|
16459
|
+
radius: z79.number(),
|
|
16433
16460
|
layer: layer_ref,
|
|
16434
|
-
pcb_component_id:
|
|
16435
|
-
pcb_smtpad_id:
|
|
16461
|
+
pcb_component_id: z79.string().optional(),
|
|
16462
|
+
pcb_smtpad_id: z79.string().optional()
|
|
16436
16463
|
});
|
|
16437
|
-
var pcb_solder_paste_rect =
|
|
16438
|
-
type:
|
|
16439
|
-
shape:
|
|
16464
|
+
var pcb_solder_paste_rect = z79.object({
|
|
16465
|
+
type: z79.literal("pcb_solder_paste"),
|
|
16466
|
+
shape: z79.literal("rect"),
|
|
16440
16467
|
pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
|
|
16441
|
-
pcb_group_id:
|
|
16442
|
-
subcircuit_id:
|
|
16468
|
+
pcb_group_id: z79.string().optional(),
|
|
16469
|
+
subcircuit_id: z79.string().optional(),
|
|
16443
16470
|
x: distance,
|
|
16444
16471
|
y: distance,
|
|
16445
|
-
width:
|
|
16446
|
-
height:
|
|
16472
|
+
width: z79.number(),
|
|
16473
|
+
height: z79.number(),
|
|
16447
16474
|
layer: layer_ref,
|
|
16448
|
-
pcb_component_id:
|
|
16449
|
-
pcb_smtpad_id:
|
|
16475
|
+
pcb_component_id: z79.string().optional(),
|
|
16476
|
+
pcb_smtpad_id: z79.string().optional()
|
|
16450
16477
|
});
|
|
16451
|
-
var pcb_solder_paste_pill =
|
|
16452
|
-
type:
|
|
16453
|
-
shape:
|
|
16478
|
+
var pcb_solder_paste_pill = z79.object({
|
|
16479
|
+
type: z79.literal("pcb_solder_paste"),
|
|
16480
|
+
shape: z79.literal("pill"),
|
|
16454
16481
|
pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
|
|
16455
|
-
pcb_group_id:
|
|
16456
|
-
subcircuit_id:
|
|
16482
|
+
pcb_group_id: z79.string().optional(),
|
|
16483
|
+
subcircuit_id: z79.string().optional(),
|
|
16457
16484
|
x: distance,
|
|
16458
16485
|
y: distance,
|
|
16459
|
-
width:
|
|
16460
|
-
height:
|
|
16461
|
-
radius:
|
|
16486
|
+
width: z79.number(),
|
|
16487
|
+
height: z79.number(),
|
|
16488
|
+
radius: z79.number(),
|
|
16462
16489
|
layer: layer_ref,
|
|
16463
|
-
pcb_component_id:
|
|
16464
|
-
pcb_smtpad_id:
|
|
16490
|
+
pcb_component_id: z79.string().optional(),
|
|
16491
|
+
pcb_smtpad_id: z79.string().optional()
|
|
16465
16492
|
});
|
|
16466
|
-
var pcb_solder_paste_rotated_rect =
|
|
16467
|
-
type:
|
|
16468
|
-
shape:
|
|
16493
|
+
var pcb_solder_paste_rotated_rect = z79.object({
|
|
16494
|
+
type: z79.literal("pcb_solder_paste"),
|
|
16495
|
+
shape: z79.literal("rotated_rect"),
|
|
16469
16496
|
pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
|
|
16470
|
-
pcb_group_id:
|
|
16471
|
-
subcircuit_id:
|
|
16497
|
+
pcb_group_id: z79.string().optional(),
|
|
16498
|
+
subcircuit_id: z79.string().optional(),
|
|
16472
16499
|
x: distance,
|
|
16473
16500
|
y: distance,
|
|
16474
|
-
width:
|
|
16475
|
-
height:
|
|
16501
|
+
width: z79.number(),
|
|
16502
|
+
height: z79.number(),
|
|
16476
16503
|
ccw_rotation: distance,
|
|
16477
16504
|
layer: layer_ref,
|
|
16478
|
-
pcb_component_id:
|
|
16479
|
-
pcb_smtpad_id:
|
|
16505
|
+
pcb_component_id: z79.string().optional(),
|
|
16506
|
+
pcb_smtpad_id: z79.string().optional()
|
|
16480
16507
|
});
|
|
16481
|
-
var pcb_solder_paste_oval =
|
|
16482
|
-
type:
|
|
16483
|
-
shape:
|
|
16508
|
+
var pcb_solder_paste_oval = z79.object({
|
|
16509
|
+
type: z79.literal("pcb_solder_paste"),
|
|
16510
|
+
shape: z79.literal("oval"),
|
|
16484
16511
|
pcb_solder_paste_id: getZodPrefixedIdWithDefault("pcb_solder_paste"),
|
|
16485
|
-
pcb_group_id:
|
|
16486
|
-
subcircuit_id:
|
|
16512
|
+
pcb_group_id: z79.string().optional(),
|
|
16513
|
+
subcircuit_id: z79.string().optional(),
|
|
16487
16514
|
x: distance,
|
|
16488
16515
|
y: distance,
|
|
16489
|
-
width:
|
|
16490
|
-
height:
|
|
16516
|
+
width: z79.number(),
|
|
16517
|
+
height: z79.number(),
|
|
16491
16518
|
layer: layer_ref,
|
|
16492
|
-
pcb_component_id:
|
|
16493
|
-
pcb_smtpad_id:
|
|
16519
|
+
pcb_component_id: z79.string().optional(),
|
|
16520
|
+
pcb_smtpad_id: z79.string().optional()
|
|
16494
16521
|
});
|
|
16495
|
-
var pcb_solder_paste =
|
|
16522
|
+
var pcb_solder_paste = z79.union([
|
|
16496
16523
|
pcb_solder_paste_circle,
|
|
16497
16524
|
pcb_solder_paste_rect,
|
|
16498
16525
|
pcb_solder_paste_pill,
|
|
@@ -16506,124 +16533,124 @@ expectTypesMatch(
|
|
|
16506
16533
|
true
|
|
16507
16534
|
);
|
|
16508
16535
|
expectTypesMatch(true);
|
|
16509
|
-
var pcb_text =
|
|
16510
|
-
type:
|
|
16536
|
+
var pcb_text = z80.object({
|
|
16537
|
+
type: z80.literal("pcb_text"),
|
|
16511
16538
|
pcb_text_id: getZodPrefixedIdWithDefault("pcb_text"),
|
|
16512
|
-
pcb_group_id:
|
|
16513
|
-
subcircuit_id:
|
|
16514
|
-
text:
|
|
16539
|
+
pcb_group_id: z80.string().optional(),
|
|
16540
|
+
subcircuit_id: z80.string().optional(),
|
|
16541
|
+
text: z80.string(),
|
|
16515
16542
|
center: point,
|
|
16516
16543
|
layer: layer_ref,
|
|
16517
16544
|
width: length,
|
|
16518
16545
|
height: length,
|
|
16519
|
-
lines:
|
|
16546
|
+
lines: z80.number(),
|
|
16520
16547
|
// @ts-ignore
|
|
16521
|
-
align:
|
|
16548
|
+
align: z80.enum(["bottom-left"])
|
|
16522
16549
|
}).describe("Defines text on the PCB");
|
|
16523
16550
|
expectTypesMatch(true);
|
|
16524
|
-
var pcb_trace_route_point_wire =
|
|
16525
|
-
route_type:
|
|
16551
|
+
var pcb_trace_route_point_wire = z81.object({
|
|
16552
|
+
route_type: z81.literal("wire"),
|
|
16526
16553
|
x: distance,
|
|
16527
16554
|
y: distance,
|
|
16528
16555
|
width: distance,
|
|
16529
|
-
start_pcb_port_id:
|
|
16530
|
-
end_pcb_port_id:
|
|
16556
|
+
start_pcb_port_id: z81.string().optional(),
|
|
16557
|
+
end_pcb_port_id: z81.string().optional(),
|
|
16531
16558
|
layer: layer_ref
|
|
16532
16559
|
});
|
|
16533
|
-
var pcb_trace_route_point_via =
|
|
16534
|
-
route_type:
|
|
16560
|
+
var pcb_trace_route_point_via = z81.object({
|
|
16561
|
+
route_type: z81.literal("via"),
|
|
16535
16562
|
x: distance,
|
|
16536
16563
|
y: distance,
|
|
16537
16564
|
hole_diameter: distance.optional(),
|
|
16538
16565
|
outer_diameter: distance.optional(),
|
|
16539
|
-
from_layer:
|
|
16540
|
-
to_layer:
|
|
16566
|
+
from_layer: z81.string(),
|
|
16567
|
+
to_layer: z81.string()
|
|
16541
16568
|
});
|
|
16542
|
-
var pcb_trace_route_point =
|
|
16569
|
+
var pcb_trace_route_point = z81.union([
|
|
16543
16570
|
pcb_trace_route_point_wire,
|
|
16544
16571
|
pcb_trace_route_point_via
|
|
16545
16572
|
]);
|
|
16546
|
-
var pcb_trace =
|
|
16547
|
-
type:
|
|
16548
|
-
source_trace_id:
|
|
16549
|
-
pcb_component_id:
|
|
16573
|
+
var pcb_trace = z81.object({
|
|
16574
|
+
type: z81.literal("pcb_trace"),
|
|
16575
|
+
source_trace_id: z81.string().optional(),
|
|
16576
|
+
pcb_component_id: z81.string().optional(),
|
|
16550
16577
|
pcb_trace_id: getZodPrefixedIdWithDefault("pcb_trace"),
|
|
16551
|
-
pcb_group_id:
|
|
16552
|
-
subcircuit_id:
|
|
16553
|
-
route_thickness_mode:
|
|
16554
|
-
route_order_index:
|
|
16555
|
-
should_round_corners:
|
|
16556
|
-
trace_length:
|
|
16557
|
-
highlight_color:
|
|
16558
|
-
route:
|
|
16578
|
+
pcb_group_id: z81.string().optional(),
|
|
16579
|
+
subcircuit_id: z81.string().optional(),
|
|
16580
|
+
route_thickness_mode: z81.enum(["constant", "interpolated"]).default("constant").optional(),
|
|
16581
|
+
route_order_index: z81.number().optional(),
|
|
16582
|
+
should_round_corners: z81.boolean().optional(),
|
|
16583
|
+
trace_length: z81.number().optional(),
|
|
16584
|
+
highlight_color: z81.string().optional(),
|
|
16585
|
+
route: z81.array(pcb_trace_route_point)
|
|
16559
16586
|
}).describe("Defines a trace on the PCB");
|
|
16560
16587
|
expectTypesMatch(true);
|
|
16561
16588
|
expectTypesMatch(true);
|
|
16562
|
-
var pcb_trace_error =
|
|
16563
|
-
type:
|
|
16589
|
+
var pcb_trace_error = z82.object({
|
|
16590
|
+
type: z82.literal("pcb_trace_error"),
|
|
16564
16591
|
pcb_trace_error_id: getZodPrefixedIdWithDefault("pcb_trace_error"),
|
|
16565
|
-
error_type:
|
|
16566
|
-
message:
|
|
16592
|
+
error_type: z82.literal("pcb_trace_error").default("pcb_trace_error"),
|
|
16593
|
+
message: z82.string(),
|
|
16567
16594
|
center: point.optional(),
|
|
16568
|
-
pcb_trace_id:
|
|
16569
|
-
source_trace_id:
|
|
16570
|
-
pcb_component_ids:
|
|
16571
|
-
pcb_port_ids:
|
|
16572
|
-
subcircuit_id:
|
|
16595
|
+
pcb_trace_id: z82.string(),
|
|
16596
|
+
source_trace_id: z82.string(),
|
|
16597
|
+
pcb_component_ids: z82.array(z82.string()),
|
|
16598
|
+
pcb_port_ids: z82.array(z82.string()),
|
|
16599
|
+
subcircuit_id: z82.string().optional()
|
|
16573
16600
|
}).describe("Defines a trace error on the PCB");
|
|
16574
16601
|
expectTypesMatch(true);
|
|
16575
|
-
var pcb_trace_missing_error =
|
|
16576
|
-
type:
|
|
16602
|
+
var pcb_trace_missing_error = z83.object({
|
|
16603
|
+
type: z83.literal("pcb_trace_missing_error"),
|
|
16577
16604
|
pcb_trace_missing_error_id: getZodPrefixedIdWithDefault(
|
|
16578
16605
|
"pcb_trace_missing_error"
|
|
16579
16606
|
),
|
|
16580
|
-
error_type:
|
|
16581
|
-
message:
|
|
16607
|
+
error_type: z83.literal("pcb_trace_missing_error").default("pcb_trace_missing_error"),
|
|
16608
|
+
message: z83.string(),
|
|
16582
16609
|
center: point.optional(),
|
|
16583
|
-
source_trace_id:
|
|
16584
|
-
pcb_component_ids:
|
|
16585
|
-
pcb_port_ids:
|
|
16586
|
-
subcircuit_id:
|
|
16610
|
+
source_trace_id: z83.string(),
|
|
16611
|
+
pcb_component_ids: z83.array(z83.string()),
|
|
16612
|
+
pcb_port_ids: z83.array(z83.string()),
|
|
16613
|
+
subcircuit_id: z83.string().optional()
|
|
16587
16614
|
}).describe(
|
|
16588
16615
|
"Defines an error when a source trace has no corresponding PCB trace"
|
|
16589
16616
|
);
|
|
16590
16617
|
expectTypesMatch(true);
|
|
16591
|
-
var pcb_port_not_matched_error =
|
|
16592
|
-
type:
|
|
16618
|
+
var pcb_port_not_matched_error = z84.object({
|
|
16619
|
+
type: z84.literal("pcb_port_not_matched_error"),
|
|
16593
16620
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
16594
|
-
error_type:
|
|
16595
|
-
message:
|
|
16596
|
-
pcb_component_ids:
|
|
16597
|
-
subcircuit_id:
|
|
16621
|
+
error_type: z84.literal("pcb_port_not_matched_error").default("pcb_port_not_matched_error"),
|
|
16622
|
+
message: z84.string(),
|
|
16623
|
+
pcb_component_ids: z84.array(z84.string()),
|
|
16624
|
+
subcircuit_id: z84.string().optional()
|
|
16598
16625
|
}).describe("Defines a trace error on the PCB where a port is not matched");
|
|
16599
16626
|
expectTypesMatch(true);
|
|
16600
|
-
var pcb_port_not_connected_error =
|
|
16601
|
-
type:
|
|
16627
|
+
var pcb_port_not_connected_error = z85.object({
|
|
16628
|
+
type: z85.literal("pcb_port_not_connected_error"),
|
|
16602
16629
|
pcb_port_not_connected_error_id: getZodPrefixedIdWithDefault(
|
|
16603
16630
|
"pcb_port_not_connected_error"
|
|
16604
16631
|
),
|
|
16605
|
-
error_type:
|
|
16606
|
-
message:
|
|
16607
|
-
pcb_port_ids:
|
|
16608
|
-
pcb_component_ids:
|
|
16609
|
-
subcircuit_id:
|
|
16632
|
+
error_type: z85.literal("pcb_port_not_connected_error").default("pcb_port_not_connected_error"),
|
|
16633
|
+
message: z85.string(),
|
|
16634
|
+
pcb_port_ids: z85.array(z85.string()),
|
|
16635
|
+
pcb_component_ids: z85.array(z85.string()),
|
|
16636
|
+
subcircuit_id: z85.string().optional()
|
|
16610
16637
|
}).describe("Defines an error when a pcb port is not connected to any trace");
|
|
16611
16638
|
expectTypesMatch(
|
|
16612
16639
|
true
|
|
16613
16640
|
);
|
|
16614
|
-
var pcb_net =
|
|
16615
|
-
type:
|
|
16641
|
+
var pcb_net = z86.object({
|
|
16642
|
+
type: z86.literal("pcb_net"),
|
|
16616
16643
|
pcb_net_id: getZodPrefixedIdWithDefault("pcb_net"),
|
|
16617
|
-
source_net_id:
|
|
16618
|
-
highlight_color:
|
|
16644
|
+
source_net_id: z86.string().optional(),
|
|
16645
|
+
highlight_color: z86.string().optional()
|
|
16619
16646
|
}).describe("Defines a net on the PCB");
|
|
16620
16647
|
expectTypesMatch(true);
|
|
16621
|
-
var pcb_via =
|
|
16622
|
-
type:
|
|
16648
|
+
var pcb_via = z87.object({
|
|
16649
|
+
type: z87.literal("pcb_via"),
|
|
16623
16650
|
pcb_via_id: getZodPrefixedIdWithDefault("pcb_via"),
|
|
16624
|
-
pcb_group_id:
|
|
16625
|
-
subcircuit_id:
|
|
16626
|
-
subcircuit_connectivity_map_key:
|
|
16651
|
+
pcb_group_id: z87.string().optional(),
|
|
16652
|
+
subcircuit_id: z87.string().optional(),
|
|
16653
|
+
subcircuit_connectivity_map_key: z87.string().optional(),
|
|
16627
16654
|
x: distance,
|
|
16628
16655
|
y: distance,
|
|
16629
16656
|
outer_diameter: distance.default("0.6mm"),
|
|
@@ -16632,61 +16659,61 @@ var pcb_via = z84.object({
|
|
|
16632
16659
|
from_layer: layer_ref.optional(),
|
|
16633
16660
|
/** @deprecated */
|
|
16634
16661
|
to_layer: layer_ref.optional(),
|
|
16635
|
-
layers:
|
|
16636
|
-
pcb_trace_id:
|
|
16637
|
-
net_is_assignable:
|
|
16638
|
-
net_assigned:
|
|
16639
|
-
is_tented:
|
|
16662
|
+
layers: z87.array(layer_ref),
|
|
16663
|
+
pcb_trace_id: z87.string().optional(),
|
|
16664
|
+
net_is_assignable: z87.boolean().optional(),
|
|
16665
|
+
net_assigned: z87.boolean().optional(),
|
|
16666
|
+
is_tented: z87.boolean().optional()
|
|
16640
16667
|
}).describe("Defines a via on the PCB");
|
|
16641
16668
|
expectTypesMatch(true);
|
|
16642
|
-
var pcb_board =
|
|
16643
|
-
type:
|
|
16669
|
+
var pcb_board = z88.object({
|
|
16670
|
+
type: z88.literal("pcb_board"),
|
|
16644
16671
|
pcb_board_id: getZodPrefixedIdWithDefault("pcb_board"),
|
|
16645
|
-
pcb_panel_id:
|
|
16646
|
-
is_subcircuit:
|
|
16647
|
-
subcircuit_id:
|
|
16672
|
+
pcb_panel_id: z88.string().optional(),
|
|
16673
|
+
is_subcircuit: z88.boolean().optional(),
|
|
16674
|
+
subcircuit_id: z88.string().optional(),
|
|
16648
16675
|
width: length.optional(),
|
|
16649
16676
|
height: length.optional(),
|
|
16650
16677
|
center: point,
|
|
16651
16678
|
thickness: length.optional().default(1.4),
|
|
16652
|
-
num_layers:
|
|
16653
|
-
outline:
|
|
16654
|
-
shape:
|
|
16655
|
-
material:
|
|
16679
|
+
num_layers: z88.number().optional().default(4),
|
|
16680
|
+
outline: z88.array(point).optional(),
|
|
16681
|
+
shape: z88.enum(["rect", "polygon"]).optional(),
|
|
16682
|
+
material: z88.enum(["fr4", "fr1"]).default("fr4")
|
|
16656
16683
|
}).describe("Defines the board outline of the PCB");
|
|
16657
16684
|
expectTypesMatch(true);
|
|
16658
|
-
var pcb_panel =
|
|
16659
|
-
type:
|
|
16685
|
+
var pcb_panel = z89.object({
|
|
16686
|
+
type: z89.literal("pcb_panel"),
|
|
16660
16687
|
pcb_panel_id: getZodPrefixedIdWithDefault("pcb_panel"),
|
|
16661
16688
|
width: length,
|
|
16662
16689
|
height: length,
|
|
16663
16690
|
center: point,
|
|
16664
|
-
covered_with_solder_mask:
|
|
16691
|
+
covered_with_solder_mask: z89.boolean().optional().default(true)
|
|
16665
16692
|
}).describe("Defines a PCB panel that can contain multiple boards");
|
|
16666
16693
|
expectTypesMatch(true);
|
|
16667
|
-
var pcb_placement_error =
|
|
16668
|
-
type:
|
|
16694
|
+
var pcb_placement_error = z90.object({
|
|
16695
|
+
type: z90.literal("pcb_placement_error"),
|
|
16669
16696
|
pcb_placement_error_id: getZodPrefixedIdWithDefault("pcb_placement_error"),
|
|
16670
|
-
error_type:
|
|
16671
|
-
message:
|
|
16672
|
-
subcircuit_id:
|
|
16697
|
+
error_type: z90.literal("pcb_placement_error").default("pcb_placement_error"),
|
|
16698
|
+
message: z90.string(),
|
|
16699
|
+
subcircuit_id: z90.string().optional()
|
|
16673
16700
|
}).describe("Defines a placement error on the PCB");
|
|
16674
16701
|
expectTypesMatch(true);
|
|
16675
|
-
var pcb_trace_hint =
|
|
16676
|
-
type:
|
|
16702
|
+
var pcb_trace_hint = z91.object({
|
|
16703
|
+
type: z91.literal("pcb_trace_hint"),
|
|
16677
16704
|
pcb_trace_hint_id: getZodPrefixedIdWithDefault("pcb_trace_hint"),
|
|
16678
|
-
pcb_port_id:
|
|
16679
|
-
pcb_component_id:
|
|
16680
|
-
route:
|
|
16681
|
-
subcircuit_id:
|
|
16705
|
+
pcb_port_id: z91.string(),
|
|
16706
|
+
pcb_component_id: z91.string(),
|
|
16707
|
+
route: z91.array(route_hint_point),
|
|
16708
|
+
subcircuit_id: z91.string().optional()
|
|
16682
16709
|
}).describe("A hint that can be used during generation of a PCB trace");
|
|
16683
16710
|
expectTypesMatch(true);
|
|
16684
|
-
var pcb_silkscreen_line =
|
|
16685
|
-
type:
|
|
16711
|
+
var pcb_silkscreen_line = z92.object({
|
|
16712
|
+
type: z92.literal("pcb_silkscreen_line"),
|
|
16686
16713
|
pcb_silkscreen_line_id: getZodPrefixedIdWithDefault("pcb_silkscreen_line"),
|
|
16687
|
-
pcb_component_id:
|
|
16688
|
-
pcb_group_id:
|
|
16689
|
-
subcircuit_id:
|
|
16714
|
+
pcb_component_id: z92.string(),
|
|
16715
|
+
pcb_group_id: z92.string().optional(),
|
|
16716
|
+
subcircuit_id: z92.string().optional(),
|
|
16690
16717
|
stroke_width: distance.default("0.1mm"),
|
|
16691
16718
|
x1: distance,
|
|
16692
16719
|
y1: distance,
|
|
@@ -16695,28 +16722,28 @@ var pcb_silkscreen_line = z89.object({
|
|
|
16695
16722
|
layer: visible_layer
|
|
16696
16723
|
}).describe("Defines a silkscreen line on the PCB");
|
|
16697
16724
|
expectTypesMatch(true);
|
|
16698
|
-
var pcb_silkscreen_path =
|
|
16699
|
-
type:
|
|
16725
|
+
var pcb_silkscreen_path = z93.object({
|
|
16726
|
+
type: z93.literal("pcb_silkscreen_path"),
|
|
16700
16727
|
pcb_silkscreen_path_id: getZodPrefixedIdWithDefault("pcb_silkscreen_path"),
|
|
16701
|
-
pcb_component_id:
|
|
16702
|
-
pcb_group_id:
|
|
16703
|
-
subcircuit_id:
|
|
16728
|
+
pcb_component_id: z93.string(),
|
|
16729
|
+
pcb_group_id: z93.string().optional(),
|
|
16730
|
+
subcircuit_id: z93.string().optional(),
|
|
16704
16731
|
layer: visible_layer,
|
|
16705
|
-
route:
|
|
16732
|
+
route: z93.array(point),
|
|
16706
16733
|
stroke_width: length
|
|
16707
16734
|
}).describe("Defines a silkscreen path on the PCB");
|
|
16708
16735
|
expectTypesMatch(true);
|
|
16709
|
-
var pcb_silkscreen_text =
|
|
16710
|
-
type:
|
|
16736
|
+
var pcb_silkscreen_text = z94.object({
|
|
16737
|
+
type: z94.literal("pcb_silkscreen_text"),
|
|
16711
16738
|
pcb_silkscreen_text_id: getZodPrefixedIdWithDefault("pcb_silkscreen_text"),
|
|
16712
|
-
pcb_group_id:
|
|
16713
|
-
subcircuit_id:
|
|
16714
|
-
font:
|
|
16739
|
+
pcb_group_id: z94.string().optional(),
|
|
16740
|
+
subcircuit_id: z94.string().optional(),
|
|
16741
|
+
font: z94.literal("tscircuit2024").default("tscircuit2024"),
|
|
16715
16742
|
font_size: distance.default("0.2mm"),
|
|
16716
|
-
pcb_component_id:
|
|
16717
|
-
text:
|
|
16718
|
-
is_knockout:
|
|
16719
|
-
knockout_padding:
|
|
16743
|
+
pcb_component_id: z94.string(),
|
|
16744
|
+
text: z94.string(),
|
|
16745
|
+
is_knockout: z94.boolean().default(false).optional(),
|
|
16746
|
+
knockout_padding: z94.object({
|
|
16720
16747
|
left: length,
|
|
16721
16748
|
top: length,
|
|
16722
16749
|
bottom: length,
|
|
@@ -16727,24 +16754,24 @@ var pcb_silkscreen_text = z91.object({
|
|
|
16727
16754
|
bottom: "0.2mm",
|
|
16728
16755
|
right: "0.2mm"
|
|
16729
16756
|
}).optional(),
|
|
16730
|
-
ccw_rotation:
|
|
16757
|
+
ccw_rotation: z94.number().optional(),
|
|
16731
16758
|
layer: layer_ref,
|
|
16732
|
-
is_mirrored:
|
|
16759
|
+
is_mirrored: z94.boolean().default(false).optional(),
|
|
16733
16760
|
anchor_position: point.default({ x: 0, y: 0 }),
|
|
16734
16761
|
anchor_alignment: ninePointAnchor.default("center")
|
|
16735
16762
|
}).describe("Defines silkscreen text on the PCB");
|
|
16736
16763
|
expectTypesMatch(true);
|
|
16737
|
-
var pcb_copper_text =
|
|
16738
|
-
type:
|
|
16764
|
+
var pcb_copper_text = z95.object({
|
|
16765
|
+
type: z95.literal("pcb_copper_text"),
|
|
16739
16766
|
pcb_copper_text_id: getZodPrefixedIdWithDefault("pcb_copper_text"),
|
|
16740
|
-
pcb_group_id:
|
|
16741
|
-
subcircuit_id:
|
|
16742
|
-
font:
|
|
16767
|
+
pcb_group_id: z95.string().optional(),
|
|
16768
|
+
subcircuit_id: z95.string().optional(),
|
|
16769
|
+
font: z95.literal("tscircuit2024").default("tscircuit2024"),
|
|
16743
16770
|
font_size: distance.default("0.2mm"),
|
|
16744
|
-
pcb_component_id:
|
|
16745
|
-
text:
|
|
16746
|
-
is_knockout:
|
|
16747
|
-
knockout_padding:
|
|
16771
|
+
pcb_component_id: z95.string(),
|
|
16772
|
+
text: z95.string(),
|
|
16773
|
+
is_knockout: z95.boolean().default(false).optional(),
|
|
16774
|
+
knockout_padding: z95.object({
|
|
16748
16775
|
left: length,
|
|
16749
16776
|
top: length,
|
|
16750
16777
|
bottom: length,
|
|
@@ -16755,273 +16782,273 @@ var pcb_copper_text = z92.object({
|
|
|
16755
16782
|
bottom: "0.2mm",
|
|
16756
16783
|
right: "0.2mm"
|
|
16757
16784
|
}).optional(),
|
|
16758
|
-
ccw_rotation:
|
|
16785
|
+
ccw_rotation: z95.number().optional(),
|
|
16759
16786
|
layer: layer_ref,
|
|
16760
|
-
is_mirrored:
|
|
16787
|
+
is_mirrored: z95.boolean().default(false).optional(),
|
|
16761
16788
|
anchor_position: point.default({ x: 0, y: 0 }),
|
|
16762
16789
|
anchor_alignment: ninePointAnchor.default("center")
|
|
16763
16790
|
}).describe("Defines copper text on the PCB");
|
|
16764
16791
|
expectTypesMatch(true);
|
|
16765
|
-
var pcb_silkscreen_rect =
|
|
16766
|
-
type:
|
|
16792
|
+
var pcb_silkscreen_rect = z96.object({
|
|
16793
|
+
type: z96.literal("pcb_silkscreen_rect"),
|
|
16767
16794
|
pcb_silkscreen_rect_id: getZodPrefixedIdWithDefault("pcb_silkscreen_rect"),
|
|
16768
|
-
pcb_component_id:
|
|
16769
|
-
pcb_group_id:
|
|
16770
|
-
subcircuit_id:
|
|
16795
|
+
pcb_component_id: z96.string(),
|
|
16796
|
+
pcb_group_id: z96.string().optional(),
|
|
16797
|
+
subcircuit_id: z96.string().optional(),
|
|
16771
16798
|
center: point,
|
|
16772
16799
|
width: length,
|
|
16773
16800
|
height: length,
|
|
16774
16801
|
layer: layer_ref,
|
|
16775
16802
|
stroke_width: length.default("1mm"),
|
|
16776
16803
|
corner_radius: length.optional(),
|
|
16777
|
-
is_filled:
|
|
16778
|
-
has_stroke:
|
|
16779
|
-
is_stroke_dashed:
|
|
16804
|
+
is_filled: z96.boolean().default(true).optional(),
|
|
16805
|
+
has_stroke: z96.boolean().optional(),
|
|
16806
|
+
is_stroke_dashed: z96.boolean().optional()
|
|
16780
16807
|
}).describe("Defines a silkscreen rect on the PCB");
|
|
16781
16808
|
expectTypesMatch(true);
|
|
16782
|
-
var pcb_silkscreen_circle =
|
|
16783
|
-
type:
|
|
16809
|
+
var pcb_silkscreen_circle = z97.object({
|
|
16810
|
+
type: z97.literal("pcb_silkscreen_circle"),
|
|
16784
16811
|
pcb_silkscreen_circle_id: getZodPrefixedIdWithDefault(
|
|
16785
16812
|
"pcb_silkscreen_circle"
|
|
16786
16813
|
),
|
|
16787
|
-
pcb_component_id:
|
|
16788
|
-
pcb_group_id:
|
|
16789
|
-
subcircuit_id:
|
|
16814
|
+
pcb_component_id: z97.string(),
|
|
16815
|
+
pcb_group_id: z97.string().optional(),
|
|
16816
|
+
subcircuit_id: z97.string().optional(),
|
|
16790
16817
|
center: point,
|
|
16791
16818
|
radius: length,
|
|
16792
16819
|
layer: visible_layer,
|
|
16793
16820
|
stroke_width: length.default("1mm")
|
|
16794
16821
|
}).describe("Defines a silkscreen circle on the PCB");
|
|
16795
16822
|
expectTypesMatch(true);
|
|
16796
|
-
var pcb_silkscreen_oval =
|
|
16797
|
-
type:
|
|
16823
|
+
var pcb_silkscreen_oval = z98.object({
|
|
16824
|
+
type: z98.literal("pcb_silkscreen_oval"),
|
|
16798
16825
|
pcb_silkscreen_oval_id: getZodPrefixedIdWithDefault("pcb_silkscreen_oval"),
|
|
16799
|
-
pcb_component_id:
|
|
16800
|
-
pcb_group_id:
|
|
16801
|
-
subcircuit_id:
|
|
16826
|
+
pcb_component_id: z98.string(),
|
|
16827
|
+
pcb_group_id: z98.string().optional(),
|
|
16828
|
+
subcircuit_id: z98.string().optional(),
|
|
16802
16829
|
center: point,
|
|
16803
16830
|
radius_x: distance,
|
|
16804
16831
|
radius_y: distance,
|
|
16805
16832
|
layer: visible_layer
|
|
16806
16833
|
}).describe("Defines a silkscreen oval on the PCB");
|
|
16807
16834
|
expectTypesMatch(true);
|
|
16808
|
-
var pcb_fabrication_note_text =
|
|
16809
|
-
type:
|
|
16835
|
+
var pcb_fabrication_note_text = z99.object({
|
|
16836
|
+
type: z99.literal("pcb_fabrication_note_text"),
|
|
16810
16837
|
pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
|
|
16811
16838
|
"pcb_fabrication_note_text"
|
|
16812
16839
|
),
|
|
16813
|
-
subcircuit_id:
|
|
16814
|
-
pcb_group_id:
|
|
16815
|
-
font:
|
|
16840
|
+
subcircuit_id: z99.string().optional(),
|
|
16841
|
+
pcb_group_id: z99.string().optional(),
|
|
16842
|
+
font: z99.literal("tscircuit2024").default("tscircuit2024"),
|
|
16816
16843
|
font_size: distance.default("1mm"),
|
|
16817
|
-
pcb_component_id:
|
|
16818
|
-
text:
|
|
16844
|
+
pcb_component_id: z99.string(),
|
|
16845
|
+
text: z99.string(),
|
|
16819
16846
|
layer: visible_layer,
|
|
16820
16847
|
anchor_position: point.default({ x: 0, y: 0 }),
|
|
16821
|
-
anchor_alignment:
|
|
16822
|
-
color:
|
|
16848
|
+
anchor_alignment: z99.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
16849
|
+
color: z99.string().optional()
|
|
16823
16850
|
}).describe(
|
|
16824
16851
|
"Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
|
|
16825
16852
|
);
|
|
16826
16853
|
expectTypesMatch(true);
|
|
16827
|
-
var pcb_fabrication_note_path =
|
|
16828
|
-
type:
|
|
16854
|
+
var pcb_fabrication_note_path = z100.object({
|
|
16855
|
+
type: z100.literal("pcb_fabrication_note_path"),
|
|
16829
16856
|
pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
|
|
16830
16857
|
"pcb_fabrication_note_path"
|
|
16831
16858
|
),
|
|
16832
|
-
pcb_component_id:
|
|
16833
|
-
subcircuit_id:
|
|
16859
|
+
pcb_component_id: z100.string(),
|
|
16860
|
+
subcircuit_id: z100.string().optional(),
|
|
16834
16861
|
layer: layer_ref,
|
|
16835
|
-
route:
|
|
16862
|
+
route: z100.array(point),
|
|
16836
16863
|
stroke_width: length,
|
|
16837
|
-
color:
|
|
16864
|
+
color: z100.string().optional()
|
|
16838
16865
|
}).describe(
|
|
16839
16866
|
"Defines a fabrication path on the PCB for fabricators or assemblers"
|
|
16840
16867
|
);
|
|
16841
16868
|
expectTypesMatch(true);
|
|
16842
|
-
var pcb_fabrication_note_rect =
|
|
16843
|
-
type:
|
|
16869
|
+
var pcb_fabrication_note_rect = z101.object({
|
|
16870
|
+
type: z101.literal("pcb_fabrication_note_rect"),
|
|
16844
16871
|
pcb_fabrication_note_rect_id: getZodPrefixedIdWithDefault(
|
|
16845
16872
|
"pcb_fabrication_note_rect"
|
|
16846
16873
|
),
|
|
16847
|
-
pcb_component_id:
|
|
16848
|
-
pcb_group_id:
|
|
16849
|
-
subcircuit_id:
|
|
16874
|
+
pcb_component_id: z101.string(),
|
|
16875
|
+
pcb_group_id: z101.string().optional(),
|
|
16876
|
+
subcircuit_id: z101.string().optional(),
|
|
16850
16877
|
center: point,
|
|
16851
16878
|
width: length,
|
|
16852
16879
|
height: length,
|
|
16853
16880
|
layer: visible_layer,
|
|
16854
16881
|
stroke_width: length.default("0.1mm"),
|
|
16855
16882
|
corner_radius: length.optional(),
|
|
16856
|
-
is_filled:
|
|
16857
|
-
has_stroke:
|
|
16858
|
-
is_stroke_dashed:
|
|
16859
|
-
color:
|
|
16883
|
+
is_filled: z101.boolean().optional(),
|
|
16884
|
+
has_stroke: z101.boolean().optional(),
|
|
16885
|
+
is_stroke_dashed: z101.boolean().optional(),
|
|
16886
|
+
color: z101.string().optional()
|
|
16860
16887
|
}).describe("Defines a fabrication note rectangle on the PCB");
|
|
16861
16888
|
expectTypesMatch(true);
|
|
16862
|
-
var pcb_fabrication_note_dimension =
|
|
16863
|
-
type:
|
|
16889
|
+
var pcb_fabrication_note_dimension = z102.object({
|
|
16890
|
+
type: z102.literal("pcb_fabrication_note_dimension"),
|
|
16864
16891
|
pcb_fabrication_note_dimension_id: getZodPrefixedIdWithDefault(
|
|
16865
16892
|
"pcb_fabrication_note_dimension"
|
|
16866
16893
|
),
|
|
16867
|
-
pcb_component_id:
|
|
16868
|
-
pcb_group_id:
|
|
16869
|
-
subcircuit_id:
|
|
16894
|
+
pcb_component_id: z102.string(),
|
|
16895
|
+
pcb_group_id: z102.string().optional(),
|
|
16896
|
+
subcircuit_id: z102.string().optional(),
|
|
16870
16897
|
layer: visible_layer,
|
|
16871
16898
|
from: point,
|
|
16872
16899
|
to: point,
|
|
16873
|
-
text:
|
|
16874
|
-
text_ccw_rotation:
|
|
16900
|
+
text: z102.string().optional(),
|
|
16901
|
+
text_ccw_rotation: z102.number().optional(),
|
|
16875
16902
|
offset: length.optional(),
|
|
16876
16903
|
offset_distance: length.optional(),
|
|
16877
|
-
offset_direction:
|
|
16878
|
-
x:
|
|
16879
|
-
y:
|
|
16904
|
+
offset_direction: z102.object({
|
|
16905
|
+
x: z102.number(),
|
|
16906
|
+
y: z102.number()
|
|
16880
16907
|
}).optional(),
|
|
16881
|
-
font:
|
|
16908
|
+
font: z102.literal("tscircuit2024").default("tscircuit2024"),
|
|
16882
16909
|
font_size: length.default("1mm"),
|
|
16883
|
-
color:
|
|
16910
|
+
color: z102.string().optional(),
|
|
16884
16911
|
arrow_size: length.default("1mm")
|
|
16885
16912
|
}).describe("Defines a measurement annotation within PCB fabrication notes");
|
|
16886
16913
|
expectTypesMatch(true);
|
|
16887
|
-
var pcb_note_text =
|
|
16888
|
-
type:
|
|
16914
|
+
var pcb_note_text = z103.object({
|
|
16915
|
+
type: z103.literal("pcb_note_text"),
|
|
16889
16916
|
pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
|
|
16890
|
-
pcb_component_id:
|
|
16891
|
-
pcb_group_id:
|
|
16892
|
-
subcircuit_id:
|
|
16893
|
-
name:
|
|
16894
|
-
font:
|
|
16917
|
+
pcb_component_id: z103.string().optional(),
|
|
16918
|
+
pcb_group_id: z103.string().optional(),
|
|
16919
|
+
subcircuit_id: z103.string().optional(),
|
|
16920
|
+
name: z103.string().optional(),
|
|
16921
|
+
font: z103.literal("tscircuit2024").default("tscircuit2024"),
|
|
16895
16922
|
font_size: distance.default("1mm"),
|
|
16896
|
-
text:
|
|
16923
|
+
text: z103.string().optional(),
|
|
16897
16924
|
anchor_position: point.default({ x: 0, y: 0 }),
|
|
16898
|
-
anchor_alignment:
|
|
16899
|
-
color:
|
|
16925
|
+
anchor_alignment: z103.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
16926
|
+
color: z103.string().optional()
|
|
16900
16927
|
}).describe("Defines a documentation note in text on the PCB");
|
|
16901
16928
|
expectTypesMatch(true);
|
|
16902
|
-
var pcb_note_rect =
|
|
16903
|
-
type:
|
|
16929
|
+
var pcb_note_rect = z104.object({
|
|
16930
|
+
type: z104.literal("pcb_note_rect"),
|
|
16904
16931
|
pcb_note_rect_id: getZodPrefixedIdWithDefault("pcb_note_rect"),
|
|
16905
|
-
pcb_component_id:
|
|
16906
|
-
pcb_group_id:
|
|
16907
|
-
subcircuit_id:
|
|
16908
|
-
name:
|
|
16909
|
-
text:
|
|
16932
|
+
pcb_component_id: z104.string().optional(),
|
|
16933
|
+
pcb_group_id: z104.string().optional(),
|
|
16934
|
+
subcircuit_id: z104.string().optional(),
|
|
16935
|
+
name: z104.string().optional(),
|
|
16936
|
+
text: z104.string().optional(),
|
|
16910
16937
|
center: point,
|
|
16911
16938
|
width: length,
|
|
16912
16939
|
height: length,
|
|
16913
16940
|
stroke_width: length.default("0.1mm"),
|
|
16914
16941
|
corner_radius: length.optional(),
|
|
16915
|
-
is_filled:
|
|
16916
|
-
has_stroke:
|
|
16917
|
-
is_stroke_dashed:
|
|
16918
|
-
color:
|
|
16942
|
+
is_filled: z104.boolean().optional(),
|
|
16943
|
+
has_stroke: z104.boolean().optional(),
|
|
16944
|
+
is_stroke_dashed: z104.boolean().optional(),
|
|
16945
|
+
color: z104.string().optional()
|
|
16919
16946
|
}).describe("Defines a rectangular documentation note on the PCB");
|
|
16920
16947
|
expectTypesMatch(true);
|
|
16921
|
-
var pcb_note_path =
|
|
16922
|
-
type:
|
|
16948
|
+
var pcb_note_path = z105.object({
|
|
16949
|
+
type: z105.literal("pcb_note_path"),
|
|
16923
16950
|
pcb_note_path_id: getZodPrefixedIdWithDefault("pcb_note_path"),
|
|
16924
|
-
pcb_component_id:
|
|
16925
|
-
pcb_group_id:
|
|
16926
|
-
subcircuit_id:
|
|
16927
|
-
name:
|
|
16928
|
-
text:
|
|
16929
|
-
route:
|
|
16951
|
+
pcb_component_id: z105.string().optional(),
|
|
16952
|
+
pcb_group_id: z105.string().optional(),
|
|
16953
|
+
subcircuit_id: z105.string().optional(),
|
|
16954
|
+
name: z105.string().optional(),
|
|
16955
|
+
text: z105.string().optional(),
|
|
16956
|
+
route: z105.array(point),
|
|
16930
16957
|
stroke_width: length.default("0.1mm"),
|
|
16931
|
-
color:
|
|
16958
|
+
color: z105.string().optional()
|
|
16932
16959
|
}).describe("Defines a polyline documentation note on the PCB");
|
|
16933
16960
|
expectTypesMatch(true);
|
|
16934
|
-
var pcb_note_line =
|
|
16935
|
-
type:
|
|
16961
|
+
var pcb_note_line = z106.object({
|
|
16962
|
+
type: z106.literal("pcb_note_line"),
|
|
16936
16963
|
pcb_note_line_id: getZodPrefixedIdWithDefault("pcb_note_line"),
|
|
16937
|
-
pcb_component_id:
|
|
16938
|
-
pcb_group_id:
|
|
16939
|
-
subcircuit_id:
|
|
16940
|
-
name:
|
|
16941
|
-
text:
|
|
16964
|
+
pcb_component_id: z106.string().optional(),
|
|
16965
|
+
pcb_group_id: z106.string().optional(),
|
|
16966
|
+
subcircuit_id: z106.string().optional(),
|
|
16967
|
+
name: z106.string().optional(),
|
|
16968
|
+
text: z106.string().optional(),
|
|
16942
16969
|
x1: distance,
|
|
16943
16970
|
y1: distance,
|
|
16944
16971
|
x2: distance,
|
|
16945
16972
|
y2: distance,
|
|
16946
16973
|
stroke_width: distance.default("0.1mm"),
|
|
16947
|
-
color:
|
|
16948
|
-
is_dashed:
|
|
16974
|
+
color: z106.string().optional(),
|
|
16975
|
+
is_dashed: z106.boolean().optional()
|
|
16949
16976
|
}).describe("Defines a straight documentation note line on the PCB");
|
|
16950
16977
|
expectTypesMatch(true);
|
|
16951
|
-
var pcb_note_dimension =
|
|
16952
|
-
type:
|
|
16978
|
+
var pcb_note_dimension = z107.object({
|
|
16979
|
+
type: z107.literal("pcb_note_dimension"),
|
|
16953
16980
|
pcb_note_dimension_id: getZodPrefixedIdWithDefault("pcb_note_dimension"),
|
|
16954
|
-
pcb_component_id:
|
|
16955
|
-
pcb_group_id:
|
|
16956
|
-
subcircuit_id:
|
|
16957
|
-
name:
|
|
16981
|
+
pcb_component_id: z107.string().optional(),
|
|
16982
|
+
pcb_group_id: z107.string().optional(),
|
|
16983
|
+
subcircuit_id: z107.string().optional(),
|
|
16984
|
+
name: z107.string().optional(),
|
|
16958
16985
|
from: point,
|
|
16959
16986
|
to: point,
|
|
16960
|
-
text:
|
|
16961
|
-
text_ccw_rotation:
|
|
16987
|
+
text: z107.string().optional(),
|
|
16988
|
+
text_ccw_rotation: z107.number().optional(),
|
|
16962
16989
|
offset_distance: length.optional(),
|
|
16963
|
-
offset_direction:
|
|
16964
|
-
x:
|
|
16965
|
-
y:
|
|
16990
|
+
offset_direction: z107.object({
|
|
16991
|
+
x: z107.number(),
|
|
16992
|
+
y: z107.number()
|
|
16966
16993
|
}).optional(),
|
|
16967
|
-
font:
|
|
16994
|
+
font: z107.literal("tscircuit2024").default("tscircuit2024"),
|
|
16968
16995
|
font_size: length.default("1mm"),
|
|
16969
|
-
color:
|
|
16996
|
+
color: z107.string().optional(),
|
|
16970
16997
|
arrow_size: length.default("1mm")
|
|
16971
16998
|
}).describe("Defines a measurement annotation within PCB documentation notes");
|
|
16972
16999
|
expectTypesMatch(true);
|
|
16973
|
-
var pcb_footprint_overlap_error =
|
|
16974
|
-
type:
|
|
17000
|
+
var pcb_footprint_overlap_error = z108.object({
|
|
17001
|
+
type: z108.literal("pcb_footprint_overlap_error"),
|
|
16975
17002
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
16976
|
-
error_type:
|
|
16977
|
-
message:
|
|
16978
|
-
pcb_smtpad_ids:
|
|
16979
|
-
pcb_plated_hole_ids:
|
|
16980
|
-
pcb_hole_ids:
|
|
16981
|
-
pcb_keepout_ids:
|
|
17003
|
+
error_type: z108.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
|
|
17004
|
+
message: z108.string(),
|
|
17005
|
+
pcb_smtpad_ids: z108.array(z108.string()).optional(),
|
|
17006
|
+
pcb_plated_hole_ids: z108.array(z108.string()).optional(),
|
|
17007
|
+
pcb_hole_ids: z108.array(z108.string()).optional(),
|
|
17008
|
+
pcb_keepout_ids: z108.array(z108.string()).optional()
|
|
16982
17009
|
}).describe("Error emitted when a pcb footprint overlaps with another element");
|
|
16983
17010
|
expectTypesMatch(
|
|
16984
17011
|
true
|
|
16985
17012
|
);
|
|
16986
|
-
var pcb_keepout =
|
|
16987
|
-
type:
|
|
16988
|
-
shape:
|
|
16989
|
-
pcb_group_id:
|
|
16990
|
-
subcircuit_id:
|
|
17013
|
+
var pcb_keepout = z109.object({
|
|
17014
|
+
type: z109.literal("pcb_keepout"),
|
|
17015
|
+
shape: z109.literal("rect"),
|
|
17016
|
+
pcb_group_id: z109.string().optional(),
|
|
17017
|
+
subcircuit_id: z109.string().optional(),
|
|
16991
17018
|
center: point,
|
|
16992
17019
|
width: distance,
|
|
16993
17020
|
height: distance,
|
|
16994
|
-
pcb_keepout_id:
|
|
16995
|
-
layers:
|
|
17021
|
+
pcb_keepout_id: z109.string(),
|
|
17022
|
+
layers: z109.array(z109.string()),
|
|
16996
17023
|
// Specify layers where the keepout applies
|
|
16997
|
-
description:
|
|
17024
|
+
description: z109.string().optional()
|
|
16998
17025
|
// Optional description of the keepout
|
|
16999
17026
|
}).or(
|
|
17000
|
-
|
|
17001
|
-
type:
|
|
17002
|
-
shape:
|
|
17003
|
-
pcb_group_id:
|
|
17004
|
-
subcircuit_id:
|
|
17027
|
+
z109.object({
|
|
17028
|
+
type: z109.literal("pcb_keepout"),
|
|
17029
|
+
shape: z109.literal("circle"),
|
|
17030
|
+
pcb_group_id: z109.string().optional(),
|
|
17031
|
+
subcircuit_id: z109.string().optional(),
|
|
17005
17032
|
center: point,
|
|
17006
17033
|
radius: distance,
|
|
17007
|
-
pcb_keepout_id:
|
|
17008
|
-
layers:
|
|
17034
|
+
pcb_keepout_id: z109.string(),
|
|
17035
|
+
layers: z109.array(z109.string()),
|
|
17009
17036
|
// Specify layers where the keepout applies
|
|
17010
|
-
description:
|
|
17037
|
+
description: z109.string().optional()
|
|
17011
17038
|
// Optional description of the keepout
|
|
17012
17039
|
})
|
|
17013
17040
|
);
|
|
17014
17041
|
expectTypesMatch(true);
|
|
17015
|
-
var pcb_cutout_base =
|
|
17016
|
-
type:
|
|
17042
|
+
var pcb_cutout_base = z110.object({
|
|
17043
|
+
type: z110.literal("pcb_cutout"),
|
|
17017
17044
|
pcb_cutout_id: getZodPrefixedIdWithDefault("pcb_cutout"),
|
|
17018
|
-
pcb_group_id:
|
|
17019
|
-
subcircuit_id:
|
|
17020
|
-
pcb_board_id:
|
|
17021
|
-
pcb_panel_id:
|
|
17045
|
+
pcb_group_id: z110.string().optional(),
|
|
17046
|
+
subcircuit_id: z110.string().optional(),
|
|
17047
|
+
pcb_board_id: z110.string().optional(),
|
|
17048
|
+
pcb_panel_id: z110.string().optional()
|
|
17022
17049
|
});
|
|
17023
17050
|
var pcb_cutout_rect = pcb_cutout_base.extend({
|
|
17024
|
-
shape:
|
|
17051
|
+
shape: z110.literal("rect"),
|
|
17025
17052
|
center: point,
|
|
17026
17053
|
width: length,
|
|
17027
17054
|
height: length,
|
|
@@ -17030,179 +17057,188 @@ var pcb_cutout_rect = pcb_cutout_base.extend({
|
|
|
17030
17057
|
});
|
|
17031
17058
|
expectTypesMatch(true);
|
|
17032
17059
|
var pcb_cutout_circle = pcb_cutout_base.extend({
|
|
17033
|
-
shape:
|
|
17060
|
+
shape: z110.literal("circle"),
|
|
17034
17061
|
center: point,
|
|
17035
17062
|
radius: length
|
|
17036
17063
|
});
|
|
17037
17064
|
expectTypesMatch(true);
|
|
17038
17065
|
var pcb_cutout_polygon = pcb_cutout_base.extend({
|
|
17039
|
-
shape:
|
|
17040
|
-
points:
|
|
17066
|
+
shape: z110.literal("polygon"),
|
|
17067
|
+
points: z110.array(point)
|
|
17041
17068
|
});
|
|
17042
17069
|
expectTypesMatch(true);
|
|
17043
17070
|
var pcb_cutout_path = pcb_cutout_base.extend({
|
|
17044
|
-
shape:
|
|
17045
|
-
route:
|
|
17071
|
+
shape: z110.literal("path"),
|
|
17072
|
+
route: z110.array(point),
|
|
17046
17073
|
slot_width: length,
|
|
17047
17074
|
slot_length: length.optional(),
|
|
17048
17075
|
space_between_slots: length.optional(),
|
|
17049
17076
|
slot_corner_radius: length.optional()
|
|
17050
17077
|
});
|
|
17051
17078
|
expectTypesMatch(true);
|
|
17052
|
-
var pcb_cutout =
|
|
17079
|
+
var pcb_cutout = z110.discriminatedUnion("shape", [
|
|
17053
17080
|
pcb_cutout_rect,
|
|
17054
17081
|
pcb_cutout_circle,
|
|
17055
17082
|
pcb_cutout_polygon,
|
|
17056
17083
|
pcb_cutout_path
|
|
17057
17084
|
]).describe("Defines a cutout on the PCB, removing board material.");
|
|
17058
17085
|
expectTypesMatch(true);
|
|
17059
|
-
var pcb_missing_footprint_error =
|
|
17060
|
-
type:
|
|
17086
|
+
var pcb_missing_footprint_error = z111.object({
|
|
17087
|
+
type: z111.literal("pcb_missing_footprint_error"),
|
|
17061
17088
|
pcb_missing_footprint_error_id: getZodPrefixedIdWithDefault(
|
|
17062
17089
|
"pcb_missing_footprint_error"
|
|
17063
17090
|
),
|
|
17064
|
-
pcb_group_id:
|
|
17065
|
-
subcircuit_id:
|
|
17066
|
-
error_type:
|
|
17067
|
-
source_component_id:
|
|
17068
|
-
message:
|
|
17091
|
+
pcb_group_id: z111.string().optional(),
|
|
17092
|
+
subcircuit_id: z111.string().optional(),
|
|
17093
|
+
error_type: z111.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
|
|
17094
|
+
source_component_id: z111.string(),
|
|
17095
|
+
message: z111.string()
|
|
17069
17096
|
}).describe("Defines a missing footprint error on the PCB");
|
|
17070
17097
|
expectTypesMatch(
|
|
17071
17098
|
true
|
|
17072
17099
|
);
|
|
17073
|
-
var external_footprint_load_error =
|
|
17074
|
-
type:
|
|
17100
|
+
var external_footprint_load_error = z112.object({
|
|
17101
|
+
type: z112.literal("external_footprint_load_error"),
|
|
17075
17102
|
external_footprint_load_error_id: getZodPrefixedIdWithDefault(
|
|
17076
17103
|
"external_footprint_load_error"
|
|
17077
17104
|
),
|
|
17078
|
-
pcb_component_id:
|
|
17079
|
-
source_component_id:
|
|
17080
|
-
pcb_group_id:
|
|
17081
|
-
subcircuit_id:
|
|
17082
|
-
footprinter_string:
|
|
17083
|
-
error_type:
|
|
17084
|
-
message:
|
|
17105
|
+
pcb_component_id: z112.string(),
|
|
17106
|
+
source_component_id: z112.string(),
|
|
17107
|
+
pcb_group_id: z112.string().optional(),
|
|
17108
|
+
subcircuit_id: z112.string().optional(),
|
|
17109
|
+
footprinter_string: z112.string().optional(),
|
|
17110
|
+
error_type: z112.literal("external_footprint_load_error").default("external_footprint_load_error"),
|
|
17111
|
+
message: z112.string()
|
|
17085
17112
|
}).describe("Defines an error when an external footprint fails to load");
|
|
17086
17113
|
expectTypesMatch(true);
|
|
17087
|
-
var circuit_json_footprint_load_error =
|
|
17088
|
-
type:
|
|
17114
|
+
var circuit_json_footprint_load_error = z113.object({
|
|
17115
|
+
type: z113.literal("circuit_json_footprint_load_error"),
|
|
17089
17116
|
circuit_json_footprint_load_error_id: getZodPrefixedIdWithDefault(
|
|
17090
17117
|
"circuit_json_footprint_load_error"
|
|
17091
17118
|
),
|
|
17092
|
-
pcb_component_id:
|
|
17093
|
-
source_component_id:
|
|
17094
|
-
pcb_group_id:
|
|
17095
|
-
subcircuit_id:
|
|
17096
|
-
error_type:
|
|
17097
|
-
message:
|
|
17098
|
-
circuit_json:
|
|
17119
|
+
pcb_component_id: z113.string(),
|
|
17120
|
+
source_component_id: z113.string(),
|
|
17121
|
+
pcb_group_id: z113.string().optional(),
|
|
17122
|
+
subcircuit_id: z113.string().optional(),
|
|
17123
|
+
error_type: z113.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
|
|
17124
|
+
message: z113.string(),
|
|
17125
|
+
circuit_json: z113.array(z113.any()).optional()
|
|
17099
17126
|
}).describe("Defines an error when a circuit JSON footprint fails to load");
|
|
17100
17127
|
expectTypesMatch(true);
|
|
17101
|
-
var pcb_group =
|
|
17102
|
-
type:
|
|
17128
|
+
var pcb_group = z114.object({
|
|
17129
|
+
type: z114.literal("pcb_group"),
|
|
17103
17130
|
pcb_group_id: getZodPrefixedIdWithDefault("pcb_group"),
|
|
17104
|
-
source_group_id:
|
|
17105
|
-
is_subcircuit:
|
|
17106
|
-
subcircuit_id:
|
|
17131
|
+
source_group_id: z114.string(),
|
|
17132
|
+
is_subcircuit: z114.boolean().optional(),
|
|
17133
|
+
subcircuit_id: z114.string().optional(),
|
|
17107
17134
|
width: length.optional(),
|
|
17108
17135
|
height: length.optional(),
|
|
17109
17136
|
center: point,
|
|
17110
|
-
|
|
17137
|
+
display_offset_x: z114.string().optional().describe(
|
|
17138
|
+
"How to display the x offset for this group, usually corresponding with how the user specified it"
|
|
17139
|
+
),
|
|
17140
|
+
display_offset_y: z114.string().optional().describe(
|
|
17141
|
+
"How to display the y offset for this group, usually corresponding with how the user specified it"
|
|
17142
|
+
),
|
|
17143
|
+
outline: z114.array(point).optional(),
|
|
17111
17144
|
anchor_position: point.optional(),
|
|
17112
|
-
anchor_alignment:
|
|
17113
|
-
|
|
17114
|
-
|
|
17115
|
-
|
|
17116
|
-
|
|
17117
|
-
|
|
17118
|
-
|
|
17145
|
+
anchor_alignment: ninePointAnchor.default("center"),
|
|
17146
|
+
position_mode: z114.enum(["packed", "relative_to_group_anchor", "none"]).optional(),
|
|
17147
|
+
positioned_relative_to_pcb_group_id: z114.string().optional(),
|
|
17148
|
+
positioned_relative_to_pcb_board_id: z114.string().optional(),
|
|
17149
|
+
pcb_component_ids: z114.array(z114.string()),
|
|
17150
|
+
child_layout_mode: z114.enum(["packed", "none"]).optional(),
|
|
17151
|
+
name: z114.string().optional(),
|
|
17152
|
+
description: z114.string().optional(),
|
|
17153
|
+
layout_mode: z114.string().optional(),
|
|
17154
|
+
autorouter_configuration: z114.object({
|
|
17119
17155
|
trace_clearance: length
|
|
17120
17156
|
}).optional(),
|
|
17121
|
-
autorouter_used_string:
|
|
17157
|
+
autorouter_used_string: z114.string().optional()
|
|
17122
17158
|
}).describe("Defines a group of components on the PCB");
|
|
17123
17159
|
expectTypesMatch(true);
|
|
17124
|
-
var pcb_autorouting_error =
|
|
17125
|
-
type:
|
|
17160
|
+
var pcb_autorouting_error = z115.object({
|
|
17161
|
+
type: z115.literal("pcb_autorouting_error"),
|
|
17126
17162
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_autorouting_error"),
|
|
17127
|
-
error_type:
|
|
17128
|
-
message:
|
|
17129
|
-
subcircuit_id:
|
|
17163
|
+
error_type: z115.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
|
|
17164
|
+
message: z115.string(),
|
|
17165
|
+
subcircuit_id: z115.string().optional()
|
|
17130
17166
|
}).describe("The autorouting has failed to route a portion of the board");
|
|
17131
17167
|
expectTypesMatch(true);
|
|
17132
|
-
var pcb_manual_edit_conflict_warning =
|
|
17133
|
-
type:
|
|
17168
|
+
var pcb_manual_edit_conflict_warning = z116.object({
|
|
17169
|
+
type: z116.literal("pcb_manual_edit_conflict_warning"),
|
|
17134
17170
|
pcb_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
|
|
17135
17171
|
"pcb_manual_edit_conflict_warning"
|
|
17136
17172
|
),
|
|
17137
|
-
warning_type:
|
|
17138
|
-
message:
|
|
17139
|
-
pcb_component_id:
|
|
17140
|
-
pcb_group_id:
|
|
17141
|
-
subcircuit_id:
|
|
17142
|
-
source_component_id:
|
|
17173
|
+
warning_type: z116.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
|
|
17174
|
+
message: z116.string(),
|
|
17175
|
+
pcb_component_id: z116.string(),
|
|
17176
|
+
pcb_group_id: z116.string().optional(),
|
|
17177
|
+
subcircuit_id: z116.string().optional(),
|
|
17178
|
+
source_component_id: z116.string()
|
|
17143
17179
|
}).describe(
|
|
17144
17180
|
"Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"
|
|
17145
17181
|
);
|
|
17146
17182
|
expectTypesMatch(true);
|
|
17147
|
-
var pcb_breakout_point =
|
|
17148
|
-
type:
|
|
17183
|
+
var pcb_breakout_point = z117.object({
|
|
17184
|
+
type: z117.literal("pcb_breakout_point"),
|
|
17149
17185
|
pcb_breakout_point_id: getZodPrefixedIdWithDefault("pcb_breakout_point"),
|
|
17150
|
-
pcb_group_id:
|
|
17151
|
-
subcircuit_id:
|
|
17152
|
-
source_trace_id:
|
|
17153
|
-
source_port_id:
|
|
17154
|
-
source_net_id:
|
|
17186
|
+
pcb_group_id: z117.string(),
|
|
17187
|
+
subcircuit_id: z117.string().optional(),
|
|
17188
|
+
source_trace_id: z117.string().optional(),
|
|
17189
|
+
source_port_id: z117.string().optional(),
|
|
17190
|
+
source_net_id: z117.string().optional(),
|
|
17155
17191
|
x: distance,
|
|
17156
17192
|
y: distance
|
|
17157
17193
|
}).describe(
|
|
17158
17194
|
"Defines a routing target within a pcb_group for a source_trace or source_net"
|
|
17159
17195
|
);
|
|
17160
17196
|
expectTypesMatch(true);
|
|
17161
|
-
var pcb_ground_plane =
|
|
17162
|
-
type:
|
|
17197
|
+
var pcb_ground_plane = z118.object({
|
|
17198
|
+
type: z118.literal("pcb_ground_plane"),
|
|
17163
17199
|
pcb_ground_plane_id: getZodPrefixedIdWithDefault("pcb_ground_plane"),
|
|
17164
|
-
source_pcb_ground_plane_id:
|
|
17165
|
-
source_net_id:
|
|
17166
|
-
pcb_group_id:
|
|
17167
|
-
subcircuit_id:
|
|
17200
|
+
source_pcb_ground_plane_id: z118.string(),
|
|
17201
|
+
source_net_id: z118.string(),
|
|
17202
|
+
pcb_group_id: z118.string().optional(),
|
|
17203
|
+
subcircuit_id: z118.string().optional()
|
|
17168
17204
|
}).describe("Defines a ground plane on the PCB");
|
|
17169
17205
|
expectTypesMatch(true);
|
|
17170
|
-
var pcb_ground_plane_region =
|
|
17171
|
-
type:
|
|
17206
|
+
var pcb_ground_plane_region = z119.object({
|
|
17207
|
+
type: z119.literal("pcb_ground_plane_region"),
|
|
17172
17208
|
pcb_ground_plane_region_id: getZodPrefixedIdWithDefault(
|
|
17173
17209
|
"pcb_ground_plane_region"
|
|
17174
17210
|
),
|
|
17175
|
-
pcb_ground_plane_id:
|
|
17176
|
-
pcb_group_id:
|
|
17177
|
-
subcircuit_id:
|
|
17211
|
+
pcb_ground_plane_id: z119.string(),
|
|
17212
|
+
pcb_group_id: z119.string().optional(),
|
|
17213
|
+
subcircuit_id: z119.string().optional(),
|
|
17178
17214
|
layer: layer_ref,
|
|
17179
|
-
points:
|
|
17215
|
+
points: z119.array(point)
|
|
17180
17216
|
}).describe("Defines a polygon region of a ground plane");
|
|
17181
17217
|
expectTypesMatch(true);
|
|
17182
|
-
var pcb_thermal_spoke =
|
|
17183
|
-
type:
|
|
17218
|
+
var pcb_thermal_spoke = z120.object({
|
|
17219
|
+
type: z120.literal("pcb_thermal_spoke"),
|
|
17184
17220
|
pcb_thermal_spoke_id: getZodPrefixedIdWithDefault("pcb_thermal_spoke"),
|
|
17185
|
-
pcb_ground_plane_id:
|
|
17186
|
-
shape:
|
|
17187
|
-
spoke_count:
|
|
17221
|
+
pcb_ground_plane_id: z120.string(),
|
|
17222
|
+
shape: z120.string(),
|
|
17223
|
+
spoke_count: z120.number(),
|
|
17188
17224
|
spoke_thickness: distance,
|
|
17189
17225
|
spoke_inner_diameter: distance,
|
|
17190
17226
|
spoke_outer_diameter: distance,
|
|
17191
|
-
pcb_plated_hole_id:
|
|
17192
|
-
subcircuit_id:
|
|
17227
|
+
pcb_plated_hole_id: z120.string().optional(),
|
|
17228
|
+
subcircuit_id: z120.string().optional()
|
|
17193
17229
|
}).describe("Pattern for connecting a ground plane to a plated hole");
|
|
17194
17230
|
expectTypesMatch(true);
|
|
17195
|
-
var pcb_copper_pour_base =
|
|
17196
|
-
type:
|
|
17231
|
+
var pcb_copper_pour_base = z121.object({
|
|
17232
|
+
type: z121.literal("pcb_copper_pour"),
|
|
17197
17233
|
pcb_copper_pour_id: getZodPrefixedIdWithDefault("pcb_copper_pour"),
|
|
17198
|
-
pcb_group_id:
|
|
17199
|
-
subcircuit_id:
|
|
17234
|
+
pcb_group_id: z121.string().optional(),
|
|
17235
|
+
subcircuit_id: z121.string().optional(),
|
|
17200
17236
|
layer: layer_ref,
|
|
17201
|
-
source_net_id:
|
|
17202
|
-
covered_with_solder_mask:
|
|
17237
|
+
source_net_id: z121.string().optional(),
|
|
17238
|
+
covered_with_solder_mask: z121.boolean().optional().default(true)
|
|
17203
17239
|
});
|
|
17204
17240
|
var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
|
|
17205
|
-
shape:
|
|
17241
|
+
shape: z121.literal("rect"),
|
|
17206
17242
|
center: point,
|
|
17207
17243
|
width: length,
|
|
17208
17244
|
height: length,
|
|
@@ -17210,141 +17246,141 @@ var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
|
|
|
17210
17246
|
});
|
|
17211
17247
|
expectTypesMatch(true);
|
|
17212
17248
|
var pcb_copper_pour_brep = pcb_copper_pour_base.extend({
|
|
17213
|
-
shape:
|
|
17249
|
+
shape: z121.literal("brep"),
|
|
17214
17250
|
brep_shape
|
|
17215
17251
|
});
|
|
17216
17252
|
expectTypesMatch(true);
|
|
17217
17253
|
var pcb_copper_pour_polygon = pcb_copper_pour_base.extend({
|
|
17218
|
-
shape:
|
|
17219
|
-
points:
|
|
17254
|
+
shape: z121.literal("polygon"),
|
|
17255
|
+
points: z121.array(point)
|
|
17220
17256
|
});
|
|
17221
17257
|
expectTypesMatch(true);
|
|
17222
|
-
var pcb_copper_pour =
|
|
17258
|
+
var pcb_copper_pour = z121.discriminatedUnion("shape", [
|
|
17223
17259
|
pcb_copper_pour_rect,
|
|
17224
17260
|
pcb_copper_pour_brep,
|
|
17225
17261
|
pcb_copper_pour_polygon
|
|
17226
17262
|
]).describe("Defines a copper pour on the PCB.");
|
|
17227
17263
|
expectTypesMatch(true);
|
|
17228
|
-
var pcb_component_outside_board_error =
|
|
17229
|
-
type:
|
|
17264
|
+
var pcb_component_outside_board_error = z122.object({
|
|
17265
|
+
type: z122.literal("pcb_component_outside_board_error"),
|
|
17230
17266
|
pcb_component_outside_board_error_id: getZodPrefixedIdWithDefault(
|
|
17231
17267
|
"pcb_component_outside_board_error"
|
|
17232
17268
|
),
|
|
17233
|
-
error_type:
|
|
17234
|
-
message:
|
|
17235
|
-
pcb_component_id:
|
|
17236
|
-
pcb_board_id:
|
|
17269
|
+
error_type: z122.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
|
|
17270
|
+
message: z122.string(),
|
|
17271
|
+
pcb_component_id: z122.string(),
|
|
17272
|
+
pcb_board_id: z122.string(),
|
|
17237
17273
|
component_center: point,
|
|
17238
|
-
component_bounds:
|
|
17239
|
-
min_x:
|
|
17240
|
-
max_x:
|
|
17241
|
-
min_y:
|
|
17242
|
-
max_y:
|
|
17274
|
+
component_bounds: z122.object({
|
|
17275
|
+
min_x: z122.number(),
|
|
17276
|
+
max_x: z122.number(),
|
|
17277
|
+
min_y: z122.number(),
|
|
17278
|
+
max_y: z122.number()
|
|
17243
17279
|
}),
|
|
17244
|
-
subcircuit_id:
|
|
17245
|
-
source_component_id:
|
|
17280
|
+
subcircuit_id: z122.string().optional(),
|
|
17281
|
+
source_component_id: z122.string().optional()
|
|
17246
17282
|
}).describe(
|
|
17247
17283
|
"Error emitted when a PCB component is placed outside the board boundaries"
|
|
17248
17284
|
);
|
|
17249
17285
|
expectTypesMatch(true);
|
|
17250
|
-
var pcb_component_invalid_layer_error =
|
|
17251
|
-
type:
|
|
17286
|
+
var pcb_component_invalid_layer_error = z123.object({
|
|
17287
|
+
type: z123.literal("pcb_component_invalid_layer_error"),
|
|
17252
17288
|
pcb_component_invalid_layer_error_id: getZodPrefixedIdWithDefault(
|
|
17253
17289
|
"pcb_component_invalid_layer_error"
|
|
17254
17290
|
),
|
|
17255
|
-
error_type:
|
|
17256
|
-
message:
|
|
17257
|
-
pcb_component_id:
|
|
17258
|
-
source_component_id:
|
|
17291
|
+
error_type: z123.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),
|
|
17292
|
+
message: z123.string(),
|
|
17293
|
+
pcb_component_id: z123.string().optional(),
|
|
17294
|
+
source_component_id: z123.string(),
|
|
17259
17295
|
layer: layer_ref,
|
|
17260
|
-
subcircuit_id:
|
|
17296
|
+
subcircuit_id: z123.string().optional()
|
|
17261
17297
|
}).describe(
|
|
17262
17298
|
"Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)"
|
|
17263
17299
|
);
|
|
17264
17300
|
expectTypesMatch(true);
|
|
17265
|
-
var pcb_via_clearance_error =
|
|
17266
|
-
type:
|
|
17301
|
+
var pcb_via_clearance_error = z124.object({
|
|
17302
|
+
type: z124.literal("pcb_via_clearance_error"),
|
|
17267
17303
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
17268
|
-
error_type:
|
|
17269
|
-
message:
|
|
17270
|
-
pcb_via_ids:
|
|
17304
|
+
error_type: z124.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
|
|
17305
|
+
message: z124.string(),
|
|
17306
|
+
pcb_via_ids: z124.array(z124.string()).min(2),
|
|
17271
17307
|
minimum_clearance: distance.optional(),
|
|
17272
17308
|
actual_clearance: distance.optional(),
|
|
17273
|
-
pcb_center:
|
|
17274
|
-
x:
|
|
17275
|
-
y:
|
|
17309
|
+
pcb_center: z124.object({
|
|
17310
|
+
x: z124.number().optional(),
|
|
17311
|
+
y: z124.number().optional()
|
|
17276
17312
|
}).optional(),
|
|
17277
|
-
subcircuit_id:
|
|
17313
|
+
subcircuit_id: z124.string().optional()
|
|
17278
17314
|
}).describe("Error emitted when vias are closer than the allowed clearance");
|
|
17279
17315
|
expectTypesMatch(true);
|
|
17280
|
-
var pcb_courtyard_rect =
|
|
17281
|
-
type:
|
|
17316
|
+
var pcb_courtyard_rect = z125.object({
|
|
17317
|
+
type: z125.literal("pcb_courtyard_rect"),
|
|
17282
17318
|
pcb_courtyard_rect_id: getZodPrefixedIdWithDefault("pcb_courtyard_rect"),
|
|
17283
|
-
pcb_component_id:
|
|
17284
|
-
pcb_group_id:
|
|
17285
|
-
subcircuit_id:
|
|
17319
|
+
pcb_component_id: z125.string(),
|
|
17320
|
+
pcb_group_id: z125.string().optional(),
|
|
17321
|
+
subcircuit_id: z125.string().optional(),
|
|
17286
17322
|
center: point,
|
|
17287
17323
|
width: length,
|
|
17288
17324
|
height: length,
|
|
17289
17325
|
layer: visible_layer,
|
|
17290
|
-
color:
|
|
17326
|
+
color: z125.string().optional()
|
|
17291
17327
|
}).describe("Defines a courtyard rectangle on the PCB");
|
|
17292
17328
|
expectTypesMatch(true);
|
|
17293
|
-
var pcb_courtyard_outline =
|
|
17294
|
-
type:
|
|
17329
|
+
var pcb_courtyard_outline = z126.object({
|
|
17330
|
+
type: z126.literal("pcb_courtyard_outline"),
|
|
17295
17331
|
pcb_courtyard_outline_id: getZodPrefixedIdWithDefault(
|
|
17296
17332
|
"pcb_courtyard_outline"
|
|
17297
17333
|
),
|
|
17298
|
-
pcb_component_id:
|
|
17299
|
-
pcb_group_id:
|
|
17300
|
-
subcircuit_id:
|
|
17334
|
+
pcb_component_id: z126.string(),
|
|
17335
|
+
pcb_group_id: z126.string().optional(),
|
|
17336
|
+
subcircuit_id: z126.string().optional(),
|
|
17301
17337
|
layer: visible_layer,
|
|
17302
|
-
outline:
|
|
17338
|
+
outline: z126.array(point).min(2),
|
|
17303
17339
|
stroke_width: length.default("0.1mm"),
|
|
17304
|
-
is_closed:
|
|
17305
|
-
is_stroke_dashed:
|
|
17306
|
-
color:
|
|
17340
|
+
is_closed: z126.boolean().optional(),
|
|
17341
|
+
is_stroke_dashed: z126.boolean().optional(),
|
|
17342
|
+
color: z126.string().optional()
|
|
17307
17343
|
}).describe("Defines a courtyard outline on the PCB");
|
|
17308
17344
|
expectTypesMatch(true);
|
|
17309
|
-
var pcb_courtyard_polygon =
|
|
17310
|
-
type:
|
|
17345
|
+
var pcb_courtyard_polygon = z127.object({
|
|
17346
|
+
type: z127.literal("pcb_courtyard_polygon"),
|
|
17311
17347
|
pcb_courtyard_polygon_id: getZodPrefixedIdWithDefault(
|
|
17312
17348
|
"pcb_courtyard_polygon"
|
|
17313
17349
|
),
|
|
17314
|
-
pcb_component_id:
|
|
17315
|
-
pcb_group_id:
|
|
17316
|
-
subcircuit_id:
|
|
17350
|
+
pcb_component_id: z127.string(),
|
|
17351
|
+
pcb_group_id: z127.string().optional(),
|
|
17352
|
+
subcircuit_id: z127.string().optional(),
|
|
17317
17353
|
layer: visible_layer,
|
|
17318
|
-
points:
|
|
17319
|
-
color:
|
|
17354
|
+
points: z127.array(point).min(3),
|
|
17355
|
+
color: z127.string().optional()
|
|
17320
17356
|
}).describe("Defines a courtyard polygon on the PCB");
|
|
17321
17357
|
expectTypesMatch(true);
|
|
17322
|
-
var cad_component =
|
|
17323
|
-
type:
|
|
17324
|
-
cad_component_id:
|
|
17325
|
-
pcb_component_id:
|
|
17326
|
-
source_component_id:
|
|
17358
|
+
var cad_component = z128.object({
|
|
17359
|
+
type: z128.literal("cad_component"),
|
|
17360
|
+
cad_component_id: z128.string(),
|
|
17361
|
+
pcb_component_id: z128.string(),
|
|
17362
|
+
source_component_id: z128.string(),
|
|
17327
17363
|
position: point3,
|
|
17328
17364
|
rotation: point3.optional(),
|
|
17329
17365
|
size: point3.optional(),
|
|
17330
17366
|
layer: layer_ref.optional(),
|
|
17331
|
-
subcircuit_id:
|
|
17367
|
+
subcircuit_id: z128.string().optional(),
|
|
17332
17368
|
// These are all ways to generate/load the 3d model
|
|
17333
|
-
footprinter_string:
|
|
17334
|
-
model_obj_url:
|
|
17335
|
-
model_stl_url:
|
|
17336
|
-
model_3mf_url:
|
|
17337
|
-
model_gltf_url:
|
|
17338
|
-
model_glb_url:
|
|
17339
|
-
model_step_url:
|
|
17340
|
-
model_wrl_url:
|
|
17341
|
-
model_unit_to_mm_scale_factor:
|
|
17342
|
-
model_jscad:
|
|
17343
|
-
show_as_translucent_model:
|
|
17369
|
+
footprinter_string: z128.string().optional(),
|
|
17370
|
+
model_obj_url: z128.string().optional(),
|
|
17371
|
+
model_stl_url: z128.string().optional(),
|
|
17372
|
+
model_3mf_url: z128.string().optional(),
|
|
17373
|
+
model_gltf_url: z128.string().optional(),
|
|
17374
|
+
model_glb_url: z128.string().optional(),
|
|
17375
|
+
model_step_url: z128.string().optional(),
|
|
17376
|
+
model_wrl_url: z128.string().optional(),
|
|
17377
|
+
model_unit_to_mm_scale_factor: z128.number().optional(),
|
|
17378
|
+
model_jscad: z128.any().optional(),
|
|
17379
|
+
show_as_translucent_model: z128.boolean().optional()
|
|
17344
17380
|
}).describe("Defines a component on the PCB");
|
|
17345
17381
|
expectTypesMatch(true);
|
|
17346
|
-
var wave_shape =
|
|
17347
|
-
var percentage =
|
|
17382
|
+
var wave_shape = z129.enum(["sinewave", "square", "triangle", "sawtooth"]);
|
|
17383
|
+
var percentage = z129.union([z129.string(), z129.number()]).transform((val) => {
|
|
17348
17384
|
if (typeof val === "string") {
|
|
17349
17385
|
if (val.endsWith("%")) {
|
|
17350
17386
|
return parseFloat(val.slice(0, -1)) / 100;
|
|
@@ -17353,30 +17389,30 @@ var percentage = z126.union([z126.string(), z126.number()]).transform((val) => {
|
|
|
17353
17389
|
}
|
|
17354
17390
|
return val;
|
|
17355
17391
|
}).pipe(
|
|
17356
|
-
|
|
17392
|
+
z129.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
|
|
17357
17393
|
);
|
|
17358
|
-
var simulation_dc_voltage_source =
|
|
17359
|
-
type:
|
|
17394
|
+
var simulation_dc_voltage_source = z129.object({
|
|
17395
|
+
type: z129.literal("simulation_voltage_source"),
|
|
17360
17396
|
simulation_voltage_source_id: getZodPrefixedIdWithDefault(
|
|
17361
17397
|
"simulation_voltage_source"
|
|
17362
17398
|
),
|
|
17363
|
-
is_dc_source:
|
|
17364
|
-
positive_source_port_id:
|
|
17365
|
-
negative_source_port_id:
|
|
17366
|
-
positive_source_net_id:
|
|
17367
|
-
negative_source_net_id:
|
|
17399
|
+
is_dc_source: z129.literal(true).optional().default(true),
|
|
17400
|
+
positive_source_port_id: z129.string().optional(),
|
|
17401
|
+
negative_source_port_id: z129.string().optional(),
|
|
17402
|
+
positive_source_net_id: z129.string().optional(),
|
|
17403
|
+
negative_source_net_id: z129.string().optional(),
|
|
17368
17404
|
voltage
|
|
17369
17405
|
}).describe("Defines a DC voltage source for simulation");
|
|
17370
|
-
var simulation_ac_voltage_source =
|
|
17371
|
-
type:
|
|
17406
|
+
var simulation_ac_voltage_source = z129.object({
|
|
17407
|
+
type: z129.literal("simulation_voltage_source"),
|
|
17372
17408
|
simulation_voltage_source_id: getZodPrefixedIdWithDefault(
|
|
17373
17409
|
"simulation_voltage_source"
|
|
17374
17410
|
),
|
|
17375
|
-
is_dc_source:
|
|
17376
|
-
terminal1_source_port_id:
|
|
17377
|
-
terminal2_source_port_id:
|
|
17378
|
-
terminal1_source_net_id:
|
|
17379
|
-
terminal2_source_net_id:
|
|
17411
|
+
is_dc_source: z129.literal(false),
|
|
17412
|
+
terminal1_source_port_id: z129.string().optional(),
|
|
17413
|
+
terminal2_source_port_id: z129.string().optional(),
|
|
17414
|
+
terminal1_source_net_id: z129.string().optional(),
|
|
17415
|
+
terminal2_source_net_id: z129.string().optional(),
|
|
17380
17416
|
voltage: voltage.optional(),
|
|
17381
17417
|
frequency: frequency.optional(),
|
|
17382
17418
|
peak_to_peak_voltage: voltage.optional(),
|
|
@@ -17384,68 +17420,68 @@ var simulation_ac_voltage_source = z126.object({
|
|
|
17384
17420
|
phase: rotation.optional(),
|
|
17385
17421
|
duty_cycle: percentage.optional()
|
|
17386
17422
|
}).describe("Defines an AC voltage source for simulation");
|
|
17387
|
-
var simulation_voltage_source =
|
|
17423
|
+
var simulation_voltage_source = z129.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
|
|
17388
17424
|
expectTypesMatch(true);
|
|
17389
17425
|
expectTypesMatch(true);
|
|
17390
17426
|
expectTypesMatch(true);
|
|
17391
|
-
var experiment_type =
|
|
17392
|
-
|
|
17393
|
-
|
|
17394
|
-
|
|
17395
|
-
|
|
17427
|
+
var experiment_type = z130.union([
|
|
17428
|
+
z130.literal("spice_dc_sweep"),
|
|
17429
|
+
z130.literal("spice_dc_operating_point"),
|
|
17430
|
+
z130.literal("spice_transient_analysis"),
|
|
17431
|
+
z130.literal("spice_ac_analysis")
|
|
17396
17432
|
]);
|
|
17397
|
-
var simulation_experiment =
|
|
17398
|
-
type:
|
|
17433
|
+
var simulation_experiment = z130.object({
|
|
17434
|
+
type: z130.literal("simulation_experiment"),
|
|
17399
17435
|
simulation_experiment_id: getZodPrefixedIdWithDefault(
|
|
17400
17436
|
"simulation_experiment"
|
|
17401
17437
|
),
|
|
17402
|
-
name:
|
|
17438
|
+
name: z130.string(),
|
|
17403
17439
|
experiment_type,
|
|
17404
17440
|
time_per_step: duration_ms.optional(),
|
|
17405
17441
|
start_time_ms: ms.optional(),
|
|
17406
17442
|
end_time_ms: ms.optional()
|
|
17407
17443
|
}).describe("Defines a simulation experiment configuration");
|
|
17408
17444
|
expectTypesMatch(true);
|
|
17409
|
-
var simulation_transient_voltage_graph =
|
|
17410
|
-
type:
|
|
17445
|
+
var simulation_transient_voltage_graph = z131.object({
|
|
17446
|
+
type: z131.literal("simulation_transient_voltage_graph"),
|
|
17411
17447
|
simulation_transient_voltage_graph_id: getZodPrefixedIdWithDefault(
|
|
17412
17448
|
"simulation_transient_voltage_graph"
|
|
17413
17449
|
),
|
|
17414
|
-
simulation_experiment_id:
|
|
17415
|
-
timestamps_ms:
|
|
17416
|
-
voltage_levels:
|
|
17417
|
-
source_component_id:
|
|
17418
|
-
subcircuit_connectivity_map_key:
|
|
17450
|
+
simulation_experiment_id: z131.string(),
|
|
17451
|
+
timestamps_ms: z131.array(z131.number()).optional(),
|
|
17452
|
+
voltage_levels: z131.array(z131.number()),
|
|
17453
|
+
source_component_id: z131.string().optional(),
|
|
17454
|
+
subcircuit_connectivity_map_key: z131.string().optional(),
|
|
17419
17455
|
time_per_step: duration_ms,
|
|
17420
17456
|
start_time_ms: ms,
|
|
17421
17457
|
end_time_ms: ms,
|
|
17422
|
-
name:
|
|
17423
|
-
color:
|
|
17458
|
+
name: z131.string().optional(),
|
|
17459
|
+
color: z131.string().optional()
|
|
17424
17460
|
}).describe("Stores voltage measurements over time for a simulation");
|
|
17425
17461
|
expectTypesMatch(true);
|
|
17426
|
-
var simulation_switch =
|
|
17427
|
-
type:
|
|
17462
|
+
var simulation_switch = z132.object({
|
|
17463
|
+
type: z132.literal("simulation_switch"),
|
|
17428
17464
|
simulation_switch_id: getZodPrefixedIdWithDefault("simulation_switch"),
|
|
17429
|
-
source_component_id:
|
|
17465
|
+
source_component_id: z132.string().optional(),
|
|
17430
17466
|
closes_at: ms.optional(),
|
|
17431
17467
|
opens_at: ms.optional(),
|
|
17432
|
-
starts_closed:
|
|
17468
|
+
starts_closed: z132.boolean().optional(),
|
|
17433
17469
|
switching_frequency: frequency.optional()
|
|
17434
17470
|
}).describe("Defines a switch for simulation timing control");
|
|
17435
17471
|
expectTypesMatch(true);
|
|
17436
|
-
var simulation_voltage_probe =
|
|
17437
|
-
type:
|
|
17472
|
+
var simulation_voltage_probe = z133.object({
|
|
17473
|
+
type: z133.literal("simulation_voltage_probe"),
|
|
17438
17474
|
simulation_voltage_probe_id: getZodPrefixedIdWithDefault(
|
|
17439
17475
|
"simulation_voltage_probe"
|
|
17440
17476
|
),
|
|
17441
|
-
source_component_id:
|
|
17442
|
-
name:
|
|
17443
|
-
signal_input_source_port_id:
|
|
17444
|
-
signal_input_source_net_id:
|
|
17445
|
-
reference_input_source_port_id:
|
|
17446
|
-
reference_input_source_net_id:
|
|
17447
|
-
subcircuit_id:
|
|
17448
|
-
color:
|
|
17477
|
+
source_component_id: z133.string().optional(),
|
|
17478
|
+
name: z133.string().optional(),
|
|
17479
|
+
signal_input_source_port_id: z133.string().optional(),
|
|
17480
|
+
signal_input_source_net_id: z133.string().optional(),
|
|
17481
|
+
reference_input_source_port_id: z133.string().optional(),
|
|
17482
|
+
reference_input_source_net_id: z133.string().optional(),
|
|
17483
|
+
subcircuit_id: z133.string().optional(),
|
|
17484
|
+
color: z133.string().optional()
|
|
17449
17485
|
}).describe(
|
|
17450
17486
|
"Defines a voltage probe for simulation. If a reference input is not provided, it measures against ground. If a reference input is provided, it measures the differential voltage between two points."
|
|
17451
17487
|
).superRefine((data, ctx) => {
|
|
@@ -17455,20 +17491,20 @@ var simulation_voltage_probe = z130.object({
|
|
|
17455
17491
|
const has_nets = !!data.signal_input_source_net_id || !!data.reference_input_source_net_id;
|
|
17456
17492
|
if (has_ports && has_nets) {
|
|
17457
17493
|
ctx.addIssue({
|
|
17458
|
-
code:
|
|
17494
|
+
code: z133.ZodIssueCode.custom,
|
|
17459
17495
|
message: "Cannot mix port and net connections in a differential probe."
|
|
17460
17496
|
});
|
|
17461
17497
|
} else if (has_ports) {
|
|
17462
17498
|
if (!data.signal_input_source_port_id || !data.reference_input_source_port_id) {
|
|
17463
17499
|
ctx.addIssue({
|
|
17464
|
-
code:
|
|
17500
|
+
code: z133.ZodIssueCode.custom,
|
|
17465
17501
|
message: "Differential port probe requires both signal_input_source_port_id and reference_input_source_port_id."
|
|
17466
17502
|
});
|
|
17467
17503
|
}
|
|
17468
17504
|
} else if (has_nets) {
|
|
17469
17505
|
if (!data.signal_input_source_net_id || !data.reference_input_source_net_id) {
|
|
17470
17506
|
ctx.addIssue({
|
|
17471
|
-
code:
|
|
17507
|
+
code: z133.ZodIssueCode.custom,
|
|
17472
17508
|
message: "Differential net probe requires both signal_input_source_net_id and reference_input_source_net_id."
|
|
17473
17509
|
});
|
|
17474
17510
|
}
|
|
@@ -17476,27 +17512,28 @@ var simulation_voltage_probe = z130.object({
|
|
|
17476
17512
|
} else {
|
|
17477
17513
|
if (!!data.signal_input_source_port_id === !!data.signal_input_source_net_id) {
|
|
17478
17514
|
ctx.addIssue({
|
|
17479
|
-
code:
|
|
17515
|
+
code: z133.ZodIssueCode.custom,
|
|
17480
17516
|
message: "A voltage probe must have exactly one of signal_input_source_port_id or signal_input_source_net_id."
|
|
17481
17517
|
});
|
|
17482
17518
|
}
|
|
17483
17519
|
}
|
|
17484
17520
|
});
|
|
17485
17521
|
expectTypesMatch(true);
|
|
17486
|
-
var simulation_unknown_experiment_error =
|
|
17487
|
-
type:
|
|
17522
|
+
var simulation_unknown_experiment_error = z134.object({
|
|
17523
|
+
type: z134.literal("simulation_unknown_experiment_error"),
|
|
17488
17524
|
simulation_unknown_experiment_error_id: getZodPrefixedIdWithDefault(
|
|
17489
17525
|
"simulation_unknown_experiment_error"
|
|
17490
17526
|
),
|
|
17491
|
-
error_type:
|
|
17492
|
-
message:
|
|
17493
|
-
simulation_experiment_id:
|
|
17494
|
-
subcircuit_id:
|
|
17527
|
+
error_type: z134.literal("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),
|
|
17528
|
+
message: z134.string(),
|
|
17529
|
+
simulation_experiment_id: z134.string().optional(),
|
|
17530
|
+
subcircuit_id: z134.string().optional()
|
|
17495
17531
|
}).describe("An unknown error occurred during the simulation experiment.");
|
|
17496
17532
|
expectTypesMatch(true);
|
|
17497
|
-
var any_circuit_element =
|
|
17533
|
+
var any_circuit_element = z135.union([
|
|
17498
17534
|
source_trace,
|
|
17499
17535
|
source_port,
|
|
17536
|
+
source_component_internal_connection,
|
|
17500
17537
|
any_source_component,
|
|
17501
17538
|
source_net,
|
|
17502
17539
|
source_group,
|
|
@@ -17621,7 +17658,7 @@ import { z as z910 } from "zod";
|
|
|
17621
17658
|
import "zod";
|
|
17622
17659
|
import "zod";
|
|
17623
17660
|
import { z as z1210 } from "zod";
|
|
17624
|
-
import { z as
|
|
17661
|
+
import { z as z137 } from "zod";
|
|
17625
17662
|
import { z as z142 } from "zod";
|
|
17626
17663
|
import { z as z152 } from "zod";
|
|
17627
17664
|
import { z as z162 } from "zod";
|
|
@@ -17796,12 +17833,12 @@ function convertMilToMm(value) {
|
|
|
17796
17833
|
}
|
|
17797
17834
|
return Number(value);
|
|
17798
17835
|
}
|
|
17799
|
-
var lengthInMm =
|
|
17800
|
-
var extendDipDef = (newDefaults) =>
|
|
17801
|
-
fn:
|
|
17802
|
-
num_pins:
|
|
17803
|
-
wide:
|
|
17804
|
-
narrow:
|
|
17836
|
+
var lengthInMm = z136.union([z136.string(), z136.number()]).transform((val) => convertMilToMm(val));
|
|
17837
|
+
var extendDipDef = (newDefaults) => z136.object({
|
|
17838
|
+
fn: z136.string(),
|
|
17839
|
+
num_pins: z136.number().optional().default(6),
|
|
17840
|
+
wide: z136.boolean().optional(),
|
|
17841
|
+
narrow: z136.boolean().optional(),
|
|
17805
17842
|
w: lengthInMm.optional(),
|
|
17806
17843
|
p: lengthInMm.default(newDefaults.p ?? "2.54mm"),
|
|
17807
17844
|
id: lengthInMm.optional(),
|
|
@@ -19507,13 +19544,13 @@ var ms013 = (raw_params) => {
|
|
|
19507
19544
|
parameters
|
|
19508
19545
|
};
|
|
19509
19546
|
};
|
|
19510
|
-
var sot723_def =
|
|
19511
|
-
fn:
|
|
19512
|
-
num_pins:
|
|
19513
|
-
w:
|
|
19514
|
-
h:
|
|
19515
|
-
pl:
|
|
19516
|
-
pw:
|
|
19547
|
+
var sot723_def = z137.object({
|
|
19548
|
+
fn: z137.string(),
|
|
19549
|
+
num_pins: z137.literal(3).default(3),
|
|
19550
|
+
w: z137.string().default("1.2mm"),
|
|
19551
|
+
h: z137.string().default("1.2mm"),
|
|
19552
|
+
pl: z137.string().default("0.3mm"),
|
|
19553
|
+
pw: z137.string().default("0.32mm")
|
|
19517
19554
|
});
|
|
19518
19555
|
var sot723 = (raw_params) => {
|
|
19519
19556
|
const parameters = sot723_def.parse(raw_params);
|
|
@@ -24752,7 +24789,7 @@ import {
|
|
|
24752
24789
|
BufferGeometry,
|
|
24753
24790
|
Matrix4
|
|
24754
24791
|
} from "three";
|
|
24755
|
-
var Fragment2 = Symbol("Fragment");
|
|
24792
|
+
var Fragment2 = /* @__PURE__ */ Symbol("Fragment");
|
|
24756
24793
|
function h(type, props, ...restChildren) {
|
|
24757
24794
|
const provided = restChildren.length ? restChildren : props?.children !== void 0 ? [props.children] : [];
|
|
24758
24795
|
const flatChildren = [];
|
|
@@ -24770,20 +24807,20 @@ function h(type, props, ...restChildren) {
|
|
|
24770
24807
|
children: flatChildren
|
|
24771
24808
|
};
|
|
24772
24809
|
}
|
|
24773
|
-
var Cuboid = Symbol("Cuboid");
|
|
24774
|
-
var Cube = Symbol("Cube");
|
|
24775
|
-
var Cylinder = Symbol("Cylinder");
|
|
24776
|
-
var Sphere = Symbol("Sphere");
|
|
24777
|
-
var RoundedCuboid = Symbol("RoundedCuboid");
|
|
24778
|
-
var Translate = Symbol("Translate");
|
|
24779
|
-
var Rotate = Symbol("Rotate");
|
|
24780
|
-
var Union = Symbol("Union");
|
|
24781
|
-
var Subtract = Symbol("Subtract");
|
|
24782
|
-
var Hull = Symbol("Hull");
|
|
24783
|
-
var Colorize = Symbol("Colorize");
|
|
24784
|
-
var Polygon = Symbol("Polygon");
|
|
24785
|
-
var ExtrudeLinear = Symbol("ExtrudeLinear");
|
|
24786
|
-
var RoundedCylinder = Symbol("RoundedCylinder");
|
|
24810
|
+
var Cuboid = /* @__PURE__ */ Symbol("Cuboid");
|
|
24811
|
+
var Cube = /* @__PURE__ */ Symbol("Cube");
|
|
24812
|
+
var Cylinder = /* @__PURE__ */ Symbol("Cylinder");
|
|
24813
|
+
var Sphere = /* @__PURE__ */ Symbol("Sphere");
|
|
24814
|
+
var RoundedCuboid = /* @__PURE__ */ Symbol("RoundedCuboid");
|
|
24815
|
+
var Translate = /* @__PURE__ */ Symbol("Translate");
|
|
24816
|
+
var Rotate = /* @__PURE__ */ Symbol("Rotate");
|
|
24817
|
+
var Union = /* @__PURE__ */ Symbol("Union");
|
|
24818
|
+
var Subtract = /* @__PURE__ */ Symbol("Subtract");
|
|
24819
|
+
var Hull = /* @__PURE__ */ Symbol("Hull");
|
|
24820
|
+
var Colorize = /* @__PURE__ */ Symbol("Colorize");
|
|
24821
|
+
var Polygon = /* @__PURE__ */ Symbol("Polygon");
|
|
24822
|
+
var ExtrudeLinear = /* @__PURE__ */ Symbol("ExtrudeLinear");
|
|
24823
|
+
var RoundedCylinder = /* @__PURE__ */ Symbol("RoundedCylinder");
|
|
24787
24824
|
var Fragment22 = Fragment2;
|
|
24788
24825
|
var jsx5 = (type, props, _key) => h(type, props);
|
|
24789
24826
|
var jsxs = (type, props, _key) => h(type, props);
|
|
@@ -24939,10 +24976,10 @@ var svgPathPoints = normalizeOnY([
|
|
|
24939
24976
|
]);
|
|
24940
24977
|
var DIP_PIN_HEIGHT = 5.47;
|
|
24941
24978
|
var heightAboveSurface = 0.5;
|
|
24942
|
-
var DipPinLeg = ({ x, y, z:
|
|
24979
|
+
var DipPinLeg = ({ x, y, z: z138 }) => {
|
|
24943
24980
|
const isRotated = x > 0;
|
|
24944
24981
|
return /* @__PURE__ */ jsxs(Fragment22, { children: [
|
|
24945
|
-
/* @__PURE__ */ jsx5(Translate, { offset: { x: x + 0.25 / 2, y, z:
|
|
24982
|
+
/* @__PURE__ */ jsx5(Translate, { offset: { x: x + 0.25 / 2, y, z: z138 }, children: /* @__PURE__ */ jsx5(Rotate, { rotation: ["-90deg", 0, "90deg"], children: /* @__PURE__ */ jsx5(ExtrudeLinear, { height: 0.25, children: /* @__PURE__ */ jsx5(
|
|
24946
24983
|
Polygon,
|
|
24947
24984
|
{
|
|
24948
24985
|
points: svgPathPoints.slice().reverse().map((p) => [p.x, p.y])
|
|
@@ -24954,7 +24991,7 @@ var DipPinLeg = ({ x, y, z: z135 }) => {
|
|
|
24954
24991
|
offset: {
|
|
24955
24992
|
x,
|
|
24956
24993
|
y: y + (isRotated ? 1 : -1),
|
|
24957
|
-
z:
|
|
24994
|
+
z: z138
|
|
24958
24995
|
},
|
|
24959
24996
|
children: /* @__PURE__ */ jsx5(Rotate, { rotation: ["-90deg", "90deg", isRotated ? "180deg" : "0deg"], children: /* @__PURE__ */ jsx5(ExtrudeLinear, { height: 2, children: /* @__PURE__ */ jsx5(
|
|
24960
24997
|
Polygon,
|
|
@@ -25412,7 +25449,7 @@ var PinRow = ({
|
|
|
25412
25449
|
const shortSidePinLength = 3;
|
|
25413
25450
|
const xoff = -((pinsPerRow - 1) / 2) * pitch;
|
|
25414
25451
|
const bodyCenterY = rows > 1 ? -((rows - 1) * rowSpacing) / 2 : 0;
|
|
25415
|
-
const flipZ = (
|
|
25452
|
+
const flipZ = (z138) => invert || faceup ? -z138 + bodyHeight : z138;
|
|
25416
25453
|
return /* @__PURE__ */ jsxs(Fragment22, { children: [
|
|
25417
25454
|
/* @__PURE__ */ jsx5(
|
|
25418
25455
|
Cuboid,
|
|
@@ -27936,19 +27973,19 @@ var TO220 = () => {
|
|
|
27936
27973
|
/* @__PURE__ */ jsx5(Rotate, { rotation: [0, 55, 55], children: Array.from({ length: 3 }).map((_, i) => {
|
|
27937
27974
|
const x = prongCenterX;
|
|
27938
27975
|
const y = (i - 1) * prongPitch;
|
|
27939
|
-
const
|
|
27976
|
+
const z138 = -prongHeight - 0.6;
|
|
27940
27977
|
return /* @__PURE__ */ jsxs(Colorize, { color: "gold", children: [
|
|
27941
27978
|
/* @__PURE__ */ jsxs(Hull, { children: [
|
|
27942
|
-
/* @__PURE__ */ jsx5(Translate, { center: [bodyFrontX - bodyHeight / 2 + 0.1, y,
|
|
27979
|
+
/* @__PURE__ */ jsx5(Translate, { center: [bodyFrontX - bodyHeight / 2 + 0.1, y, z138], children: /* @__PURE__ */ jsx5(Cuboid, { size: [bodyHeight, prongWidth + 1, prongHeight] }) }),
|
|
27943
27980
|
/* @__PURE__ */ jsx5(
|
|
27944
27981
|
Translate,
|
|
27945
27982
|
{
|
|
27946
|
-
center: [bodyFrontX - bodyHeight / 2 - 1 + 0.1, y,
|
|
27983
|
+
center: [bodyFrontX - bodyHeight / 2 - 1 + 0.1, y, z138],
|
|
27947
27984
|
children: /* @__PURE__ */ jsx5(Cuboid, { size: [bodyHeight, prongWidth, prongHeight] })
|
|
27948
27985
|
}
|
|
27949
27986
|
)
|
|
27950
27987
|
] }),
|
|
27951
|
-
/* @__PURE__ */ jsx5(Translate, { center: [x, y,
|
|
27988
|
+
/* @__PURE__ */ jsx5(Translate, { center: [x, y, z138], children: /* @__PURE__ */ jsx5(Cuboid, { size: [prongLength + 0.1, prongWidth, prongHeight] }) })
|
|
27952
27989
|
] }, `prong-${i}`);
|
|
27953
27990
|
}) })
|
|
27954
27991
|
] }) });
|
|
@@ -29455,7 +29492,7 @@ import * as THREE15 from "three";
|
|
|
29455
29492
|
// package.json
|
|
29456
29493
|
var package_default = {
|
|
29457
29494
|
name: "@tscircuit/3d-viewer",
|
|
29458
|
-
version: "0.0.
|
|
29495
|
+
version: "0.0.475",
|
|
29459
29496
|
main: "./dist/index.js",
|
|
29460
29497
|
module: "./dist/index.js",
|
|
29461
29498
|
type: "module",
|
|
@@ -29502,15 +29539,8 @@ var package_default = {
|
|
|
29502
29539
|
"@jscad/modeling": "^2.12.5",
|
|
29503
29540
|
"@storybook/blocks": "9.0.0-alpha.17",
|
|
29504
29541
|
"@storybook/react-vite": "^9.1.5",
|
|
29505
|
-
"@tscircuit/circuit-json-util": "^0.0.72",
|
|
29506
|
-
"@tscircuit/core": "^0.0.931",
|
|
29507
|
-
"@tscircuit/props": "^0.0.429",
|
|
29508
|
-
"@tscircuit/checks": "^0.0.87",
|
|
29509
|
-
"@tscircuit/math-utils": "^0.0.29",
|
|
29510
29542
|
"@tscircuit/copper-pour-solver": "^0.0.14",
|
|
29511
29543
|
"@tscircuit/solver-utils": "^0.0.4",
|
|
29512
|
-
"@tscircuit/capacity-autorouter": "^0.0.185",
|
|
29513
|
-
"calculate-packing": "^0.0.48",
|
|
29514
29544
|
"@types/jsdom": "^21.1.7",
|
|
29515
29545
|
"@types/react": "19",
|
|
29516
29546
|
"@types/react-dom": "19",
|
|
@@ -29519,8 +29549,6 @@ var package_default = {
|
|
|
29519
29549
|
"@vitejs/plugin-react": "^4.3.4",
|
|
29520
29550
|
"bun-match-svg": "^0.0.9",
|
|
29521
29551
|
"bun-types": "1.2.1",
|
|
29522
|
-
"circuit-json": "0.0.325",
|
|
29523
|
-
"circuit-to-svg": "^0.0.179",
|
|
29524
29552
|
debug: "^4.4.0",
|
|
29525
29553
|
"jscad-electronics": "^0.0.109",
|
|
29526
29554
|
"jscad-planner": "^0.0.13",
|
|
@@ -29529,7 +29557,7 @@ var package_default = {
|
|
|
29529
29557
|
"react-use-gesture": "^9.1.3",
|
|
29530
29558
|
semver: "^7.7.0",
|
|
29531
29559
|
"strip-ansi": "^7.1.0",
|
|
29532
|
-
tscircuit: "^0.0.
|
|
29560
|
+
tscircuit: "^0.0.1056",
|
|
29533
29561
|
tsup: "^8.3.6",
|
|
29534
29562
|
typescript: "^5.7.3",
|
|
29535
29563
|
vite: "^7.1.5",
|
|
@@ -29623,11 +29651,11 @@ var CameraControllerProvider = ({ children, defaultTarget, initialCameraPosition
|
|
|
29623
29651
|
new THREE9.Euler(0, 0, 0)
|
|
29624
29652
|
);
|
|
29625
29653
|
const baseDistance = useMemo8(() => {
|
|
29626
|
-
const [x, y,
|
|
29654
|
+
const [x, y, z138] = initialCameraPosition ?? [5, -5, 5];
|
|
29627
29655
|
const distance2 = Math.hypot(
|
|
29628
29656
|
x - defaultTarget.x,
|
|
29629
29657
|
y - defaultTarget.y,
|
|
29630
|
-
|
|
29658
|
+
z138 - defaultTarget.z
|
|
29631
29659
|
);
|
|
29632
29660
|
return distance2 > 0 ? distance2 : 5;
|
|
29633
29661
|
}, [initialCameraPosition, defaultTarget]);
|
|
@@ -37371,7 +37399,6 @@ function useUncontrolledState({
|
|
|
37371
37399
|
function isFunction(value) {
|
|
37372
37400
|
return typeof value === "function";
|
|
37373
37401
|
}
|
|
37374
|
-
var SYNC_STATE = Symbol("RADIX:SYNC_STATE");
|
|
37375
37402
|
|
|
37376
37403
|
// node_modules/@radix-ui/react-primitive/dist/index.mjs
|
|
37377
37404
|
import * as React17 from "react";
|
|
@@ -37421,7 +37448,7 @@ function createSlotClone(ownerName) {
|
|
|
37421
37448
|
SlotClone.displayName = `${ownerName}.SlotClone`;
|
|
37422
37449
|
return SlotClone;
|
|
37423
37450
|
}
|
|
37424
|
-
var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
|
|
37451
|
+
var SLOTTABLE_IDENTIFIER = /* @__PURE__ */ Symbol("radix.slottable");
|
|
37425
37452
|
function isSlottable(child) {
|
|
37426
37453
|
return React16.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
|
|
37427
37454
|
}
|
|
@@ -37490,7 +37517,7 @@ var Primitive = NODES.reduce((primitive, node) => {
|
|
|
37490
37517
|
const { asChild, ...primitiveProps } = props;
|
|
37491
37518
|
const Comp = asChild ? Slot2 : node;
|
|
37492
37519
|
if (typeof window !== "undefined") {
|
|
37493
|
-
window[Symbol.for("radix-ui")] = true;
|
|
37520
|
+
window[/* @__PURE__ */ Symbol.for("radix-ui")] = true;
|
|
37494
37521
|
}
|
|
37495
37522
|
return /* @__PURE__ */ jsx21(Comp, { ...primitiveProps, ref: forwardedRef });
|
|
37496
37523
|
});
|