circuit-json 0.0.431 → 0.0.433
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/README.md +23 -0
- package/dist/index.d.mts +716 -22
- package/dist/index.mjs +508 -481
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1264,6 +1264,7 @@ var schematic_path = z69.object({
|
|
|
1264
1264
|
schematic_symbol_id: z69.string().optional(),
|
|
1265
1265
|
fill_color: z69.string().optional(),
|
|
1266
1266
|
is_filled: z69.boolean().optional(),
|
|
1267
|
+
is_dashed: z69.boolean().default(false),
|
|
1267
1268
|
stroke_width: distance.nullable().optional(),
|
|
1268
1269
|
stroke_color: z69.string().optional(),
|
|
1269
1270
|
dash_length: distance.optional(),
|
|
@@ -2715,243 +2716,266 @@ var pcb_silkscreen_oval = z120.object({
|
|
|
2715
2716
|
}).describe("Defines a silkscreen oval on the PCB");
|
|
2716
2717
|
expectTypesMatch(true);
|
|
2717
2718
|
|
|
2718
|
-
// src/pcb/
|
|
2719
|
+
// src/pcb/pcb_silkscreen_graphic.ts
|
|
2719
2720
|
import { z as z121 } from "zod";
|
|
2720
|
-
var
|
|
2721
|
-
type: z121.literal("
|
|
2722
|
-
|
|
2721
|
+
var pcb_silkscreen_graphic_base = z121.object({
|
|
2722
|
+
type: z121.literal("pcb_silkscreen_graphic"),
|
|
2723
|
+
pcb_silkscreen_graphic_id: getZodPrefixedIdWithDefault(
|
|
2724
|
+
"pcb_silkscreen_graphic"
|
|
2725
|
+
),
|
|
2723
2726
|
pcb_component_id: z121.string(),
|
|
2724
2727
|
pcb_group_id: z121.string().optional(),
|
|
2725
2728
|
subcircuit_id: z121.string().optional(),
|
|
2729
|
+
layer: visible_layer,
|
|
2730
|
+
image_asset: asset.optional()
|
|
2731
|
+
});
|
|
2732
|
+
var pcb_silkscreen_graphic_brep = pcb_silkscreen_graphic_base.extend({
|
|
2733
|
+
shape: z121.literal("brep"),
|
|
2734
|
+
brep_shape
|
|
2735
|
+
}).describe("Defines a BRep silkscreen graphic on the PCB");
|
|
2736
|
+
expectTypesMatch(
|
|
2737
|
+
true
|
|
2738
|
+
);
|
|
2739
|
+
var pcb_silkscreen_graphic = z121.discriminatedUnion("shape", [pcb_silkscreen_graphic_brep]).describe("Defines a silkscreen graphic on the PCB");
|
|
2740
|
+
expectTypesMatch(true);
|
|
2741
|
+
|
|
2742
|
+
// src/pcb/pcb_silkscreen_pill.ts
|
|
2743
|
+
import { z as z122 } from "zod";
|
|
2744
|
+
var pcb_silkscreen_pill = z122.object({
|
|
2745
|
+
type: z122.literal("pcb_silkscreen_pill"),
|
|
2746
|
+
pcb_silkscreen_pill_id: getZodPrefixedIdWithDefault("pcb_silkscreen_pill"),
|
|
2747
|
+
pcb_component_id: z122.string(),
|
|
2748
|
+
pcb_group_id: z122.string().optional(),
|
|
2749
|
+
subcircuit_id: z122.string().optional(),
|
|
2726
2750
|
center: point,
|
|
2727
2751
|
width: length,
|
|
2728
2752
|
height: length,
|
|
2729
2753
|
layer: layer_ref,
|
|
2730
|
-
ccw_rotation:
|
|
2754
|
+
ccw_rotation: z122.number().optional()
|
|
2731
2755
|
}).describe("Defines a silkscreen pill on the PCB");
|
|
2732
2756
|
expectTypesMatch(true);
|
|
2733
2757
|
|
|
2734
2758
|
// src/pcb/pcb_fabrication_note_text.ts
|
|
2735
|
-
import { z as
|
|
2736
|
-
var pcb_fabrication_note_text =
|
|
2737
|
-
type:
|
|
2759
|
+
import { z as z123 } from "zod";
|
|
2760
|
+
var pcb_fabrication_note_text = z123.object({
|
|
2761
|
+
type: z123.literal("pcb_fabrication_note_text"),
|
|
2738
2762
|
pcb_fabrication_note_text_id: getZodPrefixedIdWithDefault(
|
|
2739
2763
|
"pcb_fabrication_note_text"
|
|
2740
2764
|
),
|
|
2741
|
-
subcircuit_id:
|
|
2742
|
-
pcb_group_id:
|
|
2743
|
-
font:
|
|
2765
|
+
subcircuit_id: z123.string().optional(),
|
|
2766
|
+
pcb_group_id: z123.string().optional(),
|
|
2767
|
+
font: z123.literal("tscircuit2024").default("tscircuit2024"),
|
|
2744
2768
|
font_size: distance.default("1mm"),
|
|
2745
|
-
pcb_component_id:
|
|
2746
|
-
text:
|
|
2747
|
-
ccw_rotation:
|
|
2769
|
+
pcb_component_id: z123.string(),
|
|
2770
|
+
text: z123.string(),
|
|
2771
|
+
ccw_rotation: z123.number().optional(),
|
|
2748
2772
|
layer: visible_layer,
|
|
2749
2773
|
anchor_position: point.default({ x: 0, y: 0 }),
|
|
2750
|
-
anchor_alignment:
|
|
2751
|
-
color:
|
|
2774
|
+
anchor_alignment: z123.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
2775
|
+
color: z123.string().optional()
|
|
2752
2776
|
}).describe(
|
|
2753
2777
|
"Defines a fabrication note in text on the PCB, useful for leaving notes for assemblers or fabricators"
|
|
2754
2778
|
);
|
|
2755
2779
|
expectTypesMatch(true);
|
|
2756
2780
|
|
|
2757
2781
|
// src/pcb/pcb_fabrication_note_path.ts
|
|
2758
|
-
import { z as
|
|
2759
|
-
var pcb_fabrication_note_path =
|
|
2760
|
-
type:
|
|
2782
|
+
import { z as z124 } from "zod";
|
|
2783
|
+
var pcb_fabrication_note_path = z124.object({
|
|
2784
|
+
type: z124.literal("pcb_fabrication_note_path"),
|
|
2761
2785
|
pcb_fabrication_note_path_id: getZodPrefixedIdWithDefault(
|
|
2762
2786
|
"pcb_fabrication_note_path"
|
|
2763
2787
|
),
|
|
2764
|
-
pcb_component_id:
|
|
2765
|
-
subcircuit_id:
|
|
2788
|
+
pcb_component_id: z124.string(),
|
|
2789
|
+
subcircuit_id: z124.string().optional(),
|
|
2766
2790
|
layer: layer_ref,
|
|
2767
|
-
route:
|
|
2791
|
+
route: z124.array(point),
|
|
2768
2792
|
stroke_width: length,
|
|
2769
|
-
color:
|
|
2793
|
+
color: z124.string().optional()
|
|
2770
2794
|
}).describe(
|
|
2771
2795
|
"Defines a fabrication path on the PCB for fabricators or assemblers"
|
|
2772
2796
|
);
|
|
2773
2797
|
expectTypesMatch(true);
|
|
2774
2798
|
|
|
2775
2799
|
// src/pcb/pcb_fabrication_note_rect.ts
|
|
2776
|
-
import { z as
|
|
2777
|
-
var pcb_fabrication_note_rect =
|
|
2778
|
-
type:
|
|
2800
|
+
import { z as z125 } from "zod";
|
|
2801
|
+
var pcb_fabrication_note_rect = z125.object({
|
|
2802
|
+
type: z125.literal("pcb_fabrication_note_rect"),
|
|
2779
2803
|
pcb_fabrication_note_rect_id: getZodPrefixedIdWithDefault(
|
|
2780
2804
|
"pcb_fabrication_note_rect"
|
|
2781
2805
|
),
|
|
2782
|
-
pcb_component_id:
|
|
2783
|
-
pcb_group_id:
|
|
2784
|
-
subcircuit_id:
|
|
2806
|
+
pcb_component_id: z125.string(),
|
|
2807
|
+
pcb_group_id: z125.string().optional(),
|
|
2808
|
+
subcircuit_id: z125.string().optional(),
|
|
2785
2809
|
center: point,
|
|
2786
2810
|
width: length,
|
|
2787
2811
|
height: length,
|
|
2788
2812
|
layer: visible_layer,
|
|
2789
2813
|
stroke_width: length.default("0.1mm"),
|
|
2790
2814
|
corner_radius: length.optional(),
|
|
2791
|
-
is_filled:
|
|
2792
|
-
has_stroke:
|
|
2793
|
-
is_stroke_dashed:
|
|
2794
|
-
color:
|
|
2815
|
+
is_filled: z125.boolean().optional(),
|
|
2816
|
+
has_stroke: z125.boolean().optional(),
|
|
2817
|
+
is_stroke_dashed: z125.boolean().optional(),
|
|
2818
|
+
color: z125.string().optional()
|
|
2795
2819
|
}).describe("Defines a fabrication note rectangle on the PCB");
|
|
2796
2820
|
expectTypesMatch(true);
|
|
2797
2821
|
|
|
2798
2822
|
// src/pcb/pcb_fabrication_note_dimension.ts
|
|
2799
|
-
import { z as
|
|
2800
|
-
var pcb_fabrication_note_dimension =
|
|
2801
|
-
type:
|
|
2823
|
+
import { z as z126 } from "zod";
|
|
2824
|
+
var pcb_fabrication_note_dimension = z126.object({
|
|
2825
|
+
type: z126.literal("pcb_fabrication_note_dimension"),
|
|
2802
2826
|
pcb_fabrication_note_dimension_id: getZodPrefixedIdWithDefault(
|
|
2803
2827
|
"pcb_fabrication_note_dimension"
|
|
2804
2828
|
),
|
|
2805
|
-
pcb_component_id:
|
|
2806
|
-
pcb_group_id:
|
|
2807
|
-
subcircuit_id:
|
|
2829
|
+
pcb_component_id: z126.string(),
|
|
2830
|
+
pcb_group_id: z126.string().optional(),
|
|
2831
|
+
subcircuit_id: z126.string().optional(),
|
|
2808
2832
|
layer: visible_layer,
|
|
2809
2833
|
from: point,
|
|
2810
2834
|
to: point,
|
|
2811
|
-
text:
|
|
2812
|
-
text_ccw_rotation:
|
|
2835
|
+
text: z126.string().optional(),
|
|
2836
|
+
text_ccw_rotation: z126.number().optional(),
|
|
2813
2837
|
offset: length.optional(),
|
|
2814
2838
|
offset_distance: length.optional(),
|
|
2815
|
-
offset_direction:
|
|
2816
|
-
x:
|
|
2817
|
-
y:
|
|
2839
|
+
offset_direction: z126.object({
|
|
2840
|
+
x: z126.number(),
|
|
2841
|
+
y: z126.number()
|
|
2818
2842
|
}).optional(),
|
|
2819
|
-
font:
|
|
2843
|
+
font: z126.literal("tscircuit2024").default("tscircuit2024"),
|
|
2820
2844
|
font_size: length.default("1mm"),
|
|
2821
|
-
color:
|
|
2845
|
+
color: z126.string().optional(),
|
|
2822
2846
|
arrow_size: length.default("1mm")
|
|
2823
2847
|
}).describe("Defines a measurement annotation within PCB fabrication notes");
|
|
2824
2848
|
expectTypesMatch(true);
|
|
2825
2849
|
|
|
2826
2850
|
// src/pcb/pcb_note_text.ts
|
|
2827
|
-
import { z as z126 } from "zod";
|
|
2828
|
-
var pcb_note_text = z126.object({
|
|
2829
|
-
type: z126.literal("pcb_note_text"),
|
|
2830
|
-
pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
|
|
2831
|
-
pcb_component_id: z126.string().optional(),
|
|
2832
|
-
pcb_group_id: z126.string().optional(),
|
|
2833
|
-
subcircuit_id: z126.string().optional(),
|
|
2834
|
-
name: z126.string().optional(),
|
|
2835
|
-
font: z126.literal("tscircuit2024").default("tscircuit2024"),
|
|
2836
|
-
font_size: distance.default("1mm"),
|
|
2837
|
-
text: z126.string().optional(),
|
|
2838
|
-
anchor_position: point.default({ x: 0, y: 0 }),
|
|
2839
|
-
anchor_alignment: z126.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
2840
|
-
layer: visible_layer.default("top"),
|
|
2841
|
-
is_mirrored_from_top_view: z126.boolean().optional(),
|
|
2842
|
-
color: z126.string().optional()
|
|
2843
|
-
}).describe("Defines a documentation note in text on the PCB");
|
|
2844
|
-
expectTypesMatch(true);
|
|
2845
|
-
|
|
2846
|
-
// src/pcb/pcb_note_rect.ts
|
|
2847
2851
|
import { z as z127 } from "zod";
|
|
2848
|
-
var
|
|
2849
|
-
type: z127.literal("
|
|
2850
|
-
|
|
2852
|
+
var pcb_note_text = z127.object({
|
|
2853
|
+
type: z127.literal("pcb_note_text"),
|
|
2854
|
+
pcb_note_text_id: getZodPrefixedIdWithDefault("pcb_note_text"),
|
|
2851
2855
|
pcb_component_id: z127.string().optional(),
|
|
2852
2856
|
pcb_group_id: z127.string().optional(),
|
|
2853
2857
|
subcircuit_id: z127.string().optional(),
|
|
2854
2858
|
name: z127.string().optional(),
|
|
2859
|
+
font: z127.literal("tscircuit2024").default("tscircuit2024"),
|
|
2860
|
+
font_size: distance.default("1mm"),
|
|
2855
2861
|
text: z127.string().optional(),
|
|
2856
|
-
|
|
2857
|
-
|
|
2858
|
-
height: length,
|
|
2862
|
+
anchor_position: point.default({ x: 0, y: 0 }),
|
|
2863
|
+
anchor_alignment: z127.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
|
|
2859
2864
|
layer: visible_layer.default("top"),
|
|
2860
|
-
|
|
2861
|
-
corner_radius: length.optional(),
|
|
2862
|
-
is_filled: z127.boolean().optional(),
|
|
2863
|
-
has_stroke: z127.boolean().optional(),
|
|
2864
|
-
is_stroke_dashed: z127.boolean().optional(),
|
|
2865
|
+
is_mirrored_from_top_view: z127.boolean().optional(),
|
|
2865
2866
|
color: z127.string().optional()
|
|
2866
|
-
}).describe("Defines a
|
|
2867
|
+
}).describe("Defines a documentation note in text on the PCB");
|
|
2867
2868
|
expectTypesMatch(true);
|
|
2868
2869
|
|
|
2869
|
-
// src/pcb/
|
|
2870
|
+
// src/pcb/pcb_note_rect.ts
|
|
2870
2871
|
import { z as z128 } from "zod";
|
|
2871
|
-
var
|
|
2872
|
-
type: z128.literal("
|
|
2873
|
-
|
|
2872
|
+
var pcb_note_rect = z128.object({
|
|
2873
|
+
type: z128.literal("pcb_note_rect"),
|
|
2874
|
+
pcb_note_rect_id: getZodPrefixedIdWithDefault("pcb_note_rect"),
|
|
2874
2875
|
pcb_component_id: z128.string().optional(),
|
|
2875
2876
|
pcb_group_id: z128.string().optional(),
|
|
2876
2877
|
subcircuit_id: z128.string().optional(),
|
|
2877
2878
|
name: z128.string().optional(),
|
|
2878
2879
|
text: z128.string().optional(),
|
|
2879
|
-
|
|
2880
|
+
center: point,
|
|
2881
|
+
width: length,
|
|
2882
|
+
height: length,
|
|
2880
2883
|
layer: visible_layer.default("top"),
|
|
2881
2884
|
stroke_width: length.default("0.1mm"),
|
|
2885
|
+
corner_radius: length.optional(),
|
|
2886
|
+
is_filled: z128.boolean().optional(),
|
|
2887
|
+
has_stroke: z128.boolean().optional(),
|
|
2888
|
+
is_stroke_dashed: z128.boolean().optional(),
|
|
2882
2889
|
color: z128.string().optional()
|
|
2883
|
-
}).describe("Defines a
|
|
2890
|
+
}).describe("Defines a rectangular documentation note on the PCB");
|
|
2884
2891
|
expectTypesMatch(true);
|
|
2885
2892
|
|
|
2886
|
-
// src/pcb/
|
|
2893
|
+
// src/pcb/pcb_note_path.ts
|
|
2887
2894
|
import { z as z129 } from "zod";
|
|
2888
|
-
var
|
|
2889
|
-
type: z129.literal("
|
|
2890
|
-
|
|
2895
|
+
var pcb_note_path = z129.object({
|
|
2896
|
+
type: z129.literal("pcb_note_path"),
|
|
2897
|
+
pcb_note_path_id: getZodPrefixedIdWithDefault("pcb_note_path"),
|
|
2891
2898
|
pcb_component_id: z129.string().optional(),
|
|
2892
2899
|
pcb_group_id: z129.string().optional(),
|
|
2893
2900
|
subcircuit_id: z129.string().optional(),
|
|
2894
2901
|
name: z129.string().optional(),
|
|
2895
2902
|
text: z129.string().optional(),
|
|
2903
|
+
route: z129.array(point),
|
|
2904
|
+
layer: visible_layer.default("top"),
|
|
2905
|
+
stroke_width: length.default("0.1mm"),
|
|
2906
|
+
color: z129.string().optional()
|
|
2907
|
+
}).describe("Defines a polyline documentation note on the PCB");
|
|
2908
|
+
expectTypesMatch(true);
|
|
2909
|
+
|
|
2910
|
+
// src/pcb/pcb_note_line.ts
|
|
2911
|
+
import { z as z130 } from "zod";
|
|
2912
|
+
var pcb_note_line = z130.object({
|
|
2913
|
+
type: z130.literal("pcb_note_line"),
|
|
2914
|
+
pcb_note_line_id: getZodPrefixedIdWithDefault("pcb_note_line"),
|
|
2915
|
+
pcb_component_id: z130.string().optional(),
|
|
2916
|
+
pcb_group_id: z130.string().optional(),
|
|
2917
|
+
subcircuit_id: z130.string().optional(),
|
|
2918
|
+
name: z130.string().optional(),
|
|
2919
|
+
text: z130.string().optional(),
|
|
2896
2920
|
x1: distance,
|
|
2897
2921
|
y1: distance,
|
|
2898
2922
|
x2: distance,
|
|
2899
2923
|
y2: distance,
|
|
2900
2924
|
layer: visible_layer.default("top"),
|
|
2901
2925
|
stroke_width: distance.default("0.1mm"),
|
|
2902
|
-
color:
|
|
2903
|
-
is_dashed:
|
|
2926
|
+
color: z130.string().optional(),
|
|
2927
|
+
is_dashed: z130.boolean().optional()
|
|
2904
2928
|
}).describe("Defines a straight documentation note line on the PCB");
|
|
2905
2929
|
expectTypesMatch(true);
|
|
2906
2930
|
|
|
2907
2931
|
// src/pcb/pcb_note_dimension.ts
|
|
2908
|
-
import { z as
|
|
2909
|
-
var pcb_note_dimension =
|
|
2910
|
-
type:
|
|
2932
|
+
import { z as z131 } from "zod";
|
|
2933
|
+
var pcb_note_dimension = z131.object({
|
|
2934
|
+
type: z131.literal("pcb_note_dimension"),
|
|
2911
2935
|
pcb_note_dimension_id: getZodPrefixedIdWithDefault("pcb_note_dimension"),
|
|
2912
|
-
pcb_component_id:
|
|
2913
|
-
pcb_group_id:
|
|
2914
|
-
subcircuit_id:
|
|
2915
|
-
name:
|
|
2936
|
+
pcb_component_id: z131.string().optional(),
|
|
2937
|
+
pcb_group_id: z131.string().optional(),
|
|
2938
|
+
subcircuit_id: z131.string().optional(),
|
|
2939
|
+
name: z131.string().optional(),
|
|
2916
2940
|
from: point,
|
|
2917
2941
|
to: point,
|
|
2918
|
-
text:
|
|
2919
|
-
text_ccw_rotation:
|
|
2942
|
+
text: z131.string().optional(),
|
|
2943
|
+
text_ccw_rotation: z131.number().optional(),
|
|
2920
2944
|
offset_distance: length.optional(),
|
|
2921
|
-
offset_direction:
|
|
2922
|
-
x:
|
|
2923
|
-
y:
|
|
2945
|
+
offset_direction: z131.object({
|
|
2946
|
+
x: z131.number(),
|
|
2947
|
+
y: z131.number()
|
|
2924
2948
|
}).optional(),
|
|
2925
|
-
font:
|
|
2949
|
+
font: z131.literal("tscircuit2024").default("tscircuit2024"),
|
|
2926
2950
|
font_size: length.default("1mm"),
|
|
2927
2951
|
layer: visible_layer.default("top"),
|
|
2928
|
-
color:
|
|
2952
|
+
color: z131.string().optional(),
|
|
2929
2953
|
arrow_size: length.default("1mm")
|
|
2930
2954
|
}).describe("Defines a measurement annotation within PCB documentation notes");
|
|
2931
2955
|
expectTypesMatch(true);
|
|
2932
2956
|
|
|
2933
2957
|
// src/pcb/pcb_footprint_overlap_error.ts
|
|
2934
|
-
import { z as
|
|
2958
|
+
import { z as z132 } from "zod";
|
|
2935
2959
|
var pcb_footprint_overlap_error = base_circuit_json_error.extend({
|
|
2936
|
-
type:
|
|
2960
|
+
type: z132.literal("pcb_footprint_overlap_error"),
|
|
2937
2961
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
2938
|
-
error_type:
|
|
2939
|
-
pcb_smtpad_ids:
|
|
2940
|
-
pcb_plated_hole_ids:
|
|
2941
|
-
pcb_hole_ids:
|
|
2942
|
-
pcb_keepout_ids:
|
|
2962
|
+
error_type: z132.literal("pcb_footprint_overlap_error").default("pcb_footprint_overlap_error"),
|
|
2963
|
+
pcb_smtpad_ids: z132.array(z132.string()).optional(),
|
|
2964
|
+
pcb_plated_hole_ids: z132.array(z132.string()).optional(),
|
|
2965
|
+
pcb_hole_ids: z132.array(z132.string()).optional(),
|
|
2966
|
+
pcb_keepout_ids: z132.array(z132.string()).optional()
|
|
2943
2967
|
}).describe("Error emitted when a pcb footprint overlaps with another element");
|
|
2944
2968
|
expectTypesMatch(
|
|
2945
2969
|
true
|
|
2946
2970
|
);
|
|
2947
2971
|
|
|
2948
2972
|
// src/pcb/pcb_courtyard_overlap_error.ts
|
|
2949
|
-
import { z as
|
|
2973
|
+
import { z as z133 } from "zod";
|
|
2950
2974
|
var pcb_courtyard_overlap_error = base_circuit_json_error.extend({
|
|
2951
|
-
type:
|
|
2975
|
+
type: z133.literal("pcb_courtyard_overlap_error"),
|
|
2952
2976
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
2953
|
-
error_type:
|
|
2954
|
-
pcb_component_ids:
|
|
2977
|
+
error_type: z133.literal("pcb_courtyard_overlap_error").default("pcb_courtyard_overlap_error"),
|
|
2978
|
+
pcb_component_ids: z133.tuple([z133.string(), z133.string()])
|
|
2955
2979
|
}).describe(
|
|
2956
2980
|
"Error emitted when the courtyard (CrtYd) of one PCB component overlaps with the courtyard of another"
|
|
2957
2981
|
);
|
|
@@ -2960,49 +2984,49 @@ expectTypesMatch(
|
|
|
2960
2984
|
);
|
|
2961
2985
|
|
|
2962
2986
|
// src/pcb/pcb_keepout.ts
|
|
2963
|
-
import { z as
|
|
2964
|
-
var pcb_keepout =
|
|
2965
|
-
type:
|
|
2966
|
-
shape:
|
|
2967
|
-
pcb_group_id:
|
|
2968
|
-
subcircuit_id:
|
|
2987
|
+
import { z as z134 } from "zod";
|
|
2988
|
+
var pcb_keepout = z134.object({
|
|
2989
|
+
type: z134.literal("pcb_keepout"),
|
|
2990
|
+
shape: z134.literal("rect"),
|
|
2991
|
+
pcb_group_id: z134.string().optional(),
|
|
2992
|
+
subcircuit_id: z134.string().optional(),
|
|
2969
2993
|
center: point,
|
|
2970
2994
|
width: distance,
|
|
2971
2995
|
height: distance,
|
|
2972
|
-
pcb_keepout_id:
|
|
2973
|
-
layers:
|
|
2996
|
+
pcb_keepout_id: z134.string(),
|
|
2997
|
+
layers: z134.array(z134.string()),
|
|
2974
2998
|
// Specify layers where the keepout applies
|
|
2975
|
-
description:
|
|
2999
|
+
description: z134.string().optional()
|
|
2976
3000
|
// Optional description of the keepout
|
|
2977
3001
|
}).or(
|
|
2978
|
-
|
|
2979
|
-
type:
|
|
2980
|
-
shape:
|
|
2981
|
-
pcb_group_id:
|
|
2982
|
-
subcircuit_id:
|
|
3002
|
+
z134.object({
|
|
3003
|
+
type: z134.literal("pcb_keepout"),
|
|
3004
|
+
shape: z134.literal("circle"),
|
|
3005
|
+
pcb_group_id: z134.string().optional(),
|
|
3006
|
+
subcircuit_id: z134.string().optional(),
|
|
2983
3007
|
center: point,
|
|
2984
3008
|
radius: distance,
|
|
2985
|
-
pcb_keepout_id:
|
|
2986
|
-
layers:
|
|
3009
|
+
pcb_keepout_id: z134.string(),
|
|
3010
|
+
layers: z134.array(z134.string()),
|
|
2987
3011
|
// Specify layers where the keepout applies
|
|
2988
|
-
description:
|
|
3012
|
+
description: z134.string().optional()
|
|
2989
3013
|
// Optional description of the keepout
|
|
2990
3014
|
})
|
|
2991
3015
|
);
|
|
2992
3016
|
expectTypesMatch(true);
|
|
2993
3017
|
|
|
2994
3018
|
// src/pcb/pcb_cutout.ts
|
|
2995
|
-
import { z as
|
|
2996
|
-
var pcb_cutout_base =
|
|
2997
|
-
type:
|
|
3019
|
+
import { z as z135 } from "zod";
|
|
3020
|
+
var pcb_cutout_base = z135.object({
|
|
3021
|
+
type: z135.literal("pcb_cutout"),
|
|
2998
3022
|
pcb_cutout_id: getZodPrefixedIdWithDefault("pcb_cutout"),
|
|
2999
|
-
pcb_group_id:
|
|
3000
|
-
subcircuit_id:
|
|
3001
|
-
pcb_board_id:
|
|
3002
|
-
pcb_panel_id:
|
|
3023
|
+
pcb_group_id: z135.string().optional(),
|
|
3024
|
+
subcircuit_id: z135.string().optional(),
|
|
3025
|
+
pcb_board_id: z135.string().optional(),
|
|
3026
|
+
pcb_panel_id: z135.string().optional()
|
|
3003
3027
|
});
|
|
3004
3028
|
var pcb_cutout_rect = pcb_cutout_base.extend({
|
|
3005
|
-
shape:
|
|
3029
|
+
shape: z135.literal("rect"),
|
|
3006
3030
|
center: point,
|
|
3007
3031
|
width: length,
|
|
3008
3032
|
height: length,
|
|
@@ -3011,26 +3035,26 @@ var pcb_cutout_rect = pcb_cutout_base.extend({
|
|
|
3011
3035
|
});
|
|
3012
3036
|
expectTypesMatch(true);
|
|
3013
3037
|
var pcb_cutout_circle = pcb_cutout_base.extend({
|
|
3014
|
-
shape:
|
|
3038
|
+
shape: z135.literal("circle"),
|
|
3015
3039
|
center: point,
|
|
3016
3040
|
radius: length
|
|
3017
3041
|
});
|
|
3018
3042
|
expectTypesMatch(true);
|
|
3019
3043
|
var pcb_cutout_polygon = pcb_cutout_base.extend({
|
|
3020
|
-
shape:
|
|
3021
|
-
points:
|
|
3044
|
+
shape: z135.literal("polygon"),
|
|
3045
|
+
points: z135.array(point)
|
|
3022
3046
|
});
|
|
3023
3047
|
expectTypesMatch(true);
|
|
3024
3048
|
var pcb_cutout_path = pcb_cutout_base.extend({
|
|
3025
|
-
shape:
|
|
3026
|
-
route:
|
|
3049
|
+
shape: z135.literal("path"),
|
|
3050
|
+
route: z135.array(point),
|
|
3027
3051
|
slot_width: length,
|
|
3028
3052
|
slot_length: length.optional(),
|
|
3029
3053
|
space_between_slots: length.optional(),
|
|
3030
3054
|
slot_corner_radius: length.optional()
|
|
3031
3055
|
});
|
|
3032
3056
|
expectTypesMatch(true);
|
|
3033
|
-
var pcb_cutout =
|
|
3057
|
+
var pcb_cutout = z135.discriminatedUnion("shape", [
|
|
3034
3058
|
pcb_cutout_rect,
|
|
3035
3059
|
pcb_cutout_circle,
|
|
3036
3060
|
pcb_cutout_polygon,
|
|
@@ -3039,169 +3063,169 @@ var pcb_cutout = z134.discriminatedUnion("shape", [
|
|
|
3039
3063
|
expectTypesMatch(true);
|
|
3040
3064
|
|
|
3041
3065
|
// src/pcb/pcb_missing_footprint_error.ts
|
|
3042
|
-
import { z as
|
|
3066
|
+
import { z as z136 } from "zod";
|
|
3043
3067
|
var pcb_missing_footprint_error = base_circuit_json_error.extend({
|
|
3044
|
-
type:
|
|
3068
|
+
type: z136.literal("pcb_missing_footprint_error"),
|
|
3045
3069
|
pcb_missing_footprint_error_id: getZodPrefixedIdWithDefault(
|
|
3046
3070
|
"pcb_missing_footprint_error"
|
|
3047
3071
|
),
|
|
3048
|
-
pcb_group_id:
|
|
3049
|
-
subcircuit_id:
|
|
3050
|
-
error_type:
|
|
3051
|
-
source_component_id:
|
|
3072
|
+
pcb_group_id: z136.string().optional(),
|
|
3073
|
+
subcircuit_id: z136.string().optional(),
|
|
3074
|
+
error_type: z136.literal("pcb_missing_footprint_error").default("pcb_missing_footprint_error"),
|
|
3075
|
+
source_component_id: z136.string()
|
|
3052
3076
|
}).describe("Defines a missing footprint error on the PCB");
|
|
3053
3077
|
expectTypesMatch(
|
|
3054
3078
|
true
|
|
3055
3079
|
);
|
|
3056
3080
|
|
|
3057
3081
|
// src/pcb/external_footprint_load_error.ts
|
|
3058
|
-
import { z as
|
|
3082
|
+
import { z as z137 } from "zod";
|
|
3059
3083
|
var external_footprint_load_error = base_circuit_json_error.extend({
|
|
3060
|
-
type:
|
|
3084
|
+
type: z137.literal("external_footprint_load_error"),
|
|
3061
3085
|
external_footprint_load_error_id: getZodPrefixedIdWithDefault(
|
|
3062
3086
|
"external_footprint_load_error"
|
|
3063
3087
|
),
|
|
3064
|
-
pcb_component_id:
|
|
3065
|
-
source_component_id:
|
|
3066
|
-
pcb_group_id:
|
|
3067
|
-
subcircuit_id:
|
|
3068
|
-
footprinter_string:
|
|
3069
|
-
error_type:
|
|
3088
|
+
pcb_component_id: z137.string(),
|
|
3089
|
+
source_component_id: z137.string(),
|
|
3090
|
+
pcb_group_id: z137.string().optional(),
|
|
3091
|
+
subcircuit_id: z137.string().optional(),
|
|
3092
|
+
footprinter_string: z137.string().optional(),
|
|
3093
|
+
error_type: z137.literal("external_footprint_load_error").default("external_footprint_load_error")
|
|
3070
3094
|
}).describe("Defines an error when an external footprint fails to load");
|
|
3071
3095
|
expectTypesMatch(true);
|
|
3072
3096
|
|
|
3073
3097
|
// src/pcb/circuit_json_footprint_load_error.ts
|
|
3074
|
-
import { z as
|
|
3098
|
+
import { z as z138 } from "zod";
|
|
3075
3099
|
var circuit_json_footprint_load_error = base_circuit_json_error.extend({
|
|
3076
|
-
type:
|
|
3100
|
+
type: z138.literal("circuit_json_footprint_load_error"),
|
|
3077
3101
|
circuit_json_footprint_load_error_id: getZodPrefixedIdWithDefault(
|
|
3078
3102
|
"circuit_json_footprint_load_error"
|
|
3079
3103
|
),
|
|
3080
|
-
pcb_component_id:
|
|
3081
|
-
source_component_id:
|
|
3082
|
-
pcb_group_id:
|
|
3083
|
-
subcircuit_id:
|
|
3084
|
-
error_type:
|
|
3085
|
-
circuit_json:
|
|
3104
|
+
pcb_component_id: z138.string(),
|
|
3105
|
+
source_component_id: z138.string(),
|
|
3106
|
+
pcb_group_id: z138.string().optional(),
|
|
3107
|
+
subcircuit_id: z138.string().optional(),
|
|
3108
|
+
error_type: z138.literal("circuit_json_footprint_load_error").default("circuit_json_footprint_load_error"),
|
|
3109
|
+
circuit_json: z138.array(z138.any()).optional()
|
|
3086
3110
|
}).describe("Defines an error when a circuit JSON footprint fails to load");
|
|
3087
3111
|
expectTypesMatch(true);
|
|
3088
3112
|
|
|
3089
3113
|
// src/pcb/pcb_group.ts
|
|
3090
|
-
import { z as
|
|
3091
|
-
var pcb_group =
|
|
3092
|
-
type:
|
|
3114
|
+
import { z as z139 } from "zod";
|
|
3115
|
+
var pcb_group = z139.object({
|
|
3116
|
+
type: z139.literal("pcb_group"),
|
|
3093
3117
|
pcb_group_id: getZodPrefixedIdWithDefault("pcb_group"),
|
|
3094
|
-
source_group_id:
|
|
3095
|
-
is_subcircuit:
|
|
3096
|
-
subcircuit_id:
|
|
3118
|
+
source_group_id: z139.string(),
|
|
3119
|
+
is_subcircuit: z139.boolean().optional(),
|
|
3120
|
+
subcircuit_id: z139.string().optional(),
|
|
3097
3121
|
width: length.optional(),
|
|
3098
3122
|
height: length.optional(),
|
|
3099
3123
|
center: point,
|
|
3100
|
-
display_offset_x:
|
|
3124
|
+
display_offset_x: z139.string().optional().describe(
|
|
3101
3125
|
"How to display the x offset for this group, usually corresponding with how the user specified it"
|
|
3102
3126
|
),
|
|
3103
|
-
display_offset_y:
|
|
3127
|
+
display_offset_y: z139.string().optional().describe(
|
|
3104
3128
|
"How to display the y offset for this group, usually corresponding with how the user specified it"
|
|
3105
3129
|
),
|
|
3106
|
-
outline:
|
|
3130
|
+
outline: z139.array(point).optional(),
|
|
3107
3131
|
anchor_position: point.optional(),
|
|
3108
3132
|
anchor_alignment: ninePointAnchor.default("center"),
|
|
3109
|
-
position_mode:
|
|
3110
|
-
positioned_relative_to_pcb_group_id:
|
|
3111
|
-
positioned_relative_to_pcb_board_id:
|
|
3112
|
-
pcb_component_ids:
|
|
3113
|
-
child_layout_mode:
|
|
3114
|
-
name:
|
|
3115
|
-
description:
|
|
3116
|
-
layout_mode:
|
|
3117
|
-
autorouter_configuration:
|
|
3133
|
+
position_mode: z139.enum(["packed", "relative_to_group_anchor", "none"]).optional(),
|
|
3134
|
+
positioned_relative_to_pcb_group_id: z139.string().optional(),
|
|
3135
|
+
positioned_relative_to_pcb_board_id: z139.string().optional(),
|
|
3136
|
+
pcb_component_ids: z139.array(z139.string()),
|
|
3137
|
+
child_layout_mode: z139.enum(["packed", "none"]).optional(),
|
|
3138
|
+
name: z139.string().optional(),
|
|
3139
|
+
description: z139.string().optional(),
|
|
3140
|
+
layout_mode: z139.string().optional(),
|
|
3141
|
+
autorouter_configuration: z139.object({
|
|
3118
3142
|
trace_clearance: length
|
|
3119
3143
|
}).optional(),
|
|
3120
|
-
autorouter_used_string:
|
|
3144
|
+
autorouter_used_string: z139.string().optional()
|
|
3121
3145
|
}).describe("Defines a group of components on the PCB");
|
|
3122
3146
|
expectTypesMatch(true);
|
|
3123
3147
|
|
|
3124
3148
|
// src/pcb/pcb_autorouting_error.ts
|
|
3125
|
-
import { z as
|
|
3149
|
+
import { z as z140 } from "zod";
|
|
3126
3150
|
var pcb_autorouting_error = base_circuit_json_error.extend({
|
|
3127
|
-
type:
|
|
3151
|
+
type: z140.literal("pcb_autorouting_error"),
|
|
3128
3152
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_autorouting_error"),
|
|
3129
|
-
error_type:
|
|
3130
|
-
subcircuit_id:
|
|
3153
|
+
error_type: z140.literal("pcb_autorouting_error").default("pcb_autorouting_error"),
|
|
3154
|
+
subcircuit_id: z140.string().optional()
|
|
3131
3155
|
}).describe("The autorouting has failed to route a portion of the board");
|
|
3132
3156
|
expectTypesMatch(true);
|
|
3133
3157
|
|
|
3134
3158
|
// src/pcb/pcb_manual_edit_conflict_warning.ts
|
|
3135
|
-
import { z as
|
|
3136
|
-
var pcb_manual_edit_conflict_warning =
|
|
3137
|
-
type:
|
|
3159
|
+
import { z as z141 } from "zod";
|
|
3160
|
+
var pcb_manual_edit_conflict_warning = z141.object({
|
|
3161
|
+
type: z141.literal("pcb_manual_edit_conflict_warning"),
|
|
3138
3162
|
pcb_manual_edit_conflict_warning_id: getZodPrefixedIdWithDefault(
|
|
3139
3163
|
"pcb_manual_edit_conflict_warning"
|
|
3140
3164
|
),
|
|
3141
|
-
warning_type:
|
|
3142
|
-
message:
|
|
3143
|
-
pcb_component_id:
|
|
3144
|
-
pcb_group_id:
|
|
3145
|
-
subcircuit_id:
|
|
3146
|
-
source_component_id:
|
|
3165
|
+
warning_type: z141.literal("pcb_manual_edit_conflict_warning").default("pcb_manual_edit_conflict_warning"),
|
|
3166
|
+
message: z141.string(),
|
|
3167
|
+
pcb_component_id: z141.string(),
|
|
3168
|
+
pcb_group_id: z141.string().optional(),
|
|
3169
|
+
subcircuit_id: z141.string().optional(),
|
|
3170
|
+
source_component_id: z141.string()
|
|
3147
3171
|
}).describe(
|
|
3148
3172
|
"Warning emitted when a component has both manual placement and explicit pcbX/pcbY coordinates"
|
|
3149
3173
|
);
|
|
3150
3174
|
expectTypesMatch(true);
|
|
3151
3175
|
|
|
3152
3176
|
// src/pcb/pcb_connector_not_in_accessible_orientation_warning.ts
|
|
3153
|
-
import { z as
|
|
3154
|
-
var connectorOrientationDirection =
|
|
3155
|
-
var pcb_connector_not_in_accessible_orientation_warning =
|
|
3156
|
-
type:
|
|
3177
|
+
import { z as z142 } from "zod";
|
|
3178
|
+
var connectorOrientationDirection = z142.enum(["x-", "x+", "y+", "y-"]);
|
|
3179
|
+
var pcb_connector_not_in_accessible_orientation_warning = z142.object({
|
|
3180
|
+
type: z142.literal("pcb_connector_not_in_accessible_orientation_warning"),
|
|
3157
3181
|
pcb_connector_not_in_accessible_orientation_warning_id: getZodPrefixedIdWithDefault(
|
|
3158
3182
|
"pcb_connector_not_in_accessible_orientation_warning"
|
|
3159
3183
|
),
|
|
3160
|
-
warning_type:
|
|
3161
|
-
message:
|
|
3162
|
-
pcb_component_id:
|
|
3163
|
-
source_component_id:
|
|
3164
|
-
pcb_board_id:
|
|
3184
|
+
warning_type: z142.literal("pcb_connector_not_in_accessible_orientation_warning").default("pcb_connector_not_in_accessible_orientation_warning"),
|
|
3185
|
+
message: z142.string(),
|
|
3186
|
+
pcb_component_id: z142.string(),
|
|
3187
|
+
source_component_id: z142.string().optional(),
|
|
3188
|
+
pcb_board_id: z142.string().optional(),
|
|
3165
3189
|
facing_direction: connectorOrientationDirection,
|
|
3166
3190
|
recommended_facing_direction: connectorOrientationDirection,
|
|
3167
|
-
subcircuit_id:
|
|
3191
|
+
subcircuit_id: z142.string().optional()
|
|
3168
3192
|
}).describe(
|
|
3169
3193
|
"Warning emitted when a connector PCB component is facing inward toward the board and should be reoriented to an outward-facing direction"
|
|
3170
3194
|
);
|
|
3171
3195
|
expectTypesMatch(true);
|
|
3172
3196
|
|
|
3173
3197
|
// src/pcb/supplier_footprint_mismatch_warning.ts
|
|
3174
|
-
import { z as
|
|
3175
|
-
var supplier_footprint_mismatch_warning =
|
|
3176
|
-
type:
|
|
3198
|
+
import { z as z143 } from "zod";
|
|
3199
|
+
var supplier_footprint_mismatch_warning = z143.object({
|
|
3200
|
+
type: z143.literal("supplier_footprint_mismatch_warning"),
|
|
3177
3201
|
supplier_footprint_mismatch_warning_id: getZodPrefixedIdWithDefault(
|
|
3178
3202
|
"supplier_footprint_mismatch_warning"
|
|
3179
3203
|
),
|
|
3180
|
-
warning_type:
|
|
3181
|
-
message:
|
|
3182
|
-
source_component_id:
|
|
3183
|
-
pcb_component_id:
|
|
3184
|
-
pcb_group_id:
|
|
3185
|
-
subcircuit_id:
|
|
3204
|
+
warning_type: z143.literal("supplier_footprint_mismatch_warning").default("supplier_footprint_mismatch_warning"),
|
|
3205
|
+
message: z143.string(),
|
|
3206
|
+
source_component_id: z143.string(),
|
|
3207
|
+
pcb_component_id: z143.string().optional(),
|
|
3208
|
+
pcb_group_id: z143.string().optional(),
|
|
3209
|
+
subcircuit_id: z143.string().optional(),
|
|
3186
3210
|
supplier_name: supplier_name.optional(),
|
|
3187
|
-
supplier_part_number:
|
|
3188
|
-
supplier_footprint_url:
|
|
3189
|
-
footprint_copper_intersection_over_union:
|
|
3211
|
+
supplier_part_number: z143.string().optional(),
|
|
3212
|
+
supplier_footprint_url: z143.string().optional(),
|
|
3213
|
+
footprint_copper_intersection_over_union: z143.number()
|
|
3190
3214
|
}).describe(
|
|
3191
3215
|
"Warning emitted when a supplier part footprint does not match the expected footprint"
|
|
3192
3216
|
);
|
|
3193
3217
|
expectTypesMatch(true);
|
|
3194
3218
|
|
|
3195
3219
|
// src/pcb/pcb_breakout_point.ts
|
|
3196
|
-
import { z as
|
|
3197
|
-
var pcb_breakout_point =
|
|
3198
|
-
type:
|
|
3220
|
+
import { z as z144 } from "zod";
|
|
3221
|
+
var pcb_breakout_point = z144.object({
|
|
3222
|
+
type: z144.literal("pcb_breakout_point"),
|
|
3199
3223
|
pcb_breakout_point_id: getZodPrefixedIdWithDefault("pcb_breakout_point"),
|
|
3200
|
-
pcb_group_id:
|
|
3201
|
-
subcircuit_id:
|
|
3202
|
-
source_trace_id:
|
|
3203
|
-
source_port_id:
|
|
3204
|
-
source_net_id:
|
|
3224
|
+
pcb_group_id: z144.string(),
|
|
3225
|
+
subcircuit_id: z144.string().optional(),
|
|
3226
|
+
source_trace_id: z144.string().optional(),
|
|
3227
|
+
source_port_id: z144.string().optional(),
|
|
3228
|
+
source_net_id: z144.string().optional(),
|
|
3205
3229
|
x: distance,
|
|
3206
3230
|
y: distance
|
|
3207
3231
|
}).describe(
|
|
@@ -3210,61 +3234,61 @@ var pcb_breakout_point = z143.object({
|
|
|
3210
3234
|
expectTypesMatch(true);
|
|
3211
3235
|
|
|
3212
3236
|
// src/pcb/pcb_ground_plane.ts
|
|
3213
|
-
import { z as
|
|
3214
|
-
var pcb_ground_plane =
|
|
3215
|
-
type:
|
|
3237
|
+
import { z as z145 } from "zod";
|
|
3238
|
+
var pcb_ground_plane = z145.object({
|
|
3239
|
+
type: z145.literal("pcb_ground_plane"),
|
|
3216
3240
|
pcb_ground_plane_id: getZodPrefixedIdWithDefault("pcb_ground_plane"),
|
|
3217
|
-
source_pcb_ground_plane_id:
|
|
3218
|
-
source_net_id:
|
|
3219
|
-
pcb_group_id:
|
|
3220
|
-
subcircuit_id:
|
|
3241
|
+
source_pcb_ground_plane_id: z145.string(),
|
|
3242
|
+
source_net_id: z145.string(),
|
|
3243
|
+
pcb_group_id: z145.string().optional(),
|
|
3244
|
+
subcircuit_id: z145.string().optional()
|
|
3221
3245
|
}).describe("Defines a ground plane on the PCB");
|
|
3222
3246
|
expectTypesMatch(true);
|
|
3223
3247
|
|
|
3224
3248
|
// src/pcb/pcb_ground_plane_region.ts
|
|
3225
|
-
import { z as
|
|
3226
|
-
var pcb_ground_plane_region =
|
|
3227
|
-
type:
|
|
3249
|
+
import { z as z146 } from "zod";
|
|
3250
|
+
var pcb_ground_plane_region = z146.object({
|
|
3251
|
+
type: z146.literal("pcb_ground_plane_region"),
|
|
3228
3252
|
pcb_ground_plane_region_id: getZodPrefixedIdWithDefault(
|
|
3229
3253
|
"pcb_ground_plane_region"
|
|
3230
3254
|
),
|
|
3231
|
-
pcb_ground_plane_id:
|
|
3232
|
-
pcb_group_id:
|
|
3233
|
-
subcircuit_id:
|
|
3255
|
+
pcb_ground_plane_id: z146.string(),
|
|
3256
|
+
pcb_group_id: z146.string().optional(),
|
|
3257
|
+
subcircuit_id: z146.string().optional(),
|
|
3234
3258
|
layer: layer_ref,
|
|
3235
|
-
points:
|
|
3259
|
+
points: z146.array(point)
|
|
3236
3260
|
}).describe("Defines a polygon region of a ground plane");
|
|
3237
3261
|
expectTypesMatch(true);
|
|
3238
3262
|
|
|
3239
3263
|
// src/pcb/pcb_thermal_spoke.ts
|
|
3240
|
-
import { z as
|
|
3241
|
-
var pcb_thermal_spoke =
|
|
3242
|
-
type:
|
|
3264
|
+
import { z as z147 } from "zod";
|
|
3265
|
+
var pcb_thermal_spoke = z147.object({
|
|
3266
|
+
type: z147.literal("pcb_thermal_spoke"),
|
|
3243
3267
|
pcb_thermal_spoke_id: getZodPrefixedIdWithDefault("pcb_thermal_spoke"),
|
|
3244
|
-
pcb_ground_plane_id:
|
|
3245
|
-
shape:
|
|
3246
|
-
spoke_count:
|
|
3268
|
+
pcb_ground_plane_id: z147.string(),
|
|
3269
|
+
shape: z147.string(),
|
|
3270
|
+
spoke_count: z147.number(),
|
|
3247
3271
|
spoke_thickness: distance,
|
|
3248
3272
|
spoke_inner_diameter: distance,
|
|
3249
3273
|
spoke_outer_diameter: distance,
|
|
3250
|
-
pcb_plated_hole_id:
|
|
3251
|
-
subcircuit_id:
|
|
3274
|
+
pcb_plated_hole_id: z147.string().optional(),
|
|
3275
|
+
subcircuit_id: z147.string().optional()
|
|
3252
3276
|
}).describe("Pattern for connecting a ground plane to a plated hole");
|
|
3253
3277
|
expectTypesMatch(true);
|
|
3254
3278
|
|
|
3255
3279
|
// src/pcb/pcb_copper_pour.ts
|
|
3256
|
-
import { z as
|
|
3257
|
-
var pcb_copper_pour_base =
|
|
3258
|
-
type:
|
|
3280
|
+
import { z as z148 } from "zod";
|
|
3281
|
+
var pcb_copper_pour_base = z148.object({
|
|
3282
|
+
type: z148.literal("pcb_copper_pour"),
|
|
3259
3283
|
pcb_copper_pour_id: getZodPrefixedIdWithDefault("pcb_copper_pour"),
|
|
3260
|
-
pcb_group_id:
|
|
3261
|
-
subcircuit_id:
|
|
3284
|
+
pcb_group_id: z148.string().optional(),
|
|
3285
|
+
subcircuit_id: z148.string().optional(),
|
|
3262
3286
|
layer: layer_ref,
|
|
3263
|
-
source_net_id:
|
|
3264
|
-
covered_with_solder_mask:
|
|
3287
|
+
source_net_id: z148.string().optional(),
|
|
3288
|
+
covered_with_solder_mask: z148.boolean().optional().default(true)
|
|
3265
3289
|
});
|
|
3266
3290
|
var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
|
|
3267
|
-
shape:
|
|
3291
|
+
shape: z148.literal("rect"),
|
|
3268
3292
|
center: point,
|
|
3269
3293
|
width: length,
|
|
3270
3294
|
height: length,
|
|
@@ -3272,16 +3296,16 @@ var pcb_copper_pour_rect = pcb_copper_pour_base.extend({
|
|
|
3272
3296
|
});
|
|
3273
3297
|
expectTypesMatch(true);
|
|
3274
3298
|
var pcb_copper_pour_brep = pcb_copper_pour_base.extend({
|
|
3275
|
-
shape:
|
|
3299
|
+
shape: z148.literal("brep"),
|
|
3276
3300
|
brep_shape
|
|
3277
3301
|
});
|
|
3278
3302
|
expectTypesMatch(true);
|
|
3279
3303
|
var pcb_copper_pour_polygon = pcb_copper_pour_base.extend({
|
|
3280
|
-
shape:
|
|
3281
|
-
points:
|
|
3304
|
+
shape: z148.literal("polygon"),
|
|
3305
|
+
points: z148.array(point)
|
|
3282
3306
|
});
|
|
3283
3307
|
expectTypesMatch(true);
|
|
3284
|
-
var pcb_copper_pour =
|
|
3308
|
+
var pcb_copper_pour = z148.discriminatedUnion("shape", [
|
|
3285
3309
|
pcb_copper_pour_rect,
|
|
3286
3310
|
pcb_copper_pour_brep,
|
|
3287
3311
|
pcb_copper_pour_polygon
|
|
@@ -3289,99 +3313,99 @@ var pcb_copper_pour = z147.discriminatedUnion("shape", [
|
|
|
3289
3313
|
expectTypesMatch(true);
|
|
3290
3314
|
|
|
3291
3315
|
// src/pcb/pcb_component_outside_board_error.ts
|
|
3292
|
-
import { z as
|
|
3316
|
+
import { z as z149 } from "zod";
|
|
3293
3317
|
var pcb_component_outside_board_error = base_circuit_json_error.extend({
|
|
3294
|
-
type:
|
|
3318
|
+
type: z149.literal("pcb_component_outside_board_error"),
|
|
3295
3319
|
pcb_component_outside_board_error_id: getZodPrefixedIdWithDefault(
|
|
3296
3320
|
"pcb_component_outside_board_error"
|
|
3297
3321
|
),
|
|
3298
|
-
error_type:
|
|
3299
|
-
pcb_component_id:
|
|
3300
|
-
pcb_board_id:
|
|
3322
|
+
error_type: z149.literal("pcb_component_outside_board_error").default("pcb_component_outside_board_error"),
|
|
3323
|
+
pcb_component_id: z149.string(),
|
|
3324
|
+
pcb_board_id: z149.string(),
|
|
3301
3325
|
component_center: point,
|
|
3302
|
-
component_bounds:
|
|
3303
|
-
min_x:
|
|
3304
|
-
max_x:
|
|
3305
|
-
min_y:
|
|
3306
|
-
max_y:
|
|
3326
|
+
component_bounds: z149.object({
|
|
3327
|
+
min_x: z149.number(),
|
|
3328
|
+
max_x: z149.number(),
|
|
3329
|
+
min_y: z149.number(),
|
|
3330
|
+
max_y: z149.number()
|
|
3307
3331
|
}),
|
|
3308
|
-
subcircuit_id:
|
|
3309
|
-
source_component_id:
|
|
3332
|
+
subcircuit_id: z149.string().optional(),
|
|
3333
|
+
source_component_id: z149.string().optional()
|
|
3310
3334
|
}).describe(
|
|
3311
3335
|
"Error emitted when a PCB component is placed outside the board boundaries"
|
|
3312
3336
|
);
|
|
3313
3337
|
expectTypesMatch(true);
|
|
3314
3338
|
|
|
3315
3339
|
// src/pcb/pcb_component_not_on_board_edge_error.ts
|
|
3316
|
-
import { z as
|
|
3340
|
+
import { z as z150 } from "zod";
|
|
3317
3341
|
var pcb_component_not_on_board_edge_error = base_circuit_json_error.extend({
|
|
3318
|
-
type:
|
|
3342
|
+
type: z150.literal("pcb_component_not_on_board_edge_error"),
|
|
3319
3343
|
pcb_component_not_on_board_edge_error_id: getZodPrefixedIdWithDefault(
|
|
3320
3344
|
"pcb_component_not_on_board_edge_error"
|
|
3321
3345
|
),
|
|
3322
|
-
error_type:
|
|
3323
|
-
pcb_component_id:
|
|
3324
|
-
pcb_board_id:
|
|
3346
|
+
error_type: z150.literal("pcb_component_not_on_board_edge_error").default("pcb_component_not_on_board_edge_error"),
|
|
3347
|
+
pcb_component_id: z150.string(),
|
|
3348
|
+
pcb_board_id: z150.string(),
|
|
3325
3349
|
component_center: point,
|
|
3326
|
-
pad_to_nearest_board_edge_distance:
|
|
3327
|
-
source_component_id:
|
|
3328
|
-
subcircuit_id:
|
|
3350
|
+
pad_to_nearest_board_edge_distance: z150.number(),
|
|
3351
|
+
source_component_id: z150.string().optional(),
|
|
3352
|
+
subcircuit_id: z150.string().optional()
|
|
3329
3353
|
}).describe(
|
|
3330
3354
|
"Error emitted when a component that must be placed on the board edge is centered away from the edge"
|
|
3331
3355
|
);
|
|
3332
3356
|
expectTypesMatch(true);
|
|
3333
3357
|
|
|
3334
3358
|
// src/pcb/pcb_component_invalid_layer_error.ts
|
|
3335
|
-
import { z as
|
|
3359
|
+
import { z as z151 } from "zod";
|
|
3336
3360
|
var pcb_component_invalid_layer_error = base_circuit_json_error.extend({
|
|
3337
|
-
type:
|
|
3361
|
+
type: z151.literal("pcb_component_invalid_layer_error"),
|
|
3338
3362
|
pcb_component_invalid_layer_error_id: getZodPrefixedIdWithDefault(
|
|
3339
3363
|
"pcb_component_invalid_layer_error"
|
|
3340
3364
|
),
|
|
3341
|
-
error_type:
|
|
3342
|
-
pcb_component_id:
|
|
3343
|
-
source_component_id:
|
|
3365
|
+
error_type: z151.literal("pcb_component_invalid_layer_error").default("pcb_component_invalid_layer_error"),
|
|
3366
|
+
pcb_component_id: z151.string().optional(),
|
|
3367
|
+
source_component_id: z151.string(),
|
|
3344
3368
|
layer: layer_ref,
|
|
3345
|
-
subcircuit_id:
|
|
3369
|
+
subcircuit_id: z151.string().optional()
|
|
3346
3370
|
}).describe(
|
|
3347
3371
|
"Error emitted when a component is placed on an invalid layer (components can only be on 'top' or 'bottom' layers)"
|
|
3348
3372
|
);
|
|
3349
3373
|
expectTypesMatch(true);
|
|
3350
3374
|
|
|
3351
3375
|
// src/pcb/pcb_via_clearance_error.ts
|
|
3352
|
-
import { z as
|
|
3376
|
+
import { z as z152 } from "zod";
|
|
3353
3377
|
var pcb_via_clearance_error = base_circuit_json_error.extend({
|
|
3354
|
-
type:
|
|
3378
|
+
type: z152.literal("pcb_via_clearance_error"),
|
|
3355
3379
|
pcb_error_id: getZodPrefixedIdWithDefault("pcb_error"),
|
|
3356
|
-
error_type:
|
|
3357
|
-
pcb_via_ids:
|
|
3380
|
+
error_type: z152.literal("pcb_via_clearance_error").default("pcb_via_clearance_error"),
|
|
3381
|
+
pcb_via_ids: z152.array(z152.string()).min(2),
|
|
3358
3382
|
minimum_clearance: distance.optional(),
|
|
3359
3383
|
actual_clearance: distance.optional(),
|
|
3360
|
-
pcb_center:
|
|
3361
|
-
x:
|
|
3362
|
-
y:
|
|
3384
|
+
pcb_center: z152.object({
|
|
3385
|
+
x: z152.number().optional(),
|
|
3386
|
+
y: z152.number().optional()
|
|
3363
3387
|
}).optional(),
|
|
3364
|
-
subcircuit_id:
|
|
3388
|
+
subcircuit_id: z152.string().optional()
|
|
3365
3389
|
}).describe("Error emitted when vias are closer than the allowed clearance");
|
|
3366
3390
|
expectTypesMatch(true);
|
|
3367
3391
|
|
|
3368
3392
|
// src/pcb/pcb_via_trace_clearance_error.ts
|
|
3369
|
-
import { z as
|
|
3393
|
+
import { z as z153 } from "zod";
|
|
3370
3394
|
var pcb_via_trace_clearance_error = base_circuit_json_error.extend({
|
|
3371
|
-
type:
|
|
3395
|
+
type: z153.literal("pcb_via_trace_clearance_error"),
|
|
3372
3396
|
pcb_via_trace_clearance_error_id: getZodPrefixedIdWithDefault(
|
|
3373
3397
|
"pcb_via_trace_clearance_error"
|
|
3374
3398
|
),
|
|
3375
|
-
error_type:
|
|
3376
|
-
pcb_via_id:
|
|
3377
|
-
pcb_trace_id:
|
|
3399
|
+
error_type: z153.literal("pcb_via_trace_clearance_error").default("pcb_via_trace_clearance_error"),
|
|
3400
|
+
pcb_via_id: z153.string(),
|
|
3401
|
+
pcb_trace_id: z153.string(),
|
|
3378
3402
|
minimum_clearance: distance.optional(),
|
|
3379
3403
|
actual_clearance: distance.optional(),
|
|
3380
|
-
center:
|
|
3381
|
-
x:
|
|
3382
|
-
y:
|
|
3404
|
+
center: z153.object({
|
|
3405
|
+
x: z153.number().optional(),
|
|
3406
|
+
y: z153.number().optional()
|
|
3383
3407
|
}).optional(),
|
|
3384
|
-
subcircuit_id:
|
|
3408
|
+
subcircuit_id: z153.string().optional()
|
|
3385
3409
|
}).describe(
|
|
3386
3410
|
"Error emitted when a via and trace are closer than the allowed clearance"
|
|
3387
3411
|
);
|
|
@@ -3390,41 +3414,41 @@ expectTypesMatch(
|
|
|
3390
3414
|
);
|
|
3391
3415
|
|
|
3392
3416
|
// src/pcb/pcb_pad_pad_clearance_error.ts
|
|
3393
|
-
import { z as
|
|
3417
|
+
import { z as z154 } from "zod";
|
|
3394
3418
|
var pcb_pad_pad_clearance_error = base_circuit_json_error.extend({
|
|
3395
|
-
type:
|
|
3419
|
+
type: z154.literal("pcb_pad_pad_clearance_error"),
|
|
3396
3420
|
pcb_pad_pad_clearance_error_id: getZodPrefixedIdWithDefault(
|
|
3397
3421
|
"pcb_pad_pad_clearance_error"
|
|
3398
3422
|
),
|
|
3399
|
-
error_type:
|
|
3400
|
-
pcb_pad_ids:
|
|
3423
|
+
error_type: z154.literal("pcb_pad_pad_clearance_error").default("pcb_pad_pad_clearance_error"),
|
|
3424
|
+
pcb_pad_ids: z154.array(z154.string()).min(2),
|
|
3401
3425
|
minimum_clearance: distance.optional(),
|
|
3402
3426
|
actual_clearance: distance.optional(),
|
|
3403
|
-
center:
|
|
3404
|
-
x:
|
|
3405
|
-
y:
|
|
3427
|
+
center: z154.object({
|
|
3428
|
+
x: z154.number().optional(),
|
|
3429
|
+
y: z154.number().optional()
|
|
3406
3430
|
}).optional(),
|
|
3407
|
-
subcircuit_id:
|
|
3431
|
+
subcircuit_id: z154.string().optional()
|
|
3408
3432
|
}).describe("Error emitted when pads are closer than the allowed clearance");
|
|
3409
3433
|
expectTypesMatch(true);
|
|
3410
3434
|
|
|
3411
3435
|
// src/pcb/pcb_pad_trace_clearance_error.ts
|
|
3412
|
-
import { z as
|
|
3436
|
+
import { z as z155 } from "zod";
|
|
3413
3437
|
var pcb_pad_trace_clearance_error = base_circuit_json_error.extend({
|
|
3414
|
-
type:
|
|
3438
|
+
type: z155.literal("pcb_pad_trace_clearance_error"),
|
|
3415
3439
|
pcb_pad_trace_clearance_error_id: getZodPrefixedIdWithDefault(
|
|
3416
3440
|
"pcb_pad_trace_clearance_error"
|
|
3417
3441
|
),
|
|
3418
|
-
error_type:
|
|
3419
|
-
pcb_pad_id:
|
|
3420
|
-
pcb_trace_id:
|
|
3442
|
+
error_type: z155.literal("pcb_pad_trace_clearance_error").default("pcb_pad_trace_clearance_error"),
|
|
3443
|
+
pcb_pad_id: z155.string(),
|
|
3444
|
+
pcb_trace_id: z155.string(),
|
|
3421
3445
|
minimum_clearance: distance.optional(),
|
|
3422
3446
|
actual_clearance: distance.optional(),
|
|
3423
|
-
center:
|
|
3424
|
-
x:
|
|
3425
|
-
y:
|
|
3447
|
+
center: z155.object({
|
|
3448
|
+
x: z155.number().optional(),
|
|
3449
|
+
y: z155.number().optional()
|
|
3426
3450
|
}).optional(),
|
|
3427
|
-
subcircuit_id:
|
|
3451
|
+
subcircuit_id: z155.string().optional()
|
|
3428
3452
|
}).describe(
|
|
3429
3453
|
"Error emitted when a pad and trace are closer than allowed clearance"
|
|
3430
3454
|
);
|
|
@@ -3433,89 +3457,89 @@ expectTypesMatch(
|
|
|
3433
3457
|
);
|
|
3434
3458
|
|
|
3435
3459
|
// src/pcb/pcb_courtyard_rect.ts
|
|
3436
|
-
import { z as
|
|
3437
|
-
var pcb_courtyard_rect =
|
|
3438
|
-
type:
|
|
3460
|
+
import { z as z156 } from "zod";
|
|
3461
|
+
var pcb_courtyard_rect = z156.object({
|
|
3462
|
+
type: z156.literal("pcb_courtyard_rect"),
|
|
3439
3463
|
pcb_courtyard_rect_id: getZodPrefixedIdWithDefault("pcb_courtyard_rect"),
|
|
3440
|
-
pcb_component_id:
|
|
3441
|
-
pcb_group_id:
|
|
3442
|
-
subcircuit_id:
|
|
3464
|
+
pcb_component_id: z156.string(),
|
|
3465
|
+
pcb_group_id: z156.string().optional(),
|
|
3466
|
+
subcircuit_id: z156.string().optional(),
|
|
3443
3467
|
center: point,
|
|
3444
3468
|
width: length,
|
|
3445
3469
|
height: length,
|
|
3446
3470
|
layer: visible_layer,
|
|
3447
3471
|
ccw_rotation: rotation.optional(),
|
|
3448
|
-
color:
|
|
3472
|
+
color: z156.string().optional()
|
|
3449
3473
|
}).describe("Defines a courtyard rectangle on the PCB");
|
|
3450
3474
|
expectTypesMatch(true);
|
|
3451
3475
|
|
|
3452
3476
|
// src/pcb/pcb_courtyard_outline.ts
|
|
3453
|
-
import { z as
|
|
3454
|
-
var pcb_courtyard_outline =
|
|
3455
|
-
type:
|
|
3477
|
+
import { z as z157 } from "zod";
|
|
3478
|
+
var pcb_courtyard_outline = z157.object({
|
|
3479
|
+
type: z157.literal("pcb_courtyard_outline"),
|
|
3456
3480
|
pcb_courtyard_outline_id: getZodPrefixedIdWithDefault(
|
|
3457
3481
|
"pcb_courtyard_outline"
|
|
3458
3482
|
),
|
|
3459
|
-
pcb_component_id:
|
|
3460
|
-
pcb_group_id:
|
|
3461
|
-
subcircuit_id:
|
|
3483
|
+
pcb_component_id: z157.string(),
|
|
3484
|
+
pcb_group_id: z157.string().optional(),
|
|
3485
|
+
subcircuit_id: z157.string().optional(),
|
|
3462
3486
|
layer: visible_layer,
|
|
3463
|
-
outline:
|
|
3487
|
+
outline: z157.array(point).min(2)
|
|
3464
3488
|
}).describe("Defines a courtyard outline on the PCB");
|
|
3465
3489
|
expectTypesMatch(true);
|
|
3466
3490
|
|
|
3467
3491
|
// src/pcb/pcb_courtyard_polygon.ts
|
|
3468
|
-
import { z as
|
|
3469
|
-
var pcb_courtyard_polygon =
|
|
3470
|
-
type:
|
|
3492
|
+
import { z as z158 } from "zod";
|
|
3493
|
+
var pcb_courtyard_polygon = z158.object({
|
|
3494
|
+
type: z158.literal("pcb_courtyard_polygon"),
|
|
3471
3495
|
pcb_courtyard_polygon_id: getZodPrefixedIdWithDefault(
|
|
3472
3496
|
"pcb_courtyard_polygon"
|
|
3473
3497
|
),
|
|
3474
|
-
pcb_component_id:
|
|
3475
|
-
pcb_group_id:
|
|
3476
|
-
subcircuit_id:
|
|
3498
|
+
pcb_component_id: z158.string(),
|
|
3499
|
+
pcb_group_id: z158.string().optional(),
|
|
3500
|
+
subcircuit_id: z158.string().optional(),
|
|
3477
3501
|
layer: visible_layer,
|
|
3478
|
-
points:
|
|
3479
|
-
color:
|
|
3502
|
+
points: z158.array(point).min(3),
|
|
3503
|
+
color: z158.string().optional()
|
|
3480
3504
|
}).describe("Defines a courtyard polygon on the PCB");
|
|
3481
3505
|
expectTypesMatch(true);
|
|
3482
3506
|
|
|
3483
3507
|
// src/pcb/pcb_courtyard_circle.ts
|
|
3484
|
-
import { z as
|
|
3485
|
-
var pcb_courtyard_circle =
|
|
3486
|
-
type:
|
|
3508
|
+
import { z as z159 } from "zod";
|
|
3509
|
+
var pcb_courtyard_circle = z159.object({
|
|
3510
|
+
type: z159.literal("pcb_courtyard_circle"),
|
|
3487
3511
|
pcb_courtyard_circle_id: getZodPrefixedIdWithDefault(
|
|
3488
3512
|
"pcb_courtyard_circle"
|
|
3489
3513
|
),
|
|
3490
|
-
pcb_component_id:
|
|
3491
|
-
pcb_group_id:
|
|
3492
|
-
subcircuit_id:
|
|
3514
|
+
pcb_component_id: z159.string(),
|
|
3515
|
+
pcb_group_id: z159.string().optional(),
|
|
3516
|
+
subcircuit_id: z159.string().optional(),
|
|
3493
3517
|
center: point,
|
|
3494
3518
|
radius: length,
|
|
3495
3519
|
layer: visible_layer,
|
|
3496
|
-
color:
|
|
3520
|
+
color: z159.string().optional()
|
|
3497
3521
|
}).describe("Defines a courtyard circle on the PCB");
|
|
3498
3522
|
expectTypesMatch(true);
|
|
3499
3523
|
|
|
3500
3524
|
// src/pcb/pcb_courtyard_pill.ts
|
|
3501
|
-
import { z as
|
|
3502
|
-
var pcb_courtyard_pill =
|
|
3503
|
-
type:
|
|
3525
|
+
import { z as z160 } from "zod";
|
|
3526
|
+
var pcb_courtyard_pill = z160.object({
|
|
3527
|
+
type: z160.literal("pcb_courtyard_pill"),
|
|
3504
3528
|
pcb_courtyard_pill_id: getZodPrefixedIdWithDefault("pcb_courtyard_pill"),
|
|
3505
|
-
pcb_component_id:
|
|
3506
|
-
pcb_group_id:
|
|
3507
|
-
subcircuit_id:
|
|
3529
|
+
pcb_component_id: z160.string(),
|
|
3530
|
+
pcb_group_id: z160.string().optional(),
|
|
3531
|
+
subcircuit_id: z160.string().optional(),
|
|
3508
3532
|
center: point,
|
|
3509
3533
|
width: length,
|
|
3510
3534
|
height: length,
|
|
3511
3535
|
radius: length,
|
|
3512
3536
|
layer: visible_layer,
|
|
3513
|
-
color:
|
|
3537
|
+
color: z160.string().optional()
|
|
3514
3538
|
}).describe("Defines a courtyard pill on the PCB");
|
|
3515
3539
|
expectTypesMatch(true);
|
|
3516
3540
|
|
|
3517
3541
|
// src/cad/cad_component.ts
|
|
3518
|
-
import { z as
|
|
3542
|
+
import { z as z161 } from "zod";
|
|
3519
3543
|
|
|
3520
3544
|
// src/cad/cad_model_conventions.ts
|
|
3521
3545
|
var cad_model_formats = [
|
|
@@ -3546,49 +3570,49 @@ var cadModelDefaultDirectionMap = {
|
|
|
3546
3570
|
};
|
|
3547
3571
|
|
|
3548
3572
|
// src/cad/cad_component.ts
|
|
3549
|
-
var cad_component =
|
|
3550
|
-
type:
|
|
3551
|
-
cad_component_id:
|
|
3552
|
-
pcb_component_id:
|
|
3553
|
-
source_component_id:
|
|
3573
|
+
var cad_component = z161.object({
|
|
3574
|
+
type: z161.literal("cad_component"),
|
|
3575
|
+
cad_component_id: z161.string(),
|
|
3576
|
+
pcb_component_id: z161.string(),
|
|
3577
|
+
source_component_id: z161.string(),
|
|
3554
3578
|
position: point3,
|
|
3555
3579
|
rotation: point3.optional(),
|
|
3556
3580
|
size: point3.optional(),
|
|
3557
3581
|
layer: layer_ref.optional(),
|
|
3558
|
-
subcircuit_id:
|
|
3582
|
+
subcircuit_id: z161.string().optional(),
|
|
3559
3583
|
// These are all ways to generate/load the 3d model
|
|
3560
|
-
footprinter_string:
|
|
3561
|
-
model_obj_url:
|
|
3562
|
-
model_stl_url:
|
|
3563
|
-
model_3mf_url:
|
|
3564
|
-
model_gltf_url:
|
|
3565
|
-
model_glb_url:
|
|
3566
|
-
model_step_url:
|
|
3567
|
-
model_wrl_url:
|
|
3584
|
+
footprinter_string: z161.string().optional(),
|
|
3585
|
+
model_obj_url: z161.string().optional(),
|
|
3586
|
+
model_stl_url: z161.string().optional(),
|
|
3587
|
+
model_3mf_url: z161.string().optional(),
|
|
3588
|
+
model_gltf_url: z161.string().optional(),
|
|
3589
|
+
model_glb_url: z161.string().optional(),
|
|
3590
|
+
model_step_url: z161.string().optional(),
|
|
3591
|
+
model_wrl_url: z161.string().optional(),
|
|
3568
3592
|
model_asset: asset.optional(),
|
|
3569
|
-
model_unit_to_mm_scale_factor:
|
|
3570
|
-
model_board_normal_direction:
|
|
3593
|
+
model_unit_to_mm_scale_factor: z161.number().optional(),
|
|
3594
|
+
model_board_normal_direction: z161.enum(cad_model_axis_directions).optional().describe(
|
|
3571
3595
|
`The direction in the model's coordinate space that is considered "up" or "coming out of the board surface"`
|
|
3572
3596
|
),
|
|
3573
3597
|
model_origin_position: point3.optional(),
|
|
3574
|
-
model_origin_alignment:
|
|
3598
|
+
model_origin_alignment: z161.enum([
|
|
3575
3599
|
"unknown",
|
|
3576
3600
|
"center",
|
|
3577
3601
|
"center_of_component_on_board_surface",
|
|
3578
3602
|
"bottom_center_of_component"
|
|
3579
3603
|
]).optional(),
|
|
3580
|
-
model_object_fit:
|
|
3581
|
-
model_jscad:
|
|
3582
|
-
show_as_translucent_model:
|
|
3583
|
-
show_as_bounding_box:
|
|
3584
|
-
anchor_alignment:
|
|
3604
|
+
model_object_fit: z161.enum(["contain_within_bounds", "fill_bounds"]).optional().default("contain_within_bounds"),
|
|
3605
|
+
model_jscad: z161.any().optional(),
|
|
3606
|
+
show_as_translucent_model: z161.boolean().optional(),
|
|
3607
|
+
show_as_bounding_box: z161.boolean().optional(),
|
|
3608
|
+
anchor_alignment: z161.enum(["center", "center_of_component_on_board_surface"]).optional().default("center")
|
|
3585
3609
|
}).describe("Defines a component on the PCB");
|
|
3586
3610
|
expectTypesMatch(true);
|
|
3587
3611
|
|
|
3588
3612
|
// src/simulation/simulation_voltage_source.ts
|
|
3589
|
-
import { z as
|
|
3590
|
-
var wave_shape =
|
|
3591
|
-
var percentage =
|
|
3613
|
+
import { z as z162 } from "zod";
|
|
3614
|
+
var wave_shape = z162.enum(["sinewave", "square", "triangle", "sawtooth"]);
|
|
3615
|
+
var percentage = z162.union([z162.string(), z162.number()]).transform((val) => {
|
|
3592
3616
|
if (typeof val === "string") {
|
|
3593
3617
|
if (val.endsWith("%")) {
|
|
3594
3618
|
return parseFloat(val.slice(0, -1)) / 100;
|
|
@@ -3597,30 +3621,30 @@ var percentage = z161.union([z161.string(), z161.number()]).transform((val) => {
|
|
|
3597
3621
|
}
|
|
3598
3622
|
return val;
|
|
3599
3623
|
}).pipe(
|
|
3600
|
-
|
|
3624
|
+
z162.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
|
|
3601
3625
|
);
|
|
3602
|
-
var simulation_dc_voltage_source =
|
|
3603
|
-
type:
|
|
3626
|
+
var simulation_dc_voltage_source = z162.object({
|
|
3627
|
+
type: z162.literal("simulation_voltage_source"),
|
|
3604
3628
|
simulation_voltage_source_id: getZodPrefixedIdWithDefault(
|
|
3605
3629
|
"simulation_voltage_source"
|
|
3606
3630
|
),
|
|
3607
|
-
is_dc_source:
|
|
3608
|
-
positive_source_port_id:
|
|
3609
|
-
negative_source_port_id:
|
|
3610
|
-
positive_source_net_id:
|
|
3611
|
-
negative_source_net_id:
|
|
3631
|
+
is_dc_source: z162.literal(true).optional().default(true),
|
|
3632
|
+
positive_source_port_id: z162.string().optional(),
|
|
3633
|
+
negative_source_port_id: z162.string().optional(),
|
|
3634
|
+
positive_source_net_id: z162.string().optional(),
|
|
3635
|
+
negative_source_net_id: z162.string().optional(),
|
|
3612
3636
|
voltage
|
|
3613
3637
|
}).describe("Defines a DC voltage source for simulation");
|
|
3614
|
-
var simulation_ac_voltage_source =
|
|
3615
|
-
type:
|
|
3638
|
+
var simulation_ac_voltage_source = z162.object({
|
|
3639
|
+
type: z162.literal("simulation_voltage_source"),
|
|
3616
3640
|
simulation_voltage_source_id: getZodPrefixedIdWithDefault(
|
|
3617
3641
|
"simulation_voltage_source"
|
|
3618
3642
|
),
|
|
3619
|
-
is_dc_source:
|
|
3620
|
-
terminal1_source_port_id:
|
|
3621
|
-
terminal2_source_port_id:
|
|
3622
|
-
terminal1_source_net_id:
|
|
3623
|
-
terminal2_source_net_id:
|
|
3643
|
+
is_dc_source: z162.literal(false),
|
|
3644
|
+
terminal1_source_port_id: z162.string().optional(),
|
|
3645
|
+
terminal2_source_port_id: z162.string().optional(),
|
|
3646
|
+
terminal1_source_net_id: z162.string().optional(),
|
|
3647
|
+
terminal2_source_net_id: z162.string().optional(),
|
|
3624
3648
|
voltage: voltage.optional(),
|
|
3625
3649
|
frequency: frequency.optional(),
|
|
3626
3650
|
peak_to_peak_voltage: voltage.optional(),
|
|
@@ -3628,14 +3652,14 @@ var simulation_ac_voltage_source = z161.object({
|
|
|
3628
3652
|
phase: rotation.optional(),
|
|
3629
3653
|
duty_cycle: percentage.optional()
|
|
3630
3654
|
}).describe("Defines an AC voltage source for simulation");
|
|
3631
|
-
var simulation_voltage_source =
|
|
3655
|
+
var simulation_voltage_source = z162.union([simulation_dc_voltage_source, simulation_ac_voltage_source]).describe("Defines a voltage source for simulation");
|
|
3632
3656
|
expectTypesMatch(true);
|
|
3633
3657
|
expectTypesMatch(true);
|
|
3634
3658
|
expectTypesMatch(true);
|
|
3635
3659
|
|
|
3636
3660
|
// src/simulation/simulation_current_source.ts
|
|
3637
|
-
import { z as
|
|
3638
|
-
var percentage2 =
|
|
3661
|
+
import { z as z163 } from "zod";
|
|
3662
|
+
var percentage2 = z163.union([z163.string(), z163.number()]).transform((val) => {
|
|
3639
3663
|
if (typeof val === "string") {
|
|
3640
3664
|
if (val.endsWith("%")) {
|
|
3641
3665
|
return parseFloat(val.slice(0, -1)) / 100;
|
|
@@ -3644,30 +3668,30 @@ var percentage2 = z162.union([z162.string(), z162.number()]).transform((val) =>
|
|
|
3644
3668
|
}
|
|
3645
3669
|
return val;
|
|
3646
3670
|
}).pipe(
|
|
3647
|
-
|
|
3671
|
+
z163.number().min(0, "Duty cycle must be non-negative").max(1, "Duty cycle cannot be greater than 100%")
|
|
3648
3672
|
);
|
|
3649
|
-
var simulation_dc_current_source =
|
|
3650
|
-
type:
|
|
3673
|
+
var simulation_dc_current_source = z163.object({
|
|
3674
|
+
type: z163.literal("simulation_current_source"),
|
|
3651
3675
|
simulation_current_source_id: getZodPrefixedIdWithDefault(
|
|
3652
3676
|
"simulation_current_source"
|
|
3653
3677
|
),
|
|
3654
|
-
is_dc_source:
|
|
3655
|
-
positive_source_port_id:
|
|
3656
|
-
negative_source_port_id:
|
|
3657
|
-
positive_source_net_id:
|
|
3658
|
-
negative_source_net_id:
|
|
3678
|
+
is_dc_source: z163.literal(true).optional().default(true),
|
|
3679
|
+
positive_source_port_id: z163.string().optional(),
|
|
3680
|
+
negative_source_port_id: z163.string().optional(),
|
|
3681
|
+
positive_source_net_id: z163.string().optional(),
|
|
3682
|
+
negative_source_net_id: z163.string().optional(),
|
|
3659
3683
|
current
|
|
3660
3684
|
}).describe("Defines a DC current source for simulation");
|
|
3661
|
-
var simulation_ac_current_source =
|
|
3662
|
-
type:
|
|
3685
|
+
var simulation_ac_current_source = z163.object({
|
|
3686
|
+
type: z163.literal("simulation_current_source"),
|
|
3663
3687
|
simulation_current_source_id: getZodPrefixedIdWithDefault(
|
|
3664
3688
|
"simulation_current_source"
|
|
3665
3689
|
),
|
|
3666
|
-
is_dc_source:
|
|
3667
|
-
terminal1_source_port_id:
|
|
3668
|
-
terminal2_source_port_id:
|
|
3669
|
-
terminal1_source_net_id:
|
|
3670
|
-
terminal2_source_net_id:
|
|
3690
|
+
is_dc_source: z163.literal(false),
|
|
3691
|
+
terminal1_source_port_id: z163.string().optional(),
|
|
3692
|
+
terminal2_source_port_id: z163.string().optional(),
|
|
3693
|
+
terminal1_source_net_id: z163.string().optional(),
|
|
3694
|
+
terminal2_source_net_id: z163.string().optional(),
|
|
3671
3695
|
current: current.optional(),
|
|
3672
3696
|
frequency: frequency.optional(),
|
|
3673
3697
|
peak_to_peak_current: current.optional(),
|
|
@@ -3675,25 +3699,25 @@ var simulation_ac_current_source = z162.object({
|
|
|
3675
3699
|
phase: rotation.optional(),
|
|
3676
3700
|
duty_cycle: percentage2.optional()
|
|
3677
3701
|
}).describe("Defines an AC current source for simulation");
|
|
3678
|
-
var simulation_current_source =
|
|
3702
|
+
var simulation_current_source = z163.union([simulation_dc_current_source, simulation_ac_current_source]).describe("Defines a current source for simulation");
|
|
3679
3703
|
expectTypesMatch(true);
|
|
3680
3704
|
expectTypesMatch(true);
|
|
3681
3705
|
expectTypesMatch(true);
|
|
3682
3706
|
|
|
3683
3707
|
// src/simulation/simulation_experiment.ts
|
|
3684
|
-
import { z as
|
|
3685
|
-
var experiment_type =
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3708
|
+
import { z as z164 } from "zod";
|
|
3709
|
+
var experiment_type = z164.union([
|
|
3710
|
+
z164.literal("spice_dc_sweep"),
|
|
3711
|
+
z164.literal("spice_dc_operating_point"),
|
|
3712
|
+
z164.literal("spice_transient_analysis"),
|
|
3713
|
+
z164.literal("spice_ac_analysis")
|
|
3690
3714
|
]);
|
|
3691
|
-
var simulation_experiment =
|
|
3692
|
-
type:
|
|
3715
|
+
var simulation_experiment = z164.object({
|
|
3716
|
+
type: z164.literal("simulation_experiment"),
|
|
3693
3717
|
simulation_experiment_id: getZodPrefixedIdWithDefault(
|
|
3694
3718
|
"simulation_experiment"
|
|
3695
3719
|
),
|
|
3696
|
-
name:
|
|
3720
|
+
name: z164.string(),
|
|
3697
3721
|
experiment_type,
|
|
3698
3722
|
time_per_step: duration_ms.optional(),
|
|
3699
3723
|
start_time_ms: ms.optional(),
|
|
@@ -3702,53 +3726,53 @@ var simulation_experiment = z163.object({
|
|
|
3702
3726
|
expectTypesMatch(true);
|
|
3703
3727
|
|
|
3704
3728
|
// src/simulation/simulation_transient_voltage_graph.ts
|
|
3705
|
-
import { z as
|
|
3706
|
-
var simulation_transient_voltage_graph =
|
|
3707
|
-
type:
|
|
3729
|
+
import { z as z165 } from "zod";
|
|
3730
|
+
var simulation_transient_voltage_graph = z165.object({
|
|
3731
|
+
type: z165.literal("simulation_transient_voltage_graph"),
|
|
3708
3732
|
simulation_transient_voltage_graph_id: getZodPrefixedIdWithDefault(
|
|
3709
3733
|
"simulation_transient_voltage_graph"
|
|
3710
3734
|
),
|
|
3711
|
-
simulation_experiment_id:
|
|
3712
|
-
timestamps_ms:
|
|
3713
|
-
voltage_levels:
|
|
3714
|
-
source_component_id:
|
|
3715
|
-
subcircuit_connectivity_map_key:
|
|
3735
|
+
simulation_experiment_id: z165.string(),
|
|
3736
|
+
timestamps_ms: z165.array(z165.number()).optional(),
|
|
3737
|
+
voltage_levels: z165.array(z165.number()),
|
|
3738
|
+
source_component_id: z165.string().optional(),
|
|
3739
|
+
subcircuit_connectivity_map_key: z165.string().optional(),
|
|
3716
3740
|
time_per_step: duration_ms,
|
|
3717
3741
|
start_time_ms: ms,
|
|
3718
3742
|
end_time_ms: ms,
|
|
3719
|
-
name:
|
|
3720
|
-
color:
|
|
3743
|
+
name: z165.string().optional(),
|
|
3744
|
+
color: z165.string().optional()
|
|
3721
3745
|
}).describe("Stores voltage measurements over time for a simulation");
|
|
3722
3746
|
expectTypesMatch(true);
|
|
3723
3747
|
|
|
3724
3748
|
// src/simulation/simulation_switch.ts
|
|
3725
|
-
import { z as
|
|
3726
|
-
var simulation_switch =
|
|
3727
|
-
type:
|
|
3749
|
+
import { z as z166 } from "zod";
|
|
3750
|
+
var simulation_switch = z166.object({
|
|
3751
|
+
type: z166.literal("simulation_switch"),
|
|
3728
3752
|
simulation_switch_id: getZodPrefixedIdWithDefault("simulation_switch"),
|
|
3729
|
-
source_component_id:
|
|
3753
|
+
source_component_id: z166.string().optional(),
|
|
3730
3754
|
closes_at: ms.optional(),
|
|
3731
3755
|
opens_at: ms.optional(),
|
|
3732
|
-
starts_closed:
|
|
3756
|
+
starts_closed: z166.boolean().optional(),
|
|
3733
3757
|
switching_frequency: frequency.optional()
|
|
3734
3758
|
}).describe("Defines a switch for simulation timing control");
|
|
3735
3759
|
expectTypesMatch(true);
|
|
3736
3760
|
|
|
3737
3761
|
// src/simulation/simulation_voltage_probe.ts
|
|
3738
|
-
import { z as
|
|
3739
|
-
var simulation_voltage_probe =
|
|
3740
|
-
type:
|
|
3762
|
+
import { z as z167 } from "zod";
|
|
3763
|
+
var simulation_voltage_probe = z167.object({
|
|
3764
|
+
type: z167.literal("simulation_voltage_probe"),
|
|
3741
3765
|
simulation_voltage_probe_id: getZodPrefixedIdWithDefault(
|
|
3742
3766
|
"simulation_voltage_probe"
|
|
3743
3767
|
),
|
|
3744
|
-
source_component_id:
|
|
3745
|
-
name:
|
|
3746
|
-
signal_input_source_port_id:
|
|
3747
|
-
signal_input_source_net_id:
|
|
3748
|
-
reference_input_source_port_id:
|
|
3749
|
-
reference_input_source_net_id:
|
|
3750
|
-
subcircuit_id:
|
|
3751
|
-
color:
|
|
3768
|
+
source_component_id: z167.string().optional(),
|
|
3769
|
+
name: z167.string().optional(),
|
|
3770
|
+
signal_input_source_port_id: z167.string().optional(),
|
|
3771
|
+
signal_input_source_net_id: z167.string().optional(),
|
|
3772
|
+
reference_input_source_port_id: z167.string().optional(),
|
|
3773
|
+
reference_input_source_net_id: z167.string().optional(),
|
|
3774
|
+
subcircuit_id: z167.string().optional(),
|
|
3775
|
+
color: z167.string().optional()
|
|
3752
3776
|
}).describe(
|
|
3753
3777
|
"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."
|
|
3754
3778
|
).superRefine((data, ctx) => {
|
|
@@ -3758,20 +3782,20 @@ var simulation_voltage_probe = z166.object({
|
|
|
3758
3782
|
const has_nets = !!data.signal_input_source_net_id || !!data.reference_input_source_net_id;
|
|
3759
3783
|
if (has_ports && has_nets) {
|
|
3760
3784
|
ctx.addIssue({
|
|
3761
|
-
code:
|
|
3785
|
+
code: z167.ZodIssueCode.custom,
|
|
3762
3786
|
message: "Cannot mix port and net connections in a differential probe."
|
|
3763
3787
|
});
|
|
3764
3788
|
} else if (has_ports) {
|
|
3765
3789
|
if (!data.signal_input_source_port_id || !data.reference_input_source_port_id) {
|
|
3766
3790
|
ctx.addIssue({
|
|
3767
|
-
code:
|
|
3791
|
+
code: z167.ZodIssueCode.custom,
|
|
3768
3792
|
message: "Differential port probe requires both signal_input_source_port_id and reference_input_source_port_id."
|
|
3769
3793
|
});
|
|
3770
3794
|
}
|
|
3771
3795
|
} else if (has_nets) {
|
|
3772
3796
|
if (!data.signal_input_source_net_id || !data.reference_input_source_net_id) {
|
|
3773
3797
|
ctx.addIssue({
|
|
3774
|
-
code:
|
|
3798
|
+
code: z167.ZodIssueCode.custom,
|
|
3775
3799
|
message: "Differential net probe requires both signal_input_source_net_id and reference_input_source_net_id."
|
|
3776
3800
|
});
|
|
3777
3801
|
}
|
|
@@ -3779,7 +3803,7 @@ var simulation_voltage_probe = z166.object({
|
|
|
3779
3803
|
} else {
|
|
3780
3804
|
if (!!data.signal_input_source_port_id === !!data.signal_input_source_net_id) {
|
|
3781
3805
|
ctx.addIssue({
|
|
3782
|
-
code:
|
|
3806
|
+
code: z167.ZodIssueCode.custom,
|
|
3783
3807
|
message: "A voltage probe must have exactly one of signal_input_source_port_id or signal_input_source_net_id."
|
|
3784
3808
|
});
|
|
3785
3809
|
}
|
|
@@ -3788,50 +3812,50 @@ var simulation_voltage_probe = z166.object({
|
|
|
3788
3812
|
expectTypesMatch(true);
|
|
3789
3813
|
|
|
3790
3814
|
// src/simulation/simulation_unknown_experiment_error.ts
|
|
3791
|
-
import { z as
|
|
3815
|
+
import { z as z168 } from "zod";
|
|
3792
3816
|
var simulation_unknown_experiment_error = base_circuit_json_error.extend({
|
|
3793
|
-
type:
|
|
3817
|
+
type: z168.literal("simulation_unknown_experiment_error"),
|
|
3794
3818
|
simulation_unknown_experiment_error_id: getZodPrefixedIdWithDefault(
|
|
3795
3819
|
"simulation_unknown_experiment_error"
|
|
3796
3820
|
),
|
|
3797
|
-
error_type:
|
|
3798
|
-
simulation_experiment_id:
|
|
3799
|
-
subcircuit_id:
|
|
3821
|
+
error_type: z168.literal("simulation_unknown_experiment_error").default("simulation_unknown_experiment_error"),
|
|
3822
|
+
simulation_experiment_id: z168.string().optional(),
|
|
3823
|
+
subcircuit_id: z168.string().optional()
|
|
3800
3824
|
}).describe("An unknown error occurred during the simulation experiment.");
|
|
3801
3825
|
expectTypesMatch(true);
|
|
3802
3826
|
|
|
3803
3827
|
// src/simulation/simulation_op_amp.ts
|
|
3804
|
-
import { z as
|
|
3805
|
-
var simulation_op_amp =
|
|
3806
|
-
type:
|
|
3828
|
+
import { z as z169 } from "zod";
|
|
3829
|
+
var simulation_op_amp = z169.object({
|
|
3830
|
+
type: z169.literal("simulation_op_amp"),
|
|
3807
3831
|
simulation_op_amp_id: getZodPrefixedIdWithDefault("simulation_op_amp"),
|
|
3808
|
-
source_component_id:
|
|
3809
|
-
inverting_input_source_port_id:
|
|
3810
|
-
non_inverting_input_source_port_id:
|
|
3811
|
-
output_source_port_id:
|
|
3812
|
-
positive_supply_source_port_id:
|
|
3813
|
-
negative_supply_source_port_id:
|
|
3832
|
+
source_component_id: z169.string().optional(),
|
|
3833
|
+
inverting_input_source_port_id: z169.string(),
|
|
3834
|
+
non_inverting_input_source_port_id: z169.string(),
|
|
3835
|
+
output_source_port_id: z169.string(),
|
|
3836
|
+
positive_supply_source_port_id: z169.string(),
|
|
3837
|
+
negative_supply_source_port_id: z169.string()
|
|
3814
3838
|
}).describe("Defines a simple ideal operational amplifier for simulation");
|
|
3815
3839
|
expectTypesMatch(true);
|
|
3816
3840
|
|
|
3817
3841
|
// src/simulation/simulation_spice_subcircuit.ts
|
|
3818
|
-
import { z as
|
|
3819
|
-
var simulation_spice_subcircuit =
|
|
3820
|
-
type:
|
|
3842
|
+
import { z as z170 } from "zod";
|
|
3843
|
+
var simulation_spice_subcircuit = z170.object({
|
|
3844
|
+
type: z170.literal("simulation_spice_subcircuit"),
|
|
3821
3845
|
simulation_spice_subcircuit_id: getZodPrefixedIdWithDefault(
|
|
3822
3846
|
"simulation_spice_subcircuit"
|
|
3823
3847
|
),
|
|
3824
|
-
source_component_id:
|
|
3825
|
-
spice_pin_to_source_port_map:
|
|
3826
|
-
subcircuit_source:
|
|
3848
|
+
source_component_id: z170.string(),
|
|
3849
|
+
spice_pin_to_source_port_map: z170.record(z170.string(), z170.string()),
|
|
3850
|
+
subcircuit_source: z170.string()
|
|
3827
3851
|
}).describe("Defines a custom SPICE subcircuit model for simulation");
|
|
3828
3852
|
expectTypesMatch(
|
|
3829
3853
|
true
|
|
3830
3854
|
);
|
|
3831
3855
|
|
|
3832
3856
|
// src/any_circuit_element.ts
|
|
3833
|
-
import { z as
|
|
3834
|
-
var any_circuit_element =
|
|
3857
|
+
import { z as z171 } from "zod";
|
|
3858
|
+
var any_circuit_element = z171.union([
|
|
3835
3859
|
source_trace,
|
|
3836
3860
|
source_port,
|
|
3837
3861
|
source_component_internal_connection,
|
|
@@ -3902,6 +3926,7 @@ var any_circuit_element = z170.union([
|
|
|
3902
3926
|
pcb_silkscreen_rect,
|
|
3903
3927
|
pcb_silkscreen_circle,
|
|
3904
3928
|
pcb_silkscreen_oval,
|
|
3929
|
+
pcb_silkscreen_graphic,
|
|
3905
3930
|
pcb_trace_error,
|
|
3906
3931
|
pcb_trace_missing_error,
|
|
3907
3932
|
pcb_placement_error,
|
|
@@ -4078,6 +4103,8 @@ export {
|
|
|
4078
4103
|
pcb_route_hint,
|
|
4079
4104
|
pcb_route_hints,
|
|
4080
4105
|
pcb_silkscreen_circle,
|
|
4106
|
+
pcb_silkscreen_graphic,
|
|
4107
|
+
pcb_silkscreen_graphic_brep,
|
|
4081
4108
|
pcb_silkscreen_line,
|
|
4082
4109
|
pcb_silkscreen_oval,
|
|
4083
4110
|
pcb_silkscreen_path,
|