cyclecad 3.10.0 → 3.10.1

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.
@@ -15,11 +15,14 @@
15
15
  ],
16
16
  "tips": [
17
17
  "Double-click to create a closed line returning to start point",
18
- "Hold Shift to constrain to 45° angles",
18
+ "Hold Shift to constrain to 45\u00b0 angles",
19
19
  "Use grid snapping for precise placement",
20
20
  "Lines automatically snap to endpoints, midpoints, centers"
21
21
  ],
22
- "related": ["sketch-rectangle", "sketch-polyline"]
22
+ "related": [
23
+ "sketch-rectangle",
24
+ "sketch-polyline"
25
+ ]
23
26
  },
24
27
  {
25
28
  "id": "sketch-rectangle",
@@ -40,7 +43,10 @@
40
43
  "Corners snap to grid for perfect alignment",
41
44
  "Edit dimensions afterward in properties panel for precise sizing"
42
45
  ],
43
- "related": ["sketch-line", "constraint-coincident"]
46
+ "related": [
47
+ "sketch-line",
48
+ "constraint-coincident"
49
+ ]
44
50
  },
45
51
  {
46
52
  "id": "sketch-circle",
@@ -61,7 +67,10 @@
61
67
  "Create multiple circles in one session",
62
68
  "Circles snap to existing geometry"
63
69
  ],
64
- "related": ["sketch-arc", "constraint-concentric"]
70
+ "related": [
71
+ "sketch-arc",
72
+ "constraint-concentric"
73
+ ]
65
74
  },
66
75
  {
67
76
  "id": "sketch-arc",
@@ -82,7 +91,10 @@
82
91
  "Tangent arcs connect smoothly to adjacent lines",
83
92
  "Press A twice to toggle between arc modes"
84
93
  ],
85
- "related": ["sketch-circle", "sketch-polyline"]
94
+ "related": [
95
+ "sketch-circle",
96
+ "sketch-polyline"
97
+ ]
86
98
  },
87
99
  {
88
100
  "id": "sketch-polyline",
@@ -104,7 +116,10 @@
104
116
  "Double-clicking last point on start point closes shape",
105
117
  "Useful for creating complex profiles rapidly"
106
118
  ],
107
- "related": ["sketch-line", "sketch-arc"]
119
+ "related": [
120
+ "sketch-line",
121
+ "sketch-arc"
122
+ ]
108
123
  },
109
124
  {
110
125
  "id": "sketch-spline",
@@ -125,7 +140,10 @@
125
140
  "Splines can be constrained like lines",
126
141
  "Edit spline by selecting and dragging control points"
127
142
  ],
128
- "related": ["sketch-line", "sketch-polyline"]
143
+ "related": [
144
+ "sketch-line",
145
+ "sketch-polyline"
146
+ ]
129
147
  },
130
148
  {
131
149
  "id": "sketch-text",
@@ -147,7 +165,9 @@
147
165
  "Can be rotated and moved like other sketch elements",
148
166
  "Essential for labeling features in engineering drawings"
149
167
  ],
150
- "related": ["drawing-text"]
168
+ "related": [
169
+ "drawing-text"
170
+ ]
151
171
  },
152
172
  {
153
173
  "id": "constraint-coincident",
@@ -167,7 +187,10 @@
167
187
  "Reduces degrees of freedom by 1",
168
188
  "Use to connect geometry pieces"
169
189
  ],
170
- "related": ["constraint-distance", "constraint-horizontal"]
190
+ "related": [
191
+ "constraint-distance",
192
+ "constraint-horizontal"
193
+ ]
171
194
  },
172
195
  {
173
196
  "id": "constraint-horizontal",
@@ -187,7 +210,10 @@
187
210
  "Over-constraint makes line horizontal AND violates other constraints",
188
211
  "Complementary to Vertical constraint"
189
212
  ],
190
- "related": ["constraint-vertical", "constraint-parallel"]
213
+ "related": [
214
+ "constraint-vertical",
215
+ "constraint-parallel"
216
+ ]
191
217
  },
192
218
  {
193
219
  "id": "constraint-vertical",
@@ -207,7 +233,10 @@
207
233
  "Complementary to Horizontal constraint",
208
234
  "Essential for rectangular profiles"
209
235
  ],
210
- "related": ["constraint-horizontal", "constraint-perpendicular"]
236
+ "related": [
237
+ "constraint-horizontal",
238
+ "constraint-perpendicular"
239
+ ]
211
240
  },
212
241
  {
213
242
  "id": "constraint-perpendicular",
@@ -215,7 +244,7 @@
215
244
  "category": "Sketch Constraints",
216
245
  "workspace": "Sketch",
217
246
  "shortcut": "Pe",
218
- "description": "Forces two line segments to meet at exactly 90° angle",
247
+ "description": "Forces two line segments to meet at exactly 90\u00b0 angle",
219
248
  "steps": [
220
249
  "Select two line segments",
221
250
  "Press Pe or click Perpendicular",
@@ -223,11 +252,14 @@
223
252
  ],
224
253
  "tips": [
225
254
  "Works on any pair of lines, connected or not",
226
- "Will move lines to create 90° angle if needed",
255
+ "Will move lines to create 90\u00b0 angle if needed",
227
256
  "Essential for rectangular geometry",
228
257
  "Reduces degrees of freedom by 1"
229
258
  ],
230
- "related": ["constraint-parallel", "constraint-angle"]
259
+ "related": [
260
+ "constraint-parallel",
261
+ "constraint-angle"
262
+ ]
231
263
  },
232
264
  {
233
265
  "id": "constraint-parallel",
@@ -247,7 +279,10 @@
247
279
  "Useful for symmetric geometry",
248
280
  "Can apply to multiple lines in one operation"
249
281
  ],
250
- "related": ["constraint-perpendicular", "constraint-symmetric"]
282
+ "related": [
283
+ "constraint-perpendicular",
284
+ "constraint-symmetric"
285
+ ]
251
286
  },
252
287
  {
253
288
  "id": "constraint-tangent",
@@ -267,7 +302,10 @@
267
302
  "Works with splines and other curves",
268
303
  "Two arcs can be tangent to each other"
269
304
  ],
270
- "related": ["sketch-arc", "sketch-spline"]
305
+ "related": [
306
+ "sketch-arc",
307
+ "sketch-spline"
308
+ ]
271
309
  },
272
310
  {
273
311
  "id": "constraint-equal",
@@ -287,7 +325,10 @@
287
325
  "Useful for symmetric patterns",
288
326
  "Can apply to multiple objects at once"
289
327
  ],
290
- "related": ["constraint-symmetric", "constraint-concentric"]
328
+ "related": [
329
+ "constraint-symmetric",
330
+ "constraint-concentric"
331
+ ]
291
332
  },
292
333
  {
293
334
  "id": "constraint-fixed",
@@ -307,7 +348,10 @@
307
348
  "Lock only essential reference geometry",
308
349
  "Can lock individual coordinates (X or Y only)"
309
350
  ],
310
- "related": ["constraint-concentric", "constraint-distance"]
351
+ "related": [
352
+ "constraint-concentric",
353
+ "constraint-distance"
354
+ ]
311
355
  },
312
356
  {
313
357
  "id": "constraint-concentric",
@@ -327,7 +371,10 @@
327
371
  "Works with circles, arcs, and ellipses",
328
372
  "Reduces degrees of freedom by 2"
329
373
  ],
330
- "related": ["constraint-equal", "constraint-distance"]
374
+ "related": [
375
+ "constraint-equal",
376
+ "constraint-distance"
377
+ ]
331
378
  },
332
379
  {
333
380
  "id": "constraint-symmetric",
@@ -347,7 +394,10 @@
347
394
  "Essential for symmetric part design",
348
395
  "Automatically maintains reflection"
349
396
  ],
350
- "related": ["constraint-parallel", "constraint-equal"]
397
+ "related": [
398
+ "constraint-parallel",
399
+ "constraint-equal"
400
+ ]
351
401
  },
352
402
  {
353
403
  "id": "constraint-distance",
@@ -368,7 +418,10 @@
368
418
  "Negative distance inverts direction",
369
419
  "Can constrain distance from origin (0,0)"
370
420
  ],
371
- "related": ["constraint-angle", "constraint-horizontal"]
421
+ "related": [
422
+ "constraint-angle",
423
+ "constraint-horizontal"
424
+ ]
372
425
  },
373
426
  {
374
427
  "id": "constraint-angle",
@@ -385,11 +438,14 @@
385
438
  ],
386
439
  "tips": [
387
440
  "Angle measured counter-clockwise from first to second line",
388
- "Valid range: 0° to 360°",
441
+ "Valid range: 0\u00b0 to 360\u00b0",
389
442
  "Useful for precise angular relationships",
390
443
  "Essential for gear teeth, draft angles"
391
444
  ],
392
- "related": ["constraint-perpendicular", "constraint-distance"]
445
+ "related": [
446
+ "constraint-perpendicular",
447
+ "constraint-distance"
448
+ ]
393
449
  },
394
450
  {
395
451
  "id": "solid-extrude",
@@ -412,7 +468,10 @@
412
468
  "Can apply taper angle for draft",
413
469
  "Negative distance extrudes opposite direction"
414
470
  ],
415
- "related": ["solid-revolve", "solid-sweep"]
471
+ "related": [
472
+ "solid-revolve",
473
+ "solid-sweep"
474
+ ]
416
475
  },
417
476
  {
418
477
  "id": "solid-revolve",
@@ -427,16 +486,19 @@
427
486
  "Press R or click Revolve",
428
487
  "Select sketch profile",
429
488
  "Select axis line (auto-detects centerline if exists)",
430
- "Set rotation angle (default 360° for full revolution)",
489
+ "Set rotation angle (default 360\u00b0 for full revolution)",
431
490
  "Click OK"
432
491
  ],
433
492
  "tips": [
434
493
  "Axis MUST be separate line, not part of profile",
435
494
  "Profile must be on one side of axis only",
436
- "Full 360° creates complete rotationally symmetric part",
495
+ "Full 360\u00b0 creates complete rotationally symmetric part",
437
496
  "Partial angle creates sectors (e.g., pie-shaped features)"
438
497
  ],
439
- "related": ["solid-extrude", "solid-sweep"]
498
+ "related": [
499
+ "solid-extrude",
500
+ "solid-sweep"
501
+ ]
440
502
  },
441
503
  {
442
504
  "id": "solid-sweep",
@@ -461,7 +523,10 @@
461
523
  "Scale along path: profile grows/shrinks following path",
462
524
  "Path must be continuous (no branches)"
463
525
  ],
464
- "related": ["solid-extrude", "solid-loft"]
526
+ "related": [
527
+ "solid-extrude",
528
+ "solid-loft"
529
+ ]
465
530
  },
466
531
  {
467
532
  "id": "solid-loft",
@@ -484,7 +549,10 @@
484
549
  "Can loft point to circle (cone), circle to rectangle, etc.",
485
550
  "Order of selection matters"
486
551
  ],
487
- "related": ["solid-sweep", "surface-filled"]
552
+ "related": [
553
+ "solid-sweep",
554
+ "surface-filled"
555
+ ]
488
556
  },
489
557
  {
490
558
  "id": "solid-fillet",
@@ -506,7 +574,10 @@
506
574
  "Radius must be smaller than adjacent geometry",
507
575
  "Variable radius: set different radii for different edges"
508
576
  ],
509
- "related": ["solid-chamfer", "solid-shell"]
577
+ "related": [
578
+ "solid-chamfer",
579
+ "solid-shell"
580
+ ]
510
581
  },
511
582
  {
512
583
  "id": "solid-chamfer",
@@ -528,7 +599,10 @@
528
599
  "Angle + distance for angled chamfer",
529
600
  "Useful for deburring and functional design"
530
601
  ],
531
- "related": ["solid-fillet", "solid-draft"]
602
+ "related": [
603
+ "solid-fillet",
604
+ "solid-draft"
605
+ ]
532
606
  },
533
607
  {
534
608
  "id": "solid-shell",
@@ -550,7 +624,10 @@
550
624
  "Wall thickness applies to all remaining faces",
551
625
  "Useful for containers, enclosures, thin-wall parts"
552
626
  ],
553
- "related": ["solid-fillet", "surface-thicken"]
627
+ "related": [
628
+ "solid-fillet",
629
+ "surface-thicken"
630
+ ]
554
631
  },
555
632
  {
556
633
  "id": "solid-draft",
@@ -564,7 +641,7 @@
564
641
  "Press Dr or click Draft",
565
642
  "Select faces to draft",
566
643
  "Set draft plane (reference plane for direction)",
567
- "Set draft angle (typically 5-10°)",
644
+ "Set draft angle (typically 5-10\u00b0)",
568
645
  "Click OK"
569
646
  ],
570
647
  "tips": [
@@ -573,7 +650,10 @@
573
650
  "Essential for injection molding and casting",
574
651
  "Pull direction must be consistent"
575
652
  ],
576
- "related": ["solid-shell", "solid-fillet"]
653
+ "related": [
654
+ "solid-shell",
655
+ "solid-fillet"
656
+ ]
577
657
  },
578
658
  {
579
659
  "id": "pattern-rectangular",
@@ -597,7 +677,10 @@
597
677
  "Can pattern holes, bosses, slots, etc.",
598
678
  "All instances synchronized (edit original, all update)"
599
679
  ],
600
- "related": ["pattern-circular", "pattern-mirror"]
680
+ "related": [
681
+ "pattern-circular",
682
+ "pattern-mirror"
683
+ ]
601
684
  },
602
685
  {
603
686
  "id": "pattern-circular",
@@ -612,16 +695,19 @@
612
695
  "Select feature to pattern",
613
696
  "Select axis (or default to Z-axis)",
614
697
  "Set count (total instances including original)",
615
- "Set angle (360° for full circle, less for partial)",
698
+ "Set angle (360\u00b0 for full circle, less for partial)",
616
699
  "Click OK"
617
700
  ],
618
701
  "tips": [
619
702
  "Count includes original feature",
620
703
  "Equal spacing around circle",
621
- "Angle less than 360° creates partial arrays",
704
+ "Angle less than 360\u00b0 creates partial arrays",
622
705
  "Useful for bolt holes, impellers, gear teeth"
623
706
  ],
624
- "related": ["pattern-rectangular", "pattern-mirror"]
707
+ "related": [
708
+ "pattern-rectangular",
709
+ "pattern-mirror"
710
+ ]
625
711
  },
626
712
  {
627
713
  "id": "pattern-mirror",
@@ -643,7 +729,10 @@
643
729
  "Mirrored feature stays linked to original",
644
730
  "Edit original, mirror updates automatically"
645
731
  ],
646
- "related": ["pattern-rectangular", "pattern-circular"]
732
+ "related": [
733
+ "pattern-rectangular",
734
+ "pattern-circular"
735
+ ]
647
736
  },
648
737
  {
649
738
  "id": "boolean-union",
@@ -665,7 +754,10 @@
665
754
  "Order of selection doesn't matter",
666
755
  "Can union 3+ bodies in one operation"
667
756
  ],
668
- "related": ["boolean-cut", "boolean-intersect"]
757
+ "related": [
758
+ "boolean-cut",
759
+ "boolean-intersect"
760
+ ]
669
761
  },
670
762
  {
671
763
  "id": "boolean-cut",
@@ -687,7 +779,10 @@
687
779
  "Order of selection matters (first = target, second = tool)",
688
780
  "Can use complex shapes as cutting tools"
689
781
  ],
690
- "related": ["boolean-union", "boolean-intersect"]
782
+ "related": [
783
+ "boolean-union",
784
+ "boolean-intersect"
785
+ ]
691
786
  },
692
787
  {
693
788
  "id": "boolean-intersect",
@@ -709,7 +804,10 @@
709
804
  "Useful for finding common geometry",
710
805
  "Less commonly used than Union and Cut"
711
806
  ],
712
- "related": ["boolean-union", "boolean-cut"]
807
+ "related": [
808
+ "boolean-union",
809
+ "boolean-cut"
810
+ ]
713
811
  },
714
812
  {
715
813
  "id": "assembly-insert",
@@ -730,7 +828,10 @@
730
828
  "Subsequent components should be constrained with joints",
731
829
  "Components remain editable in assembly context"
732
830
  ],
733
- "related": ["assembly-rigid-joint", "assembly-revolute-joint"]
831
+ "related": [
832
+ "assembly-rigid-joint",
833
+ "assembly-revolute-joint"
834
+ ]
734
835
  },
735
836
  {
736
837
  "id": "assembly-rigid-joint",
@@ -751,7 +852,10 @@
751
852
  "Often used for sub-assemblies",
752
853
  "Simplest joint type"
753
854
  ],
754
- "related": ["assembly-revolute-joint", "assembly-slider-joint"]
855
+ "related": [
856
+ "assembly-revolute-joint",
857
+ "assembly-slider-joint"
858
+ ]
755
859
  },
756
860
  {
757
861
  "id": "assembly-revolute-joint",
@@ -769,11 +873,14 @@
769
873
  ],
770
874
  "tips": [
771
875
  "Components rotate relative to each other",
772
- "Can specify angle limits (e.g., 0-90°)",
876
+ "Can specify angle limits (e.g., 0-90\u00b0)",
773
877
  "Can set friction/damping for motion study",
774
878
  "Useful for doors, levers, wheels"
775
879
  ],
776
- "related": ["assembly-slider-joint", "assembly-ball-joint"]
880
+ "related": [
881
+ "assembly-slider-joint",
882
+ "assembly-ball-joint"
883
+ ]
777
884
  },
778
885
  {
779
886
  "id": "assembly-slider-joint",
@@ -795,7 +902,10 @@
795
902
  "Useful for pistons, drawer slides",
796
903
  "Axis must be defined by edge or constructed line"
797
904
  ],
798
- "related": ["assembly-revolute-joint", "assembly-ball-joint"]
905
+ "related": [
906
+ "assembly-revolute-joint",
907
+ "assembly-ball-joint"
908
+ ]
799
909
  },
800
910
  {
801
911
  "id": "assembly-ball-joint",
@@ -817,7 +927,10 @@
817
927
  "Useful for robotic joints, universal joints",
818
928
  "Reduces degrees of freedom by 3"
819
929
  ],
820
- "related": ["assembly-revolute-joint", "assembly-planar-joint"]
930
+ "related": [
931
+ "assembly-revolute-joint",
932
+ "assembly-planar-joint"
933
+ ]
821
934
  },
822
935
  {
823
936
  "id": "assembly-planar-joint",
@@ -838,7 +951,10 @@
838
951
  "Can add additional constraints for more restriction",
839
952
  "Like placing book on table"
840
953
  ],
841
- "related": ["assembly-cylinder-joint", "assembly-revolute-joint"]
954
+ "related": [
955
+ "assembly-cylinder-joint",
956
+ "assembly-revolute-joint"
957
+ ]
842
958
  },
843
959
  {
844
960
  "id": "assembly-cylinder-joint",
@@ -859,7 +975,10 @@
859
975
  "Reduces degrees of freedom by 4",
860
976
  "Useful for rotating + moving parts"
861
977
  ],
862
- "related": ["assembly-slider-joint", "assembly-revolute-joint"]
978
+ "related": [
979
+ "assembly-slider-joint",
980
+ "assembly-revolute-joint"
981
+ ]
863
982
  },
864
983
  {
865
984
  "id": "assembly-explode",
@@ -881,7 +1000,10 @@
881
1000
  "Multiple explosion states can be saved",
882
1001
  "Reset to assembled state anytime"
883
1002
  ],
884
- "related": ["assembly-insert", "assembly-rigid-joint"]
1003
+ "related": [
1004
+ "assembly-insert",
1005
+ "assembly-rigid-joint"
1006
+ ]
885
1007
  },
886
1008
  {
887
1009
  "id": "assembly-collision",
@@ -903,7 +1025,10 @@
903
1025
  "Can create clearance report",
904
1026
  "Run before exporting design"
905
1027
  ],
906
- "related": ["assembly-insert", "assembly-rigid-joint"]
1028
+ "related": [
1029
+ "assembly-insert",
1030
+ "assembly-rigid-joint"
1031
+ ]
907
1032
  },
908
1033
  {
909
1034
  "id": "cam-setup",
@@ -925,7 +1050,10 @@
925
1050
  "Multiple setups can be created for different operations",
926
1051
  "Setup defines anchor point and orientation"
927
1052
  ],
928
- "related": ["cam-tool-library", "cam-contour"]
1053
+ "related": [
1054
+ "cam-tool-library",
1055
+ "cam-contour"
1056
+ ]
929
1057
  },
930
1058
  {
931
1059
  "id": "cam-tool-library",
@@ -948,7 +1076,10 @@
948
1076
  "Feeds/speeds can be customized",
949
1077
  "Tool material affects recommendations"
950
1078
  ],
951
- "related": ["cam-setup", "cam-contour"]
1079
+ "related": [
1080
+ "cam-setup",
1081
+ "cam-contour"
1082
+ ]
952
1083
  },
953
1084
  {
954
1085
  "id": "cam-contour",
@@ -971,7 +1102,10 @@
971
1102
  "Climb milling = faster but more vibration",
972
1103
  "Conventional = safer but slower"
973
1104
  ],
974
- "related": ["cam-pocket", "cam-drill"]
1105
+ "related": [
1106
+ "cam-pocket",
1107
+ "cam-drill"
1108
+ ]
975
1109
  },
976
1110
  {
977
1111
  "id": "cam-pocket",
@@ -994,7 +1128,10 @@
994
1128
  "Tool diameter affects sharp corners",
995
1129
  "Can use ball mill for smooth contours"
996
1130
  ],
997
- "related": ["cam-contour", "cam-drill"]
1131
+ "related": [
1132
+ "cam-contour",
1133
+ "cam-drill"
1134
+ ]
998
1135
  },
999
1136
  {
1000
1137
  "id": "cam-drill",
@@ -1016,7 +1153,10 @@
1016
1153
  "Rapid traverse above part, plunge to depth",
1017
1154
  "G-code output includes M03 spindle start"
1018
1155
  ],
1019
- "related": ["cam-contour", "cam-pocket"]
1156
+ "related": [
1157
+ "cam-contour",
1158
+ "cam-pocket"
1159
+ ]
1020
1160
  },
1021
1161
  {
1022
1162
  "id": "cam-roughing",
@@ -1039,7 +1179,10 @@
1039
1179
  "Large step-over reduces time",
1040
1180
  "Heavier machine loads than finishing"
1041
1181
  ],
1042
- "related": ["cam-finishing", "cam-contour"]
1182
+ "related": [
1183
+ "cam-finishing",
1184
+ "cam-contour"
1185
+ ]
1043
1186
  },
1044
1187
  {
1045
1188
  "id": "cam-finishing",
@@ -1062,7 +1205,10 @@
1062
1205
  "Ball mill = better for complex organic shapes",
1063
1206
  "Endmill = better for faceted geometry"
1064
1207
  ],
1065
- "related": ["cam-roughing", "cam-contour"]
1208
+ "related": [
1209
+ "cam-roughing",
1210
+ "cam-contour"
1211
+ ]
1066
1212
  },
1067
1213
  {
1068
1214
  "id": "cam-gcode",
@@ -1084,7 +1230,10 @@
1084
1230
  "Verify code before running on machine",
1085
1231
  "Safe Z height critical (prevent collisions)"
1086
1232
  ],
1087
- "related": ["cam-setup", "cam-preview"]
1233
+ "related": [
1234
+ "cam-setup",
1235
+ "cam-preview"
1236
+ ]
1088
1237
  },
1089
1238
  {
1090
1239
  "id": "cam-preview",
@@ -1106,7 +1255,10 @@
1106
1255
  "Detects collisions with clamps/fixtures",
1107
1256
  "Slow down animation for detail inspection"
1108
1257
  ],
1109
- "related": ["cam-gcode", "cam-roughing"]
1258
+ "related": [
1259
+ "cam-gcode",
1260
+ "cam-roughing"
1261
+ ]
1110
1262
  },
1111
1263
  {
1112
1264
  "id": "drawing-new",
@@ -1127,7 +1279,10 @@
1127
1279
  "Title block can be added",
1128
1280
  "Drawing views are live-linked to 3D model"
1129
1281
  ],
1130
- "related": ["drawing-orthographic", "drawing-title-block"]
1282
+ "related": [
1283
+ "drawing-orthographic",
1284
+ "drawing-title-block"
1285
+ ]
1131
1286
  },
1132
1287
  {
1133
1288
  "id": "drawing-orthographic",
@@ -1149,7 +1304,10 @@
1149
1304
  "Standard arrangement: front center, top above, right side right",
1150
1305
  "Hidden lines can be shown/hidden per view"
1151
1306
  ],
1152
- "related": ["drawing-section", "drawing-detail"]
1307
+ "related": [
1308
+ "drawing-section",
1309
+ "drawing-detail"
1310
+ ]
1153
1311
  },
1154
1312
  {
1155
1313
  "id": "drawing-section",
@@ -1171,7 +1329,10 @@
1171
1329
  "Can offset section plane for complex internal details",
1172
1330
  "Half-section shows interior on one side"
1173
1331
  ],
1174
- "related": ["drawing-orthographic", "drawing-detail"]
1332
+ "related": [
1333
+ "drawing-orthographic",
1334
+ "drawing-detail"
1335
+ ]
1175
1336
  },
1176
1337
  {
1177
1338
  "id": "drawing-detail",
@@ -1193,7 +1354,10 @@
1193
1354
  "Shows hidden details clearly",
1194
1355
  "Typically 2-5x magnification"
1195
1356
  ],
1196
- "related": ["drawing-orthographic", "drawing-section"]
1357
+ "related": [
1358
+ "drawing-orthographic",
1359
+ "drawing-section"
1360
+ ]
1197
1361
  },
1198
1362
  {
1199
1363
  "id": "drawing-dimensions",
@@ -1215,7 +1379,10 @@
1215
1379
  "Manual cleanup usually needed (delete redundant dimensions)",
1216
1380
  "Critical dimensions highlighted"
1217
1381
  ],
1218
- "related": ["drawing-manual-dimension", "drawing-gdt"]
1382
+ "related": [
1383
+ "drawing-manual-dimension",
1384
+ "drawing-gdt"
1385
+ ]
1219
1386
  },
1220
1387
  {
1221
1388
  "id": "drawing-manual-dimension",
@@ -1237,7 +1404,10 @@
1237
1404
  "Dimension text can be edited",
1238
1405
  "Font size and style can be customized"
1239
1406
  ],
1240
- "related": ["drawing-gdt", "drawing-text"]
1407
+ "related": [
1408
+ "drawing-gdt",
1409
+ "drawing-text"
1410
+ ]
1241
1411
  },
1242
1412
  {
1243
1413
  "id": "drawing-gdt",
@@ -1260,7 +1430,10 @@
1260
1430
  "Datums establish reference axes/planes",
1261
1431
  "Position tolerance controls hole location (crucial for assembly)"
1262
1432
  ],
1263
- "related": ["drawing-manual-dimension", "drawing-text"]
1433
+ "related": [
1434
+ "drawing-manual-dimension",
1435
+ "drawing-text"
1436
+ ]
1264
1437
  },
1265
1438
  {
1266
1439
  "id": "drawing-text",
@@ -1281,7 +1454,10 @@
1281
1454
  "Can add box/border around text",
1282
1455
  "Useful for manufacturing notes, material specs"
1283
1456
  ],
1284
- "related": ["drawing-manual-dimension", "drawing-gdt"]
1457
+ "related": [
1458
+ "drawing-manual-dimension",
1459
+ "drawing-gdt"
1460
+ ]
1285
1461
  },
1286
1462
  {
1287
1463
  "id": "drawing-title-block",
@@ -1302,7 +1478,10 @@
1302
1478
  "Custom templates can be saved and reused",
1303
1479
  "Professional appearance essential for production drawings"
1304
1480
  ],
1305
- "related": ["drawing-new", "drawing-orthographic"]
1481
+ "related": [
1482
+ "drawing-new",
1483
+ "drawing-orthographic"
1484
+ ]
1306
1485
  },
1307
1486
  {
1308
1487
  "id": "render-material",
@@ -1324,7 +1503,10 @@
1324
1503
  "Can preview in real-time viewport",
1325
1504
  "Multiple materials on one part possible"
1326
1505
  ],
1327
- "related": ["render-studio-lighting", "render-environment"]
1506
+ "related": [
1507
+ "render-studio-lighting",
1508
+ "render-environment"
1509
+ ]
1328
1510
  },
1329
1511
  {
1330
1512
  "id": "render-studio-lighting",
@@ -1342,12 +1524,15 @@
1342
1524
  "Click OK"
1343
1525
  ],
1344
1526
  "tips": [
1345
- "Key light typically 45° above, 45° to side",
1527
+ "Key light typically 45\u00b0 above, 45\u00b0 to side",
1346
1528
  "Fill light opposite key light, lower intensity",
1347
1529
  "Back light creates rim effect (edge separation)",
1348
1530
  "Scene updates in real-time"
1349
1531
  ],
1350
- "related": ["render-environment", "render-material"]
1532
+ "related": [
1533
+ "render-environment",
1534
+ "render-material"
1535
+ ]
1351
1536
  },
1352
1537
  {
1353
1538
  "id": "render-environment",
@@ -1369,7 +1554,10 @@
1369
1554
  "Rotation changes light direction",
1370
1555
  "Presets for studio, outdoor, industrial"
1371
1556
  ],
1372
- "related": ["render-studio-lighting", "render-turntable"]
1557
+ "related": [
1558
+ "render-studio-lighting",
1559
+ "render-turntable"
1560
+ ]
1373
1561
  },
1374
1562
  {
1375
1563
  "id": "render-turntable",
@@ -1391,7 +1579,10 @@
1391
1579
  "Can loop video continuously",
1392
1580
  "Output is MP4 or image sequence"
1393
1581
  ],
1394
- "related": ["render-storyboard", "render-environment"]
1582
+ "related": [
1583
+ "render-storyboard",
1584
+ "render-environment"
1585
+ ]
1395
1586
  },
1396
1587
  {
1397
1588
  "id": "render-storyboard",
@@ -1413,7 +1604,10 @@
1413
1604
  "Can hide/show objects in timeline",
1414
1605
  "Professional presentations and marketing videos"
1415
1606
  ],
1416
- "related": ["render-turntable", "render-environment"]
1607
+ "related": [
1608
+ "render-turntable",
1609
+ "render-environment"
1610
+ ]
1417
1611
  },
1418
1612
  {
1419
1613
  "id": "simulation-stress",
@@ -1436,7 +1630,10 @@
1436
1630
  "Mesh refinement = more accurate but slower",
1437
1631
  "Can probe stress at any point"
1438
1632
  ],
1439
- "related": ["simulation-deformation", "simulation-thermal"]
1633
+ "related": [
1634
+ "simulation-deformation",
1635
+ "simulation-thermal"
1636
+ ]
1440
1637
  },
1441
1638
  {
1442
1639
  "id": "simulation-deformation",
@@ -1458,7 +1655,10 @@
1458
1655
  "Useful for spring designs, compliant mechanisms",
1459
1656
  "Compare to allowable tolerance"
1460
1657
  ],
1461
- "related": ["simulation-stress", "simulation-thermal"]
1658
+ "related": [
1659
+ "simulation-stress",
1660
+ "simulation-thermal"
1661
+ ]
1462
1662
  },
1463
1663
  {
1464
1664
  "id": "simulation-thermal",
@@ -1481,7 +1681,10 @@
1481
1681
  "Steady-state = equilibrium temperature",
1482
1682
  "Transient = temperature over time"
1483
1683
  ],
1484
- "related": ["simulation-stress", "simulation-modal"]
1684
+ "related": [
1685
+ "simulation-stress",
1686
+ "simulation-modal"
1687
+ ]
1485
1688
  },
1486
1689
  {
1487
1690
  "id": "simulation-modal",
@@ -1503,7 +1706,10 @@
1503
1706
  "Mode shapes show which features vibrate most",
1504
1707
  "Useful for avoiding resonance"
1505
1708
  ],
1506
- "related": ["simulation-stress", "simulation-deformation"]
1709
+ "related": [
1710
+ "simulation-stress",
1711
+ "simulation-deformation"
1712
+ ]
1507
1713
  },
1508
1714
  {
1509
1715
  "id": "inspect-measure",
@@ -1525,7 +1731,10 @@
1525
1731
  "Radius measurement clicks curved edge",
1526
1732
  "Useful for verification against drawing"
1527
1733
  ],
1528
- "related": ["inspect-section", "inspect-curvature"]
1734
+ "related": [
1735
+ "inspect-section",
1736
+ "inspect-curvature"
1737
+ ]
1529
1738
  },
1530
1739
  {
1531
1740
  "id": "inspect-section",
@@ -1547,7 +1756,10 @@
1547
1756
  "Check for undercuts, sharp corners, minimum wall thickness",
1548
1757
  "Useful for injection molding and casting design"
1549
1758
  ],
1550
- "related": ["inspect-measure", "inspect-draft"]
1759
+ "related": [
1760
+ "inspect-measure",
1761
+ "inspect-draft"
1762
+ ]
1551
1763
  },
1552
1764
  {
1553
1765
  "id": "inspect-curvature",
@@ -1568,7 +1780,10 @@
1568
1780
  "Can identify areas needing fillet radius increase",
1569
1781
  "Export curvature report"
1570
1782
  ],
1571
- "related": ["inspect-section", "inspect-draft"]
1783
+ "related": [
1784
+ "inspect-section",
1785
+ "inspect-draft"
1786
+ ]
1572
1787
  },
1573
1788
  {
1574
1789
  "id": "inspect-draft",
@@ -1582,7 +1797,7 @@
1582
1797
  "Select pull direction (mold opening direction)",
1583
1798
  "Green faces = removable without undercut",
1584
1799
  "Red faces = require core or undercut feature",
1585
- "Adjust direction angle (typically 2-5° draft)"
1800
+ "Adjust direction angle (typically 2-5\u00b0 draft)"
1586
1801
  ],
1587
1802
  "tips": [
1588
1803
  "Essential for designing injection-molded parts",
@@ -1590,7 +1805,10 @@
1590
1805
  "Red areas must be avoided or require extra mold complexity",
1591
1806
  "Can add draft angles in CAD to fix issues"
1592
1807
  ],
1593
- "related": ["inspect-curvature", "inspect-zebra"]
1808
+ "related": [
1809
+ "inspect-curvature",
1810
+ "inspect-zebra"
1811
+ ]
1594
1812
  },
1595
1813
  {
1596
1814
  "id": "inspect-zebra",
@@ -1612,7 +1830,10 @@
1612
1830
  "Stripe pattern instantly reveals surface quality",
1613
1831
  "Essential for Class A (visible) surfaces"
1614
1832
  ],
1615
- "related": ["inspect-curvature", "inspect-section"]
1833
+ "related": [
1834
+ "inspect-curvature",
1835
+ "inspect-section"
1836
+ ]
1616
1837
  },
1617
1838
  {
1618
1839
  "id": "data-version-save",
@@ -1634,7 +1855,10 @@
1634
1855
  "Version history shows all saved states",
1635
1856
  "Useful for comparing designs over time"
1636
1857
  ],
1637
- "related": ["data-version-restore", "data-import-step"]
1858
+ "related": [
1859
+ "data-version-restore",
1860
+ "data-import-step"
1861
+ ]
1638
1862
  },
1639
1863
  {
1640
1864
  "id": "data-version-restore",
@@ -1654,7 +1878,10 @@
1654
1878
  "Compare versions before restoring (diff view)",
1655
1879
  "Can create branch (separate development line)"
1656
1880
  ],
1657
- "related": ["data-version-save", "data-import-step"]
1881
+ "related": [
1882
+ "data-version-save",
1883
+ "data-import-step"
1884
+ ]
1658
1885
  },
1659
1886
  {
1660
1887
  "id": "data-import-step",
@@ -1675,7 +1902,10 @@
1675
1902
  "Preserves solid body geometry, not feature history",
1676
1903
  "Useful for exchanging designs with different CAD"
1677
1904
  ],
1678
- "related": ["data-export-step", "data-export-stl"]
1905
+ "related": [
1906
+ "data-export-step",
1907
+ "data-export-stl"
1908
+ ]
1679
1909
  },
1680
1910
  {
1681
1911
  "id": "data-export-step",
@@ -1696,7 +1926,10 @@
1696
1926
  "Most manufacturers prefer STEP format",
1697
1927
  "Preserves solid geometry accurately"
1698
1928
  ],
1699
- "related": ["data-import-step", "data-export-stl"]
1929
+ "related": [
1930
+ "data-import-step",
1931
+ "data-export-stl"
1932
+ ]
1700
1933
  },
1701
1934
  {
1702
1935
  "id": "data-export-stl",
@@ -1718,7 +1951,10 @@
1718
1951
  "Binary STL = smaller file, ASCII = readable in text editor",
1719
1952
  "Essential for 3D printer preparation"
1720
1953
  ],
1721
- "related": ["data-export-step", "data-export-dxf"]
1954
+ "related": [
1955
+ "data-export-step",
1956
+ "data-export-dxf"
1957
+ ]
1722
1958
  },
1723
1959
  {
1724
1960
  "id": "data-export-dxf",
@@ -1739,7 +1975,10 @@
1739
1975
  "Preserves lines, arcs, circles, text",
1740
1976
  "Layer information can be included"
1741
1977
  ],
1742
- "related": ["data-export-step", "data-export-pdf"]
1978
+ "related": [
1979
+ "data-export-step",
1980
+ "data-export-pdf"
1981
+ ]
1743
1982
  },
1744
1983
  {
1745
1984
  "id": "data-export-pdf",
@@ -1760,7 +1999,10 @@
1760
1999
  "Preserves dimensions and annotations",
1761
2000
  "Print-ready format"
1762
2001
  ],
1763
- "related": ["data-export-dxf", "data-share"]
2002
+ "related": [
2003
+ "data-export-dxf",
2004
+ "data-share"
2005
+ ]
1764
2006
  },
1765
2007
  {
1766
2008
  "id": "data-share",
@@ -1781,7 +2023,10 @@
1781
2023
  "Link expires after set time (1 day, 1 week, permanent)",
1782
2024
  "Useful for customer review, team feedback"
1783
2025
  ],
1784
- "related": ["data-comments", "data-version-save"]
2026
+ "related": [
2027
+ "data-comments",
2028
+ "data-version-save"
2029
+ ]
1785
2030
  },
1786
2031
  {
1787
2032
  "id": "data-comments",
@@ -1803,6 +2048,38 @@
1803
2048
  "Can resolve/close comments when addressed",
1804
2049
  "Threaded discussion possible"
1805
2050
  ],
1806
- "related": ["data-share", "data-version-save"]
2051
+ "related": [
2052
+ "data-share",
2053
+ "data-version-save"
2054
+ ]
2055
+ },
2056
+ {
2057
+ "id": "ai-copilot",
2058
+ "title": "AI Copilot (multi-step)",
2059
+ "category": "AI Tools",
2060
+ "workspace": "Tools",
2061
+ "shortcut": null,
2062
+ "description": "Generates complete parametric CAD models from natural-language prompts. LLM plans a multi-step sequence that executes live via the Agent API; on step failure, asks for a recovery plan (up to 2 retries).",
2063
+ "steps": [
2064
+ "Tools menu \u2192 AI Copilot (multi-step)",
2065
+ "Click \ud83d\udd11 and paste your Anthropic/Gemini/Groq API key",
2066
+ "Select a model (Claude Sonnet 4.6 recommended)",
2067
+ "Type a description of the part in plain English",
2068
+ "Click \u26a1 Generate",
2069
+ "Watch each step execute live in the viewport",
2070
+ "On failure, the LLM is asked to recover and continues"
2071
+ ],
2072
+ "tips": [
2073
+ "Example: 'create a Raspberry Pi 4B case with port cutouts and 3mm fillet'",
2074
+ "Mention every dimension you care about for precise output",
2075
+ "Claude knows real board specs (Pi 4B, Arduino Uno, Nano)",
2076
+ "Keys stored in localStorage \u2014 never sent to our servers",
2077
+ "Cmd/Ctrl+Enter in the textarea triggers Generate",
2078
+ "Gemini 2.0 Flash and Groq Llama have free tiers"
2079
+ ],
2080
+ "related": [
2081
+ "tools-text-to-cad",
2082
+ "tools-photo-to-cad"
2083
+ ]
1807
2084
  }
1808
- ]
2085
+ ]