From 6baea330a6b0c6cb88ca8ce29b37fcae194d1199 Mon Sep 17 00:00:00 2001 From: irev-dev Date: Thu, 6 Aug 2026 14:09:01 +1000 Subject: [PATCH 1/2] Add standalone 3D curve entity references --- modeling-cmds/openapi/api.json | 24 +++++++++++++++++++++++- modeling-cmds/src/shared.rs | 6 ++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/modeling-cmds/openapi/api.json b/modeling-cmds/openapi/api.json index 7fba1ff8..ee1882b1 100644 --- a/modeling-cmds/openapi/api.json +++ b/modeling-cmds/openapi/api.json @@ -1573,6 +1573,27 @@ "type" ] }, + { + "description": "A uuid referencing a standalone curve in 3D space.", + "type": "object", + "properties": { + "curve_id": { + "description": "Id of the curve entity.", + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "curve3d" + ] + } + }, + "required": [ + "curve_id", + "type" + ] + }, { "description": "A uuid referencing an edge on a solid2d (profile) - used for raw sketch/profile edges. This is distinct from the face-based Edge reference which is used for BRep/swept body edges.", "type": "object", @@ -1686,7 +1707,8 @@ "face", "plane", "vertex", - "region" + "region", + "curve3d" ] }, "Error": { diff --git a/modeling-cmds/src/shared.rs b/modeling-cmds/src/shared.rs index 7d9c93ab..8c7553ae 100644 --- a/modeling-cmds/src/shared.rs +++ b/modeling-cmds/src/shared.rs @@ -127,6 +127,11 @@ pub enum EntityReference { #[serde(default, skip_serializing_if = "Option::is_none")] topology_fallback: Option, }, + /// A uuid referencing a standalone curve in 3D space. + Curve3d { + /// Id of the curve entity. + curve_id: Uuid, + }, /// A uuid referencing an edge on a solid2d (profile) - used for raw sketch/profile edges. /// This is distinct from the face-based Edge reference which is used for BRep/swept body edges. Solid2dEdge { @@ -1205,6 +1210,7 @@ pub enum EntityType { Plane, Vertex, Region, + Curve3D, } /// The type of Curve (embedded within path) From 3200394575f4d399e4ae0aadd6039a592df534f8 Mon Sep 17 00:00:00 2001 From: irev-dev Date: Fri, 7 Aug 2026 08:35:36 +1000 Subject: [PATCH 2/2] Narrow standalone curve references to helixes --- modeling-cmds/openapi/api.json | 13 ++++++------- modeling-cmds/src/shared.rs | 9 ++++----- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/modeling-cmds/openapi/api.json b/modeling-cmds/openapi/api.json index ee1882b1..336e6558 100644 --- a/modeling-cmds/openapi/api.json +++ b/modeling-cmds/openapi/api.json @@ -1574,23 +1574,23 @@ ] }, { - "description": "A uuid referencing a standalone curve in 3D space.", + "description": "A uuid referencing a helix.", "type": "object", "properties": { - "curve_id": { - "description": "Id of the curve entity.", + "helix_id": { + "description": "Id of the helix object.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ - "curve3d" + "helix" ] } }, "required": [ - "curve_id", + "helix_id", "type" ] }, @@ -1707,8 +1707,7 @@ "face", "plane", "vertex", - "region", - "curve3d" + "region" ] }, "Error": { diff --git a/modeling-cmds/src/shared.rs b/modeling-cmds/src/shared.rs index 8c7553ae..389111ea 100644 --- a/modeling-cmds/src/shared.rs +++ b/modeling-cmds/src/shared.rs @@ -127,10 +127,10 @@ pub enum EntityReference { #[serde(default, skip_serializing_if = "Option::is_none")] topology_fallback: Option, }, - /// A uuid referencing a standalone curve in 3D space. - Curve3d { - /// Id of the curve entity. - curve_id: Uuid, + /// A uuid referencing a helix. + Helix { + /// Id of the helix object. + helix_id: Uuid, }, /// A uuid referencing an edge on a solid2d (profile) - used for raw sketch/profile edges. /// This is distinct from the face-based Edge reference which is used for BRep/swept body edges. @@ -1210,7 +1210,6 @@ pub enum EntityType { Plane, Vertex, Region, - Curve3D, } /// The type of Curve (embedded within path)