diff --git a/modeling-cmds/src/def_enum.rs b/modeling-cmds/src/def_enum.rs index 64adf73f..26d98390 100644 --- a/modeling-cmds/src/def_enum.rs +++ b/modeling-cmds/src/def_enum.rs @@ -403,7 +403,8 @@ define_modeling_cmd_enum! { pub cylinder_id: Uuid, /// Number of revolutions. pub revolutions: f64, - /// Start angle (in degrees). + /// Start angle. + #[serde(default)] pub start_angle: Angle, /// Is the helix rotation clockwise? pub is_clockwise: bool, @@ -411,6 +412,26 @@ define_modeling_cmd_enum! { pub length: LengthUnit, } + /// Create a helix using the specified parameters. + #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdVariant)] + pub struct EntityMakeHelixFromParams { + /// Radius of the helix. + pub radius: f64, + /// Length of the helix. + pub length: LengthUnit, + /// Number of revolutions. + pub revolutions: f64, + /// Start angle. + #[serde(default)] + pub start_angle: Angle, + /// Is the helix rotation clockwise? + pub is_clockwise: bool, + /// Center of the helix at the base of the helix. + pub center: Point3d, + /// Axis of the helix. The helix will be created around and in the direction of this axis. + pub axis: Point3d, + } + /// Mirror the input entities over the specified axis. (Currently only supports sketches) #[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, ModelingCmdVariant)] pub struct EntityMirror { diff --git a/modeling-cmds/src/ok_response.rs b/modeling-cmds/src/ok_response.rs index 659f0633..7b9dd787 100644 --- a/modeling-cmds/src/ok_response.rs +++ b/modeling-cmds/src/ok_response.rs @@ -89,6 +89,11 @@ define_ok_modeling_cmd_response_enum! { pub struct EntityMakeHelix { } + /// The response from the `EntityMakeHelixFromParams` endpoint. + #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)] + pub struct EntityMakeHelixFromParams { + } + /// The response from the `EntityMirror` endpoint. #[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ModelingCmdOutput)] pub struct EntityMirror {