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 #[deprecated(since = "0.2.96", note = "use `Export3d` instead")]
298 pub type Export = Export3d;
299
300 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
302 pub struct Export2d {
303 pub files: Vec<ExportFile>,
305 }
306
307 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
309 pub struct Export3d {
310 pub files: Vec<ExportFile>,
312 }
313
314 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
316 pub struct SelectWithPoint {
317 pub entity_id: Option<Uuid>,
319 }
320 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
322 pub struct HighlightSetEntity {
323 pub entity_id: Option<Uuid>,
325 pub sequence: Option<u32>,
327 }
328 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
330 pub struct EntityGetChildUuid {
331 pub entity_id: Uuid,
333 }
334 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
336 pub struct EntityGetNumChildren {
337 pub num: u32,
339 }
340 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
342 pub struct EntityGetParentId {
343 pub entity_id: Uuid,
345 }
346 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
348 pub struct EntityGetAllChildUuids {
349 pub entity_ids: Vec<Uuid>,
351 }
352
353 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
355 pub struct EntityGetSketchPaths {
356 pub entity_ids: Vec<Uuid>,
358 }
359
360 #[derive(Debug, Serialize, Deserialize, JsonSchema, ModelingCmdOutput, Clone)]
362 pub struct Loft {
363 pub solid_id: Uuid,
365 }
366
367 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
369 pub struct ClosePath {
370 pub face_id: Uuid,
372 }
373
374 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
378 pub struct CameraDragMove {
379 pub settings: CameraSettings
381 }
382
383 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
385 pub struct CameraDragEnd {
386 pub settings: CameraSettings
388 }
389
390 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
392 pub struct DefaultCameraGetSettings {
393 pub settings: CameraSettings
395 }
396
397 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
399 pub struct DefaultCameraZoom {
400 pub settings: CameraSettings
402 }
403
404 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
406 pub struct ZoomToFit {
407 pub settings: CameraSettings
409 }
410
411 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
413 pub struct OrientToFace {
414 pub settings: CameraSettings
416 }
417
418 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
420 pub struct ViewIsometric {
421 pub settings: CameraSettings
423 }
424
425 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
427 pub struct GetNumObjects {
428 pub num_objects: u32,
430 }
431
432 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
434 pub struct MakeOffsetPath {
435 pub entity_ids: Vec<Uuid>,
440 }
441
442 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
444 pub struct SetObjectTransform {}
445
446 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
448 pub struct AddHoleFromOffset {
449 pub entity_ids: Vec<Uuid>,
454 }
455
456 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
458 pub struct DefaultCameraFocusOn { }
459
460 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
462 pub struct SelectGet {
463 pub entity_ids: Vec<Uuid>,
465 }
466
467 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
469 pub struct Solid3dGetAllEdgeFaces {
470 pub faces: Vec<Uuid>,
472 }
473
474 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
476 pub struct Solid3dGetAllOppositeEdges {
477 pub edges: Vec<Uuid>,
479 }
480
481 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
483 pub struct Solid3dGetOppositeEdge {
484 pub edge: Uuid,
486 }
487
488 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
490 pub struct Solid3dGetNextAdjacentEdge {
491 pub edge: Option<Uuid>,
493 }
494
495 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
497 pub struct Solid3dGetPrevAdjacentEdge {
498 pub edge: Option<Uuid>,
500 }
501
502 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
504 pub struct Solid3dGetCommonEdge {
505 pub edge: Option<Uuid>,
507 }
508
509 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
511 pub struct GetEntityType {
512 pub entity_type: EntityType,
514 }
515 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
517 pub struct CurveGetControlPoints {
518 pub control_points: Vec<Point3d<f64>>,
520 }
521
522 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
524 pub struct ProjectEntityToPlane {
525 pub projected_points: Vec<Point3d<f64>>,
527 }
528
529 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
531 pub struct ProjectPointsToPlane {
532 pub projected_points: Vec<Point3d<f64>>,
534 }
535
536 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, Eq, PartialEq, ModelingCmdOutput)]
538 pub struct CurveGetType {
539 pub curve_type: CurveType,
541 }
542
543 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
545 pub struct MouseClick {
546 pub entities_modified: Vec<Uuid>,
548 pub entities_selected: Vec<Uuid>,
550 }
551
552 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
554 pub struct TakeSnapshot {
555 pub contents: Base64Data,
557 }
558
559 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
561 pub struct PathGetInfo {
562 pub segments: Vec<PathSegmentInfo>,
564 }
565
566 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
568 pub struct PathSegmentInfo {
569 pub command_id: Option<ModelingCmdId>,
573 pub command: PathCommand,
575 pub relative: bool,
577 }
578
579 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
581 pub struct PathGetCurveUuidsForVertices {
582 pub curve_ids: Vec<Uuid>,
584 }
585
586 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
588 pub struct PathGetCurveUuid {
589 pub curve_id: Uuid,
591 }
592
593 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
595 pub struct PathGetVertexUuids {
596 pub vertex_ids: Vec<Uuid>,
598 }
599
600 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
602 pub struct PathGetSketchTargetUuid {
603 pub target_id: Option<Uuid>,
605 }
606
607 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
609 pub struct CurveGetEndPoints {
610 pub start: Point3d<LengthUnit>,
612 pub end: Point3d<LengthUnit>,
614 }
615
616 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
618 pub struct FaceIsPlanar {
619 pub origin: Option<Point3d<LengthUnit>>,
621
622 pub x_axis: Option<Point3d<f64>>,
624
625 pub y_axis: Option<Point3d<f64>>,
627
628 pub z_axis: Option<Point3d<f64>>,
630 }
631
632 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
634 pub struct FaceGetPosition {
635 pub pos: Point3d<LengthUnit>,
637 }
638
639 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
641 pub struct FaceGetCenter {
642 pub pos: Point3d<LengthUnit>,
644 }
645
646 #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdOutput)]
648 pub struct FaceGetGradient {
649 pub df_du: Point3d<f64>,
651
652 pub df_dv: Point3d<f64>,
654
655 pub normal: Point3d<f64>,
657 }
658
659 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
661 pub struct PlaneIntersectAndProject {
662 pub plane_coordinates: Option<Point2d<LengthUnit>>,
664 }
665
666 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
668 pub struct ImportFiles {
669 pub object_id: Uuid,
671 }
672
673 #[derive(Debug, Eq, PartialEq, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
675 pub struct ImportedGeometry {
676 pub id: Uuid,
678 pub value: Vec<String>,
680 }
681
682 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
684 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
685 pub struct Mass {
686 pub mass: f64,
688 pub output_unit: units::UnitMass,
690 }
691
692 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
694 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
695 pub struct Volume {
696 pub volume: f64,
698 pub output_unit: units::UnitVolume,
700 }
701
702 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
704 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
705 pub struct Density {
706 pub density: f64,
708 pub output_unit: units::UnitDensity,
710 }
711
712 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
714 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
715 pub struct SurfaceArea {
716 pub surface_area: f64,
718 pub output_unit: units::UnitArea,
720 }
721
722 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
724 #[cfg_attr(feature = "tabled", derive(tabled::Tabled))]
725 pub struct CenterOfMass {
726 pub center_of_mass: Point3d<f64>,
728 pub output_unit: units::UnitLength,
730 }
731
732 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
734 pub struct GetSketchModePlane {
735 pub origin: Point3d<LengthUnit>,
737 pub x_axis: Point3d<f64>,
739 pub y_axis: Point3d<f64>,
741 pub z_axis: Point3d<f64>,
743 }
744
745 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
747 pub struct EntityGetDistance {
748 pub min_distance: LengthUnit,
750 pub max_distance: LengthUnit,
752 }
753
754 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
756 pub struct EntityClone {
757 }
758
759 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
761 pub struct EntityLinearPatternTransform {
762 pub entity_ids: Vec<Uuid>,
764 }
765
766 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
768 pub struct EntityLinearPattern {
769 pub entity_ids: Vec<Uuid>,
771 }
772
773 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
775 pub struct EntityCircularPattern {
776 pub entity_ids: Vec<Uuid>,
778 }
779
780 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
782 pub struct EntityMirror {
783 pub entity_ids: Vec<Uuid>
785 }
786
787 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
789 pub struct EntityMirrorAcrossEdge {
790 pub entity_ids: Vec<Uuid>
792 }
793
794 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
796 pub struct EntityMakeHelix {
797 }
798
799 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
801 pub struct EntityMakeHelixFromParams {
802 }
803
804 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
806 pub struct EntityMakeHelixFromEdge {
807 }
808
809 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
811 pub struct Solid3dGetExtrusionFaceInfo {
812 pub faces: Vec<ExtrusionFaceInfo>,
814 }
815
816 #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)]
818 pub struct ExtrusionFaceInfo {
819 pub curve_id: Option<Uuid>,
821
822 pub face_id: Option<Uuid>,
824
825 pub cap: ExtrusionFaceCapType,
828 }
829
830 }
831}