1use kittycad_modeling_cmds_macros::define_ok_modeling_cmd_response_enum;
2use serde::{Deserialize, Serialize};
3
4impl crate::ModelingCmdOutput for () {}
5
6define_ok_modeling_cmd_response_enum! {
7 pub mod output {
9
10 use kittycad_modeling_cmds_macros::ModelingCmdOutput;
11 use schemars::JsonSchema;
12 use serde::{Deserialize, Serialize};
13 use uuid::Uuid;
14 use crate::shared::CameraSettings;
15
16 use crate::{self as kittycad_modeling_cmds};
17 use crate::{
18 base64::Base64Data,
19 id::ModelingCmdId,
20 length_unit::LengthUnit,
21 shared::{CurveType, EntityType, ExportFile, ExtrusionFaceCapType, PathCommand, Point2d, Point3d},
22 units,
23 };
24
25 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
27 pub struct EngineUtilEvaluatePath {
28 pub pos: Point3d<LengthUnit>,
30 }
31
32 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
34 pub struct StartPath {
35 }
36
37 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
39 pub struct MovePathPen {
40 }
41
42 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
44 pub struct ExtendPath {
45 }
46
47 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
49 pub struct Extrude {
50 }
51
52 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
54 pub struct Sweep {
55 }
56
57 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
59 pub struct Revolve {
60 }
61
62 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
64 pub struct Solid3dShellFace {
65 }
66
67 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
69 pub struct RevolveAboutEdge {
70 }
71
72 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
74 pub struct CameraDragStart {
75 }
76
77 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
79 pub struct DefaultCameraLookAt {
80 }
81
82 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
84 pub struct DefaultCameraPerspectiveSettings {
85 }
86
87 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
89 pub struct SelectAdd {
90 }
91 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
93 pub struct SelectRemove {
94 }
95
96 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
98 pub struct SceneClearAll {
99 }
100
101 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
103 pub struct SelectReplace {
104 }
105
106 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
108 pub struct HighlightSetEntities {
109 }
110
111 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
113 pub struct NewAnnotation {
114 }
115
116 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
118 pub struct UpdateAnnotation {
119 }
120
121 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
123 pub struct EdgeLinesVisible {
124 }
125
126 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
128 pub struct ObjectVisible {
129 }
130
131 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
133 pub struct ObjectBringToFront {
134 }
135
136 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
138 pub struct ObjectSetMaterialParamsPbr {
139 }
140
141 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
143 pub struct Solid2dAddHole {
144 }
145
146 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
148 pub struct Solid3dFilletEdge {
149 }
150
151 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
153 pub struct SendObject {
154 }
155
156 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
158 pub struct EntitySetOpacity {
159 }
160
161 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
163 pub struct EntityFade {
164 }
165
166 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
168 pub struct MakePlane {
169 }
170
171 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
173 pub struct PlaneSetColor {
174 }
175
176 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
178 pub struct SetTool {
179 }
180
181 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
183 pub struct MouseMove {
184 }
185
186 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
188 pub struct SketchModeDisable {
189 }
190
191 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
193 pub struct EnableDryRun {
194 }
195
196 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
198 pub struct DisableDryRun {
199 }
200
201 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
203 pub struct CurveSetConstraint {
204 }
205
206 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
208 pub struct EnableSketchMode {
209 }
210
211 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
213 pub struct SetBackgroundColor {
214 }
215
216 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
218 pub struct SetCurrentToolProperties {
219 }
220
221 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
223 pub struct SetDefaultSystemProperties {
224 }
225
226 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
228 pub struct MakeAxesGizmo {
229 }
230
231 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
233 pub struct HandleMouseDragStart {
234 }
235
236 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
238 pub struct HandleMouseDragMove {
239 }
240
241 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
243 pub struct HandleMouseDragEnd {
244 }
245
246 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
248 pub struct RemoveSceneObjects {
249 }
250
251 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
253 pub struct ReconfigureStream {
254 }
255
256 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
258 pub struct SetSceneUnits {
259 }
260
261 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
263 pub struct SetSelectionType {
264 }
265
266 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
268 pub struct SetSelectionFilter {
269 }
270
271 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
273 pub struct DefaultCameraSetOrthographic {
274 }
275
276 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
278 pub struct DefaultCameraSetPerspective {
279 }
280
281 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
283 pub struct DefaultCameraCenterToSelection {
284 }
285
286 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
288 pub struct DefaultCameraCenterToScene {
289 }
290
291 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
293 pub struct SelectClear {
294 }
295
296 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
298 pub struct Export2d {
299 pub files: Vec<ExportFile>,
301 }
302
303 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
305 pub struct Export3d {
306 pub files: Vec<ExportFile>,
308 }
309
310 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
312 pub struct Export {
313 pub files: Vec<ExportFile>,
315 }
316
317 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
319 pub struct SelectWithPoint {
320 pub entity_id: Option<Uuid>,
322 }
323 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
325 pub struct HighlightSetEntity {
326 pub entity_id: Option<Uuid>,
328 pub sequence: Option<u32>,
330 }
331 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
333 pub struct EntityGetChildUuid {
334 pub entity_id: Uuid,
336 }
337 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
339 pub struct EntityGetNumChildren {
340 pub num: u32,
342 }
343 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
345 pub struct EntityGetParentId {
346 pub entity_id: Uuid,
348 }
349 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
351 pub struct EntityGetAllChildUuids {
352 pub entity_ids: Vec<Uuid>,
354 }
355
356 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
358 pub struct EntityGetSketchPaths {
359 pub entity_ids: Vec<Uuid>,
361 }
362
363 #[derive(Debug, Serialize, Deserialize, JsonSchema, ModelingCmdOutput, Clone)]
365 pub struct Loft {
366 pub solid_id: Uuid,
368 }
369
370 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
372 pub struct ClosePath {
373 pub face_id: Uuid,
375 }
376
377 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
381 pub struct CameraDragMove {
382 pub settings: CameraSettings
384 }
385
386 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
388 pub struct CameraDragEnd {
389 pub settings: CameraSettings
391 }
392
393 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
395 pub struct DefaultCameraGetSettings {
396 pub settings: CameraSettings
398 }
399
400 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
402 pub struct DefaultCameraZoom {
403 pub settings: CameraSettings
405 }
406
407 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
409 pub struct ZoomToFit {
410 pub settings: CameraSettings
412 }
413
414 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
416 pub struct OrientToFace {
417 pub settings: CameraSettings
419 }
420
421 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
423 pub struct ViewIsometric {
424 pub settings: CameraSettings
426 }
427
428 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
430 pub struct GetNumObjects {
431 pub num_objects: u32,
433 }
434
435 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
437 pub struct MakeOffsetPath {
438 pub entity_ids: Vec<Uuid>,
443 }
444
445 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
447 pub struct SetObjectTransform {}
448
449 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
451 pub struct AddHoleFromOffset {
452 pub entity_ids: Vec<Uuid>,
457 }
458
459 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
461 pub struct DefaultCameraFocusOn { }
462
463 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
465 pub struct SelectGet {
466 pub entity_ids: Vec<Uuid>,
468 }
469
470 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
472 pub struct Solid3dGetAllEdgeFaces {
473 pub faces: Vec<Uuid>,
475 }
476
477 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
479 pub struct Solid3dGetAllOppositeEdges {
480 pub edges: Vec<Uuid>,
482 }
483
484 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
486 pub struct Solid3dGetOppositeEdge {
487 pub edge: Uuid,
489 }
490
491 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
493 pub struct Solid3dGetNextAdjacentEdge {
494 pub edge: Option<Uuid>,
496 }
497
498 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
500 pub struct Solid3dGetPrevAdjacentEdge {
501 pub edge: Option<Uuid>,
503 }
504
505 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
507 pub struct Solid3dGetCommonEdge {
508 pub edge: Option<Uuid>,
510 }
511
512 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
514 pub struct GetEntityType {
515 pub entity_type: EntityType,
517 }
518 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
520 pub struct CurveGetControlPoints {
521 pub control_points: Vec<Point3d<f64>>,
523 }
524
525 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
527 pub struct ProjectEntityToPlane {
528 pub projected_points: Vec<Point3d<f64>>,
530 }
531
532 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
534 pub struct ProjectPointsToPlane {
535 pub projected_points: Vec<Point3d<f64>>,
537 }
538
539 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, Eq, PartialEq, ModelingCmdOutput)]
541 pub struct CurveGetType {
542 pub curve_type: CurveType,
544 }
545
546 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
548 pub struct MouseClick {
549 pub entities_modified: Vec<Uuid>,
551 pub entities_selected: Vec<Uuid>,
553 }
554
555 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
557 pub struct TakeSnapshot {
558 pub contents: Base64Data,
560 }
561
562 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
564 pub struct PathGetInfo {
565 pub segments: Vec<PathSegmentInfo>,
567 }
568
569 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
571 pub struct PathSegmentInfo {
572 pub command_id: Option<ModelingCmdId>,
576 pub command: PathCommand,
578 pub relative: bool,
580 }
581
582 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
584 pub struct PathGetCurveUuidsForVertices {
585 pub curve_ids: Vec<Uuid>,
587 }
588
589 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
591 pub struct PathGetCurveUuid {
592 pub curve_id: Uuid,
594 }
595
596 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
598 pub struct PathGetVertexUuids {
599 pub vertex_ids: Vec<Uuid>,
601 }
602
603 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
605 pub struct PathGetSketchTargetUuid {
606 pub target_id: Option<Uuid>,
608 }
609
610 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
612 pub struct CurveGetEndPoints {
613 pub start: Point3d<LengthUnit>,
615 pub end: Point3d<LengthUnit>,
617 }
618
619 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
621 pub struct FaceIsPlanar {
622 pub origin: Option<Point3d<LengthUnit>>,
624
625 pub x_axis: Option<Point3d<f64>>,
627
628 pub y_axis: Option<Point3d<f64>>,
630
631 pub z_axis: Option<Point3d<f64>>,
633 }
634
635 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
637 pub struct FaceGetPosition {
638 pub pos: Point3d<LengthUnit>,
640 }
641
642 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
644 pub struct FaceGetCenter {
645 pub pos: Point3d<LengthUnit>,
647 }
648
649 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
651 pub struct FaceGetGradient {
652 pub df_du: Point3d<f64>,
654
655 pub df_dv: Point3d<f64>,
657
658 pub normal: Point3d<f64>,
660 }
661
662 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
664 pub struct PlaneIntersectAndProject {
665 pub plane_coordinates: Option<Point2d<LengthUnit>>,
667 }
668
669 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
671 pub struct ImportFiles {
672 pub object_id: Uuid,
674 }
675
676 #[derive(Debug, Eq, PartialEq, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
678 pub struct ImportedGeometry {
679 pub id: Uuid,
681 pub value: Vec<String>,
683 }
684
685 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
687 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
688 pub struct Mass {
689 pub mass: f64,
691 pub output_unit: units::UnitMass,
693 }
694
695 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
697 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
698 pub struct Volume {
699 pub volume: f64,
701 pub output_unit: units::UnitVolume,
703 }
704
705 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
707 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
708 pub struct Density {
709 pub density: f64,
711 pub output_unit: units::UnitDensity,
713 }
714
715 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
717 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
718 pub struct SurfaceArea {
719 pub surface_area: f64,
721 pub output_unit: units::UnitArea,
723 }
724
725 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
727 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
728 pub struct CenterOfMass {
729 pub center_of_mass: Point3d<f64>,
731 pub output_unit: units::UnitLength,
733 }
734
735 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
737 pub struct GetSketchModePlane {
738 pub origin: Point3d<LengthUnit>,
740 pub x_axis: Point3d<f64>,
742 pub y_axis: Point3d<f64>,
744 pub z_axis: Point3d<f64>,
746 }
747
748 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
750 pub struct EntityGetDistance {
751 pub min_distance: LengthUnit,
753 pub max_distance: LengthUnit,
755 }
756
757 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
759 pub struct EntityClone {
760 }
761
762 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
764 pub struct EntityLinearPatternTransform {
765 pub entity_ids: Vec<Uuid>,
767 }
768
769 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
771 pub struct EntityLinearPattern {
772 pub entity_ids: Vec<Uuid>,
774 }
775
776 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
778 pub struct EntityCircularPattern {
779 pub entity_ids: Vec<Uuid>,
781 }
782
783 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
785 pub struct EntityMirror {
786 pub entity_ids: Vec<Uuid>
788 }
789
790 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
792 pub struct EntityMirrorAcrossEdge {
793 pub entity_ids: Vec<Uuid>
795 }
796
797 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
799 pub struct EntityMakeHelix {
800 }
801
802 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
804 pub struct EntityMakeHelixFromParams {
805 }
806
807 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
809 pub struct EntityMakeHelixFromEdge {
810 }
811
812 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
814 pub struct Solid3dGetExtrusionFaceInfo {
815 pub faces: Vec<ExtrusionFaceInfo>,
817 }
818
819 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
821 pub struct ExtrusionFaceInfo {
822 pub curve_id: Option<Uuid>,
824
825 pub face_id: Option<Uuid>,
827
828 pub cap: ExtrusionFaceCapType,
831 }
832
833 }
834}