Move solids functions to KCL (#7214)
Signed-off-by: Nick Cameron <nrc@ncameron.org>
@ -618,6 +618,12 @@ impl FnData {
 | 
			
		||||
    pub(super) fn to_autocomplete_snippet(&self) -> String {
 | 
			
		||||
        if self.name == "loft" {
 | 
			
		||||
            return "loft([${0:sketch000}, ${1:sketch001}])".to_owned();
 | 
			
		||||
        } else if self.name == "union" {
 | 
			
		||||
            return "union([${0:extrude001}, ${1:extrude002}])".to_owned();
 | 
			
		||||
        } else if self.name == "subtract" {
 | 
			
		||||
            return "subtract([${0:extrude001}], tools = [${1:extrude002}])".to_owned();
 | 
			
		||||
        } else if self.name == "intersect" {
 | 
			
		||||
            return "intersect([${0:extrude001}, ${1:extrude002}])".to_owned();
 | 
			
		||||
        } else if self.name == "clone" {
 | 
			
		||||
            return "clone(${0:part001})".to_owned();
 | 
			
		||||
        } else if self.name == "hole" {
 | 
			
		||||
@ -802,15 +808,12 @@ impl ArgData {
 | 
			
		||||
            return Some((index + n - 1, snippet));
 | 
			
		||||
        }
 | 
			
		||||
        match self.ty.as_deref() {
 | 
			
		||||
            Some(s) if s.starts_with("number") => Some((index, format!(r#"{label}${{{}:3.14}}"#, index))),
 | 
			
		||||
            Some("Point2d") => Some((
 | 
			
		||||
                index + 1,
 | 
			
		||||
                format!(r#"{label}[${{{}:3.14}}, ${{{}:3.14}}]"#, index, index + 1),
 | 
			
		||||
            )),
 | 
			
		||||
            Some(s) if s.starts_with("number") => Some((index, format!(r#"{label}${{{}:10}}"#, index))),
 | 
			
		||||
            Some("Point2d") => Some((index + 1, format!(r#"{label}[${{{}:0}}, ${{{}:0}}]"#, index, index + 1))),
 | 
			
		||||
            Some("Point3d") => Some((
 | 
			
		||||
                index + 2,
 | 
			
		||||
                format!(
 | 
			
		||||
                    r#"{label}[${{{}:3.14}}, ${{{}:3.14}}, ${{{}:3.14}}]"#,
 | 
			
		||||
                    r#"{label}[${{{}:0}}, ${{{}:0}}, ${{{}:0}}]"#,
 | 
			
		||||
                    index,
 | 
			
		||||
                    index + 1,
 | 
			
		||||
                    index + 2
 | 
			
		||||
 | 
			
		||||
@ -578,12 +578,6 @@ pub trait StdLibFn: std::fmt::Debug + Send + Sync {
 | 
			
		||||
    fn to_autocomplete_snippet(&self) -> Result<String> {
 | 
			
		||||
        if self.name() == "loft" {
 | 
			
		||||
            return Ok("loft([${0:sketch000}, ${1:sketch001}])".to_string());
 | 
			
		||||
        } else if self.name() == "union" {
 | 
			
		||||
            return Ok("union([${0:extrude001}, ${1:extrude002}])".to_string());
 | 
			
		||||
        } else if self.name() == "subtract" {
 | 
			
		||||
            return Ok("subtract([${0:extrude001}], tools = [${1:extrude002}])".to_string());
 | 
			
		||||
        } else if self.name() == "intersect" {
 | 
			
		||||
            return Ok("intersect([${0:extrude001}, ${1:extrude002}])".to_string());
 | 
			
		||||
        } else if self.name() == "subtract2D" {
 | 
			
		||||
            return Ok("subtract2d(${0:%}, tool = ${1:%})".to_string());
 | 
			
		||||
        }
 | 
			
		||||
@ -994,7 +988,7 @@ mod tests {
 | 
			
		||||
            panic!();
 | 
			
		||||
        };
 | 
			
		||||
        let snippet = fillet_fn.to_autocomplete_snippet();
 | 
			
		||||
        assert_eq!(snippet, r#"fillet(radius = ${0:3.14}, tags = [${1:tag_or_edge_fn}])"#);
 | 
			
		||||
        assert_eq!(snippet, r#"fillet(radius = ${0:10}, tags = [${1:tag_or_edge_fn}])"#);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
@ -1014,11 +1008,14 @@ mod tests {
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_autocomplete_snippet_pattern_circular_3d() {
 | 
			
		||||
        // We test this one specifically because it has ints and floats and strings.
 | 
			
		||||
        let pattern_fn: Box<dyn StdLibFn> = Box::new(crate::std::patterns::PatternCircular3D);
 | 
			
		||||
        let snippet = pattern_fn.to_autocomplete_snippet().unwrap();
 | 
			
		||||
        let data = kcl_doc::walk_prelude();
 | 
			
		||||
        let DocData::Fn(data) = data.find_by_name("patternCircular3d").unwrap() else {
 | 
			
		||||
            panic!();
 | 
			
		||||
        };
 | 
			
		||||
        let snippet = data.to_autocomplete_snippet();
 | 
			
		||||
        assert_eq!(
 | 
			
		||||
            snippet,
 | 
			
		||||
            r#"patternCircular3d(${0:%}, instances = ${1:10}, axis = [${2:1}, ${3:0}, ${4:0}], center = [${5:0}, ${6:0}, ${7:0}])"#
 | 
			
		||||
            r#"patternCircular3d(instances = ${0:10}, axis = [${1:1}, ${2:0}, ${3:0}], center = [${4:0}, ${5:0}, ${6:0}])"#
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1040,7 +1037,7 @@ mod tests {
 | 
			
		||||
        };
 | 
			
		||||
        let snippet = circle_fn.to_autocomplete_snippet();
 | 
			
		||||
        assert_eq!(
 | 
			
		||||
            snippet, r#"circle(center = [${0:0}, ${1:0}], diameter = ${2:3.14})"#,
 | 
			
		||||
            snippet, r#"circle(center = [${0:0}, ${1:0}], diameter = ${2:10})"#,
 | 
			
		||||
            "actual = left, expected = right"
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
@ -1115,28 +1112,37 @@ mod tests {
 | 
			
		||||
        let snippet = helix_fn.to_autocomplete_snippet();
 | 
			
		||||
        assert_eq!(
 | 
			
		||||
            snippet,
 | 
			
		||||
            r#"helix(revolutions = ${0:3.14}, angleStart = ${1:3.14}, radius = ${2:3.14}, axis = ${3:X}, length = ${4:3.14})"#
 | 
			
		||||
            r#"helix(revolutions = ${0:10}, angleStart = ${1:10}, radius = ${2:10}, axis = ${3:X}, length = ${4:10})"#
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_autocomplete_snippet_union() {
 | 
			
		||||
        let union_fn: Box<dyn StdLibFn> = Box::new(crate::std::csg::Union);
 | 
			
		||||
        let snippet = union_fn.to_autocomplete_snippet().unwrap();
 | 
			
		||||
        let data = kcl_doc::walk_prelude();
 | 
			
		||||
        let DocData::Fn(data) = data.find_by_name("union").unwrap() else {
 | 
			
		||||
            panic!();
 | 
			
		||||
        };
 | 
			
		||||
        let snippet = data.to_autocomplete_snippet();
 | 
			
		||||
        assert_eq!(snippet, r#"union([${0:extrude001}, ${1:extrude002}])"#);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_autocomplete_snippet_subtract() {
 | 
			
		||||
        let subtract_fn: Box<dyn StdLibFn> = Box::new(crate::std::csg::Subtract);
 | 
			
		||||
        let snippet = subtract_fn.to_autocomplete_snippet().unwrap();
 | 
			
		||||
        let data = kcl_doc::walk_prelude();
 | 
			
		||||
        let DocData::Fn(data) = data.find_by_name("subtract").unwrap() else {
 | 
			
		||||
            panic!();
 | 
			
		||||
        };
 | 
			
		||||
        let snippet = data.to_autocomplete_snippet();
 | 
			
		||||
        assert_eq!(snippet, r#"subtract([${0:extrude001}], tools = [${1:extrude002}])"#);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn get_autocomplete_snippet_intersect() {
 | 
			
		||||
        let intersect_fn: Box<dyn StdLibFn> = Box::new(crate::std::csg::Intersect);
 | 
			
		||||
        let snippet = intersect_fn.to_autocomplete_snippet().unwrap();
 | 
			
		||||
        let data = kcl_doc::walk_prelude();
 | 
			
		||||
        let DocData::Fn(data) = data.find_by_name("intersect").unwrap() else {
 | 
			
		||||
            panic!();
 | 
			
		||||
        };
 | 
			
		||||
        let snippet = data.to_autocomplete_snippet();
 | 
			
		||||
        assert_eq!(snippet, r#"intersect([${0:extrude001}, ${1:extrude002}])"#);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -1197,7 +1203,7 @@ mod tests {
 | 
			
		||||
            panic!();
 | 
			
		||||
        };
 | 
			
		||||
        let snippet = offset_plane_fn.to_autocomplete_snippet();
 | 
			
		||||
        assert_eq!(snippet, r#"offsetPlane(${0:XY}, offset = ${1:3.14})"#);
 | 
			
		||||
        assert_eq!(snippet, r#"offsetPlane(${0:XY}, offset = ${1:10})"#);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // We want to test the snippets we compile at lsp start.
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,6 @@
 | 
			
		||||
//! Constructive Solid Geometry (CSG) operations.
 | 
			
		||||
 | 
			
		||||
use anyhow::Result;
 | 
			
		||||
use kcl_derive_docs::stdlib;
 | 
			
		||||
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, ModelingCmd};
 | 
			
		||||
use kittycad_modeling_cmds::{
 | 
			
		||||
    self as kcmc,
 | 
			
		||||
@ -34,85 +33,6 @@ pub async fn union(exec_state: &mut ExecState, args: Args) -> Result<KclValue, K
 | 
			
		||||
    Ok(solids.into())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Union two or more solids into a single solid.
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// // Union two cubes using the stdlib functions.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// unionedPart = union([part001, part002])
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// // Union two cubes using operators.
 | 
			
		||||
/// // NOTE: This will not work when using codemods through the UI.
 | 
			
		||||
/// // Codemods will generate the stdlib function call instead.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// // This is the equivalent of: union([part001, part002])
 | 
			
		||||
/// unionedPart = part001 + part002
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// // Union two cubes using the more programmer-friendly operator.
 | 
			
		||||
/// // NOTE: This will not work when using codemods through the UI.
 | 
			
		||||
/// // Codemods will generate the stdlib function call instead.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// // This is the equivalent of: union([part001, part002])
 | 
			
		||||
/// // Programmers will understand `|` as a union operation, but mechanical engineers
 | 
			
		||||
/// // will understand `+`, we made both work.
 | 
			
		||||
/// unionedPart = part001 | part002
 | 
			
		||||
/// ```
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "union",
 | 
			
		||||
    feature_tree_operation = true,
 | 
			
		||||
    unlabeled_first = true,
 | 
			
		||||
    args = {
 | 
			
		||||
        solids = {docs = "The solids to union."},
 | 
			
		||||
        tolerance = {docs = "The tolerance to use for the union operation."},
 | 
			
		||||
    },
 | 
			
		||||
    tags = ["solid"]
 | 
			
		||||
}]
 | 
			
		||||
pub(crate) async fn inner_union(
 | 
			
		||||
    solids: Vec<Solid>,
 | 
			
		||||
    tolerance: Option<TyF64>,
 | 
			
		||||
@ -178,66 +98,6 @@ pub async fn intersect(exec_state: &mut ExecState, args: Args) -> Result<KclValu
 | 
			
		||||
    Ok(solids.into())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Intersect returns the shared volume between multiple solids, preserving only
 | 
			
		||||
/// overlapping regions.
 | 
			
		||||
///
 | 
			
		||||
/// Intersect computes the geometric intersection of multiple solid bodies,
 | 
			
		||||
/// returning a new solid representing the volume that is common to all input
 | 
			
		||||
/// solids. This operation is useful for determining shared material regions,
 | 
			
		||||
/// verifying fit, and analyzing overlapping geometries in assemblies.
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// // Intersect two cubes using the stdlib functions.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// intersectedPart = intersect([part001, part002])
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// // Intersect two cubes using operators.
 | 
			
		||||
/// // NOTE: This will not work when using codemods through the UI.
 | 
			
		||||
/// // Codemods will generate the stdlib function call instead.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// // This is the equivalent of: intersect([part001, part002])
 | 
			
		||||
/// intersectedPart = part001 & part002
 | 
			
		||||
/// ```
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "intersect",
 | 
			
		||||
    feature_tree_operation = true,
 | 
			
		||||
    unlabeled_first = true,
 | 
			
		||||
    args = {
 | 
			
		||||
        solids = {docs = "The solids to intersect."},
 | 
			
		||||
        tolerance = {docs = "The tolerance to use for the intersection operation."},
 | 
			
		||||
    },
 | 
			
		||||
    tags = ["solid"]
 | 
			
		||||
}]
 | 
			
		||||
pub(crate) async fn inner_intersect(
 | 
			
		||||
    solids: Vec<Solid>,
 | 
			
		||||
    tolerance: Option<TyF64>,
 | 
			
		||||
@ -297,67 +157,6 @@ pub async fn subtract(exec_state: &mut ExecState, args: Args) -> Result<KclValue
 | 
			
		||||
    Ok(solids.into())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Subtract removes tool solids from base solids, leaving the remaining material.
 | 
			
		||||
///
 | 
			
		||||
/// Performs a boolean subtraction operation, removing the volume of one or more
 | 
			
		||||
/// tool solids from one or more base solids. The result is a new solid
 | 
			
		||||
/// representing the material that remains after all tool solids have been cut
 | 
			
		||||
/// away. This function is essential for machining simulations, cavity creation,
 | 
			
		||||
/// and complex multi-body part modeling.
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// // Subtract a cylinder from a cube using the stdlib functions.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// subtractedPart = subtract([part001], tools=[part002])
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// // Subtract a cylinder from a cube using operators.
 | 
			
		||||
/// // NOTE: This will not work when using codemods through the UI.
 | 
			
		||||
/// // Codemods will generate the stdlib function call instead.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// // This is the equivalent of: subtract([part001], tools=[part002])
 | 
			
		||||
/// subtractedPart = part001 - part002
 | 
			
		||||
/// ```
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "subtract",
 | 
			
		||||
    feature_tree_operation = true,
 | 
			
		||||
    unlabeled_first = true,
 | 
			
		||||
    args = {
 | 
			
		||||
        solids = {docs = "The solids to use as the base to subtract from."},
 | 
			
		||||
        tools = {docs = "The solids to subtract."},
 | 
			
		||||
        tolerance = {docs = "The tolerance to use for the subtraction operation."},
 | 
			
		||||
    },
 | 
			
		||||
    tags = ["solid"]
 | 
			
		||||
}]
 | 
			
		||||
pub(crate) async fn inner_subtract(
 | 
			
		||||
    solids: Vec<Solid>,
 | 
			
		||||
    tools: Vec<Solid>,
 | 
			
		||||
 | 
			
		||||
@ -77,9 +77,7 @@ lazy_static! {
 | 
			
		||||
        Box::new(crate::std::sketch::BezierCurve),
 | 
			
		||||
        Box::new(crate::std::sketch::Subtract2D),
 | 
			
		||||
        Box::new(crate::std::patterns::PatternLinear2D),
 | 
			
		||||
        Box::new(crate::std::patterns::PatternLinear3D),
 | 
			
		||||
        Box::new(crate::std::patterns::PatternCircular2D),
 | 
			
		||||
        Box::new(crate::std::patterns::PatternCircular3D),
 | 
			
		||||
        Box::new(crate::std::edge::GetOppositeEdge),
 | 
			
		||||
        Box::new(crate::std::edge::GetNextAdjacentEdge),
 | 
			
		||||
        Box::new(crate::std::edge::GetPreviousAdjacentEdge),
 | 
			
		||||
@ -91,9 +89,6 @@ lazy_static! {
 | 
			
		||||
        Box::new(crate::std::transform::Scale),
 | 
			
		||||
        Box::new(crate::std::transform::Translate),
 | 
			
		||||
        Box::new(crate::std::transform::Rotate),
 | 
			
		||||
        Box::new(crate::std::csg::Intersect),
 | 
			
		||||
        Box::new(crate::std::csg::Union),
 | 
			
		||||
        Box::new(crate::std::csg::Subtract),
 | 
			
		||||
    ];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -258,6 +253,30 @@ pub(crate) fn std_fn(path: &str, fn_name: &str) -> (crate::std::StdFn, StdFnProp
 | 
			
		||||
            |e, a| Box::pin(crate::std::shell::hollow(e, a)),
 | 
			
		||||
            StdFnProps::default("std::solid::hollow").include_in_feature_tree(),
 | 
			
		||||
        ),
 | 
			
		||||
        ("solid", "union") => (
 | 
			
		||||
            |e, a| Box::pin(crate::std::csg::union(e, a)),
 | 
			
		||||
            StdFnProps::default("std::solid::union").include_in_feature_tree(),
 | 
			
		||||
        ),
 | 
			
		||||
        ("solid", "intersect") => (
 | 
			
		||||
            |e, a| Box::pin(crate::std::csg::intersect(e, a)),
 | 
			
		||||
            StdFnProps::default("std::solid::intersect").include_in_feature_tree(),
 | 
			
		||||
        ),
 | 
			
		||||
        ("solid", "subtract") => (
 | 
			
		||||
            |e, a| Box::pin(crate::std::csg::subtract(e, a)),
 | 
			
		||||
            StdFnProps::default("std::solid::subtract").include_in_feature_tree(),
 | 
			
		||||
        ),
 | 
			
		||||
        ("solid", "patternTransform") => (
 | 
			
		||||
            |e, a| Box::pin(crate::std::patterns::pattern_transform(e, a)),
 | 
			
		||||
            StdFnProps::default("std::solid::patternTransform").include_in_feature_tree(),
 | 
			
		||||
        ),
 | 
			
		||||
        ("solid", "patternLinear3d") => (
 | 
			
		||||
            |e, a| Box::pin(crate::std::patterns::pattern_linear_3d(e, a)),
 | 
			
		||||
            StdFnProps::default("std::solid::patternLinear3d").include_in_feature_tree(),
 | 
			
		||||
        ),
 | 
			
		||||
        ("solid", "patternCircular3d") => (
 | 
			
		||||
            |e, a| Box::pin(crate::std::patterns::pattern_circular_3d(e, a)),
 | 
			
		||||
            StdFnProps::default("std::solid::patternCircular3d").include_in_feature_tree(),
 | 
			
		||||
        ),
 | 
			
		||||
        ("array", "map") => (
 | 
			
		||||
            |e, a| Box::pin(crate::std::array::map(e, a)),
 | 
			
		||||
            StdFnProps::default("std::array::map"),
 | 
			
		||||
@ -278,10 +297,6 @@ pub(crate) fn std_fn(path: &str, fn_name: &str) -> (crate::std::StdFn, StdFnProp
 | 
			
		||||
            |e, a| Box::pin(crate::std::clone::clone(e, a)),
 | 
			
		||||
            StdFnProps::default("std::clone").include_in_feature_tree(),
 | 
			
		||||
        ),
 | 
			
		||||
        ("solid", "patternTransform") => (
 | 
			
		||||
            |e, a| Box::pin(crate::std::patterns::pattern_transform(e, a)),
 | 
			
		||||
            StdFnProps::default("std::solid::patternTransform").include_in_feature_tree(),
 | 
			
		||||
        ),
 | 
			
		||||
        ("sketch", "patternTransform2d") => (
 | 
			
		||||
            |e, a| Box::pin(crate::std::patterns::pattern_transform_2d(e, a)),
 | 
			
		||||
            StdFnProps::default("std::sketch::patternTransform2d"),
 | 
			
		||||
 | 
			
		||||
@ -647,110 +647,6 @@ pub async fn pattern_linear_3d(exec_state: &mut ExecState, args: Args) -> Result
 | 
			
		||||
    Ok(solids.into())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Repeat a 3-dimensional solid along a linear path, with a dynamic amount
 | 
			
		||||
/// of distance between each repetition, some specified number of times.
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// /// Pattern using a named axis.
 | 
			
		||||
///
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> startProfile(at = [0, 0])
 | 
			
		||||
///   |> line(end = [0, 2])
 | 
			
		||||
///   |> line(end = [3, 1])
 | 
			
		||||
///   |> line(end = [0, -4])
 | 
			
		||||
///   |> close()
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = 1)
 | 
			
		||||
///   |> patternLinear3d(
 | 
			
		||||
///       axis = X,
 | 
			
		||||
///       instances = 7,
 | 
			
		||||
///       distance = 6
 | 
			
		||||
///     )
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// /// Pattern using a raw axis.
 | 
			
		||||
///
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> startProfile(at = [0, 0])
 | 
			
		||||
///   |> line(end = [0, 2])
 | 
			
		||||
///   |> line(end = [3, 1])
 | 
			
		||||
///   |> line(end = [0, -4])
 | 
			
		||||
///   |> close()
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = 1)
 | 
			
		||||
///   |> patternLinear3d(
 | 
			
		||||
///       axis = [1, 0, 1],
 | 
			
		||||
///       instances = 7,
 | 
			
		||||
///       distance = 6
 | 
			
		||||
///     )
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// // Pattern a whole sketch on face.
 | 
			
		||||
/// size = 100
 | 
			
		||||
/// case = startSketchOn(XY)
 | 
			
		||||
///     |> startProfile(at = [-size, -size])
 | 
			
		||||
///     |> line(end = [2 * size, 0])
 | 
			
		||||
///     |> line(end = [0, 2 * size])
 | 
			
		||||
///     |> tangentialArc(endAbsolute = [-size, size])
 | 
			
		||||
///     |> close(%)
 | 
			
		||||
///     |> extrude(length = 65)
 | 
			
		||||
///
 | 
			
		||||
/// thing1 = startSketchOn(case, face = END)
 | 
			
		||||
///     |> circle(center = [-size / 2, -size / 2], radius = 25)
 | 
			
		||||
///     |> extrude(length = 50)
 | 
			
		||||
///
 | 
			
		||||
/// thing2 = startSketchOn(case, face = END)
 | 
			
		||||
///     |> circle(center = [size / 2, -size / 2], radius = 25)
 | 
			
		||||
///     |> extrude(length = 50)
 | 
			
		||||
///
 | 
			
		||||
/// // We pass in the "case" here since we want to pattern the whole sketch.
 | 
			
		||||
/// // And the case was the base of the sketch.
 | 
			
		||||
/// patternLinear3d(case,
 | 
			
		||||
///     axis= [1, 0, 0],
 | 
			
		||||
///     distance= 250,
 | 
			
		||||
///     instances=2,
 | 
			
		||||
///  )
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// // Pattern an object on a face.
 | 
			
		||||
/// size = 100
 | 
			
		||||
/// case = startSketchOn(XY)
 | 
			
		||||
///     |> startProfile(at = [-size, -size])
 | 
			
		||||
///     |> line(end = [2 * size, 0])
 | 
			
		||||
///     |> line(end = [0, 2 * size])
 | 
			
		||||
///     |> tangentialArc(endAbsolute = [-size, size])
 | 
			
		||||
///     |> close(%)
 | 
			
		||||
///     |> extrude(length = 65)
 | 
			
		||||
///
 | 
			
		||||
/// thing1 = startSketchOn(case, face = END)
 | 
			
		||||
///     |> circle(center =[-size / 2, -size / 2], radius = 25)
 | 
			
		||||
///     |> extrude(length = 50)
 | 
			
		||||
///
 | 
			
		||||
/// // We pass in `thing1` here with `useOriginal` since we want to pattern just this object on the face.
 | 
			
		||||
/// patternLinear3d(thing1,
 | 
			
		||||
///     axis = [1, 0, 0],
 | 
			
		||||
///     distance = size,
 | 
			
		||||
///     instances =2,
 | 
			
		||||
///     useOriginal = true
 | 
			
		||||
/// )
 | 
			
		||||
/// ```
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "patternLinear3d",
 | 
			
		||||
    feature_tree_operation = true,
 | 
			
		||||
    unlabeled_first = true,
 | 
			
		||||
    args = {
 | 
			
		||||
        solids = { docs = "The solid(s) to duplicate" },
 | 
			
		||||
        instances = { docs = "The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect." },
 | 
			
		||||
        distance = { docs = "Distance between each repetition. Also known as 'spacing'."},
 | 
			
		||||
        axis = { docs = "The axis of the pattern. A 3D vector.", snippet_value_array = ["1", "0", "0"] },
 | 
			
		||||
        use_original = { docs = "If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false." },
 | 
			
		||||
    },
 | 
			
		||||
    tags = ["solid"]
 | 
			
		||||
}]
 | 
			
		||||
async fn inner_pattern_linear_3d(
 | 
			
		||||
    solids: Vec<Solid>,
 | 
			
		||||
    instances: u32,
 | 
			
		||||
@ -1039,57 +935,6 @@ pub async fn pattern_circular_3d(exec_state: &mut ExecState, args: Args) -> Resu
 | 
			
		||||
    Ok(solids.into())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Repeat a 3-dimensional solid some number of times along a partial or
 | 
			
		||||
/// complete circle some specified number of times. Each object may
 | 
			
		||||
/// additionally be rotated along the circle, ensuring orientation of the
 | 
			
		||||
/// solid with respect to the center of the circle is maintained.
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// /// Pattern using a named axis.
 | 
			
		||||
///
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> circle(center = [0, 0], radius = 1)
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = -5)
 | 
			
		||||
///   |> patternCircular3d(
 | 
			
		||||
///        axis = X,
 | 
			
		||||
///        center = [10, -20, 0],
 | 
			
		||||
///        instances = 11,
 | 
			
		||||
///        arcDegrees = 360,
 | 
			
		||||
///        rotateDuplicates = true
 | 
			
		||||
///      )
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```no_run
 | 
			
		||||
/// /// Pattern using a raw axis.
 | 
			
		||||
///
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> circle(center = [0, 0], radius = 1)
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = -5)
 | 
			
		||||
///   |> patternCircular3d(
 | 
			
		||||
///        axis = [1, -1, 0],
 | 
			
		||||
///        center = [10, -20, 0],
 | 
			
		||||
///        instances = 11,
 | 
			
		||||
///        arcDegrees = 360,
 | 
			
		||||
///        rotateDuplicates = true
 | 
			
		||||
///      )
 | 
			
		||||
/// ```
 | 
			
		||||
#[stdlib {
 | 
			
		||||
    name = "patternCircular3d",
 | 
			
		||||
    feature_tree_operation = true,
 | 
			
		||||
    unlabeled_first = true,
 | 
			
		||||
    args = {
 | 
			
		||||
        solids = { docs = "Which solid(s) to pattern" },
 | 
			
		||||
        instances = { docs = "The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect."},
 | 
			
		||||
        axis = { docs = "The axis around which to make the pattern. This is a 3D vector", snippet_value_array = ["1", "0", "0"]},
 | 
			
		||||
        center = { docs = "The center about which to make the pattern. This is a 3D vector.", snippet_value_array = ["0", "0", "0"]},
 | 
			
		||||
        arc_degrees = { docs = "The arc angle (in degrees) to place the repetitions. Must be greater than 0. Defaults to 360."},
 | 
			
		||||
        rotate_duplicates = { docs = "Whether or not to rotate the duplicates as they are copied. Defaults to true."},
 | 
			
		||||
        use_original = { docs = "If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid. Defaults to false."},
 | 
			
		||||
    },
 | 
			
		||||
    tags = ["solid"]
 | 
			
		||||
}]
 | 
			
		||||
#[allow(clippy::too_many_arguments)]
 | 
			
		||||
async fn inner_pattern_circular_3d(
 | 
			
		||||
    solids: Vec<Solid>,
 | 
			
		||||
 | 
			
		||||
@ -562,5 +562,361 @@ export fn patternTransform(
 | 
			
		||||
  /// How each replica should be transformed. The transform function takes a single parameter: an integer representing which number replication the transform is for. E.g. the first replica to be transformed will be passed the argument `1`. This simplifies your math: the transform function can rely on id `0` being the original instance passed into the `patternTransform`. See the examples.
 | 
			
		||||
  transform: fn(number(Count)): {},
 | 
			
		||||
  /// If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid.
 | 
			
		||||
  useOriginal?: boolean = false,
 | 
			
		||||
  useOriginal?: bool = false,
 | 
			
		||||
): [Solid; 1+] {}
 | 
			
		||||
 | 
			
		||||
/// Repeat a 3-dimensional solid along a linear path, with a dynamic amount
 | 
			
		||||
/// of distance between each repetition, some specified number of times.
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// /// Pattern using a named axis.
 | 
			
		||||
///
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> startProfile(at = [0, 0])
 | 
			
		||||
///   |> line(end = [0, 2])
 | 
			
		||||
///   |> line(end = [3, 1])
 | 
			
		||||
///   |> line(end = [0, -4])
 | 
			
		||||
///   |> close()
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = 1)
 | 
			
		||||
///   |> patternLinear3d(
 | 
			
		||||
///       axis = X,
 | 
			
		||||
///       instances = 7,
 | 
			
		||||
///       distance = 6
 | 
			
		||||
///     )
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// /// Pattern using a raw axis.
 | 
			
		||||
///
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> startProfile(at = [0, 0])
 | 
			
		||||
///   |> line(end = [0, 2])
 | 
			
		||||
///   |> line(end = [3, 1])
 | 
			
		||||
///   |> line(end = [0, -4])
 | 
			
		||||
///   |> close()
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = 1)
 | 
			
		||||
///   |> patternLinear3d(
 | 
			
		||||
///       axis = [1, 0, 1],
 | 
			
		||||
///       instances = 7,
 | 
			
		||||
///       distance = 6
 | 
			
		||||
///     )
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// // Pattern a whole sketch on face.
 | 
			
		||||
/// size = 100
 | 
			
		||||
/// case = startSketchOn(XY)
 | 
			
		||||
///     |> startProfile(at = [-size, -size])
 | 
			
		||||
///     |> line(end = [2 * size, 0])
 | 
			
		||||
///     |> line(end = [0, 2 * size])
 | 
			
		||||
///     |> tangentialArc(endAbsolute = [-size, size])
 | 
			
		||||
///     |> close(%)
 | 
			
		||||
///     |> extrude(length = 65)
 | 
			
		||||
///
 | 
			
		||||
/// thing1 = startSketchOn(case, face = END)
 | 
			
		||||
///     |> circle(center = [-size / 2, -size / 2], radius = 25)
 | 
			
		||||
///     |> extrude(length = 50)
 | 
			
		||||
///
 | 
			
		||||
/// thing2 = startSketchOn(case, face = END)
 | 
			
		||||
///     |> circle(center = [size / 2, -size / 2], radius = 25)
 | 
			
		||||
///     |> extrude(length = 50)
 | 
			
		||||
///
 | 
			
		||||
/// // We pass in the "case" here since we want to pattern the whole sketch.
 | 
			
		||||
/// // And the case was the base of the sketch.
 | 
			
		||||
/// patternLinear3d(case,
 | 
			
		||||
///     axis= [1, 0, 0],
 | 
			
		||||
///     distance= 250,
 | 
			
		||||
///     instances=2,
 | 
			
		||||
///  )
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// // Pattern an object on a face.
 | 
			
		||||
/// size = 100
 | 
			
		||||
/// case = startSketchOn(XY)
 | 
			
		||||
///     |> startProfile(at = [-size, -size])
 | 
			
		||||
///     |> line(end = [2 * size, 0])
 | 
			
		||||
///     |> line(end = [0, 2 * size])
 | 
			
		||||
///     |> tangentialArc(endAbsolute = [-size, size])
 | 
			
		||||
///     |> close(%)
 | 
			
		||||
///     |> extrude(length = 65)
 | 
			
		||||
///
 | 
			
		||||
/// thing1 = startSketchOn(case, face = END)
 | 
			
		||||
///     |> circle(center =[-size / 2, -size / 2], radius = 25)
 | 
			
		||||
///     |> extrude(length = 50)
 | 
			
		||||
///
 | 
			
		||||
/// // We pass in `thing1` here with `useOriginal` since we want to pattern just this object on the face.
 | 
			
		||||
/// patternLinear3d(thing1,
 | 
			
		||||
///     axis = [1, 0, 0],
 | 
			
		||||
///     distance = size,
 | 
			
		||||
///     instances =2,
 | 
			
		||||
///     useOriginal = true
 | 
			
		||||
/// )
 | 
			
		||||
/// ```
 | 
			
		||||
@(impl = std_rust)
 | 
			
		||||
export fn patternLinear3d(
 | 
			
		||||
  /// The solid(s) to duplicate.
 | 
			
		||||
  @solids: [Solid; 1+],
 | 
			
		||||
  /// The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect.
 | 
			
		||||
  instances: number(Count),
 | 
			
		||||
  /// Distance between each repetition. Also known as 'spacing'.
 | 
			
		||||
  distance: number(Length),
 | 
			
		||||
  /// The axis of the pattern. A 3D vector.
 | 
			
		||||
  @(snippetArray = ["1", "0", "0"])
 | 
			
		||||
  axis: Axis3d | Point3d,
 | 
			
		||||
  /// If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid.
 | 
			
		||||
  useOriginal?: bool = false,
 | 
			
		||||
): [Solid; 1+] {}
 | 
			
		||||
 | 
			
		||||
/// Repeat a 3-dimensional solid some number of times along a partial or
 | 
			
		||||
/// complete circle some specified number of times. Each object may
 | 
			
		||||
/// additionally be rotated along the circle, ensuring orientation of the
 | 
			
		||||
/// solid with respect to the center of the circle is maintained.
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// /// Pattern using a named axis.
 | 
			
		||||
///
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> circle(center = [0, 0], radius = 1)
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = -5)
 | 
			
		||||
///   |> patternCircular3d(
 | 
			
		||||
///        axis = X,
 | 
			
		||||
///        center = [10, -20, 0],
 | 
			
		||||
///        instances = 11,
 | 
			
		||||
///        arcDegrees = 360,
 | 
			
		||||
///        rotateDuplicates = true
 | 
			
		||||
///      )
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// /// Pattern using a raw axis.
 | 
			
		||||
///
 | 
			
		||||
/// exampleSketch = startSketchOn(XZ)
 | 
			
		||||
///   |> circle(center = [0, 0], radius = 1)
 | 
			
		||||
///
 | 
			
		||||
/// example = extrude(exampleSketch, length = -5)
 | 
			
		||||
///   |> patternCircular3d(
 | 
			
		||||
///        axis = [1, -1, 0],
 | 
			
		||||
///        center = [10, -20, 0],
 | 
			
		||||
///        instances = 11,
 | 
			
		||||
///        arcDegrees = 360,
 | 
			
		||||
///        rotateDuplicates = true
 | 
			
		||||
///      )
 | 
			
		||||
/// ```
 | 
			
		||||
@(impl = std_rust)
 | 
			
		||||
export fn patternCircular3d(
 | 
			
		||||
  /// The solid(s) to pattern.
 | 
			
		||||
  @solids: [Solid; 1+],
 | 
			
		||||
  /// The number of total instances. Must be greater than or equal to 1. This includes the original entity. For example, if instances is 2, there will be two copies -- the original, and one new copy. If instances is 1, this has no effect.
 | 
			
		||||
  instances: number(Count),
 | 
			
		||||
  /// The axis of the pattern. A 3D vector.
 | 
			
		||||
  @(snippetArray = ["1", "0", "0"])
 | 
			
		||||
  axis: Axis3d | Point3d,
 | 
			
		||||
  /// The center about which to make the pattern. This is a 3D vector.
 | 
			
		||||
  @(snippetArray = ["0", "0", "0"])
 | 
			
		||||
  center: Point3d,
 | 
			
		||||
  /// "The arc angle to place the repetitions. Must be greater than 0.
 | 
			
		||||
  arcDegrees?: number(deg) = 360deg,
 | 
			
		||||
  /// Whether or not to rotate the duplicates as they are copied.
 | 
			
		||||
  rotateDuplicates?: bool = true,
 | 
			
		||||
  /// If the target was sketched on an extrusion, setting this will use the original sketch as the target, not the entire joined solid.
 | 
			
		||||
  useOriginal?: bool = false,
 | 
			
		||||
): [Solid; 1+] {}
 | 
			
		||||
 | 
			
		||||
/// Union two or more solids into a single solid.
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// // Union two cubes using the stdlib functions.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// unionedPart = union([part001, part002])
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// // Union two cubes using operators.
 | 
			
		||||
/// // NOTE: This will not work when using codemods through the UI.
 | 
			
		||||
/// // Codemods will generate the stdlib function call instead.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// // This is the equivalent of: union([part001, part002])
 | 
			
		||||
/// unionedPart = part001 + part002
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// // Union two cubes using the more programmer-friendly operator.
 | 
			
		||||
/// // NOTE: This will not work when using codemods through the UI.
 | 
			
		||||
/// // Codemods will generate the stdlib function call instead.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// // This is the equivalent of: union([part001, part002])
 | 
			
		||||
/// // Programmers will understand `|` as a union operation, but mechanical engineers
 | 
			
		||||
/// // will understand `+`, we made both work.
 | 
			
		||||
/// unionedPart = part001 | part002
 | 
			
		||||
/// ```
 | 
			
		||||
@(impl = std_rust)
 | 
			
		||||
export fn union(
 | 
			
		||||
  /// The solids to union.
 | 
			
		||||
  @solids: [Solid; 2+],
 | 
			
		||||
  /// The tolerance to use for the union operation.
 | 
			
		||||
  tolerance?: number(Length),
 | 
			
		||||
): [Solid; 1+] {}
 | 
			
		||||
 | 
			
		||||
/// Intersect returns the shared volume between multiple solids, preserving only
 | 
			
		||||
/// overlapping regions.
 | 
			
		||||
///
 | 
			
		||||
/// Intersect computes the geometric intersection of multiple solid bodies,
 | 
			
		||||
/// returning a new solid representing the volume that is common to all input
 | 
			
		||||
/// solids. This operation is useful for determining shared material regions,
 | 
			
		||||
/// verifying fit, and analyzing overlapping geometries in assemblies.
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// // Intersect two cubes using the stdlib functions.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// intersectedPart = intersect([part001, part002])
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// // Intersect two cubes using operators.
 | 
			
		||||
/// // NOTE: This will not work when using codemods through the UI.
 | 
			
		||||
/// // Codemods will generate the stdlib function call instead.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// // This is the equivalent of: intersect([part001, part002])
 | 
			
		||||
/// intersectedPart = part001 & part002
 | 
			
		||||
/// ```
 | 
			
		||||
@(impl = std_rust)
 | 
			
		||||
export fn intersect(
 | 
			
		||||
  /// The solids to intersect.
 | 
			
		||||
  @solids: [Solid; 2+],
 | 
			
		||||
  /// The tolerance to use for the intersection operation.
 | 
			
		||||
  tolerance?: number(Length),
 | 
			
		||||
): [Solid; 1+] {}
 | 
			
		||||
 | 
			
		||||
/// Subtract removes tool solids from base solids, leaving the remaining material.
 | 
			
		||||
///
 | 
			
		||||
/// Performs a bool subtraction operation, removing the volume of one or more
 | 
			
		||||
/// tool solids from one or more base solids. The result is a new solid
 | 
			
		||||
/// representing the material that remains after all tool solids have been cut
 | 
			
		||||
/// away. This function is essential for machining simulations, cavity creation,
 | 
			
		||||
/// and complex multi-body part modeling.
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// // Subtract a cylinder from a cube using the stdlib functions.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// subtractedPart = subtract([part001], tools=[part002])
 | 
			
		||||
/// ```
 | 
			
		||||
///
 | 
			
		||||
/// ```kcl
 | 
			
		||||
/// // Subtract a cylinder from a cube using operators.
 | 
			
		||||
/// // NOTE: This will not work when using codemods through the UI.
 | 
			
		||||
/// // Codemods will generate the stdlib function call instead.
 | 
			
		||||
///
 | 
			
		||||
/// fn cube(center, size) {
 | 
			
		||||
///     return startSketchOn(XY)
 | 
			
		||||
///         |> startProfile(at = [center[0] - size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] - size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] + size, center[1] + size])
 | 
			
		||||
///         |> line(endAbsolute = [center[0] - size, center[1] + size])
 | 
			
		||||
///         |> close()
 | 
			
		||||
///         |> extrude(length = 10)
 | 
			
		||||
/// }
 | 
			
		||||
///
 | 
			
		||||
/// part001 = cube(center = [0, 0], size = 10)
 | 
			
		||||
/// part002 = cube(center = [7, 3], size = 5)
 | 
			
		||||
///     |> translate(z = 1)
 | 
			
		||||
///
 | 
			
		||||
/// // This is the equivalent of: subtract([part001], tools=[part002])
 | 
			
		||||
/// subtractedPart = part001 - part002
 | 
			
		||||
/// ```
 | 
			
		||||
@(impl = std_rust)
 | 
			
		||||
export fn subtract(
 | 
			
		||||
  /// The solids to use as the base to subtract from.
 | 
			
		||||
  @solids: [Solid; 1+],
 | 
			
		||||
  /// The solids to subtract.
 | 
			
		||||
  tools: [Solid],
 | 
			
		||||
  /// The tolerance to use for the subtraction operation.
 | 
			
		||||
  tolerance?: number(Length),
 | 
			
		||||
): [Solid; 1+] {}
 | 
			
		||||
 | 
			
		||||
@ -53,10 +53,15 @@ description: Operations executed circular_pattern3d_a_pattern.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -129,13 +134,8 @@ description: Operations executed circular_pattern3d_a_pattern.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 7.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -202,13 +202,9 @@ description: Operations executed circular_pattern3d_a_pattern.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -312,13 +308,8 @@ description: Operations executed circular_pattern3d_a_pattern.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 41.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -225,13 +225,9 @@ description: Operations executed ball-bearing.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -335,13 +331,8 @@ description: Operations executed ball-bearing.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 10.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -478,13 +469,9 @@ description: Operations executed ball-bearing.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -588,13 +575,8 @@ description: Operations executed ball-bearing.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 10.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -747,13 +729,9 @@ description: Operations executed ball-bearing.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -857,13 +835,8 @@ description: Operations executed ball-bearing.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 10.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -414,10 +414,15 @@ description: Operations executed bone-plate.kcl
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
@ -470,10 +475,15 @@ description: Operations executed bone-plate.kcl
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
@ -526,10 +536,15 @@ description: Operations executed bone-plate.kcl
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
@ -582,10 +597,15 @@ description: Operations executed bone-plate.kcl
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -1036,10 +1036,15 @@ description: Operations executed brake-rotor.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -1049,13 +1054,9 @@ description: Operations executed brake-rotor.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1159,13 +1160,8 @@ description: Operations executed brake-rotor.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 36.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -66,13 +66,9 @@ description: Operations executed car-wheel-assembly.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -176,13 +172,8 @@ description: Operations executed car-wheel-assembly.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 5.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -324,13 +324,8 @@ description: Operations executed cold-plate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -1475,10 +1475,15 @@ description: Operations executed counterdrilled-weldment.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -1488,13 +1493,9 @@ description: Operations executed counterdrilled-weldment.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1598,13 +1599,8 @@ description: Operations executed counterdrilled-weldment.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1624,10 +1620,15 @@ description: Operations executed counterdrilled-weldment.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -1637,13 +1638,9 @@ description: Operations executed counterdrilled-weldment.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1747,13 +1744,8 @@ description: Operations executed counterdrilled-weldment.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -71,10 +71,15 @@ description: Operations executed cpu-cooler.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -147,13 +152,8 @@ description: Operations executed cpu-cooler.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -253,13 +253,8 @@ description: Operations executed cpu-cooler.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -407,13 +402,8 @@ description: Operations executed cpu-cooler.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -595,13 +585,9 @@ description: Operations executed cpu-cooler.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -705,13 +691,8 @@ description: Operations executed cpu-cooler.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -791,13 +772,9 @@ description: Operations executed cpu-cooler.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -901,13 +878,8 @@ description: Operations executed cpu-cooler.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -807,10 +807,15 @@ description: Operations executed curtain-wall-anchor-plate.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -883,13 +888,8 @@ description: Operations executed curtain-wall-anchor-plate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -717,13 +717,8 @@ description: Operations executed focusrite-scarlett-mounting-bracket.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1107,13 +1102,8 @@ description: Operations executed focusrite-scarlett-mounting-bracket.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -358,13 +358,9 @@ description: Operations executed french-press.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -468,13 +464,8 @@ description: Operations executed french-press.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -185,13 +185,8 @@ description: Operations executed gear-rack.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 63.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -113,10 +113,15 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -126,13 +131,9 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -236,13 +237,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -416,10 +412,15 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -429,13 +430,9 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -539,13 +536,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -664,13 +656,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -806,13 +793,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -924,13 +906,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1066,13 +1043,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1522,10 +1494,15 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -1598,13 +1575,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1704,13 +1676,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1723,10 +1690,15 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -1799,13 +1771,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1905,13 +1872,8 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -113,10 +113,15 @@ description: Operations executed gridfinity-baseplate.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -126,13 +131,9 @@ description: Operations executed gridfinity-baseplate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -236,13 +237,8 @@ description: Operations executed gridfinity-baseplate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -416,10 +412,15 @@ description: Operations executed gridfinity-baseplate.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -429,13 +430,9 @@ description: Operations executed gridfinity-baseplate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -539,13 +536,8 @@ description: Operations executed gridfinity-baseplate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -664,13 +656,8 @@ description: Operations executed gridfinity-baseplate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -806,13 +793,8 @@ description: Operations executed gridfinity-baseplate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -924,13 +906,8 @@ description: Operations executed gridfinity-baseplate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1066,13 +1043,8 @@ description: Operations executed gridfinity-baseplate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -113,10 +113,15 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -126,13 +131,9 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -236,13 +237,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -416,10 +412,15 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -429,13 +430,9 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -539,13 +536,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -843,13 +835,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -985,13 +972,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1103,13 +1085,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1245,13 +1222,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1264,10 +1236,15 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -1340,13 +1317,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1446,13 +1418,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -2588,10 +2555,15 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -2601,13 +2573,9 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -2711,13 +2679,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -2737,10 +2700,15 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -2750,13 +2718,9 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -2860,13 +2824,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -3400,10 +3359,15 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -3413,13 +3377,9 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -3523,13 +3483,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -3549,10 +3504,15 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -3562,13 +3522,9 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -3672,13 +3628,8 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -113,10 +113,15 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -126,13 +131,9 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -236,13 +237,8 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -416,10 +412,15 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -429,13 +430,9 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -539,13 +536,8 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -843,13 +835,8 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -985,13 +972,8 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1103,13 +1085,8 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1245,13 +1222,8 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1264,10 +1236,15 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -1340,13 +1317,8 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1446,13 +1418,8 @@ description: Operations executed gridfinity-bins.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -2492,13 +2492,9 @@ description: Operations executed helical-planetary-gearset.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -2602,13 +2598,8 @@ description: Operations executed helical-planetary-gearset.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -716,10 +716,15 @@ description: Operations executed helium-tank.kcl
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
@ -757,10 +762,15 @@ description: Operations executed helium-tank.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -833,13 +843,8 @@ description: Operations executed helium-tank.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1038,13 +1043,8 @@ description: Operations executed helium-tank.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -1871,13 +1871,9 @@ description: Operations executed herringbone-planetary-gearset.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1981,13 +1977,8 @@ description: Operations executed herringbone-planetary-gearset.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -4747,10 +4747,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -4823,13 +4828,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -4842,10 +4842,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -4918,13 +4923,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -4937,10 +4937,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5013,13 +5018,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5032,10 +5032,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5108,13 +5113,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5127,10 +5127,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5203,13 +5208,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5222,10 +5222,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5298,13 +5303,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5317,10 +5317,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5393,13 +5398,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5412,10 +5412,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5488,13 +5493,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5507,10 +5507,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5583,13 +5588,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 10.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5602,10 +5602,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5678,13 +5683,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5697,10 +5697,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5773,13 +5778,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5792,10 +5792,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5868,13 +5873,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 11.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5887,10 +5887,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -5963,13 +5968,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -5982,10 +5982,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -6058,13 +6063,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -6077,10 +6077,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -6153,13 +6158,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 12.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -6172,10 +6172,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -6248,13 +6253,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -6267,10 +6267,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -6343,13 +6348,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 13.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -6362,10 +6362,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -6438,13 +6443,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -6457,10 +6457,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -6533,13 +6538,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -6552,10 +6552,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -6628,13 +6633,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 12.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -6647,10 +6647,15 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -6723,13 +6728,8 @@ description: Operations executed keyboard.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 1.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -814,13 +814,8 @@ description: Operations executed pdu-faceplate.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 8.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -104,10 +104,15 @@ description: Operations executed pipe-flange-assembly.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -117,13 +122,9 @@ description: Operations executed pipe-flange-assembly.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -227,13 +228,8 @@ description: Operations executed pipe-flange-assembly.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -352,13 +348,8 @@ description: Operations executed pipe-flange-assembly.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -382,10 +373,15 @@ description: Operations executed pipe-flange-assembly.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -395,13 +391,9 @@ description: Operations executed pipe-flange-assembly.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -505,13 +497,8 @@ description: Operations executed pipe-flange-assembly.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -542,10 +529,15 @@ description: Operations executed pipe-flange-assembly.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -555,13 +547,9 @@ description: Operations executed pipe-flange-assembly.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -665,13 +653,8 @@ description: Operations executed pipe-flange-assembly.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 4.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -209,10 +209,15 @@ description: Operations executed surgical-drill-guide.kcl
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -317,10 +317,15 @@ description: Operations executed truss-structure.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -393,13 +398,8 @@ description: Operations executed truss-structure.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 3.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -457,10 +457,15 @@ description: Operations executed truss-structure.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -533,13 +538,8 @@ description: Operations executed truss-structure.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -695,13 +695,8 @@ description: Operations executed truss-structure.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Inches"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -1078,13 +1078,8 @@ description: Operations executed utility-sink.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -1297,13 +1292,8 @@ description: Operations executed utility-sink.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -284,13 +284,8 @@ description: Operations executed wing-spar.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 5.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -53,10 +53,15 @@ description: Operations executed linear_pattern3d_a_pattern.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -129,13 +134,8 @@ description: Operations executed linear_pattern3d_a_pattern.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 7.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -265,13 +265,8 @@ description: Operations executed linear_pattern3d_a_pattern.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 7.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,19 @@ KCL Engine error
 | 
			
		||||
    ╭─[69:10]
 | 
			
		||||
 68 │ 
 | 
			
		||||
 69 │ cut000 = subtract(extrude001, tools = cut000Extrude)
 | 
			
		||||
    ·          ─────────────────────┬─────────────────────
 | 
			
		||||
    ·          ─────────────────────┬─────────────────────┬
 | 
			
		||||
    ·                               ╰── tests/multi_target_csg/input.kcl
 | 
			
		||||
    ·                               ╰── tests/multi_target_csg/input.kcl
 | 
			
		||||
 70 │ 
 | 
			
		||||
    ╰────
 | 
			
		||||
  ╰─▶ KCL Engine error
 | 
			
		||||
      
 | 
			
		||||
        × engine: Currently the engine does not support multiple targets on
 | 
			
		||||
        │ subtract
 | 
			
		||||
          ╭─[69:10]
 | 
			
		||||
       68 │
 | 
			
		||||
       69 │ cut000 = subtract(extrude001, tools = cut000Extrude)
 | 
			
		||||
          ·          ─────────────────────┬─────────────────────
 | 
			
		||||
          ·                               ╰── tests/multi_target_csg/input.kcl
 | 
			
		||||
       70 │
 | 
			
		||||
          ╰────
 | 
			
		||||
 | 
			
		||||
@ -251,10 +251,15 @@ description: Operations executed multi_target_csg.kcl
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB  | 
| 
		 Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB  | 
| 
		 Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB  | 
| 
		 Before Width: | Height: | Size: 101 KiB After Width: | Height: | Size: 101 KiB  | 
| 
		 Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB  | 
| 
		 Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB  | 
| 
		 Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 64 KiB  | 
| 
		 Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB  | 
| 
		 Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB  | 
| 
		 Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB  | 
| 
		 Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB  | 
| 
		 Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB  | 
| 
		 Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB  | 
@ -8,6 +8,16 @@ KCL Engine error
 | 
			
		||||
    ╭─[67:1]
 | 
			
		||||
 66 │ 
 | 
			
		||||
 67 │ union([base,endTabs])
 | 
			
		||||
    · ──────────┬──────────
 | 
			
		||||
    · ──────────┬──────────┬
 | 
			
		||||
    ·           ╰── tests/pattern_into_union/input.kcl
 | 
			
		||||
    ·           ╰── tests/pattern_into_union/input.kcl
 | 
			
		||||
    ╰────
 | 
			
		||||
  ╰─▶ KCL Engine error
 | 
			
		||||
      
 | 
			
		||||
        × engine: More than 2 solids were passed to the low-level CSG method
 | 
			
		||||
          ╭─[67:1]
 | 
			
		||||
       66 │
 | 
			
		||||
       67 │ union([base,endTabs])
 | 
			
		||||
          · ──────────┬──────────
 | 
			
		||||
          ·           ╰── tests/pattern_into_union/input.kcl
 | 
			
		||||
          ╰────
 | 
			
		||||
 | 
			
		||||
@ -218,13 +218,8 @@ description: Operations executed pattern_into_union.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 21.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -402,13 +397,8 @@ description: Operations executed pattern_into_union.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 21.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -430,135 +420,130 @@ description: Operations executed pattern_into_union.kcl
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Array",
 | 
			
		||||
            "value": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Solid",
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "artifactId": "[uuid]"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
@ -222,20 +222,30 @@ description: Operations executed subtract_doesnt_need_brackets.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -144,20 +144,30 @@ description: Operations executed subtract_regression00.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -149,20 +149,30 @@ description: Operations executed subtract_regression01.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -135,20 +135,30 @@ description: Operations executed subtract_regression02.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
@ -226,20 +236,30 @@ description: Operations executed subtract_regression02.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -463,20 +463,30 @@ description: Operations executed subtract_regression03.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
@ -715,20 +725,30 @@ description: Operations executed subtract_regression03.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -194,20 +194,30 @@ description: Operations executed subtract_regression04.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -204,20 +204,30 @@ description: Operations executed subtract_regression05.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -296,20 +296,30 @@ description: Operations executed subtract_regression06.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -139,7 +139,7 @@ flowchart LR
 | 
			
		||||
  15 --- 42
 | 
			
		||||
  15 --- 49
 | 
			
		||||
  18 --- 32
 | 
			
		||||
  18 x--> 35
 | 
			
		||||
  18 x--> 36
 | 
			
		||||
  18 --- 43
 | 
			
		||||
  18 --- 50
 | 
			
		||||
  23 --- 26
 | 
			
		||||
@ -194,5 +194,5 @@ flowchart LR
 | 
			
		||||
  40 <--x 34
 | 
			
		||||
  41 <--x 34
 | 
			
		||||
  42 <--x 34
 | 
			
		||||
  43 <--x 36
 | 
			
		||||
  43 <--x 35
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -206,20 +206,30 @@ description: Operations executed subtract_regression07.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -86,12 +86,12 @@ flowchart LR
 | 
			
		||||
  8 --- 18
 | 
			
		||||
  8 ---- 20
 | 
			
		||||
  8 --- 21
 | 
			
		||||
  12 <--x 22
 | 
			
		||||
  12 --- 22
 | 
			
		||||
  12 <--x 23
 | 
			
		||||
  12 --- 24
 | 
			
		||||
  12 <--x 24
 | 
			
		||||
  16 <--x 25
 | 
			
		||||
  16 --- 26
 | 
			
		||||
  16 <--x 27
 | 
			
		||||
  16 <--x 26
 | 
			
		||||
  16 --- 27
 | 
			
		||||
  19 --- 22
 | 
			
		||||
  19 --- 23
 | 
			
		||||
  19 --- 24
 | 
			
		||||
 | 
			
		||||
@ -124,20 +124,30 @@ description: Operations executed subtract_regression08.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -194,20 +194,30 @@ description: Operations executed subtract_regression09.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -188,10 +188,15 @@ description: Operations executed subtract_regression10.kcl
 | 
			
		||||
    "name": "patternCircular3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -201,13 +206,9 @@ description: Operations executed subtract_regression10.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 360.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Angle",
 | 
			
		||||
            "type": "Degrees"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -311,13 +312,8 @@ description: Operations executed subtract_regression10.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 2.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -352,10 +348,15 @@ description: Operations executed subtract_regression10.kcl
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
@ -990,10 +991,15 @@ description: Operations executed subtract_regression10.kcl
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
@ -1235,10 +1241,15 @@ description: Operations executed subtract_regression10.kcl
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -194,20 +194,30 @@ description: Operations executed subtract_regression11.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -194,20 +194,30 @@ description: Operations executed subtract_regression12.kcl
 | 
			
		||||
    "name": "subtract",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
    "labeledArgs": {
 | 
			
		||||
      "tools": {
 | 
			
		||||
        "value": {
 | 
			
		||||
          "type": "Solid",
 | 
			
		||||
          "value": {
 | 
			
		||||
            "artifactId": "[uuid]"
 | 
			
		||||
          }
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
@ -98,10 +98,15 @@ description: Operations executed subtract_with_pattern.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -174,13 +179,8 @@ description: Operations executed subtract_with_pattern.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 10.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -211,69 +211,64 @@ description: Operations executed subtract_with_pattern.kcl
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
@ -98,10 +98,15 @@ description: Operations executed subtract_with_pattern_cut_thru.kcl
 | 
			
		||||
    "name": "patternLinear3d",
 | 
			
		||||
    "unlabeledArg": {
 | 
			
		||||
      "value": {
 | 
			
		||||
        "type": "Solid",
 | 
			
		||||
        "value": {
 | 
			
		||||
          "artifactId": "[uuid]"
 | 
			
		||||
        }
 | 
			
		||||
        "type": "Array",
 | 
			
		||||
        "value": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Solid",
 | 
			
		||||
            "value": {
 | 
			
		||||
              "artifactId": "[uuid]"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "sourceRange": []
 | 
			
		||||
    },
 | 
			
		||||
@ -174,13 +179,8 @@ description: Operations executed subtract_with_pattern_cut_thru.kcl
 | 
			
		||||
          "type": "Number",
 | 
			
		||||
          "value": 5.0,
 | 
			
		||||
          "ty": {
 | 
			
		||||
            "type": "Default",
 | 
			
		||||
            "len": {
 | 
			
		||||
              "type": "Mm"
 | 
			
		||||
            },
 | 
			
		||||
            "angle": {
 | 
			
		||||
              "type": "Degrees"
 | 
			
		||||
            }
 | 
			
		||||
            "type": "Known",
 | 
			
		||||
            "type": "Count"
 | 
			
		||||
          }
 | 
			
		||||
        },
 | 
			
		||||
        "sourceRange": []
 | 
			
		||||
@ -211,39 +211,34 @@ description: Operations executed subtract_with_pattern_cut_thru.kcl
 | 
			
		||||
          "type": "Array",
 | 
			
		||||
          "value": [
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Array",
 | 
			
		||||
              "value": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "Solid",
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "artifactId": "[uuid]"
 | 
			
		||||
                  }
 | 
			
		||||
                }
 | 
			
		||||
              ]
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              "type": "Solid",
 | 
			
		||||
              "value": {
 | 
			
		||||
                "artifactId": "[uuid]"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||