diff --git a/public/kcl-samples/screenshots/ball-joint-rod-end.png b/public/kcl-samples/screenshots/ball-joint-rod-end.png index ba74c58b0..6dff8f8f0 100644 Binary files a/public/kcl-samples/screenshots/ball-joint-rod-end.png and b/public/kcl-samples/screenshots/ball-joint-rod-end.png differ diff --git a/public/kcl-samples/screenshots/surgical-drill-guide.png b/public/kcl-samples/screenshots/surgical-drill-guide.png index b75b445e2..e69de29bb 100644 Binary files a/public/kcl-samples/screenshots/surgical-drill-guide.png and b/public/kcl-samples/screenshots/surgical-drill-guide.png differ diff --git a/public/kcl-samples/screenshots/teapot.png b/public/kcl-samples/screenshots/teapot.png index e6e5b5b5f..e69de29bb 100644 Binary files a/public/kcl-samples/screenshots/teapot.png and b/public/kcl-samples/screenshots/teapot.png differ diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 74c2be1c6..918f321c0 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -2071,9 +2071,9 @@ dependencies = [ [[package]] name = "kittycad-modeling-cmds" -version = "0.2.124" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221aa4670a7ad7dc8f1e4e0f9990bf3cff0a64417eb76493bafe5bbbc1f8350a" +checksum = "cfd09d95f8bbeb090d4d1137c9bf421eb75763f7a30e4a9e8eefa249ddf20bd3" dependencies = [ "anyhow", "chrono", diff --git a/rust/Cargo.toml b/rust/Cargo.toml index f9ffbb0cf..c38590cc0 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -36,7 +36,7 @@ dashmap = { version = "6.1.0" } http = "1" indexmap = "2.9.0" kittycad = { version = "0.3.37", default-features = false, features = ["js", "requests"] } -kittycad-modeling-cmds = { version = "0.2.124", features = ["ts-rs", "websocket"] } +kittycad-modeling-cmds = { version = "0.2.125", features = ["ts-rs", "websocket"] } lazy_static = "1.5.0" miette = "7.6.0" pyo3 = { version = "0.24.2" } @@ -60,6 +60,6 @@ lossy_float_literal = "warn" result_large_err = "allow" # Example: how to point modeling-app at a different repo (e.g. a branch or a local clone) -#[patch.crates-io] -#kittycad-modeling-cmds = { path = "../../../modeling-api/modeling-cmds" } -#kittycad-modeling-session = { path = "../../../modeling-api/modeling-session" } +# [patch.crates-io] +# kittycad-modeling-cmds = { path = "../../modeling-api/modeling-cmds/" } +# kittycad-modeling-session = { path = "../../modeling-api/modeling-session" } diff --git a/rust/kcl-lib/src/std/axis_or_reference.rs b/rust/kcl-lib/src/std/axis_or_reference.rs index 065a02742..31194912f 100644 --- a/rust/kcl-lib/src/std/axis_or_reference.rs +++ b/rust/kcl-lib/src/std/axis_or_reference.rs @@ -58,4 +58,11 @@ impl Axis3dOrPoint3d { Axis3dOrPoint3d::Point(point) => point.clone(), } } + + pub fn axis_origin(&self) -> Option<[TyF64; 3]> { + match self { + Axis3dOrPoint3d::Axis { origin, .. } => Some(origin.clone()), + Axis3dOrPoint3d::Point(..) => None, + } + } } diff --git a/rust/kcl-lib/src/std/transform.rs b/rust/kcl-lib/src/std/transform.rs index 694e84921..c605595f3 100644 --- a/rust/kcl-lib/src/std/transform.rs +++ b/rust/kcl-lib/src/std/transform.rs @@ -5,7 +5,7 @@ use kcmc::{ ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared, - shared::{Point3d, Point4d}, + shared::{OriginType, Point3d}, }; use kittycad_modeling_cmds as kcmc; @@ -18,6 +18,16 @@ use crate::{ std::{Args, args::TyF64, axis_or_reference::Axis3dOrPoint3d}, }; +fn transform_by(property: T, set: bool, is_local: bool, origin: Option) -> shared::TransformBy { + shared::TransformBy { + property, + set, + #[expect(deprecated)] + is_local, + origin, + } +} + /// Scale a solid or a sketch. pub async fn scale(exec_state: &mut ExecState, args: Args) -> Result { let objects = args.get_unlabeled_kw_arg( @@ -70,6 +80,13 @@ async fn inner_scale( exec_state.flush_batch_for_solids((&args).into(), solids).await?; } + let is_global = global.unwrap_or(false); + let origin = if is_global { + Some(OriginType::Global) + } else { + Some(OriginType::Local) + }; + let mut objects = objects.clone(); for object_id in objects.ids(&args.ctx).await? { exec_state @@ -78,15 +95,16 @@ async fn inner_scale( ModelingCmd::from(mcmd::SetObjectTransform { object_id, transforms: vec![shared::ComponentTransform { - scale: Some(shared::TransformBy::> { - property: Point3d { + scale: Some(transform_by( + Point3d { x: x.unwrap_or(1.0), y: y.unwrap_or(1.0), z: z.unwrap_or(1.0), }, - set: false, - is_local: !global.unwrap_or(false), - }), + false, + !is_global, + origin, + )), translate: None, rotate_rpy: None, rotate_angle_axis: None, @@ -142,6 +160,13 @@ async fn inner_translate( exec_state.flush_batch_for_solids((&args).into(), solids).await?; } + let is_global = global.unwrap_or(false); + let origin = if is_global { + Some(OriginType::Global) + } else { + Some(OriginType::Local) + }; + let mut objects = objects.clone(); for object_id in objects.ids(&args.ctx).await? { exec_state @@ -150,15 +175,16 @@ async fn inner_translate( ModelingCmd::from(mcmd::SetObjectTransform { object_id, transforms: vec![shared::ComponentTransform { - translate: Some(shared::TransformBy::> { - property: shared::Point3d { + translate: Some(transform_by( + shared::Point3d { x: LengthUnit(x.as_ref().map(|t| t.to_mm()).unwrap_or_default()), y: LengthUnit(y.as_ref().map(|t| t.to_mm()).unwrap_or_default()), z: LengthUnit(z.as_ref().map(|t| t.to_mm()).unwrap_or_default()), }, - set: false, - is_local: !global.unwrap_or(false), - }), + false, + !is_global, + origin, + )), scale: None, rotate_rpy: None, rotate_angle_axis: None, @@ -193,6 +219,7 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result = args.get_kw_arg_opt("angle", &RuntimeType::degrees(), exec_state)?; let global = args.get_kw_arg_opt("global", &RuntimeType::bool(), exec_state)?; @@ -286,6 +313,7 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result, yaw: Option, axis: Option<[f64; 3]>, + origin: Option<[f64; 3]>, angle: Option, global: Option, exec_state: &mut ExecState, @@ -313,6 +342,20 @@ async fn inner_rotate( exec_state.flush_batch_for_solids((&args).into(), solids).await?; } + let origin = if let Some(origin) = origin { + Some(OriginType::Custom { + origin: shared::Point3d { + x: origin[0], + y: origin[1], + z: origin[2], + }, + }) + } else if global.unwrap_or(false) { + Some(OriginType::Global) + } else { + Some(OriginType::Local) + }; + let mut objects = objects.clone(); for object_id in objects.ids(&args.ctx).await? { if let (Some(axis), Some(angle)) = (&axis, angle) { @@ -322,16 +365,17 @@ async fn inner_rotate( ModelingCmd::from(mcmd::SetObjectTransform { object_id, transforms: vec![shared::ComponentTransform { - rotate_angle_axis: Some(shared::TransformBy::> { - property: shared::Point4d { + rotate_angle_axis: Some(transform_by( + shared::Point4d { x: axis[0], y: axis[1], z: axis[2], w: angle, }, - set: false, - is_local: !global.unwrap_or(false), - }), + false, + !global.unwrap_or(false), + origin, + )), scale: None, rotate_rpy: None, translate: None, @@ -347,15 +391,16 @@ async fn inner_rotate( ModelingCmd::from(mcmd::SetObjectTransform { object_id, transforms: vec![shared::ComponentTransform { - rotate_rpy: Some(shared::TransformBy::> { - property: shared::Point3d { + rotate_rpy: Some(transform_by( + shared::Point3d { x: roll.unwrap_or(0.0), y: pitch.unwrap_or(0.0), z: yaw.unwrap_or(0.0), }, - set: false, - is_local: !global.unwrap_or(false), - }), + false, + !global.unwrap_or(false), + origin, + )), scale: None, rotate_angle_axis: None, translate: None, diff --git a/rust/kcl-lib/tests/import_async/artifact_commands.snap b/rust/kcl-lib/tests/import_async/artifact_commands.snap index fe05bf663..e7de19561 100644 --- a/rust/kcl-lib/tests/import_async/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_async/artifact_commands.snap @@ -5571926,7 +5571926,10 @@ description: Artifact commands import_async.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/import_mesh_clone/artifact_commands.snap b/rust/kcl-lib/tests/import_mesh_clone/artifact_commands.snap index e6b12f080..9b6e57225 100644 --- a/rust/kcl-lib/tests/import_mesh_clone/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_mesh_clone/artifact_commands.snap @@ -19,7 +19,10 @@ description: Artifact commands import_mesh_clone.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -84,7 +87,10 @@ description: Artifact commands import_mesh_clone.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -149,7 +155,10 @@ description: Artifact commands import_mesh_clone.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -214,7 +223,10 @@ description: Artifact commands import_mesh_clone.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/import_transform/artifact_commands.snap b/rust/kcl-lib/tests/import_transform/artifact_commands.snap index 03ff943e5..0533d02b5 100644 --- a/rust/kcl-lib/tests/import_transform/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_transform/artifact_commands.snap @@ -5571084,7 +5571084,10 @@ description: Artifact commands import_transform.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -5571107,7 +5571110,10 @@ description: Artifact commands import_transform.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -5571134,7 +5571140,10 @@ description: Artifact commands import_transform.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } } } ] diff --git a/rust/kcl-lib/tests/import_whole_simple/artifact_commands.snap b/rust/kcl-lib/tests/import_whole_simple/artifact_commands.snap index bdd71a6a6..154df0f7f 100644 --- a/rust/kcl-lib/tests/import_whole_simple/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_whole_simple/artifact_commands.snap @@ -182,7 +182,10 @@ description: Artifact commands import_whole_simple.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/import_whole_transitive_import/artifact_commands.snap b/rust/kcl-lib/tests/import_whole_transitive_import/artifact_commands.snap index 34e17168a..0c90f04d3 100644 --- a/rust/kcl-lib/tests/import_whole_transitive_import/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_whole_transitive_import/artifact_commands.snap @@ -20,7 +20,10 @@ description: Artifact commands import_whole_transitive_import.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap b/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap index aecf2cdaf..73d533c2d 100644 --- a/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap +++ b/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap @@ -393,7 +393,10 @@ description: Artifact commands intersect_cubes.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/artifact_commands.snap index a313abe15..1d0213ca5 100644 --- a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/artifact_commands.snap @@ -956,7 +956,10 @@ description: Artifact commands ball-joint-rod-end.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1211,7 +1214,10 @@ description: Artifact commands ball-joint-rod-end.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/rendered_model.png index ba74c58b0..6dff8f8f0 100644 Binary files a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/rendered_model.png and b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/rendered_model.png differ diff --git a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap index fe859f6cf..66d1cd994 100644 --- a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap @@ -7382,7 +7382,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7406,7 +7409,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7430,7 +7436,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7454,7 +7463,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7478,7 +7490,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7523,7 +7538,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_commands.snap index 6f9113f7f..062fb1684 100644 --- a/rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_commands.snap @@ -7075,7 +7075,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7139,7 +7142,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7163,7 +7169,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7267,7 +7276,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7291,7 +7303,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7315,7 +7330,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7339,7 +7357,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7363,7 +7384,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7387,7 +7411,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7411,7 +7438,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7435,7 +7465,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7459,7 +7492,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7483,7 +7519,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/artifact_commands.snap index 2b9276e27..5e786017d 100644 --- a/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/artifact_commands.snap @@ -482,7 +482,10 @@ description: Artifact commands curtain-wall-anchor-plate.kcl "z": -1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -616,7 +619,10 @@ description: Artifact commands curtain-wall-anchor-plate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1479,7 +1485,10 @@ description: Artifact commands curtain-wall-anchor-plate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -1502,7 +1511,10 @@ description: Artifact commands curtain-wall-anchor-plate.kcl "z": 5.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap index 7f3a0667a..299031d63 100644 --- a/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap @@ -206,7 +206,10 @@ description: Artifact commands dodecahedron.kcl "z": -6604.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -231,7 +234,10 @@ description: Artifact commands dodecahedron.kcl "z": 0.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -441,7 +447,10 @@ description: Artifact commands dodecahedron.kcl "z": -6606.54 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -466,7 +475,10 @@ description: Artifact commands dodecahedron.kcl "z": 0.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -676,7 +688,10 @@ description: Artifact commands dodecahedron.kcl "z": -6609.079999999999 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -701,7 +716,10 @@ description: Artifact commands dodecahedron.kcl "z": 72.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -911,7 +929,10 @@ description: Artifact commands dodecahedron.kcl "z": -6611.62 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -936,7 +957,10 @@ description: Artifact commands dodecahedron.kcl "z": 144.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -1146,7 +1170,10 @@ description: Artifact commands dodecahedron.kcl "z": -6614.159999999999 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1171,7 +1198,10 @@ description: Artifact commands dodecahedron.kcl "z": 216.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -1381,7 +1411,10 @@ description: Artifact commands dodecahedron.kcl "z": -6616.7 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1406,7 +1439,10 @@ description: Artifact commands dodecahedron.kcl "z": 288.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -1616,7 +1652,10 @@ description: Artifact commands dodecahedron.kcl "z": -6619.24 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1641,7 +1680,10 @@ description: Artifact commands dodecahedron.kcl "z": 0.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -1851,7 +1893,10 @@ description: Artifact commands dodecahedron.kcl "z": -6621.78 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1876,7 +1921,10 @@ description: Artifact commands dodecahedron.kcl "z": 36.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -2086,7 +2134,10 @@ description: Artifact commands dodecahedron.kcl "z": -6624.32 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2111,7 +2162,10 @@ description: Artifact commands dodecahedron.kcl "z": 108.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -2321,7 +2375,10 @@ description: Artifact commands dodecahedron.kcl "z": -6626.859999999999 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2346,7 +2403,10 @@ description: Artifact commands dodecahedron.kcl "z": 180.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -2556,7 +2616,10 @@ description: Artifact commands dodecahedron.kcl "z": -6606.794 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2581,7 +2644,10 @@ description: Artifact commands dodecahedron.kcl "z": 252.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -2791,7 +2857,10 @@ description: Artifact commands dodecahedron.kcl "z": -6607.048 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2816,7 +2885,10 @@ description: Artifact commands dodecahedron.kcl "z": 324.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null diff --git a/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/artifact_commands.snap index 2440021fe..c108d2874 100644 --- a/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/artifact_commands.snap @@ -2743,7 +2743,10 @@ description: Artifact commands helical-planetary-gearset.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/herringbone-gear/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/herringbone-gear/artifact_commands.snap index 0900e4fef..f7c81fb4b 100644 --- a/rust/kcl-lib/tests/kcl_samples/herringbone-gear/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/herringbone-gear/artifact_commands.snap @@ -629,7 +629,10 @@ description: Artifact commands herringbone-gear.kcl "z": 8.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/artifact_commands.snap index 70f1a1e69..c0e33a485 100644 --- a/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/artifact_commands.snap @@ -707,7 +707,10 @@ description: Artifact commands herringbone-planetary-gearset.kcl "z": 8.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1383,7 +1386,10 @@ description: Artifact commands herringbone-planetary-gearset.kcl "z": 8.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2059,7 +2065,10 @@ description: Artifact commands herringbone-planetary-gearset.kcl "z": 8.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2125,7 +2134,10 @@ description: Artifact commands herringbone-planetary-gearset.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/artifact_commands.snap index 8817e08d6..3b9c89676 100644 --- a/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/artifact_commands.snap @@ -689,7 +689,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1088,7 +1091,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1344,7 +1350,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1589,7 +1598,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1817,7 +1829,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1913,7 +1928,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2065,7 +2083,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2873,7 +2894,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -3012,7 +3036,10 @@ description: Artifact commands pdu-faceplate.kcl "z": -13.335 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap index d9f72ecaa..e6f3133af 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap @@ -1847,7 +1847,10 @@ description: Artifact commands pipe-flange-assembly.kcl "w": 180.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "scale": null } @@ -1869,7 +1872,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 3.8353999999999995 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1893,7 +1899,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": -2.3114 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2223,7 +2232,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 17.525999999999996 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2952,7 +2964,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 18.3388 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2977,7 +2992,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -3387,7 +3405,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": -36.064825 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -3739,7 +3760,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -3762,7 +3786,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 11.175999999999998 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -4093,7 +4120,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -4116,7 +4146,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": -15.011399999999998 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/artifact_commands.snap index 6680a3d98..eb9f89592 100644 --- a/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/artifact_commands.snap @@ -570,7 +570,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 110.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -595,7 +598,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -794,7 +800,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 130.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -819,7 +828,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -1018,7 +1030,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 140.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1043,7 +1058,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -1242,7 +1260,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 145.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1267,7 +1288,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -1709,7 +1733,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 133.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1734,7 +1761,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -2003,7 +2033,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 133.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2028,7 +2061,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -2297,7 +2333,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 133.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2322,7 +2361,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null diff --git a/rust/kcl-lib/tests/kcl_samples/sash-window/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/sash-window/artifact_commands.snap index abbaf12bf..c1d1053da 100644 --- a/rust/kcl-lib/tests/kcl_samples/sash-window/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/sash-window/artifact_commands.snap @@ -1002,7 +1002,10 @@ description: Artifact commands sash-window.kcl "z": -227.5 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1026,7 +1029,10 @@ description: Artifact commands sash-window.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1277,7 +1283,10 @@ description: Artifact commands sash-window.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1301,7 +1310,10 @@ description: Artifact commands sash-window.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1557,7 +1569,10 @@ description: Artifact commands sash-window.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1581,7 +1596,10 @@ description: Artifact commands sash-window.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1606,7 +1624,10 @@ description: Artifact commands sash-window.kcl "z": -0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -2177,7 +2198,10 @@ description: Artifact commands sash-window.kcl "z": 227.5 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/spool/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/spool/artifact_commands.snap index 28f7d10a9..a9fd6fe93 100644 --- a/rust/kcl-lib/tests/kcl_samples/spool/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/spool/artifact_commands.snap @@ -1805,7 +1805,10 @@ description: Artifact commands spool.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/artifact_commands.snap index 0efef9762..281975a7f 100644 --- a/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/artifact_commands.snap @@ -661,7 +661,10 @@ description: Artifact commands spur-reduction-gearset.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -686,7 +689,10 @@ description: Artifact commands spur-reduction-gearset.kcl "z": 3.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null diff --git a/rust/kcl-lib/tests/kcl_samples/t-slot-rail/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/t-slot-rail/artifact_commands.snap index 135a28b66..9ff69f9f8 100644 --- a/rust/kcl-lib/tests/kcl_samples/t-slot-rail/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/t-slot-rail/artifact_commands.snap @@ -502,7 +502,10 @@ description: Artifact commands t-slot-rail.kcl "z": 1.5 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } } } ] diff --git a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap index b3964fd86..47063d3bf 100644 --- a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap @@ -9827,7 +9827,10 @@ description: Artifact commands walkie-talkie.kcl "z": 50.8 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -9851,7 +9854,10 @@ description: Artifact commands walkie-talkie.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -9875,7 +9881,10 @@ description: Artifact commands walkie-talkie.kcl "z": 12.7 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -9899,7 +9908,10 @@ description: Artifact commands walkie-talkie.kcl "z": 50.8 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -10181,7 +10193,10 @@ description: Artifact commands walkie-talkie.kcl "z": 31.75 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -10463,7 +10478,10 @@ description: Artifact commands walkie-talkie.kcl "z": 18.541999999999998 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -10746,7 +10764,10 @@ description: Artifact commands walkie-talkie.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -10769,7 +10790,10 @@ description: Artifact commands walkie-talkie.kcl "z": 19.558 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -11052,7 +11076,10 @@ description: Artifact commands walkie-talkie.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -11075,7 +11102,10 @@ description: Artifact commands walkie-talkie.kcl "z": 6.350000000000001 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/module_return_using_var/artifact_commands.snap b/rust/kcl-lib/tests/module_return_using_var/artifact_commands.snap index b61230706..d9c570edf 100644 --- a/rust/kcl-lib/tests/module_return_using_var/artifact_commands.snap +++ b/rust/kcl-lib/tests/module_return_using_var/artifact_commands.snap @@ -225,7 +225,10 @@ description: Artifact commands module_return_using_var.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap index 59779f3d0..06d92674f 100644 --- a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap @@ -15925,7 +15925,10 @@ description: Artifact commands multiple-foreign-imports-all-render.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -15966,7 +15969,10 @@ description: Artifact commands multiple-foreign-imports-all-render.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap index 40c4df93c..e2e4c5477 100644 --- a/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap @@ -571,7 +571,10 @@ description: Artifact commands rotate_after_fillet.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null diff --git a/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap index 5d5b61308..fe5a687ea 100644 --- a/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap @@ -573,7 +573,10 @@ description: Artifact commands scale_after_fillet.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } } } ] diff --git a/rust/kcl-lib/tests/sketch_on_face_union/artifact_commands.snap b/rust/kcl-lib/tests/sketch_on_face_union/artifact_commands.snap index d7df86c6c..1995764b9 100644 --- a/rust/kcl-lib/tests/sketch_on_face_union/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch_on_face_union/artifact_commands.snap @@ -1025,7 +1025,10 @@ description: Artifact commands sketch_on_face_union.kcl "w": -90.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "scale": null } diff --git a/rust/kcl-lib/tests/spheres/artifact_commands.snap b/rust/kcl-lib/tests/spheres/artifact_commands.snap index 846016f96..8ba45ec31 100644 --- a/rust/kcl-lib/tests/spheres/artifact_commands.snap +++ b/rust/kcl-lib/tests/spheres/artifact_commands.snap @@ -357,7 +357,10 @@ description: Artifact commands spheres.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap b/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap index b44d86ef1..efb0356fb 100644 --- a/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap @@ -367,7 +367,10 @@ description: Artifact commands subtract_cylinder_from_cube.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap b/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap index fa16e058e..d85f89e2e 100644 --- a/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap @@ -393,7 +393,10 @@ description: Artifact commands subtract_doesnt_need_brackets.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/subtract_regression03/artifact_commands.snap b/rust/kcl-lib/tests/subtract_regression03/artifact_commands.snap index bc006cfe6..196428639 100644 --- a/rust/kcl-lib/tests/subtract_regression03/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_regression03/artifact_commands.snap @@ -233,7 +233,10 @@ description: Artifact commands subtract_regression03.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } } } ] diff --git a/rust/kcl-lib/tests/subtract_regression12/rendered_model.png b/rust/kcl-lib/tests/subtract_regression12/rendered_model.png index c541dac7c..5aae217e3 100644 Binary files a/rust/kcl-lib/tests/subtract_regression12/rendered_model.png and b/rust/kcl-lib/tests/subtract_regression12/rendered_model.png differ diff --git a/rust/kcl-lib/tests/subtract_with_pattern/artifact_commands.snap b/rust/kcl-lib/tests/subtract_with_pattern/artifact_commands.snap index 890c1e7b6..fc9fed252 100644 --- a/rust/kcl-lib/tests/subtract_with_pattern/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_with_pattern/artifact_commands.snap @@ -682,7 +682,10 @@ description: Artifact commands subtract_with_pattern.kcl "w": 90.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "scale": null } diff --git a/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/artifact_commands.snap b/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/artifact_commands.snap index ce0756a21..697f9bc1a 100644 --- a/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/artifact_commands.snap @@ -384,7 +384,10 @@ description: Artifact commands subtract_with_pattern_cut_thru.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -556,7 +559,10 @@ description: Artifact commands subtract_with_pattern_cut_thru.kcl "w": 90.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "scale": null } diff --git a/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap index 07a50c0cf..63b684c66 100644 --- a/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap @@ -570,7 +570,10 @@ description: Artifact commands translate_after_fillet.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/union_cubes/artifact_commands.snap b/rust/kcl-lib/tests/union_cubes/artifact_commands.snap index 1791939f3..33bb10a90 100644 --- a/rust/kcl-lib/tests/union_cubes/artifact_commands.snap +++ b/rust/kcl-lib/tests/union_cubes/artifact_commands.snap @@ -393,7 +393,10 @@ description: Artifact commands union_cubes.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/user_reported_union_2_bug/artifact_commands.snap b/rust/kcl-lib/tests/user_reported_union_2_bug/artifact_commands.snap index 61e4b6840..767192d7c 100644 --- a/rust/kcl-lib/tests/user_reported_union_2_bug/artifact_commands.snap +++ b/rust/kcl-lib/tests/user_reported_union_2_bug/artifact_commands.snap @@ -146,7 +146,10 @@ description: Artifact commands user_reported_union_2_bug.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -401,7 +404,10 @@ description: Artifact commands user_reported_union_2_bug.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null