Support calling KCL std KW fns, and move circle to KCL std

Signed-off-by: Nick Cameron <nrc@ncameron.org>
This commit is contained in:
Nick Cameron
2025-03-21 20:22:52 +13:00
parent c545ad71c6
commit 0913d3ebdc
87 changed files with 11737 additions and 9700 deletions

File diff suppressed because one or more lines are too long

View File

@ -15,7 +15,7 @@ std::math::E: number = 2.71828182845904523536028747135266250_
### Examples ### Examples
```js ```js
exampleSketch = startSketchOn("XZ") exampleSketch = startSketchOn(XZ)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> angledLine({ |> angledLine({
angle = 30, angle = 30,

View File

@ -17,7 +17,7 @@ std::math::PI: number = 3.14159265358979323846264338327950288_
```js ```js
circumference = 70 circumference = 70
exampleSketch = startSketchOn("XZ") exampleSketch = startSketchOn(XZ)
|> circle(center = [0, 0], radius = circumference/ (2 * PI)) |> circle(center = [0, 0], radius = circumference/ (2 * PI))
example = extrude(exampleSketch, length = 5) example = extrude(exampleSketch, length = 5)

View File

@ -15,7 +15,7 @@ std::math::TAU: number = 6.28318530717958647692528676655900577_
### Examples ### Examples
```js ```js
exampleSketch = startSketchOn("XZ") exampleSketch = startSketchOn(XZ)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> angledLine({ |> angledLine({
angle = 50, angle = 50,

View File

@ -61,7 +61,6 @@ layout: manual
* [`bezierCurve`](kcl/bezierCurve) * [`bezierCurve`](kcl/bezierCurve)
* [`ceil`](kcl/ceil) * [`ceil`](kcl/ceil)
* [`chamfer`](kcl/chamfer) * [`chamfer`](kcl/chamfer)
* [`circle`](kcl/circle)
* [`circleThreePoint`](kcl/circleThreePoint) * [`circleThreePoint`](kcl/circleThreePoint)
* [`close`](kcl/close) * [`close`](kcl/close)
* [`cm`](kcl/cm) * [`cm`](kcl/cm)
@ -146,3 +145,5 @@ layout: manual
* [`cos`](kcl/std-math-cos) * [`cos`](kcl/std-math-cos)
* [`sin`](kcl/std-math-sin) * [`sin`](kcl/std-math-sin)
* [`tan`](kcl/std-math-tan) * [`tan`](kcl/std-math-tan)
* **std::sketch**
* [`circle`](kcl/std-sketch-circle)

View File

@ -9,7 +9,7 @@ Compute the cosine of a number (in radians).
```js ```js
cos(num: number(rad)): number(_) cos(@num: number(rad)): number(_)
``` ```
@ -27,7 +27,7 @@ cos(num: number(rad)): number(_)
### Examples ### Examples
```js ```js
exampleSketch = startSketchOn("XZ") exampleSketch = startSketchOn(XZ)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> angledLine({ |> angledLine({
angle = 30, angle = 30,

View File

@ -9,7 +9,7 @@ Compute the sine of a number (in radians).
```js ```js
sin(num: number(rad)): number(_) sin(@num: number(rad)): number(_)
``` ```
@ -27,7 +27,7 @@ sin(num: number(rad)): number(_)
### Examples ### Examples
```js ```js
exampleSketch = startSketchOn("XZ") exampleSketch = startSketchOn(XZ)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> angledLine({ |> angledLine({
angle = 50, angle = 50,

View File

@ -9,7 +9,7 @@ Compute the tangent of a number (in radians).
```js ```js
tan(num: number(rad)): number(_) tan(@num: number(rad)): number(_)
``` ```
@ -27,7 +27,7 @@ tan(num: number(rad)): number(_)
### Examples ### Examples
```js ```js
exampleSketch = startSketchOn("XZ") exampleSketch = startSketchOn(XZ)
|> startProfileAt([0, 0], %) |> startProfileAt([0, 0], %)
|> angledLine({ |> angledLine({
angle = 50, angle = 50,

View File

@ -0,0 +1,53 @@
---
title: "std::sketch::circle"
excerpt: ""
layout: manual
---
Construct a 2-dimensional circle, of the specified radius, centered atthe provided (x, y) origin point.
```js
circle(@sketch_or_surface: Sketch | Plane | Face, center: Point2d, radius: number, tag?: tag): Sketch
```
### Arguments
| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `sketch_or_surface` | [`Sketch`](/docs/kcl/types/Sketch) `|` [`Plane`](/docs/kcl/types/Face) `|` [`Plane`](/docs/kcl/types/Face) | | Yes |
| `center` | [`Point2d`](/docs/kcl/types/Point2d) | | Yes |
| `radius` | [`number`](/docs/kcl/types/number) | | Yes |
| [`tag`](/docs/kcl/types/tag) | [`tag`](/docs/kcl/types/tag) | | No |
### Returns
[`Sketch`](/docs/kcl/types/Sketch)
### Examples
```js
exampleSketch = startSketchOn(-XZ)
|> circle( center = [0, 0], radius = 10 )
example = extrude(exampleSketch, length = 5)
```
```js
exampleSketch = startSketchOn(XZ)
|> startProfileAt([-15, 0], %)
|> line(end = [30, 0])
|> line(end = [0, 30])
|> line(end = [-30, 0])
|> close()
|> hole(circle( center = [0, 15], radius = 5), %)
example = extrude(exampleSketch, length = 5)
```

File diff suppressed because it is too large Load Diff

View File

@ -10,8 +10,8 @@ A point in two dimensional space.
type Point2d = [number; 2] type Point2d = [number; 2]
``` ```
`Point2d` is an alias for a two-element array of [number](/docs/kcl/types/number)s. To write a value [`Point2d`](/docs/kcl/types/Point2d) is an alias for a two-element array of [number](/docs/kcl/types/number)s. To write a value
with type `Point2d`, use an array, e.g., `[0, 0]` or `[5.0, 3.14]`. with type [`Point2d`](/docs/kcl/types/Point2d), use an array, e.g., `[0, 0]` or `[5.0, 3.14]`.

View File

@ -10,8 +10,8 @@ A point in three dimensional space.
type Point3d = [number; 3] type Point3d = [number; 3]
``` ```
`Point3d` is an alias for a three-element array of [number](/docs/kcl/types/number)s. To write a value [`Point3d`](/docs/kcl/types/Point3d) is an alias for a three-element array of [number](/docs/kcl/types/number)s. To write a value
with type `Point3d`, use an array, e.g., `[0, 0, 0]` or `[5.0, 3.14, 6.8]`. with type [`Point3d`](/docs/kcl/types/Point3d), use an array, e.g., `[0, 0, 0]` or `[5.0, 3.14, 6.8]`.

View File

@ -17,7 +17,7 @@ mySketch = startSketchOn('XY')
|> close() |> close()
``` ```
The `mySketch` variable will be an executed `Sketch` object. Executed being past The `mySketch` variable will be an executed [`Sketch`](/docs/kcl/types/Sketch) object. Executed being past
tense, because the engine has already executed the commands to create the sketch. tense, because the engine has already executed the commands to create the sketch.
The previous sketch commands will never be executed again, in this case. The previous sketch commands will never be executed again, in this case.

View File

@ -18,7 +18,7 @@ myPart = startSketchOn('XY')
|> extrude(length = 6) |> extrude(length = 6)
``` ```
The `myPart` variable will be an executed `Solid` object. Executed being past The `myPart` variable will be an executed [`Solid`](/docs/kcl/types/Solid) object. Executed being past
tense, because the engine has already executed the commands to create the solid. tense, because the engine has already executed the commands to create the solid.
The previous solid commands will never be executed again, in this case. The previous solid commands will never be executed again, in this case.

View File

@ -822,7 +822,7 @@ async fn kcl_test_stdlib_kcl_error_circle() {
// Create a function that defines the body width and length of the mounting plate. Tag the corners so they can be passed through the fillet function. // Create a function that defines the body width and length of the mounting plate. Tag the corners so they can be passed through the fillet function.
fn rectShape = (pos, w, l) => { fn rectShape = (pos, w, l) => {
rr = startSketchOn('XY') rr = startSketchOn(XY)
|> startProfileAt([pos[0] - (w / 2), pos[1] - (l / 2)], %) |> startProfileAt([pos[0] - (w / 2), pos[1] - (l / 2)], %)
|> line(endAbsolute = [pos[0] + w / 2, pos[1] - (l / 2)], tag = $edge1) |> line(endAbsolute = [pos[0] + w / 2, pos[1] - (l / 2)], tag = $edge1)
|> line(endAbsolute = [pos[0] + w / 2, pos[1] + l / 2], tag = $edge2) |> line(endAbsolute = [pos[0] + w / 2, pos[1] + l / 2], tag = $edge2)
@ -837,10 +837,10 @@ holeIndex = 6
// Create the mounting plate extrusion, holes, and fillets // Create the mounting plate extrusion, holes, and fillets
part = rectShape([0, 0], 20, 20) part = rectShape([0, 0], 20, 20)
|> hole(circle('XY', [-holeIndex, holeIndex], holeRadius), %) |> hole(circle('XY', center = [-holeIndex, holeIndex], radius = holeRadius), %)
|> hole(circle('XY', [holeIndex, holeIndex], holeRadius), %) |> hole(circle('XY', center = [holeIndex, holeIndex], radius = holeRadius), %)
|> hole(circle('XY', [-holeIndex, -holeIndex], holeRadius), %) |> hole(circle('XY', center = [-holeIndex, -holeIndex], radius = holeRadius), %)
|> hole(circle('XY', [holeIndex, -holeIndex], holeRadius), %) |> hole(circle('XY', center = [holeIndex, -holeIndex], radius = holeRadius), %)
|> extrude(length = 2) |> extrude(length = 2)
|> fillet( |> fillet(
radius = 4, radius = 4,
@ -860,7 +860,7 @@ part = rectShape([0, 0], 20, 20)
}; };
assert_eq!( assert_eq!(
err.error.message(), err.error.message(),
"This function expected the input argument to be of type SketchOrSurface but it's actually of type string (text)" "The input argument of std::sketch::circle requires a value with type `Sketch | Plane | Face`, but found string (text)"
); );
} }

View File

@ -467,6 +467,10 @@ fn generate_type_from_kcl(ty: &TyData, file_name: String, example_name: String)
}); });
let output = hbs.render("kclType", &data)?; let output = hbs.render("kclType", &data)?;
let output = cleanup_type_links(
&output,
ty.referenced_types.iter().filter(|t| !DECLARED_TYPES.contains(&&***t)),
);
expectorate::assert_contents(format!("../../docs/kcl/{}.md", file_name), &output); expectorate::assert_contents(format!("../../docs/kcl/{}.md", file_name), &output);
Ok(()) Ok(())
@ -514,6 +518,13 @@ fn generate_function_from_kcl(function: &FnData, file_name: String) -> Result<()
}); });
let output = hbs.render("function", &data)?; let output = hbs.render("function", &data)?;
let output = cleanup_type_links(
&output,
function
.referenced_types
.iter()
.filter(|t| !DECLARED_TYPES.contains(&&***t)),
);
expectorate::assert_contents(format!("../../docs/kcl/{}.md", file_name), &output); expectorate::assert_contents(format!("../../docs/kcl/{}.md", file_name), &output);
Ok(()) Ok(())
@ -677,6 +688,12 @@ fn cleanup_type_links<'a>(output: &str, types: impl Iterator<Item = &'a String>)
} }
} }
// TODO handle union types generically rather than special casing them.
cleaned_output = cleaned_output.replace(
"`Sketch | Plane | Face`",
"[`Sketch`](/docs/kcl/types/Sketch) `|` [`Plane`](/docs/kcl/types/Face) `|` [`Plane`](/docs/kcl/types/Face)",
);
cleanup_static_links(&cleaned_output) cleanup_static_links(&cleaned_output)
} }

View File

@ -1,4 +1,4 @@
use std::str::FromStr; use std::{collections::HashSet, str::FromStr};
use regex::Regex; use regex::Regex;
use tower_lsp::lsp_types::{ use tower_lsp::lsp_types::{
@ -9,7 +9,7 @@ use tower_lsp::lsp_types::{
use crate::{ use crate::{
execution::annotations, execution::annotations,
parsing::{ parsing::{
ast::types::{Annotation, Node, NonCodeNode, VariableKind}, ast::types::{Annotation, Node, NonCodeNode, PrimitiveType, Type, VariableKind},
token::NumericSuffix, token::NumericSuffix,
}, },
ModuleId, ModuleId,
@ -322,6 +322,8 @@ pub struct FnData {
/// Code examples. /// Code examples.
/// These are tested and we know they compile and execute. /// These are tested and we know they compile and execute.
pub examples: Vec<(String, ExampleProperties)>, pub examples: Vec<(String, ExampleProperties)>,
#[allow(dead_code)]
pub referenced_types: Vec<String>,
} }
impl FnData { impl FnData {
@ -332,6 +334,17 @@ impl FnData {
}; };
let name = var.declaration.id.name.clone(); let name = var.declaration.id.name.clone();
qual_name.push_str(&name); qual_name.push_str(&name);
let mut referenced_types = HashSet::new();
if let Some(t) = &expr.return_type {
collect_type_names(&mut referenced_types, t);
}
for p in &expr.params {
if let Some(t) = &p.type_ {
collect_type_names(&mut referenced_types, t);
}
}
FnData { FnData {
name, name,
qual_name, qual_name,
@ -346,6 +359,7 @@ impl FnData {
summary: None, summary: None,
description: None, description: None,
examples: Vec::new(), examples: Vec::new(),
referenced_types: referenced_types.into_iter().collect(),
} }
} }
@ -414,7 +428,7 @@ impl FnData {
} }
#[allow(clippy::literal_string_with_formatting_args)] #[allow(clippy::literal_string_with_formatting_args)]
fn to_autocomplete_snippet(&self) -> String { pub(super) fn to_autocomplete_snippet(&self) -> String {
if self.name == "loft" { if self.name == "loft" {
return "loft([${0:sketch000}, ${1:sketch001}])${}".to_owned(); return "loft([${0:sketch000}, ${1:sketch001}])${}".to_owned();
} else if self.name == "hole" { } else if self.name == "hole" {
@ -485,7 +499,7 @@ pub struct ArgData {
pub docs: Option<String>, pub docs: Option<String>,
} }
#[derive(Debug, Clone, Copy)] #[derive(Debug, Clone, Copy, PartialEq)]
pub enum ArgKind { pub enum ArgKind {
Special, Special,
// Parameter is whether the arg is optional. // Parameter is whether the arg is optional.
@ -513,20 +527,31 @@ impl ArgData {
} }
pub fn get_autocomplete_snippet(&self, index: usize) -> Option<(usize, String)> { pub fn get_autocomplete_snippet(&self, index: usize) -> Option<(usize, String)> {
match &self.ty { let label = if self.kind == ArgKind::Special {
Some(s) String::new()
if [ } else {
"Sketch", format!("{} = ", self.name)
"SketchSet", };
"Solid", match self.ty.as_deref() {
"SolidSet", Some(s) if ["Sketch", "Solid", "Plane | Face", "Sketch | Plane | Face"].contains(&s) => {
"SketchSurface", Some((index, format!("{label}${{{}:{}}}", index, "%")))
"SketchOrSurface",
]
.contains(&&**s) =>
{
Some((index, format!("${{{}:{}}}", index, "%")))
} }
Some("number") if self.kind.required() => Some((index, format!(r#"{label}${{{}:3.14}}"#, index))),
Some("Point2d") if self.kind.required() => Some((
index + 1,
format!(r#"{label}[${{{}:3.14}}, ${{{}:3.14}}]"#, index, index + 1),
)),
Some("Point3d") if self.kind.required() => Some((
index + 2,
format!(
r#"{label}[${{{}:3.14}}, ${{{}:3.14}}, ${{{}:3.14}}]"#,
index,
index + 1,
index + 2
),
)),
Some("string") if self.kind.required() => Some((index, format!(r#"{label}${{{}:"string"}}"#, index))),
Some("bool") if self.kind.required() => Some((index, format!(r#"{label}${{{}:false}}"#, index))),
_ => None, _ => None,
} }
} }
@ -570,12 +595,19 @@ pub struct TyData {
/// Code examples. /// Code examples.
/// These are tested and we know they compile and execute. /// These are tested and we know they compile and execute.
pub examples: Vec<(String, ExampleProperties)>, pub examples: Vec<(String, ExampleProperties)>,
#[allow(dead_code)]
pub referenced_types: Vec<String>,
} }
impl TyData { impl TyData {
fn from_ast(ty: &crate::parsing::ast::types::TypeDeclaration, mut qual_name: String) -> Self { fn from_ast(ty: &crate::parsing::ast::types::TypeDeclaration, mut qual_name: String) -> Self {
let name = ty.name.name.clone(); let name = ty.name.name.clone();
qual_name.push_str(&name); qual_name.push_str(&name);
let mut referenced_types = HashSet::new();
if let Some(t) = &ty.alias {
collect_type_names(&mut referenced_types, t);
}
TyData { TyData {
name, name,
qual_name, qual_name,
@ -589,6 +621,7 @@ impl TyData {
summary: None, summary: None,
description: None, description: None,
examples: Vec::new(), examples: Vec::new(),
referenced_types: referenced_types.into_iter().collect(),
} }
} }
@ -852,6 +885,35 @@ impl ApplyMeta for TyData {
} }
} }
fn collect_type_names(acc: &mut HashSet<String>, ty: &Type) {
match ty {
Type::Primitive(primitive_type) => {
acc.insert(collect_type_names_from_primitive(primitive_type));
}
Type::Array { ty, .. } => {
acc.insert(collect_type_names_from_primitive(ty));
}
Type::Union { tys } => tys.iter().for_each(|t| {
acc.insert(collect_type_names_from_primitive(t));
}),
Type::Object { properties } => properties.iter().for_each(|p| {
if let Some(t) = &p.type_ {
collect_type_names(acc, t)
}
}),
}
}
fn collect_type_names_from_primitive(ty: &PrimitiveType) -> String {
match ty {
PrimitiveType::String => "string".to_owned(),
PrimitiveType::Number(_) => "number".to_owned(),
PrimitiveType::Boolean => "bool".to_owned(),
PrimitiveType::Tag => "tag".to_owned(),
PrimitiveType::Named(id) => id.name.clone(),
}
}
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;

View File

@ -926,6 +926,8 @@ fn get_autocomplete_string_from_schema(schema: &schemars::schema::Schema) -> Res
mod tests { mod tests {
use pretty_assertions::assert_eq; use pretty_assertions::assert_eq;
use crate::docs::kcl_doc::{self, DocData};
use super::StdLibFn; use super::StdLibFn;
#[test] #[test]
@ -1006,8 +1008,11 @@ mod tests {
#[test] #[test]
#[allow(clippy::literal_string_with_formatting_args)] #[allow(clippy::literal_string_with_formatting_args)]
fn get_autocomplete_snippet_circle() { fn get_autocomplete_snippet_circle() {
let circle_fn: Box<dyn StdLibFn> = Box::new(crate::std::shapes::Circle); let data = kcl_doc::walk_prelude();
let snippet = circle_fn.to_autocomplete_snippet().unwrap(); let DocData::Fn(circle_fn) = data.into_iter().find(|d| d.name() == "circle").unwrap() else {
panic!();
};
let snippet = circle_fn.to_autocomplete_snippet();
assert_eq!( assert_eq!(
snippet, snippet,
r#"circle(${0:%}, center = [${1:3.14}, ${2:3.14}], radius = ${3:3.14})${}"# r#"circle(${0:%}, center = [${1:3.14}, ${2:3.14}], radius = ${3:3.14})${}"#

View File

@ -610,7 +610,11 @@ impl ExecutorContext {
if let Some(std_path) = &exec_state.mod_local.settings.std_path { if let Some(std_path) = &exec_state.mod_local.settings.std_path {
let (func, props) = crate::std::std_fn(std_path, statement_kind.expect_name()); let (func, props) = crate::std::std_fn(std_path, statement_kind.expect_name());
KclValue::Function { KclValue::Function {
value: FunctionSource::Std { func, props }, value: FunctionSource::Std {
func,
props,
ast: function_expression.clone(),
},
meta: vec![metadata.to_owned()], meta: vec![metadata.to_owned()],
} }
} else { } else {
@ -1118,10 +1122,35 @@ impl Node<CallExpressionKw> {
None None
}; };
let formals = func.args(false);
#[allow(clippy::iter_over_hash_type)]
for (label, arg) in &args.kw_args.labeled {
match formals.iter().find(|p| &p.name == label) {
Some(p) => {
if !p.label_required {
exec_state.err(CompilationError::err(
arg.source_range,
format!(
"The function `{fn_name}` expects an unlabeled first parameter (`{label}`), but it is labelled in the call"
),
));
}
}
None => {
exec_state.err(CompilationError::err(
arg.source_range,
format!("`{label}` is not an argument of `{fn_name}`"),
));
}
}
}
// Attempt to call the function. // Attempt to call the function.
let mut return_value = { let mut return_value = {
// Don't early-return in this block. // Don't early-return in this block.
exec_state.mut_stack().push_new_env_for_rust_call();
let result = func.std_lib_fn()(exec_state, args).await; let result = func.std_lib_fn()(exec_state, args).await;
exec_state.mut_stack().pop_env();
if let Some(mut op) = op { if let Some(mut op) = op {
op.set_std_lib_call_is_error(result.is_err()); op.set_std_lib_call_is_error(result.is_err());
@ -1140,10 +1169,9 @@ impl Node<CallExpressionKw> {
Ok(return_value) Ok(return_value)
} }
FunctionKind::UserDefined => { FunctionKind::UserDefined => {
let source_range = SourceRange::from(self);
// Clone the function so that we can use a mutable reference to // Clone the function so that we can use a mutable reference to
// exec_state. // exec_state.
let func = exec_state.stack().get(fn_name, source_range)?.clone(); let func = exec_state.stack().get(fn_name, callsite)?.clone();
// Track call operation. // Track call operation.
let op_labeled_args = args let op_labeled_args = args
@ -1164,17 +1192,21 @@ impl Node<CallExpressionKw> {
source_range: callsite, source_range: callsite,
}); });
let return_value = func let Some(fn_src) = func.as_fn() else {
.call_fn_kw(args, exec_state, ctx.clone(), callsite) return Err(KclError::Semantic(KclErrorDetails {
.await message: "cannot call this because it isn't a function".to_string(),
.map_err(|e| { source_ranges: vec![callsite],
}));
};
let return_value = fn_src.call_kw(exec_state, ctx, args, callsite).await.map_err(|e| {
// Add the call expression to the source ranges. // Add the call expression to the source ranges.
// TODO currently ignored by the frontend // TODO currently ignored by the frontend
e.add_source_ranges(vec![source_range]) e.add_source_ranges(vec![callsite])
})?; })?;
let result = return_value.ok_or_else(move || { let result = return_value.ok_or_else(move || {
let mut source_ranges: Vec<SourceRange> = vec![source_range]; let mut source_ranges: Vec<SourceRange> = vec![callsite];
// We want to send the source range of the original function. // We want to send the source range of the original function.
if let KclValue::Function { meta, .. } = func { if let KclValue::Function { meta, .. } = func {
source_ranges = meta.iter().map(|m| m.source_range).collect(); source_ranges = meta.iter().map(|m| m.source_range).collect();
@ -1291,10 +1323,13 @@ impl Node<CallExpression> {
source_range: callsite, source_range: callsite,
}); });
let return_value = func let Some(fn_src) = func.as_fn() else {
.call_fn(fn_args, exec_state, ctx.clone(), source_range) return Err(KclError::Semantic(KclErrorDetails {
.await message: "cannot call this because it isn't a function".to_string(),
.map_err(|e| { source_ranges: vec![source_range],
}));
};
let return_value = fn_src.call(exec_state, ctx, fn_args, source_range).await.map_err(|e| {
// Add the call expression to the source ranges. // Add the call expression to the source ranges.
// TODO currently ignored by the frontend // TODO currently ignored by the frontend
e.add_source_ranges(vec![source_range]) e.add_source_ranges(vec![source_range])
@ -1784,6 +1819,28 @@ fn assign_args_to_params_kw(
mut args: crate::std::args::KwArgs, mut args: crate::std::args::KwArgs,
exec_state: &mut ExecState, exec_state: &mut ExecState,
) -> Result<(), KclError> { ) -> Result<(), KclError> {
#[allow(clippy::iter_over_hash_type)]
for (label, arg) in &args.labeled {
match function_expression.params.iter().find(|p| &p.identifier.name == label) {
Some(p) => {
if !p.labeled {
exec_state.err(CompilationError::err(
arg.source_range,
format!(
"This function expects an unlabeled first parameter (`{label}`), but it is labelled in the call"
),
));
}
}
None => {
exec_state.err(CompilationError::err(
arg.source_range,
format!("`{label}` is not an argument of this function"),
));
}
}
}
// Add the arguments to the memory. A new call frame should have already // Add the arguments to the memory. A new call frame should have already
// been created. // been created.
let source_ranges = vec![function_expression.into()]; let source_ranges = vec![function_expression.into()];
@ -1832,10 +1889,11 @@ fn assign_args_to_params_kw(
)?; )?;
} }
} }
Ok(()) Ok(())
} }
pub(crate) async fn call_user_defined_function( async fn call_user_defined_function(
args: Vec<Arg>, args: Vec<Arg>,
memory: EnvironmentRef, memory: EnvironmentRef,
function_expression: NodeRef<'_, FunctionExpression>, function_expression: NodeRef<'_, FunctionExpression>,
@ -1868,7 +1926,7 @@ pub(crate) async fn call_user_defined_function(
result result
} }
pub(crate) async fn call_user_defined_function_kw( async fn call_user_defined_function_kw(
args: crate::std::args::KwArgs, args: crate::std::args::KwArgs,
memory: EnvironmentRef, memory: EnvironmentRef,
function_expression: NodeRef<'_, FunctionExpression>, function_expression: NodeRef<'_, FunctionExpression>,
@ -1906,35 +1964,139 @@ impl FunctionSource {
&self, &self,
exec_state: &mut ExecState, exec_state: &mut ExecState,
ctx: &ExecutorContext, ctx: &ExecutorContext,
args: Vec<Arg>, mut args: Vec<Arg>,
source_range: SourceRange, callsite: SourceRange,
) -> Result<Option<KclValue>, KclError> { ) -> Result<Option<KclValue>, KclError> {
match self { match self {
FunctionSource::Std { func, props } => { FunctionSource::Std { props, .. } => {
if args.len() <= 1 {
let args = crate::std::Args::new_kw(
KwArgs {
unlabeled: args.pop(),
labeled: HashMap::new(),
},
callsite,
ctx.clone(),
exec_state.mod_local.pipe_value.clone().map(|v| Arg::new(v, callsite)),
);
self.call_kw(exec_state, ctx, args, callsite).await
} else {
Err(KclError::Semantic(KclErrorDetails {
message: format!("{} requires its arguments to be labelled", props.name),
source_ranges: vec![callsite],
}))
}
}
FunctionSource::User { ast, memory, .. } => {
call_user_defined_function(args, *memory, ast, exec_state, ctx).await
}
FunctionSource::None => unreachable!(),
}
}
pub async fn call_kw(
&self,
exec_state: &mut ExecState,
ctx: &ExecutorContext,
mut args: crate::std::Args,
callsite: SourceRange,
) -> Result<Option<KclValue>, KclError> {
match self {
FunctionSource::Std { func, ast, props } => {
if props.deprecated { if props.deprecated {
exec_state.warn(CompilationError::err( exec_state.warn(CompilationError::err(
source_range, callsite,
format!( format!(
"`{}` is deprecated, see the docs for a recommended replacement", "`{}` is deprecated, see the docs for a recommended replacement",
props.name props.name
), ),
)); ));
} }
let args = crate::std::Args::new(
args,
source_range,
ctx.clone(),
exec_state
.mod_local
.pipe_value
.clone()
.map(|v| Arg::new(v, source_range)),
);
func(exec_state, args).await.map(Some) #[allow(clippy::iter_over_hash_type)]
for (label, arg) in &mut args.kw_args.labeled {
match ast.params.iter().find(|p| &p.identifier.name == label) {
Some(p) => {
if !p.labeled {
exec_state.err(CompilationError::err(
arg.source_range,
format!(
"The function `{}` expects an unlabeled first parameter (`{label}`), but it is labelled in the call",
props.name
),
));
}
if let Some(ty) = &p.type_ {
arg.value = arg
.value
.coerce(
&RuntimeType::from_parsed(ty.inner.clone(), exec_state, arg.source_range)
.unwrap(),
exec_state,
)
.ok_or_else(|| {
KclError::Semantic(KclErrorDetails {
message: format!(
"{label} requires a value with type `{}`, but found {}",
ty.inner,
arg.value.human_friendly_type()
),
source_ranges: vec![callsite],
})
})?;
}
}
None => {
exec_state.err(CompilationError::err(
arg.source_range,
format!("`{label}` is not an argument of `{}`", props.name),
));
}
}
}
if let Some(arg) = &mut args.kw_args.unlabeled {
if let Some(p) = ast.params.iter().find(|p| !p.labeled) {
if let Some(ty) = &p.type_ {
arg.value = arg
.value
.coerce(
&RuntimeType::from_parsed(ty.inner.clone(), exec_state, arg.source_range).unwrap(),
exec_state,
)
.ok_or_else(|| {
KclError::Semantic(KclErrorDetails {
message: format!(
"The input argument of {} requires a value with type `{}`, but found {}",
props.name,
ty.inner,
arg.value.human_friendly_type()
),
source_ranges: vec![callsite],
})
})?;
}
}
}
// Attempt to call the function.
exec_state.mut_stack().push_new_env_for_rust_call();
let mut result = {
// Don't early-return in this block.
let result = func(exec_state, args).await;
exec_state.mut_stack().pop_env();
// TODO support recording op into the feature tree
result
}?;
update_memory_for_tags_of_geometry(&mut result, exec_state)?;
Ok(Some(result))
} }
FunctionSource::User { ast, memory, .. } => { FunctionSource::User { ast, memory, .. } => {
call_user_defined_function(args, *memory, ast, exec_state, ctx).await call_user_defined_function_kw(args.kw_args, *memory, ast, exec_state, ctx).await
} }
FunctionSource::None => unreachable!(), FunctionSource::None => unreachable!(),
} }

View File

@ -9,13 +9,13 @@ use crate::{
errors::KclErrorDetails, errors::KclErrorDetails,
execution::{ execution::{
types::{NumericType, PrimitiveType, RuntimeType}, types::{NumericType, PrimitiveType, RuntimeType},
ExecState, ExecutorContext, Face, Helix, ImportedGeometry, Metadata, Plane, Sketch, Solid, TagIdentifier, Face, Helix, ImportedGeometry, Metadata, Plane, Sketch, Solid, TagIdentifier,
}, },
parsing::ast::types::{ parsing::ast::types::{
DefaultParamVal, FunctionExpression, KclNone, Literal, LiteralValue, Node, TagDeclarator, TagNode, DefaultParamVal, FunctionExpression, KclNone, Literal, LiteralValue, Node, TagDeclarator, TagNode,
}, },
std::{args::Arg, StdFnProps}, std::StdFnProps,
CompilationError, KclError, ModuleId, SourceRange, KclError, ModuleId, SourceRange,
}; };
pub type KclObjectFields = HashMap<String, KclValue>; pub type KclObjectFields = HashMap<String, KclValue>;
@ -113,6 +113,7 @@ pub enum FunctionSource {
None, None,
Std { Std {
func: crate::std::StdFn, func: crate::std::StdFn,
ast: crate::parsing::ast::types::BoxNode<FunctionExpression>,
props: StdFnProps, props: StdFnProps,
}, },
User { User {
@ -550,91 +551,10 @@ impl KclValue {
Ok(*b) Ok(*b)
} }
/// If this memory item is a function, call it with the given arguments, return its val as Ok. pub fn as_fn(&self) -> Option<&FunctionSource> {
/// If it's not a function, return Err.
pub async fn call_fn(
&self,
args: Vec<Arg>,
exec_state: &mut ExecState,
ctx: ExecutorContext,
source_range: SourceRange,
) -> Result<Option<KclValue>, KclError> {
match self { match self {
KclValue::Function { KclValue::Function { value, .. } => Some(value),
value: FunctionSource::Std { func, props }, _ => None,
..
} => {
if props.deprecated {
exec_state.warn(CompilationError::err(
source_range,
format!(
"`{}` is deprecated, see the docs for a recommended replacement",
props.name
),
));
}
exec_state.mut_stack().push_new_env_for_rust_call();
let args = crate::std::Args::new(
args,
source_range,
ctx.clone(),
exec_state
.mod_local
.pipe_value
.clone()
.map(|v| Arg::new(v, source_range)),
);
let result = func(exec_state, args).await.map(Some);
exec_state.mut_stack().pop_env();
result
}
KclValue::Function {
value: FunctionSource::User { ast, memory, .. },
..
} => crate::execution::exec_ast::call_user_defined_function(args, *memory, ast, exec_state, &ctx).await,
_ => Err(KclError::Semantic(KclErrorDetails {
message: "cannot call this because it isn't a function".to_string(),
source_ranges: vec![source_range],
})),
}
}
/// If this is a function, call it by applying keyword arguments.
/// If it's not a function, returns an error.
pub async fn call_fn_kw(
&self,
args: crate::std::Args,
exec_state: &mut ExecState,
ctx: ExecutorContext,
callsite: SourceRange,
) -> Result<Option<KclValue>, KclError> {
match self {
KclValue::Function {
value: FunctionSource::Std { func: _, props },
..
} => {
if props.deprecated {
exec_state.warn(CompilationError::err(
callsite,
format!(
"`{}` is deprecated, see the docs for a recommended replacement",
props.name
),
));
}
todo!("Implement KCL stdlib fns with keyword args");
}
KclValue::Function {
value: FunctionSource::User { ast, memory, .. },
..
} => {
crate::execution::exec_ast::call_user_defined_function_kw(args.kw_args, *memory, ast, exec_state, &ctx)
.await
}
_ => Err(KclError::Semantic(KclErrorDetails {
message: "cannot call this because it isn't a function".to_string(),
source_ranges: vec![callsite],
})),
} }
} }

View File

@ -87,6 +87,7 @@ pub(crate) fn read_std(mod_name: &str) -> Option<&'static str> {
match mod_name { match mod_name {
"prelude" => Some(include_str!("../std/prelude.kcl")), "prelude" => Some(include_str!("../std/prelude.kcl")),
"math" => Some(include_str!("../std/math.kcl")), "math" => Some(include_str!("../std/math.kcl")),
"sketch" => Some(include_str!("../std/sketch.kcl")),
_ => None, _ => None,
} }
} }

View File

@ -1000,9 +1000,8 @@ where
impl<'a> FromKclValue<'a> for [f64; 2] { impl<'a> FromKclValue<'a> for [f64; 2] {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> { fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let KclValue::MixedArray { value, meta: _ } = arg else { match arg {
return None; KclValue::MixedArray { value, meta: _ } | KclValue::HomArray { value, .. } => {
};
if value.len() != 2 { if value.len() != 2 {
return None; return None;
} }
@ -1011,13 +1010,15 @@ impl<'a> FromKclValue<'a> for [f64; 2] {
let array = [v0.as_f64()?, v1.as_f64()?]; let array = [v0.as_f64()?, v1.as_f64()?];
Some(array) Some(array)
} }
_ => None,
}
}
} }
impl<'a> FromKclValue<'a> for [usize; 3] { impl<'a> FromKclValue<'a> for [usize; 3] {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> { fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let KclValue::MixedArray { value, meta: _ } = arg else { match arg {
return None; KclValue::MixedArray { value, meta: _ } | KclValue::HomArray { value, .. } => {
};
if value.len() != 3 { if value.len() != 3 {
return None; return None;
} }
@ -1027,13 +1028,15 @@ impl<'a> FromKclValue<'a> for [usize; 3] {
let array = [v0.as_usize()?, v1.as_usize()?, v2.as_usize()?]; let array = [v0.as_usize()?, v1.as_usize()?, v2.as_usize()?];
Some(array) Some(array)
} }
_ => None,
}
}
} }
impl<'a> FromKclValue<'a> for [f64; 3] { impl<'a> FromKclValue<'a> for [f64; 3] {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> { fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let KclValue::MixedArray { value, meta: _ } = arg else { match arg {
return None; KclValue::MixedArray { value, meta: _ } | KclValue::HomArray { value, .. } => {
};
if value.len() != 3 { if value.len() != 3 {
return None; return None;
} }
@ -1043,6 +1046,9 @@ impl<'a> FromKclValue<'a> for [f64; 3] {
let array = [v0.as_f64()?, v1.as_f64()?, v2.as_f64()?]; let array = [v0.as_f64()?, v1.as_f64()?, v2.as_f64()?];
Some(array) Some(array)
} }
_ => None,
}
}
} }
impl<'a> FromKclValue<'a> for TagNode { impl<'a> FromKclValue<'a> for TagNode {

View File

@ -47,19 +47,19 @@ fn inner_rem(num: f64, divisor: f64) -> f64 {
/// Compute the cosine of a number (in radians). /// Compute the cosine of a number (in radians).
pub async fn cos(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> { pub async fn cos(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let num = args.get_number()?; let num: f64 = args.get_unlabeled_kw_arg("input")?;
Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.cos()))) Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.cos())))
} }
/// Compute the sine of a number (in radians). /// Compute the sine of a number (in radians).
pub async fn sin(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> { pub async fn sin(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let num = args.get_number()?; let num: f64 = args.get_unlabeled_kw_arg("input")?;
Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.sin()))) Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.sin())))
} }
/// Compute the tangent of a number (in radians). /// Compute the tangent of a number (in radians).
pub async fn tan(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> { pub async fn tan(_exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let num = args.get_number()?; let num: f64 = args.get_unlabeled_kw_arg("input")?;
Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.tan()))) Ok(args.make_user_val_from_f64_with_type(TyF64::count(num.tan())))
} }

View File

@ -71,7 +71,6 @@ lazy_static! {
Box::new(crate::std::segment::TangentToEnd), Box::new(crate::std::segment::TangentToEnd),
Box::new(crate::std::segment::AngleToMatchLengthX), Box::new(crate::std::segment::AngleToMatchLengthX),
Box::new(crate::std::segment::AngleToMatchLengthY), Box::new(crate::std::segment::AngleToMatchLengthY),
Box::new(crate::std::shapes::Circle),
Box::new(crate::std::shapes::CircleThreePoint), Box::new(crate::std::shapes::CircleThreePoint),
Box::new(crate::std::shapes::Polygon), Box::new(crate::std::shapes::Polygon),
Box::new(crate::std::sketch::Line), Box::new(crate::std::sketch::Line),
@ -203,6 +202,10 @@ pub(crate) fn std_fn(path: &str, fn_name: &str) -> (crate::std::StdFn, StdFnProp
|e, a| Box::pin(crate::std::math::tan(e, a)), |e, a| Box::pin(crate::std::math::tan(e, a)),
StdFnProps::default("std::math::tan"), StdFnProps::default("std::math::tan"),
), ),
("sketch", "circle") => (
|e, a| Box::pin(crate::std::shapes::circle(e, a)),
StdFnProps::default("std::sketch::circle"),
),
_ => unreachable!(), _ => unreachable!(),
} }
} }

View File

@ -46,38 +46,17 @@ pub async fn circle(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
}) })
} }
/// Construct a 2-dimensional circle, of the specified radius, centered at // #[stdlib {
/// the provided (x, y) origin point. // name = "circle",
/// // keywords = true,
/// ```no_run // unlabeled_first = true,
/// exampleSketch = startSketchOn("-XZ") // args = {
/// |> circle( center = [0, 0], radius = 10 ) // sketch_or_surface = {docs = "Plane or surface to sketch on."},
/// // center = {docs = "The center of the circle."},
/// example = extrude(exampleSketch, length = 5) // radius = {docs = "The radius of the circle."},
/// ``` // tag = { docs = "Create a new tag which refers to this circle"},
/// // }
/// ```no_run // }]
/// exampleSketch = startSketchOn("XZ")
/// |> startProfileAt([-15, 0], %)
/// |> line(end = [30, 0])
/// |> line(end = [0, 30])
/// |> line(end = [-30, 0])
/// |> close()
/// |> hole(circle( center = [0, 15], radius = 5), %)
///
/// example = extrude(exampleSketch, length = 5)
/// ```
#[stdlib {
name = "circle",
keywords = true,
unlabeled_first = true,
args = {
sketch_or_surface = {docs = "Plane or surface to sketch on."},
center = {docs = "The center of the circle."},
radius = {docs = "The radius of the circle."},
tag = { docs = "Create a new tag which refers to this circle"},
}
}]
async fn inner_circle( async fn inner_circle(
sketch_or_surface: SketchOrSurface, sketch_or_surface: SketchOrSurface,
center: [f64; 2], center: [f64; 2],
@ -174,7 +153,7 @@ pub async fn circle_three_point(exec_state: &mut ExecState, args: Args) -> Resul
#[stdlib { #[stdlib {
name = "circleThreePoint", name = "circleThreePoint",
keywords = true, keywords = true,
unlabeled_first = true, unlabeled_first = false,
args = { args = {
p1 = {docs = "1st point to derive the circle."}, p1 = {docs = "1st point to derive the circle."},
p2 = {docs = "2nd point to derive the circle."}, p2 = {docs = "2nd point to derive the circle."},

View File

@ -5,7 +5,7 @@
/// ``` /// ```
/// circumference = 70 /// circumference = 70
/// ///
/// exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn(XZ)
/// |> circle(center = [0, 0], radius = circumference/ (2 * PI)) /// |> circle(center = [0, 0], radius = circumference/ (2 * PI))
/// ///
/// example = extrude(exampleSketch, length = 5) /// example = extrude(exampleSketch, length = 5)
@ -15,7 +15,7 @@ export PI = 3.14159265358979323846264338327950288_
/// The value of Eulers number `e`. /// The value of Eulers number `e`.
/// ///
/// ``` /// ```
/// exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 30, /// angle = 30,
@ -31,7 +31,7 @@ export E = 2.71828182845904523536028747135266250_
/// The value of `tau`, the full circle constant (τ). Equal to 2π. /// The value of `tau`, the full circle constant (τ). Equal to 2π.
/// ///
/// ``` /// ```
/// exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -47,7 +47,7 @@ export TAU = 6.28318530717958647692528676655900577_
/// Compute the cosine of a number (in radians). /// Compute the cosine of a number (in radians).
/// ///
/// ``` /// ```
/// exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 30, /// angle = 30,
@ -59,12 +59,12 @@ export TAU = 6.28318530717958647692528676655900577_
/// example = extrude(exampleSketch, length = 5) /// example = extrude(exampleSketch, length = 5)
/// ``` /// ```
@(impl = std_rust) @(impl = std_rust)
export fn cos(num: number(rad)): number(_) {} export fn cos(@num: number(rad)): number(_) {}
/// Compute the sine of a number (in radians). /// Compute the sine of a number (in radians).
/// ///
/// ``` /// ```
/// exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -76,12 +76,12 @@ export fn cos(num: number(rad)): number(_) {}
/// example = extrude(exampleSketch, length = 5) /// example = extrude(exampleSketch, length = 5)
/// ``` /// ```
@(impl = std_rust) @(impl = std_rust)
export fn sin(num: number(rad)): number(_) {} export fn sin(@num: number(rad)): number(_) {}
/// Compute the tangent of a number (in radians). /// Compute the tangent of a number (in radians).
/// ///
/// ``` /// ```
/// exampleSketch = startSketchOn("XZ") /// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([0, 0], %) /// |> startProfileAt([0, 0], %)
/// |> angledLine({ /// |> angledLine({
/// angle = 50, /// angle = 50,
@ -93,4 +93,4 @@ export fn sin(num: number(rad)): number(_) {}
/// example = extrude(exampleSketch, length = 5) /// example = extrude(exampleSketch, length = 5)
/// ``` /// ```
@(impl = std_rust) @(impl = std_rust)
export fn tan(num: number(rad)): number(_) {} export fn tan(@num: number(rad)): number(_) {}

View File

@ -3,6 +3,7 @@
// Note that everything in the prelude is treated as exported. // Note that everything in the prelude is treated as exported.
export import * from "std::math" export import * from "std::math"
export import * from "std::sketch"
/// A number /// A number
/// ///

View File

@ -0,0 +1,25 @@
@no_std
/// Construct a 2-dimensional circle, of the specified radius, centered at
/// the provided (x, y) origin point.
///
/// ```
/// exampleSketch = startSketchOn(-XZ)
/// |> circle(center = [0, 0], radius = 10)
///
/// example = extrude(exampleSketch, length = 5)
/// ```
///
/// ```
/// exampleSketch = startSketchOn(XZ)
/// |> startProfileAt([-15, 0], %)
/// |> line(end = [30, 0])
/// |> line(end = [0, 30])
/// |> line(end = [-30, 0])
/// |> close()
/// |> hole(circle(center = [0, 15], radius = 5), %)
///
/// example = extrude(exampleSketch, length = 5)
/// ```
@(impl = std_rust)
export fn circle(@sketch_or_surface: Sketch | Plane | Face, center: Point2d, radius: number, tag?: tag): Sketch {}

View File

@ -1,25 +1,25 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[76, 113, 3]"] 2["Path<br>[76, 113, 4]"]
3["Segment<br>[119, 136, 3]"] 3["Segment<br>[119, 136, 4]"]
4["Segment<br>[142, 160, 3]"] 4["Segment<br>[142, 160, 4]"]
5["Segment<br>[166, 184, 3]"] 5["Segment<br>[166, 184, 4]"]
6["Segment<br>[190, 246, 3]"] 6["Segment<br>[190, 246, 4]"]
7["Segment<br>[252, 259, 3]"] 7["Segment<br>[252, 259, 4]"]
8[Solid2d] 8[Solid2d]
end end
subgraph path25 [Path] subgraph path25 [Path]
25["Path<br>[76, 111, 4]"] 25["Path<br>[76, 111, 5]"]
26["Segment<br>[117, 134, 4]"] 26["Segment<br>[117, 134, 5]"]
27["Segment<br>[140, 158, 4]"] 27["Segment<br>[140, 158, 5]"]
28["Segment<br>[164, 182, 4]"] 28["Segment<br>[164, 182, 5]"]
29["Segment<br>[188, 244, 4]"] 29["Segment<br>[188, 244, 5]"]
30["Segment<br>[250, 257, 4]"] 30["Segment<br>[250, 257, 5]"]
31[Solid2d] 31[Solid2d]
end end
1["Plane<br>[47, 66, 3]"] 1["Plane<br>[47, 66, 4]"]
9["Sweep Extrusion<br>[265, 287, 3]"] 9["Sweep Extrusion<br>[265, 287, 4]"]
10[Wall] 10[Wall]
11[Wall] 11[Wall]
12[Wall] 12[Wall]
@ -34,8 +34,8 @@ flowchart LR
21["SweepEdge Adjacent"] 21["SweepEdge Adjacent"]
22["SweepEdge Opposite"] 22["SweepEdge Opposite"]
23["SweepEdge Adjacent"] 23["SweepEdge Adjacent"]
24["Plane<br>[47, 66, 4]"] 24["Plane<br>[47, 66, 5]"]
32["Sweep Extrusion<br>[263, 285, 4]"] 32["Sweep Extrusion<br>[263, 285, 5]"]
33[Wall] 33[Wall]
34[Wall] 34[Wall]
35[Wall] 35[Wall]

View File

@ -5,10 +5,10 @@ description: Variables in memory after executing assembly_mixed_units_cubes.kcl
{ {
"cubeIn": { "cubeIn": {
"type": "Module", "type": "Module",
"value": 3 "value": 4
}, },
"cubeMm": { "cubeMm": {
"type": "Module", "type": "Module",
"value": 4 "value": 5
} }
} }

View File

@ -1,17 +1,17 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[197, 232, 3]"] 2["Path<br>[197, 232, 4]"]
3["Segment<br>[197, 232, 3]"] 3["Segment<br>[197, 232, 4]"]
4[Solid2d] 4[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[113, 148, 4]"] 6["Path<br>[113, 148, 5]"]
7["Segment<br>[113, 148, 4]"] 7["Segment<br>[113, 148, 5]"]
8[Solid2d] 8[Solid2d]
end end
1["Plane<br>[172, 191, 3]"] 1["Plane<br>[172, 191, 4]"]
5["Plane<br>[88, 107, 4]"] 5["Plane<br>[88, 107, 5]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

View File

@ -18,6 +18,72 @@ description: Operations executed assembly_non_default_units.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"data": { "data": {
@ -32,5 +98,71 @@ description: Operations executed assembly_non_default_units.kcl
"sourceRange": [], "sourceRange": [],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 2.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
} }
] ]

View File

@ -5,10 +5,10 @@ description: Variables in memory after executing assembly_non_default_units.kcl
{ {
"other1": { "other1": {
"type": "Module", "type": "Module",
"value": 3 "value": 4
}, },
"other2": { "other2": {
"type": "Module", "type": "Module",
"value": 4 "value": 5
} }
} }

View File

@ -75,6 +75,78 @@ description: Operations executed crazy_multi_profile.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Face",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 5.15,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 4.34,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.66,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"angle": { "angle": {
@ -161,6 +233,78 @@ description: Operations executed crazy_multi_profile.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Plane",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 7.18,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": -2.11,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.67,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -149,37 +149,41 @@ description: Operations executed fillet-and-shell.kcl
"unlabeledArg": null "unlabeledArg": null
}, },
{ {
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": { "labeledArgs": {
"holeSketch": { "center": {
"value": { "value": {
"type": "Sketch", "type": "Array",
"value": { "value": [
"artifactId": "[uuid]" {
"type": "Number",
"value": 7.5,
"ty": {
"type": "Unknown"
} }
}, },
"sourceRange": []
},
"sketch": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
}
},
"name": "hole",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": null
},
{ {
"labeledArgs": { "type": "Number",
"length": { "value": 7.5,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": { "value": {
"type": "Number", "type": "Number",
"value": 4.0, "value": 2.5,
"ty": { "ty": {
"type": "Default", "type": "Default",
"len": { "len": {
@ -193,48 +197,64 @@ description: Operations executed fillet-and-shell.kcl
"sourceRange": [] "sourceRange": []
} }
}, },
"name": "extrude",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": [] "sourceRange": []
}
}, },
{ {
"type": "UserDefinedFunctionReturn" "type": "UserDefinedFunctionReturn"
}, },
{ {
"type": "UserDefinedFunctionCall", "type": "UserDefinedFunctionCall",
"name": "m25Screw", "name": "circle",
"functionSourceRange": [ "functionSourceRange": [
1310, 0,
1538, 0,
0 0
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {
"sourceRange": [] "center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 7.5,
"ty": {
"type": "Unknown"
}
}, },
{ {
"labeledArgs": { "type": "Number",
"data": { "value": 7.5,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": { "value": {
"type": "String", "type": "Number",
"value": "XY" "value": 1.25,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}, },
"sourceRange": [] "sourceRange": []
} }
}, },
"name": "startSketchOn", "sourceRange": []
"sourceRange": [], },
"type": "StdLibCall", {
"unlabeledArg": null "type": "UserDefinedFunctionReturn"
}, },
{ {
"labeledArgs": { "labeledArgs": {
@ -324,6 +344,114 @@ description: Operations executed fillet-and-shell.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 7.5,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 65.5,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.5,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 7.5,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 65.5,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.25,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -412,6 +540,310 @@ description: Operations executed fillet-and-shell.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 30.5,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 65.5,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.5,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 30.5,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 65.5,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.25,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"holeSketch": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
},
"sketch": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
}
},
"name": "hole",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"length": {
"value": {
"type": "Number",
"value": 4.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"name": "extrude",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
}
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "m25Screw",
"functionSourceRange": [
1310,
1538,
0
],
"unlabeledArg": null,
"labeledArgs": {},
"sourceRange": []
},
{
"labeledArgs": {
"data": {
"value": {
"type": "String",
"value": "XY"
},
"sourceRange": []
}
},
"name": "startSketchOn",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 30.5,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 7.5,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.5,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 30.5,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 7.5,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.25,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

View File

@ -18,6 +18,152 @@ description: Operations executed flush_batch_on_end.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Plane",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.2734375,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "arc000"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Plane",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.182,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "arc001"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

View File

@ -18,6 +18,72 @@ description: Operations executed helix_ccw.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 5.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 5.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 10.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -5,7 +5,7 @@ description: Variables in memory after executing import_foreign.kcl
{ {
"cube": { "cube": {
"type": "Module", "type": "Module",
"value": 3 "value": 4
}, },
"model": { "model": {
"type": "ImportedGeometry", "type": "ImportedGeometry",

View File

@ -17,5 +17,71 @@ description: Operations executed import_side_effect.kcl
"sourceRange": [], "sourceRange": [],
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 10.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
} }
] ]

View File

@ -5,6 +5,6 @@ description: Variables in memory after executing import_transform.kcl
{ {
"screw": { "screw": {
"type": "Module", "type": "Module",
"value": 3 "value": 4
} }
} }

View File

@ -1,12 +1,12 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[62, 98, 3]"] 2["Path<br>[62, 98, 4]"]
3["Segment<br>[62, 98, 3]"] 3["Segment<br>[62, 98, 4]"]
4[Solid2d] 4[Solid2d]
end end
1["Plane<br>[37, 56, 3]"] 1["Plane<br>[37, 56, 4]"]
5["Sweep Extrusion<br>[104, 124, 3]"] 5["Sweep Extrusion<br>[104, 124, 4]"]
6[Wall] 6[Wall]
7["Cap Start"] 7["Cap Start"]
8["Cap End"] 8["Cap End"]

View File

@ -18,6 +18,72 @@ description: Operations executed import_whole.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 5.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 5.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 10.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -111,6 +111,6 @@ description: Variables in memory after executing import_whole.kcl
}, },
"foo": { "foo": {
"type": "Module", "type": "Module",
"value": 3 "value": 4
} }
} }

View File

@ -30,6 +30,54 @@ description: Operations executed 80-20-rail.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.75,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 0.75,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.15375,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

View File

@ -74,6 +74,54 @@ description: Operations executed a-parametric-bearing-pillow-block.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -1.25,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": -2.25,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.35,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -153,6 +201,54 @@ description: Operations executed a-parametric-bearing-pillow-block.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -1.25,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": -2.25,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.1875,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -232,6 +328,66 @@ description: Operations executed a-parametric-bearing-pillow-block.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.5,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -42,6 +42,126 @@ description: Operations executed ball-bearing.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.475,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.375,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -504,6 +624,60 @@ description: Operations executed ball-bearing.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.6,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.03125,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"angle": { "angle": {
@ -725,6 +899,126 @@ description: Operations executed ball-bearing.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.8125,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.725,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

View File

@ -1,239 +1,239 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[361, 394, 3]"] 2["Path<br>[361, 394, 4]"]
3["Segment<br>[402, 428, 3]"] 3["Segment<br>[402, 428, 4]"]
4["Segment<br>[436, 489, 3]"] 4["Segment<br>[436, 489, 4]"]
5["Segment<br>[497, 550, 3]"] 5["Segment<br>[497, 550, 4]"]
6["Segment<br>[558, 612, 3]"] 6["Segment<br>[558, 612, 4]"]
7["Segment<br>[620, 645, 3]"] 7["Segment<br>[620, 645, 4]"]
8["Segment<br>[653, 673, 3]"] 8["Segment<br>[653, 673, 4]"]
9["Segment<br>[681, 705, 3]"] 9["Segment<br>[681, 705, 4]"]
10["Segment<br>[713, 766, 3]"] 10["Segment<br>[713, 766, 4]"]
11["Segment<br>[774, 799, 3]"] 11["Segment<br>[774, 799, 4]"]
12["Segment<br>[807, 827, 3]"] 12["Segment<br>[807, 827, 4]"]
13["Segment<br>[835, 859, 3]"] 13["Segment<br>[835, 859, 4]"]
14["Segment<br>[867, 919, 3]"] 14["Segment<br>[867, 919, 4]"]
15["Segment<br>[927, 979, 3]"] 15["Segment<br>[927, 979, 4]"]
16["Segment<br>[987, 1012, 3]"] 16["Segment<br>[987, 1012, 4]"]
17["Segment<br>[1020, 1044, 3]"] 17["Segment<br>[1020, 1044, 4]"]
18["Segment<br>[1052, 1105, 3]"] 18["Segment<br>[1052, 1105, 4]"]
19["Segment<br>[1113, 1138, 3]"] 19["Segment<br>[1113, 1138, 4]"]
20["Segment<br>[1146, 1173, 3]"] 20["Segment<br>[1146, 1173, 4]"]
21["Segment<br>[1181, 1233, 3]"] 21["Segment<br>[1181, 1233, 4]"]
22["Segment<br>[1241, 1276, 3]"] 22["Segment<br>[1241, 1276, 4]"]
23["Segment<br>[1284, 1291, 3]"] 23["Segment<br>[1284, 1291, 4]"]
24[Solid2d] 24[Solid2d]
end end
subgraph path89 [Path] subgraph path89 [Path]
89["Path<br>[361, 394, 3]"] 89["Path<br>[361, 394, 4]"]
90["Segment<br>[402, 428, 3]"] 90["Segment<br>[402, 428, 4]"]
91["Segment<br>[436, 489, 3]"] 91["Segment<br>[436, 489, 4]"]
92["Segment<br>[497, 550, 3]"] 92["Segment<br>[497, 550, 4]"]
93["Segment<br>[558, 612, 3]"] 93["Segment<br>[558, 612, 4]"]
94["Segment<br>[620, 645, 3]"] 94["Segment<br>[620, 645, 4]"]
95["Segment<br>[653, 673, 3]"] 95["Segment<br>[653, 673, 4]"]
96["Segment<br>[681, 705, 3]"] 96["Segment<br>[681, 705, 4]"]
97["Segment<br>[713, 766, 3]"] 97["Segment<br>[713, 766, 4]"]
98["Segment<br>[774, 799, 3]"] 98["Segment<br>[774, 799, 4]"]
99["Segment<br>[807, 827, 3]"] 99["Segment<br>[807, 827, 4]"]
100["Segment<br>[835, 859, 3]"] 100["Segment<br>[835, 859, 4]"]
101["Segment<br>[867, 919, 3]"] 101["Segment<br>[867, 919, 4]"]
102["Segment<br>[927, 979, 3]"] 102["Segment<br>[927, 979, 4]"]
103["Segment<br>[987, 1012, 3]"] 103["Segment<br>[987, 1012, 4]"]
104["Segment<br>[1020, 1044, 3]"] 104["Segment<br>[1020, 1044, 4]"]
105["Segment<br>[1052, 1105, 3]"] 105["Segment<br>[1052, 1105, 4]"]
106["Segment<br>[1113, 1138, 3]"] 106["Segment<br>[1113, 1138, 4]"]
107["Segment<br>[1146, 1173, 3]"] 107["Segment<br>[1146, 1173, 4]"]
108["Segment<br>[1181, 1233, 3]"] 108["Segment<br>[1181, 1233, 4]"]
109["Segment<br>[1241, 1276, 3]"] 109["Segment<br>[1241, 1276, 4]"]
110["Segment<br>[1284, 1291, 3]"] 110["Segment<br>[1284, 1291, 4]"]
111[Solid2d] 111[Solid2d]
end end
subgraph path176 [Path] subgraph path176 [Path]
176["Path<br>[361, 394, 3]"] 176["Path<br>[361, 394, 4]"]
177["Segment<br>[402, 428, 3]"] 177["Segment<br>[402, 428, 4]"]
178["Segment<br>[436, 489, 3]"] 178["Segment<br>[436, 489, 4]"]
179["Segment<br>[497, 550, 3]"] 179["Segment<br>[497, 550, 4]"]
180["Segment<br>[558, 612, 3]"] 180["Segment<br>[558, 612, 4]"]
181["Segment<br>[620, 645, 3]"] 181["Segment<br>[620, 645, 4]"]
182["Segment<br>[653, 673, 3]"] 182["Segment<br>[653, 673, 4]"]
183["Segment<br>[681, 705, 3]"] 183["Segment<br>[681, 705, 4]"]
184["Segment<br>[713, 766, 3]"] 184["Segment<br>[713, 766, 4]"]
185["Segment<br>[774, 799, 3]"] 185["Segment<br>[774, 799, 4]"]
186["Segment<br>[807, 827, 3]"] 186["Segment<br>[807, 827, 4]"]
187["Segment<br>[835, 859, 3]"] 187["Segment<br>[835, 859, 4]"]
188["Segment<br>[867, 919, 3]"] 188["Segment<br>[867, 919, 4]"]
189["Segment<br>[927, 979, 3]"] 189["Segment<br>[927, 979, 4]"]
190["Segment<br>[987, 1012, 3]"] 190["Segment<br>[987, 1012, 4]"]
191["Segment<br>[1020, 1044, 3]"] 191["Segment<br>[1020, 1044, 4]"]
192["Segment<br>[1052, 1105, 3]"] 192["Segment<br>[1052, 1105, 4]"]
193["Segment<br>[1113, 1138, 3]"] 193["Segment<br>[1113, 1138, 4]"]
194["Segment<br>[1146, 1173, 3]"] 194["Segment<br>[1146, 1173, 4]"]
195["Segment<br>[1181, 1233, 3]"] 195["Segment<br>[1181, 1233, 4]"]
196["Segment<br>[1241, 1276, 3]"] 196["Segment<br>[1241, 1276, 4]"]
197["Segment<br>[1284, 1291, 3]"] 197["Segment<br>[1284, 1291, 4]"]
198[Solid2d] 198[Solid2d]
end end
subgraph path262 [Path] subgraph path262 [Path]
262["Path<br>[361, 394, 3]"] 262["Path<br>[361, 394, 4]"]
263["Segment<br>[402, 428, 3]"] 263["Segment<br>[402, 428, 4]"]
264["Segment<br>[436, 489, 3]"] 264["Segment<br>[436, 489, 4]"]
265["Segment<br>[497, 550, 3]"] 265["Segment<br>[497, 550, 4]"]
266["Segment<br>[558, 612, 3]"] 266["Segment<br>[558, 612, 4]"]
267["Segment<br>[620, 645, 3]"] 267["Segment<br>[620, 645, 4]"]
268["Segment<br>[653, 673, 3]"] 268["Segment<br>[653, 673, 4]"]
269["Segment<br>[681, 705, 3]"] 269["Segment<br>[681, 705, 4]"]
270["Segment<br>[713, 766, 3]"] 270["Segment<br>[713, 766, 4]"]
271["Segment<br>[774, 799, 3]"] 271["Segment<br>[774, 799, 4]"]
272["Segment<br>[807, 827, 3]"] 272["Segment<br>[807, 827, 4]"]
273["Segment<br>[835, 859, 3]"] 273["Segment<br>[835, 859, 4]"]
274["Segment<br>[867, 919, 3]"] 274["Segment<br>[867, 919, 4]"]
275["Segment<br>[927, 979, 3]"] 275["Segment<br>[927, 979, 4]"]
276["Segment<br>[987, 1012, 3]"] 276["Segment<br>[987, 1012, 4]"]
277["Segment<br>[1020, 1044, 3]"] 277["Segment<br>[1020, 1044, 4]"]
278["Segment<br>[1052, 1105, 3]"] 278["Segment<br>[1052, 1105, 4]"]
279["Segment<br>[1113, 1138, 3]"] 279["Segment<br>[1113, 1138, 4]"]
280["Segment<br>[1146, 1173, 3]"] 280["Segment<br>[1146, 1173, 4]"]
281["Segment<br>[1181, 1233, 3]"] 281["Segment<br>[1181, 1233, 4]"]
282["Segment<br>[1241, 1276, 3]"] 282["Segment<br>[1241, 1276, 4]"]
283["Segment<br>[1284, 1291, 3]"] 283["Segment<br>[1284, 1291, 4]"]
284[Solid2d] 284[Solid2d]
end end
subgraph path349 [Path] subgraph path349 [Path]
349["Path<br>[361, 394, 3]"] 349["Path<br>[361, 394, 4]"]
350["Segment<br>[402, 428, 3]"] 350["Segment<br>[402, 428, 4]"]
351["Segment<br>[436, 489, 3]"] 351["Segment<br>[436, 489, 4]"]
352["Segment<br>[497, 550, 3]"] 352["Segment<br>[497, 550, 4]"]
353["Segment<br>[558, 612, 3]"] 353["Segment<br>[558, 612, 4]"]
354["Segment<br>[620, 645, 3]"] 354["Segment<br>[620, 645, 4]"]
355["Segment<br>[653, 673, 3]"] 355["Segment<br>[653, 673, 4]"]
356["Segment<br>[681, 705, 3]"] 356["Segment<br>[681, 705, 4]"]
357["Segment<br>[713, 766, 3]"] 357["Segment<br>[713, 766, 4]"]
358["Segment<br>[774, 799, 3]"] 358["Segment<br>[774, 799, 4]"]
359["Segment<br>[807, 827, 3]"] 359["Segment<br>[807, 827, 4]"]
360["Segment<br>[835, 859, 3]"] 360["Segment<br>[835, 859, 4]"]
361["Segment<br>[867, 919, 3]"] 361["Segment<br>[867, 919, 4]"]
362["Segment<br>[927, 979, 3]"] 362["Segment<br>[927, 979, 4]"]
363["Segment<br>[987, 1012, 3]"] 363["Segment<br>[987, 1012, 4]"]
364["Segment<br>[1020, 1044, 3]"] 364["Segment<br>[1020, 1044, 4]"]
365["Segment<br>[1052, 1105, 3]"] 365["Segment<br>[1052, 1105, 4]"]
366["Segment<br>[1113, 1138, 3]"] 366["Segment<br>[1113, 1138, 4]"]
367["Segment<br>[1146, 1173, 3]"] 367["Segment<br>[1146, 1173, 4]"]
368["Segment<br>[1181, 1233, 3]"] 368["Segment<br>[1181, 1233, 4]"]
369["Segment<br>[1241, 1276, 3]"] 369["Segment<br>[1241, 1276, 4]"]
370["Segment<br>[1284, 1291, 3]"] 370["Segment<br>[1284, 1291, 4]"]
371[Solid2d] 371[Solid2d]
end end
subgraph path435 [Path] subgraph path435 [Path]
435["Path<br>[361, 394, 3]"] 435["Path<br>[361, 394, 4]"]
436["Segment<br>[402, 428, 3]"] 436["Segment<br>[402, 428, 4]"]
437["Segment<br>[436, 489, 3]"] 437["Segment<br>[436, 489, 4]"]
438["Segment<br>[497, 550, 3]"] 438["Segment<br>[497, 550, 4]"]
439["Segment<br>[558, 612, 3]"] 439["Segment<br>[558, 612, 4]"]
440["Segment<br>[620, 645, 3]"] 440["Segment<br>[620, 645, 4]"]
441["Segment<br>[653, 673, 3]"] 441["Segment<br>[653, 673, 4]"]
442["Segment<br>[681, 705, 3]"] 442["Segment<br>[681, 705, 4]"]
443["Segment<br>[713, 766, 3]"] 443["Segment<br>[713, 766, 4]"]
444["Segment<br>[774, 799, 3]"] 444["Segment<br>[774, 799, 4]"]
445["Segment<br>[807, 827, 3]"] 445["Segment<br>[807, 827, 4]"]
446["Segment<br>[835, 859, 3]"] 446["Segment<br>[835, 859, 4]"]
447["Segment<br>[867, 919, 3]"] 447["Segment<br>[867, 919, 4]"]
448["Segment<br>[927, 979, 3]"] 448["Segment<br>[927, 979, 4]"]
449["Segment<br>[987, 1012, 3]"] 449["Segment<br>[987, 1012, 4]"]
450["Segment<br>[1020, 1044, 3]"] 450["Segment<br>[1020, 1044, 4]"]
451["Segment<br>[1052, 1105, 3]"] 451["Segment<br>[1052, 1105, 4]"]
452["Segment<br>[1113, 1138, 3]"] 452["Segment<br>[1113, 1138, 4]"]
453["Segment<br>[1146, 1173, 3]"] 453["Segment<br>[1146, 1173, 4]"]
454["Segment<br>[1181, 1233, 3]"] 454["Segment<br>[1181, 1233, 4]"]
455["Segment<br>[1241, 1276, 3]"] 455["Segment<br>[1241, 1276, 4]"]
456["Segment<br>[1284, 1291, 3]"] 456["Segment<br>[1284, 1291, 4]"]
457[Solid2d] 457[Solid2d]
end end
subgraph path522 [Path] subgraph path522 [Path]
522["Path<br>[1685, 1709, 3]"] 522["Path<br>[1685, 1709, 4]"]
end end
subgraph path523 [Path] subgraph path523 [Path]
523["Path<br>[1717, 1847, 3]"] 523["Path<br>[1717, 1847, 4]"]
524["Segment<br>[1717, 1847, 3]"] 524["Segment<br>[1717, 1847, 4]"]
525["Segment<br>[1717, 1847, 3]"] 525["Segment<br>[1717, 1847, 4]"]
526["Segment<br>[1717, 1847, 3]"] 526["Segment<br>[1717, 1847, 4]"]
527["Segment<br>[1717, 1847, 3]"] 527["Segment<br>[1717, 1847, 4]"]
528["Segment<br>[1717, 1847, 3]"] 528["Segment<br>[1717, 1847, 4]"]
529["Segment<br>[1717, 1847, 3]"] 529["Segment<br>[1717, 1847, 4]"]
530["Segment<br>[1717, 1847, 3]"] 530["Segment<br>[1717, 1847, 4]"]
531[Solid2d] 531[Solid2d]
end end
subgraph path553 [Path] subgraph path553 [Path]
553["Path<br>[1685, 1709, 3]"] 553["Path<br>[1685, 1709, 4]"]
end end
subgraph path554 [Path] subgraph path554 [Path]
554["Path<br>[1717, 1847, 3]"] 554["Path<br>[1717, 1847, 4]"]
555["Segment<br>[1717, 1847, 3]"] 555["Segment<br>[1717, 1847, 4]"]
556["Segment<br>[1717, 1847, 3]"] 556["Segment<br>[1717, 1847, 4]"]
557["Segment<br>[1717, 1847, 3]"] 557["Segment<br>[1717, 1847, 4]"]
558["Segment<br>[1717, 1847, 3]"] 558["Segment<br>[1717, 1847, 4]"]
559["Segment<br>[1717, 1847, 3]"] 559["Segment<br>[1717, 1847, 4]"]
560["Segment<br>[1717, 1847, 3]"] 560["Segment<br>[1717, 1847, 4]"]
561["Segment<br>[1717, 1847, 3]"] 561["Segment<br>[1717, 1847, 4]"]
562[Solid2d] 562[Solid2d]
end end
subgraph path585 [Path] subgraph path585 [Path]
585["Path<br>[2123, 2150, 3]"] 585["Path<br>[2123, 2150, 4]"]
586["Segment<br>[2158, 2180, 3]"] 586["Segment<br>[2158, 2180, 4]"]
587["Segment<br>[2188, 2210, 3]"] 587["Segment<br>[2188, 2210, 4]"]
588["Segment<br>[2218, 2240, 3]"] 588["Segment<br>[2218, 2240, 4]"]
589["Segment<br>[2248, 2271, 3]"] 589["Segment<br>[2248, 2271, 4]"]
590["Segment<br>[2279, 2302, 3]"] 590["Segment<br>[2279, 2302, 4]"]
591["Segment<br>[2310, 2345, 3]"] 591["Segment<br>[2310, 2345, 4]"]
592["Segment<br>[2353, 2360, 3]"] 592["Segment<br>[2353, 2360, 4]"]
593[Solid2d] 593[Solid2d]
end end
subgraph path618 [Path] subgraph path618 [Path]
618["Path<br>[2632, 2661, 3]"] 618["Path<br>[2632, 2661, 4]"]
619["Segment<br>[2669, 2692, 3]"] 619["Segment<br>[2669, 2692, 4]"]
620["Segment<br>[2700, 2725, 3]"] 620["Segment<br>[2700, 2725, 4]"]
621["Segment<br>[2733, 2757, 3]"] 621["Segment<br>[2733, 2757, 4]"]
622["Segment<br>[2765, 2789, 3]"] 622["Segment<br>[2765, 2789, 4]"]
623["Segment<br>[2797, 2819, 3]"] 623["Segment<br>[2797, 2819, 4]"]
624["Segment<br>[2827, 2862, 3]"] 624["Segment<br>[2827, 2862, 4]"]
625["Segment<br>[2870, 2877, 3]"] 625["Segment<br>[2870, 2877, 4]"]
626[Solid2d] 626[Solid2d]
end end
subgraph path650 [Path] subgraph path650 [Path]
650["Path<br>[3152, 3179, 3]"] 650["Path<br>[3152, 3179, 4]"]
651["Segment<br>[3187, 3206, 3]"] 651["Segment<br>[3187, 3206, 4]"]
652["Segment<br>[3214, 3304, 3]"] 652["Segment<br>[3214, 3304, 4]"]
end end
subgraph path654 [Path] subgraph path654 [Path]
654["Path<br>[3404, 3437, 3]"] 654["Path<br>[3404, 3437, 4]"]
655["Segment<br>[3445, 3464, 3]"] 655["Segment<br>[3445, 3464, 4]"]
656["Segment<br>[3472, 3494, 3]"] 656["Segment<br>[3472, 3494, 4]"]
657["Segment<br>[3502, 3525, 3]"] 657["Segment<br>[3502, 3525, 4]"]
658["Segment<br>[3533, 3553, 3]"] 658["Segment<br>[3533, 3553, 4]"]
659["Segment<br>[3561, 3585, 3]"] 659["Segment<br>[3561, 3585, 4]"]
660["Segment<br>[3593, 3616, 3]"] 660["Segment<br>[3593, 3616, 4]"]
661["Segment<br>[3624, 3631, 3]"] 661["Segment<br>[3624, 3631, 4]"]
662[Solid2d] 662[Solid2d]
end end
subgraph path688 [Path] subgraph path688 [Path]
688["Path<br>[3152, 3179, 3]"] 688["Path<br>[3152, 3179, 4]"]
689["Segment<br>[3187, 3206, 3]"] 689["Segment<br>[3187, 3206, 4]"]
690["Segment<br>[3214, 3304, 3]"] 690["Segment<br>[3214, 3304, 4]"]
end end
subgraph path692 [Path] subgraph path692 [Path]
692["Path<br>[3404, 3437, 3]"] 692["Path<br>[3404, 3437, 4]"]
693["Segment<br>[3445, 3464, 3]"] 693["Segment<br>[3445, 3464, 4]"]
694["Segment<br>[3472, 3494, 3]"] 694["Segment<br>[3472, 3494, 4]"]
695["Segment<br>[3502, 3525, 3]"] 695["Segment<br>[3502, 3525, 4]"]
696["Segment<br>[3533, 3553, 3]"] 696["Segment<br>[3533, 3553, 4]"]
697["Segment<br>[3561, 3585, 3]"] 697["Segment<br>[3561, 3585, 4]"]
698["Segment<br>[3593, 3616, 3]"] 698["Segment<br>[3593, 3616, 4]"]
699["Segment<br>[3624, 3631, 3]"] 699["Segment<br>[3624, 3631, 4]"]
700[Solid2d] 700[Solid2d]
end end
1["Plane<br>[333, 353, 3]"] 1["Plane<br>[333, 353, 4]"]
25["Sweep Extrusion<br>[1379, 1417, 3]"] 25["Sweep Extrusion<br>[1379, 1417, 4]"]
26[Wall] 26[Wall]
27[Wall] 27[Wall]
28[Wall] 28[Wall]
@ -296,8 +296,8 @@ flowchart LR
85["SweepEdge Adjacent"] 85["SweepEdge Adjacent"]
86["SweepEdge Opposite"] 86["SweepEdge Opposite"]
87["SweepEdge Adjacent"] 87["SweepEdge Adjacent"]
88["Plane<br>[333, 353, 3]"] 88["Plane<br>[333, 353, 4]"]
112["Sweep Extrusion<br>[1455, 1494, 3]"] 112["Sweep Extrusion<br>[1455, 1494, 4]"]
113[Wall] 113[Wall]
114[Wall] 114[Wall]
115[Wall] 115[Wall]
@ -361,7 +361,7 @@ flowchart LR
173["SweepEdge Opposite"] 173["SweepEdge Opposite"]
174["SweepEdge Adjacent"] 174["SweepEdge Adjacent"]
175["Plane<br>[825, 869, 0]"] 175["Plane<br>[825, 869, 0]"]
199["Sweep Extrusion<br>[1379, 1417, 3]"] 199["Sweep Extrusion<br>[1379, 1417, 4]"]
200[Wall] 200[Wall]
201[Wall] 201[Wall]
202[Wall] 202[Wall]
@ -424,7 +424,7 @@ flowchart LR
259["SweepEdge Adjacent"] 259["SweepEdge Adjacent"]
260["SweepEdge Opposite"] 260["SweepEdge Opposite"]
261["SweepEdge Adjacent"] 261["SweepEdge Adjacent"]
285["Sweep Extrusion<br>[1455, 1494, 3]"] 285["Sweep Extrusion<br>[1455, 1494, 4]"]
286[Wall] 286[Wall]
287[Wall] 287[Wall]
288[Wall] 288[Wall]
@ -488,7 +488,7 @@ flowchart LR
346["SweepEdge Opposite"] 346["SweepEdge Opposite"]
347["SweepEdge Adjacent"] 347["SweepEdge Adjacent"]
348["Plane<br>[879, 922, 0]"] 348["Plane<br>[879, 922, 0]"]
372["Sweep Extrusion<br>[1379, 1417, 3]"] 372["Sweep Extrusion<br>[1379, 1417, 4]"]
373[Wall] 373[Wall]
374[Wall] 374[Wall]
375[Wall] 375[Wall]
@ -551,7 +551,7 @@ flowchart LR
432["SweepEdge Adjacent"] 432["SweepEdge Adjacent"]
433["SweepEdge Opposite"] 433["SweepEdge Opposite"]
434["SweepEdge Adjacent"] 434["SweepEdge Adjacent"]
458["Sweep Extrusion<br>[1455, 1494, 3]"] 458["Sweep Extrusion<br>[1455, 1494, 4]"]
459[Wall] 459[Wall]
460[Wall] 460[Wall]
461[Wall] 461[Wall]
@ -615,7 +615,7 @@ flowchart LR
519["SweepEdge Opposite"] 519["SweepEdge Opposite"]
520["SweepEdge Adjacent"] 520["SweepEdge Adjacent"]
521["Plane<br>[981, 1025, 0]"] 521["Plane<br>[981, 1025, 0]"]
532["Sweep Extrusion<br>[1949, 1973, 3]"] 532["Sweep Extrusion<br>[1949, 1973, 4]"]
533[Wall] 533[Wall]
534[Wall] 534[Wall]
535[Wall] 535[Wall]
@ -636,7 +636,7 @@ flowchart LR
550["SweepEdge Adjacent"] 550["SweepEdge Adjacent"]
551["SweepEdge Opposite"] 551["SweepEdge Opposite"]
552["SweepEdge Adjacent"] 552["SweepEdge Adjacent"]
563["Sweep Extrusion<br>[2015, 2039, 3]"] 563["Sweep Extrusion<br>[2015, 2039, 4]"]
564[Wall] 564[Wall]
565[Wall] 565[Wall]
566[Wall] 566[Wall]
@ -658,7 +658,7 @@ flowchart LR
582["SweepEdge Opposite"] 582["SweepEdge Opposite"]
583["SweepEdge Adjacent"] 583["SweepEdge Adjacent"]
584["Plane<br>[1076, 1143, 0]"] 584["Plane<br>[1076, 1143, 0]"]
594["Sweep Extrusion<br>[2523, 2547, 3]"] 594["Sweep Extrusion<br>[2523, 2547, 4]"]
595[Wall] 595[Wall]
596[Wall] 596[Wall]
597[Wall] 597[Wall]
@ -679,10 +679,10 @@ flowchart LR
612["SweepEdge Adjacent"] 612["SweepEdge Adjacent"]
613["SweepEdge Opposite"] 613["SweepEdge Opposite"]
614["SweepEdge Adjacent"] 614["SweepEdge Adjacent"]
615["Sweep Extrusion<br>[2523, 2547, 3]"] 615["Sweep Extrusion<br>[2523, 2547, 4]"]
616["Sweep Extrusion<br>[2523, 2547, 3]"] 616["Sweep Extrusion<br>[2523, 2547, 4]"]
617["Plane<br>[1213, 1280, 0]"] 617["Plane<br>[1213, 1280, 0]"]
627["Sweep Extrusion<br>[3047, 3071, 3]"] 627["Sweep Extrusion<br>[3047, 3071, 4]"]
628[Wall] 628[Wall]
629[Wall] 629[Wall]
630[Wall] 630[Wall]
@ -703,10 +703,10 @@ flowchart LR
645["SweepEdge Adjacent"] 645["SweepEdge Adjacent"]
646["SweepEdge Opposite"] 646["SweepEdge Opposite"]
647["SweepEdge Adjacent"] 647["SweepEdge Adjacent"]
648["Sweep Extrusion<br>[3047, 3071, 3]"] 648["Sweep Extrusion<br>[3047, 3071, 4]"]
649["Plane<br>[3712, 3747, 3]"] 649["Plane<br>[3712, 3747, 4]"]
653["Plane<br>[3778, 3809, 3]"] 653["Plane<br>[3778, 3809, 4]"]
663["Sweep Sweep<br>[3821, 3848, 3]"] 663["Sweep Sweep<br>[3821, 3848, 4]"]
664[Wall] 664[Wall]
665[Wall] 665[Wall]
666[Wall] 666[Wall]
@ -730,9 +730,9 @@ flowchart LR
684["SweepEdge Adjacent"] 684["SweepEdge Adjacent"]
685["SweepEdge Opposite"] 685["SweepEdge Opposite"]
686["SweepEdge Adjacent"] 686["SweepEdge Adjacent"]
687["Plane<br>[3712, 3747, 3]"] 687["Plane<br>[3712, 3747, 4]"]
691["Plane<br>[3778, 3809, 3]"] 691["Plane<br>[3778, 3809, 4]"]
701["Sweep Sweep<br>[3821, 3848, 3]"] 701["Sweep Sweep<br>[3821, 3848, 4]"]
702[Wall] 702[Wall]
703[Wall] 703[Wall]
704[Wall] 704[Wall]
@ -756,18 +756,18 @@ flowchart LR
722["SweepEdge Adjacent"] 722["SweepEdge Adjacent"]
723["SweepEdge Opposite"] 723["SweepEdge Opposite"]
724["SweepEdge Adjacent"] 724["SweepEdge Adjacent"]
725["StartSketchOnPlane<br>[333, 353, 3]"] 725["StartSketchOnPlane<br>[333, 353, 4]"]
726["StartSketchOnPlane<br>[333, 353, 3]"] 726["StartSketchOnPlane<br>[333, 353, 4]"]
727["StartSketchOnPlane<br>[333, 353, 3]"] 727["StartSketchOnPlane<br>[333, 353, 4]"]
728["StartSketchOnPlane<br>[333, 353, 3]"] 728["StartSketchOnPlane<br>[333, 353, 4]"]
729["StartSketchOnPlane<br>[1657, 1677, 3]"] 729["StartSketchOnPlane<br>[1657, 1677, 4]"]
730["StartSketchOnPlane<br>[1657, 1677, 3]"] 730["StartSketchOnPlane<br>[1657, 1677, 4]"]
731["StartSketchOnPlane<br>[2095, 2115, 3]"] 731["StartSketchOnPlane<br>[2095, 2115, 4]"]
732["StartSketchOnPlane<br>[2604, 2624, 3]"] 732["StartSketchOnPlane<br>[2604, 2624, 4]"]
733["StartSketchOnPlane<br>[3124, 3144, 3]"] 733["StartSketchOnPlane<br>[3124, 3144, 4]"]
734["StartSketchOnPlane<br>[3376, 3396, 3]"] 734["StartSketchOnPlane<br>[3376, 3396, 4]"]
735["StartSketchOnPlane<br>[3124, 3144, 3]"] 735["StartSketchOnPlane<br>[3124, 3144, 4]"]
736["StartSketchOnPlane<br>[3376, 3396, 3]"] 736["StartSketchOnPlane<br>[3376, 3396, 4]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

View File

@ -9,7 +9,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
1331, 1331,
1606, 1606,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -21,7 +21,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1312,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -77,7 +77,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1312,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -248,7 +248,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
1331, 1331,
1606, 1606,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -260,7 +260,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1312,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -316,7 +316,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1312,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -487,7 +487,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
1331, 1331,
1606, 1606,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -499,7 +499,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1312,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -555,7 +555,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
309, 309,
1312, 1312,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -726,7 +726,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
1889, 1889,
2052, 2052,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -738,7 +738,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
1626, 1626,
1868, 1868,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -800,7 +800,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
1626, 1626,
1868, 1868,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -889,7 +889,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
2474, 2474,
2560, 2560,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -901,7 +901,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
2071, 2071,
2453, 2453,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1007,7 +1007,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
2993, 2993,
3084, 3084,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1019,7 +1019,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
2580, 2580,
2972, 2972,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1095,7 +1095,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
3671, 3671,
3861, 3861,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1131,7 +1131,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
3100, 3100,
3325, 3325,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1191,7 +1191,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
3344, 3344,
3652, 3652,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1249,7 +1249,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
3671, 3671,
3861, 3861,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1285,7 +1285,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
3100, 3100,
3325, 3325,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1345,7 +1345,7 @@ description: Operations executed bench.kcl
"functionSourceRange": [ "functionSourceRange": [
3344, 3344,
3652, 3652,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},

View File

@ -255,6 +255,66 @@ description: Operations executed bracket.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -1.25,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 1.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.25,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -329,6 +389,66 @@ description: Operations executed bracket.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 1.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": -1.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.25,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -1,264 +1,264 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[571, 643, 4]"] 2["Path<br>[571, 643, 5]"]
3["Segment<br>[571, 643, 4]"] 3["Segment<br>[571, 643, 5]"]
4[Solid2d] 4[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[828, 905, 4]"] 11["Path<br>[828, 905, 5]"]
12["Segment<br>[828, 905, 4]"] 12["Segment<br>[828, 905, 5]"]
13[Solid2d] 13[Solid2d]
end end
subgraph path19 [Path] subgraph path19 [Path]
19["Path<br>[1030, 1104, 4]"] 19["Path<br>[1030, 1104, 5]"]
20["Segment<br>[1030, 1104, 4]"] 20["Segment<br>[1030, 1104, 5]"]
21[Solid2d] 21[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[1486, 1526, 4]"] 30["Path<br>[1486, 1526, 5]"]
31["Segment<br>[1486, 1526, 4]"] 31["Segment<br>[1486, 1526, 5]"]
32[Solid2d] 32[Solid2d]
end end
subgraph path38 [Path] subgraph path38 [Path]
38["Path<br>[1630, 1702, 4]"] 38["Path<br>[1630, 1702, 5]"]
39["Segment<br>[1630, 1702, 4]"] 39["Segment<br>[1630, 1702, 5]"]
40[Solid2d] 40[Solid2d]
end end
subgraph path47 [Path] subgraph path47 [Path]
47["Path<br>[1835, 1909, 4]"] 47["Path<br>[1835, 1909, 5]"]
48["Segment<br>[1835, 1909, 4]"] 48["Segment<br>[1835, 1909, 5]"]
49[Solid2d] 49[Solid2d]
end end
subgraph path58 [Path] subgraph path58 [Path]
58["Path<br>[2151, 2244, 4]"] 58["Path<br>[2151, 2244, 5]"]
59["Segment<br>[2151, 2244, 4]"] 59["Segment<br>[2151, 2244, 5]"]
60[Solid2d] 60[Solid2d]
end end
subgraph path81 [Path] subgraph path81 [Path]
81["Path<br>[2500, 2531, 4]"] 81["Path<br>[2500, 2531, 5]"]
82["Segment<br>[2537, 2557, 4]"] 82["Segment<br>[2537, 2557, 5]"]
83["Segment<br>[2563, 2583, 4]"] 83["Segment<br>[2563, 2583, 5]"]
84["Segment<br>[2589, 2610, 4]"] 84["Segment<br>[2589, 2610, 5]"]
85["Segment<br>[2616, 2672, 4]"] 85["Segment<br>[2616, 2672, 5]"]
86["Segment<br>[2678, 2685, 4]"] 86["Segment<br>[2678, 2685, 5]"]
87[Solid2d] 87[Solid2d]
end end
subgraph path106 [Path] subgraph path106 [Path]
106["Path<br>[2986, 3018, 4]"] 106["Path<br>[2986, 3018, 5]"]
107["Segment<br>[3024, 3045, 4]"] 107["Segment<br>[3024, 3045, 5]"]
108["Segment<br>[3051, 3071, 4]"] 108["Segment<br>[3051, 3071, 5]"]
109["Segment<br>[3077, 3097, 4]"] 109["Segment<br>[3077, 3097, 5]"]
110["Segment<br>[3103, 3159, 4]"] 110["Segment<br>[3103, 3159, 5]"]
111["Segment<br>[3165, 3172, 4]"] 111["Segment<br>[3165, 3172, 5]"]
112[Solid2d] 112[Solid2d]
end end
subgraph path132 [Path] subgraph path132 [Path]
132["Path<br>[354, 431, 3]"] 132["Path<br>[354, 431, 4]"]
133["Segment<br>[354, 431, 3]"] 133["Segment<br>[354, 431, 4]"]
134[Solid2d] 134[Solid2d]
end end
subgraph path135 [Path] subgraph path135 [Path]
135["Path<br>[442, 519, 3]"] 135["Path<br>[442, 519, 4]"]
136["Segment<br>[442, 519, 3]"] 136["Segment<br>[442, 519, 4]"]
137[Solid2d] 137[Solid2d]
end end
subgraph path144 [Path] subgraph path144 [Path]
144["Path<br>[684, 761, 3]"] 144["Path<br>[684, 761, 4]"]
145["Segment<br>[684, 761, 3]"] 145["Segment<br>[684, 761, 4]"]
146[Solid2d] 146[Solid2d]
end end
subgraph path147 [Path] subgraph path147 [Path]
147["Path<br>[772, 849, 3]"] 147["Path<br>[772, 849, 4]"]
148["Segment<br>[772, 849, 3]"] 148["Segment<br>[772, 849, 4]"]
149[Solid2d] 149[Solid2d]
end end
subgraph path156 [Path] subgraph path156 [Path]
156["Path<br>[993, 1068, 3]"] 156["Path<br>[993, 1068, 4]"]
157["Segment<br>[993, 1068, 3]"] 157["Segment<br>[993, 1068, 4]"]
158[Solid2d] 158[Solid2d]
end end
subgraph path167 [Path] subgraph path167 [Path]
167["Path<br>[1345, 1426, 3]"] 167["Path<br>[1345, 1426, 4]"]
168["Segment<br>[1345, 1426, 3]"] 168["Segment<br>[1345, 1426, 4]"]
169[Solid2d] 169[Solid2d]
end end
subgraph path179 [Path] subgraph path179 [Path]
179["Path<br>[1785, 1831, 3]"] 179["Path<br>[1785, 1831, 4]"]
180["Segment<br>[1837, 1889, 3]"] 180["Segment<br>[1837, 1889, 4]"]
181["Segment<br>[1895, 2000, 3]"] 181["Segment<br>[1895, 2000, 4]"]
182["Segment<br>[2006, 2028, 3]"] 182["Segment<br>[2006, 2028, 4]"]
183["Segment<br>[2034, 2090, 3]"] 183["Segment<br>[2034, 2090, 4]"]
184["Segment<br>[2096, 2103, 3]"] 184["Segment<br>[2096, 2103, 4]"]
185[Solid2d] 185[Solid2d]
end end
subgraph path195 [Path] subgraph path195 [Path]
195["Path<br>[2239, 2285, 3]"] 195["Path<br>[2239, 2285, 4]"]
196["Segment<br>[2291, 2343, 3]"] 196["Segment<br>[2291, 2343, 4]"]
197["Segment<br>[2349, 2456, 3]"] 197["Segment<br>[2349, 2456, 4]"]
198["Segment<br>[2462, 2499, 3]"] 198["Segment<br>[2462, 2499, 4]"]
199["Segment<br>[2505, 2561, 3]"] 199["Segment<br>[2505, 2561, 4]"]
200["Segment<br>[2567, 2574, 3]"] 200["Segment<br>[2567, 2574, 4]"]
201[Solid2d] 201[Solid2d]
end end
subgraph path212 [Path] subgraph path212 [Path]
212["Path<br>[3085, 3132, 3]"] 212["Path<br>[3085, 3132, 4]"]
213["Segment<br>[3140, 3480, 3]"] 213["Segment<br>[3140, 3480, 4]"]
214["Segment<br>[3488, 3520, 3]"] 214["Segment<br>[3488, 3520, 4]"]
215["Segment<br>[3528, 3872, 3]"] 215["Segment<br>[3528, 3872, 4]"]
216["Segment<br>[3880, 3936, 3]"] 216["Segment<br>[3880, 3936, 4]"]
217["Segment<br>[3944, 3951, 3]"] 217["Segment<br>[3944, 3951, 4]"]
218[Solid2d] 218[Solid2d]
end end
subgraph path235 [Path] subgraph path235 [Path]
235["Path<br>[3085, 3132, 3]"] 235["Path<br>[3085, 3132, 4]"]
236["Segment<br>[3140, 3480, 3]"] 236["Segment<br>[3140, 3480, 4]"]
237["Segment<br>[3488, 3520, 3]"] 237["Segment<br>[3488, 3520, 4]"]
238["Segment<br>[3528, 3872, 3]"] 238["Segment<br>[3528, 3872, 4]"]
239["Segment<br>[3880, 3936, 3]"] 239["Segment<br>[3880, 3936, 4]"]
240["Segment<br>[3944, 3951, 3]"] 240["Segment<br>[3944, 3951, 4]"]
241[Solid2d] 241[Solid2d]
end end
subgraph path258 [Path] subgraph path258 [Path]
258["Path<br>[4480, 4575, 3]"] 258["Path<br>[4480, 4575, 4]"]
259["Segment<br>[4581, 4614, 3]"] 259["Segment<br>[4581, 4614, 4]"]
260["Segment<br>[4620, 4671, 3]"] 260["Segment<br>[4620, 4671, 4]"]
261["Segment<br>[4677, 4710, 3]"] 261["Segment<br>[4677, 4710, 4]"]
262["Segment<br>[4716, 4766, 3]"] 262["Segment<br>[4716, 4766, 4]"]
263["Segment<br>[4772, 4813, 3]"] 263["Segment<br>[4772, 4813, 4]"]
264["Segment<br>[4819, 4868, 3]"] 264["Segment<br>[4819, 4868, 4]"]
265["Segment<br>[4874, 4907, 3]"] 265["Segment<br>[4874, 4907, 4]"]
266["Segment<br>[4913, 4947, 3]"] 266["Segment<br>[4913, 4947, 4]"]
267["Segment<br>[4953, 4987, 3]"] 267["Segment<br>[4953, 4987, 4]"]
268["Segment<br>[4993, 5045, 3]"] 268["Segment<br>[4993, 5045, 4]"]
269["Segment<br>[5051, 5085, 3]"] 269["Segment<br>[5051, 5085, 4]"]
270["Segment<br>[5091, 5167, 3]"] 270["Segment<br>[5091, 5167, 4]"]
271["Segment<br>[5173, 5206, 3]"] 271["Segment<br>[5173, 5206, 4]"]
272["Segment<br>[5212, 5288, 3]"] 272["Segment<br>[5212, 5288, 4]"]
273["Segment<br>[5294, 5328, 3]"] 273["Segment<br>[5294, 5328, 4]"]
274["Segment<br>[5334, 5408, 3]"] 274["Segment<br>[5334, 5408, 4]"]
275["Segment<br>[5414, 5448, 3]"] 275["Segment<br>[5414, 5448, 4]"]
276["Segment<br>[5454, 5505, 3]"] 276["Segment<br>[5454, 5505, 4]"]
277["Segment<br>[5511, 5573, 3]"] 277["Segment<br>[5511, 5573, 4]"]
278["Segment<br>[5579, 5630, 3]"] 278["Segment<br>[5579, 5630, 4]"]
279["Segment<br>[5636, 5670, 3]"] 279["Segment<br>[5636, 5670, 4]"]
280["Segment<br>[5676, 5709, 3]"] 280["Segment<br>[5676, 5709, 4]"]
281["Segment<br>[5715, 5748, 3]"] 281["Segment<br>[5715, 5748, 4]"]
282["Segment<br>[5754, 5761, 3]"] 282["Segment<br>[5754, 5761, 4]"]
283[Solid2d] 283[Solid2d]
end end
subgraph path334 [Path] subgraph path334 [Path]
334["Path<br>[742, 782, 6]"] 334["Path<br>[742, 782, 7]"]
335["Segment<br>[790, 852, 6]"] 335["Segment<br>[790, 852, 7]"]
336["Segment<br>[860, 896, 6]"] 336["Segment<br>[860, 896, 7]"]
337["Segment<br>[904, 934, 6]"] 337["Segment<br>[904, 934, 7]"]
338["Segment<br>[942, 994, 6]"] 338["Segment<br>[942, 994, 7]"]
339["Segment<br>[1002, 1042, 6]"] 339["Segment<br>[1002, 1042, 7]"]
340["Segment<br>[1050, 1085, 6]"] 340["Segment<br>[1050, 1085, 7]"]
341["Segment<br>[1093, 1131, 6]"] 341["Segment<br>[1093, 1131, 7]"]
342["Segment<br>[1139, 1161, 6]"] 342["Segment<br>[1139, 1161, 7]"]
343["Segment<br>[1169, 1176, 6]"] 343["Segment<br>[1169, 1176, 7]"]
344[Solid2d] 344[Solid2d]
end end
subgraph path365 [Path] subgraph path365 [Path]
365["Path<br>[511, 592, 5]"] 365["Path<br>[511, 592, 6]"]
366["Segment<br>[598, 699, 5]"] 366["Segment<br>[598, 699, 6]"]
367["Segment<br>[705, 790, 5]"] 367["Segment<br>[705, 790, 6]"]
368["Segment<br>[796, 880, 5]"] 368["Segment<br>[796, 880, 6]"]
369["Segment<br>[886, 972, 5]"] 369["Segment<br>[886, 972, 6]"]
370["Segment<br>[978, 1063, 5]"] 370["Segment<br>[978, 1063, 6]"]
371["Segment<br>[1069, 1155, 5]"] 371["Segment<br>[1069, 1155, 6]"]
372["Segment<br>[1161, 1284, 5]"] 372["Segment<br>[1161, 1284, 6]"]
373["Segment<br>[1290, 1376, 5]"] 373["Segment<br>[1290, 1376, 6]"]
374["Segment<br>[1382, 1517, 5]"] 374["Segment<br>[1382, 1517, 6]"]
375["Segment<br>[1523, 1609, 5]"] 375["Segment<br>[1523, 1609, 6]"]
376["Segment<br>[1615, 1739, 5]"] 376["Segment<br>[1615, 1739, 6]"]
377["Segment<br>[1745, 1831, 5]"] 377["Segment<br>[1745, 1831, 6]"]
378["Segment<br>[1837, 1922, 5]"] 378["Segment<br>[1837, 1922, 6]"]
379["Segment<br>[1928, 2014, 5]"] 379["Segment<br>[1928, 2014, 6]"]
380["Segment<br>[2020, 2105, 5]"] 380["Segment<br>[2020, 2105, 6]"]
381["Segment<br>[2111, 2196, 5]"] 381["Segment<br>[2111, 2196, 6]"]
382["Segment<br>[2202, 2209, 5]"] 382["Segment<br>[2202, 2209, 6]"]
383[Solid2d] 383[Solid2d]
end end
subgraph path439 [Path] subgraph path439 [Path]
439["Path<br>[487, 544, 7]"] 439["Path<br>[487, 544, 8]"]
440["Segment<br>[550, 656, 7]"] 440["Segment<br>[550, 656, 8]"]
441["Segment<br>[662, 717, 7]"] 441["Segment<br>[662, 717, 8]"]
442["Segment<br>[723, 820, 7]"] 442["Segment<br>[723, 820, 8]"]
443["Segment<br>[826, 858, 7]"] 443["Segment<br>[826, 858, 8]"]
444["Segment<br>[864, 896, 7]"] 444["Segment<br>[864, 896, 8]"]
445["Segment<br>[902, 933, 7]"] 445["Segment<br>[902, 933, 8]"]
446["Segment<br>[939, 1054, 7]"] 446["Segment<br>[939, 1054, 8]"]
447["Segment<br>[1060, 1092, 7]"] 447["Segment<br>[1060, 1092, 8]"]
448["Segment<br>[1098, 1130, 7]"] 448["Segment<br>[1098, 1130, 8]"]
449["Segment<br>[1136, 1167, 7]"] 449["Segment<br>[1136, 1167, 8]"]
450["Segment<br>[1173, 1266, 7]"] 450["Segment<br>[1173, 1266, 8]"]
451["Segment<br>[1272, 1327, 7]"] 451["Segment<br>[1272, 1327, 8]"]
452["Segment<br>[1333, 1406, 7]"] 452["Segment<br>[1333, 1406, 8]"]
453["Segment<br>[1412, 1419, 7]"] 453["Segment<br>[1412, 1419, 8]"]
454[Solid2d] 454[Solid2d]
end end
1["Plane<br>[546, 565, 4]"] 1["Plane<br>[546, 565, 5]"]
5["Sweep Extrusion<br>[652, 708, 4]"] 5["Sweep Extrusion<br>[652, 708, 5]"]
6[Wall] 6[Wall]
7["Cap Start"] 7["Cap Start"]
8["Cap End"] 8["Cap End"]
9["SweepEdge Opposite"] 9["SweepEdge Opposite"]
10["SweepEdge Adjacent"] 10["SweepEdge Adjacent"]
14["Sweep Extrusion<br>[918, 980, 4]"] 14["Sweep Extrusion<br>[918, 980, 5]"]
15[Wall] 15[Wall]
16["Cap End"] 16["Cap End"]
17["SweepEdge Opposite"] 17["SweepEdge Opposite"]
18["SweepEdge Adjacent"] 18["SweepEdge Adjacent"]
22["Sweep Extrusion<br>[1250, 1329, 4]"] 22["Sweep Extrusion<br>[1250, 1329, 5]"]
23[Wall] 23[Wall]
24["SweepEdge Opposite"] 24["SweepEdge Opposite"]
25["SweepEdge Adjacent"] 25["SweepEdge Adjacent"]
26["Sweep Extrusion<br>[1250, 1329, 4]"] 26["Sweep Extrusion<br>[1250, 1329, 5]"]
27["Sweep Extrusion<br>[1250, 1329, 4]"] 27["Sweep Extrusion<br>[1250, 1329, 5]"]
28["Sweep Extrusion<br>[1250, 1329, 4]"] 28["Sweep Extrusion<br>[1250, 1329, 5]"]
29["Sweep Extrusion<br>[1250, 1329, 4]"] 29["Sweep Extrusion<br>[1250, 1329, 5]"]
33["Sweep Extrusion<br>[1532, 1565, 4]"] 33["Sweep Extrusion<br>[1532, 1565, 5]"]
34[Wall] 34[Wall]
35["Cap End"] 35["Cap End"]
36["SweepEdge Opposite"] 36["SweepEdge Opposite"]
37["SweepEdge Adjacent"] 37["SweepEdge Adjacent"]
41["Sweep Extrusion<br>[1717, 1782, 4]"] 41["Sweep Extrusion<br>[1717, 1782, 5]"]
42[Wall] 42[Wall]
43["Cap Start"] 43["Cap Start"]
44["Cap End"] 44["Cap End"]
45["SweepEdge Opposite"] 45["SweepEdge Opposite"]
46["SweepEdge Adjacent"] 46["SweepEdge Adjacent"]
50["Sweep Extrusion<br>[2055, 2099, 4]"] 50["Sweep Extrusion<br>[2055, 2099, 5]"]
51[Wall] 51[Wall]
52["SweepEdge Opposite"] 52["SweepEdge Opposite"]
53["SweepEdge Adjacent"] 53["SweepEdge Adjacent"]
54["Sweep Extrusion<br>[2055, 2099, 4]"] 54["Sweep Extrusion<br>[2055, 2099, 5]"]
55["Sweep Extrusion<br>[2055, 2099, 4]"] 55["Sweep Extrusion<br>[2055, 2099, 5]"]
56["Sweep Extrusion<br>[2055, 2099, 4]"] 56["Sweep Extrusion<br>[2055, 2099, 5]"]
57["Sweep Extrusion<br>[2055, 2099, 4]"] 57["Sweep Extrusion<br>[2055, 2099, 5]"]
61["Sweep Extrusion<br>[2398, 2442, 4]"] 61["Sweep Extrusion<br>[2398, 2442, 5]"]
62[Wall] 62[Wall]
63["Cap End"] 63["Cap End"]
64["SweepEdge Opposite"] 64["SweepEdge Opposite"]
65["SweepEdge Adjacent"] 65["SweepEdge Adjacent"]
66["Sweep Extrusion<br>[2398, 2442, 4]"] 66["Sweep Extrusion<br>[2398, 2442, 5]"]
67["Sweep Extrusion<br>[2398, 2442, 4]"] 67["Sweep Extrusion<br>[2398, 2442, 5]"]
68["Sweep Extrusion<br>[2398, 2442, 4]"] 68["Sweep Extrusion<br>[2398, 2442, 5]"]
69["Sweep Extrusion<br>[2398, 2442, 4]"] 69["Sweep Extrusion<br>[2398, 2442, 5]"]
70["Sweep Extrusion<br>[2398, 2442, 4]"] 70["Sweep Extrusion<br>[2398, 2442, 5]"]
71["Sweep Extrusion<br>[2398, 2442, 4]"] 71["Sweep Extrusion<br>[2398, 2442, 5]"]
72["Sweep Extrusion<br>[2398, 2442, 4]"] 72["Sweep Extrusion<br>[2398, 2442, 5]"]
73["Sweep Extrusion<br>[2398, 2442, 4]"] 73["Sweep Extrusion<br>[2398, 2442, 5]"]
74["Sweep Extrusion<br>[2398, 2442, 4]"] 74["Sweep Extrusion<br>[2398, 2442, 5]"]
75["Sweep Extrusion<br>[2398, 2442, 4]"] 75["Sweep Extrusion<br>[2398, 2442, 5]"]
76["Sweep Extrusion<br>[2398, 2442, 4]"] 76["Sweep Extrusion<br>[2398, 2442, 5]"]
77["Sweep Extrusion<br>[2398, 2442, 4]"] 77["Sweep Extrusion<br>[2398, 2442, 5]"]
78["Sweep Extrusion<br>[2398, 2442, 4]"] 78["Sweep Extrusion<br>[2398, 2442, 5]"]
79["Sweep Extrusion<br>[2398, 2442, 4]"] 79["Sweep Extrusion<br>[2398, 2442, 5]"]
80["Sweep Extrusion<br>[2398, 2442, 4]"] 80["Sweep Extrusion<br>[2398, 2442, 5]"]
88["Sweep Extrusion<br>[2850, 2918, 4]"] 88["Sweep Extrusion<br>[2850, 2918, 5]"]
89[Wall] 89[Wall]
90[Wall] 90[Wall]
91[Wall] 91[Wall]
@ -272,11 +272,11 @@ flowchart LR
99["SweepEdge Adjacent"] 99["SweepEdge Adjacent"]
100["SweepEdge Opposite"] 100["SweepEdge Opposite"]
101["SweepEdge Adjacent"] 101["SweepEdge Adjacent"]
102["Sweep Extrusion<br>[2850, 2918, 4]"] 102["Sweep Extrusion<br>[2850, 2918, 5]"]
103["Sweep Extrusion<br>[2850, 2918, 4]"] 103["Sweep Extrusion<br>[2850, 2918, 5]"]
104["Sweep Extrusion<br>[2850, 2918, 4]"] 104["Sweep Extrusion<br>[2850, 2918, 5]"]
105["Sweep Extrusion<br>[2850, 2918, 4]"] 105["Sweep Extrusion<br>[2850, 2918, 5]"]
113["Sweep Extrusion<br>[3323, 3397, 4]"] 113["Sweep Extrusion<br>[3323, 3397, 5]"]
114[Wall] 114[Wall]
115[Wall] 115[Wall]
116[Wall] 116[Wall]
@ -290,41 +290,41 @@ flowchart LR
124["SweepEdge Adjacent"] 124["SweepEdge Adjacent"]
125["SweepEdge Opposite"] 125["SweepEdge Opposite"]
126["SweepEdge Adjacent"] 126["SweepEdge Adjacent"]
127["Sweep Extrusion<br>[3323, 3397, 4]"] 127["Sweep Extrusion<br>[3323, 3397, 5]"]
128["Sweep Extrusion<br>[3323, 3397, 4]"] 128["Sweep Extrusion<br>[3323, 3397, 5]"]
129["Sweep Extrusion<br>[3323, 3397, 4]"] 129["Sweep Extrusion<br>[3323, 3397, 5]"]
130["Sweep Extrusion<br>[3323, 3397, 4]"] 130["Sweep Extrusion<br>[3323, 3397, 5]"]
131["Plane<br>[329, 348, 3]"] 131["Plane<br>[329, 348, 4]"]
138["Sweep Extrusion<br>[529, 562, 3]"] 138["Sweep Extrusion<br>[529, 562, 4]"]
139[Wall] 139[Wall]
140["Cap Start"] 140["Cap Start"]
141["Cap End"] 141["Cap End"]
142["SweepEdge Opposite"] 142["SweepEdge Opposite"]
143["SweepEdge Adjacent"] 143["SweepEdge Adjacent"]
150["Sweep Extrusion<br>[859, 892, 3]"] 150["Sweep Extrusion<br>[859, 892, 4]"]
151[Wall] 151[Wall]
152["Cap Start"] 152["Cap Start"]
153["Cap End"] 153["Cap End"]
154["SweepEdge Opposite"] 154["SweepEdge Opposite"]
155["SweepEdge Adjacent"] 155["SweepEdge Adjacent"]
159["Sweep Extrusion<br>[1214, 1248, 3]"] 159["Sweep Extrusion<br>[1214, 1248, 4]"]
160[Wall] 160[Wall]
161["SweepEdge Opposite"] 161["SweepEdge Opposite"]
162["SweepEdge Adjacent"] 162["SweepEdge Adjacent"]
163["Sweep Extrusion<br>[1214, 1248, 3]"] 163["Sweep Extrusion<br>[1214, 1248, 4]"]
164["Sweep Extrusion<br>[1214, 1248, 3]"] 164["Sweep Extrusion<br>[1214, 1248, 4]"]
165["Sweep Extrusion<br>[1214, 1248, 3]"] 165["Sweep Extrusion<br>[1214, 1248, 4]"]
166["Sweep Extrusion<br>[1214, 1248, 3]"] 166["Sweep Extrusion<br>[1214, 1248, 4]"]
170["Sweep Extrusion<br>[1572, 1606, 3]"] 170["Sweep Extrusion<br>[1572, 1606, 4]"]
171[Wall] 171[Wall]
172["SweepEdge Opposite"] 172["SweepEdge Opposite"]
173["SweepEdge Adjacent"] 173["SweepEdge Adjacent"]
174["Sweep Extrusion<br>[1572, 1606, 3]"] 174["Sweep Extrusion<br>[1572, 1606, 4]"]
175["Sweep Extrusion<br>[1572, 1606, 3]"] 175["Sweep Extrusion<br>[1572, 1606, 4]"]
176["Sweep Extrusion<br>[1572, 1606, 3]"] 176["Sweep Extrusion<br>[1572, 1606, 4]"]
177["Sweep Extrusion<br>[1572, 1606, 3]"] 177["Sweep Extrusion<br>[1572, 1606, 4]"]
178["Plane<br>[1760, 1779, 3]"] 178["Plane<br>[1760, 1779, 4]"]
186["Sweep Revolve<br>[2109, 2128, 3]"] 186["Sweep Revolve<br>[2109, 2128, 4]"]
187[Wall] 187[Wall]
188[Wall] 188[Wall]
189[Wall] 189[Wall]
@ -332,8 +332,8 @@ flowchart LR
191["SweepEdge Adjacent"] 191["SweepEdge Adjacent"]
192["SweepEdge Adjacent"] 192["SweepEdge Adjacent"]
193["SweepEdge Adjacent"] 193["SweepEdge Adjacent"]
194["Plane<br>[2214, 2233, 3]"] 194["Plane<br>[2214, 2233, 4]"]
202["Sweep Revolve<br>[2580, 2599, 3]"] 202["Sweep Revolve<br>[2580, 2599, 4]"]
203[Wall] 203[Wall]
204[Wall] 204[Wall]
205[Wall] 205[Wall]
@ -342,8 +342,8 @@ flowchart LR
208["SweepEdge Adjacent"] 208["SweepEdge Adjacent"]
209["SweepEdge Adjacent"] 209["SweepEdge Adjacent"]
210["SweepEdge Adjacent"] 210["SweepEdge Adjacent"]
211["Plane<br>[3054, 3077, 3]"] 211["Plane<br>[3054, 3077, 4]"]
219["Sweep Extrusion<br>[3999, 4045, 3]"] 219["Sweep Extrusion<br>[3999, 4045, 4]"]
220[Wall] 220[Wall]
221[Wall] 221[Wall]
222[Wall] 222[Wall]
@ -358,8 +358,8 @@ flowchart LR
231["SweepEdge Adjacent"] 231["SweepEdge Adjacent"]
232["SweepEdge Opposite"] 232["SweepEdge Opposite"]
233["SweepEdge Adjacent"] 233["SweepEdge Adjacent"]
234["Plane<br>[3054, 3077, 3]"] 234["Plane<br>[3054, 3077, 4]"]
242["Sweep Extrusion<br>[3999, 4045, 3]"] 242["Sweep Extrusion<br>[3999, 4045, 4]"]
243[Wall] 243[Wall]
244[Wall] 244[Wall]
245[Wall] 245[Wall]
@ -374,8 +374,8 @@ flowchart LR
254["SweepEdge Adjacent"] 254["SweepEdge Adjacent"]
255["SweepEdge Opposite"] 255["SweepEdge Opposite"]
256["SweepEdge Adjacent"] 256["SweepEdge Adjacent"]
257["Plane<br>[4455, 4474, 3]"] 257["Plane<br>[4455, 4474, 4]"]
284["Sweep Revolve<br>[5767, 5786, 3]"] 284["Sweep Revolve<br>[5767, 5786, 4]"]
285[Wall] 285[Wall]
286[Wall] 286[Wall]
287[Wall] 287[Wall]
@ -424,8 +424,8 @@ flowchart LR
330["SweepEdge Adjacent"] 330["SweepEdge Adjacent"]
331["SweepEdge Adjacent"] 331["SweepEdge Adjacent"]
332["SweepEdge Adjacent"] 332["SweepEdge Adjacent"]
333["Plane<br>[708, 734, 6]"] 333["Plane<br>[708, 734, 7]"]
345["Sweep Revolve<br>[1184, 1203, 6]"] 345["Sweep Revolve<br>[1184, 1203, 7]"]
346[Wall] 346[Wall]
347[Wall] 347[Wall]
348[Wall] 348[Wall]
@ -444,8 +444,8 @@ flowchart LR
361["SweepEdge Adjacent"] 361["SweepEdge Adjacent"]
362["SweepEdge Adjacent"] 362["SweepEdge Adjacent"]
363["SweepEdge Adjacent"] 363["SweepEdge Adjacent"]
364["Plane<br>[486, 505, 5]"] 364["Plane<br>[486, 505, 6]"]
384["Sweep Revolve<br>[2247, 2299, 5]"] 384["Sweep Revolve<br>[2247, 2299, 6]"]
385[Wall] 385[Wall]
386[Wall] 386[Wall]
387[Wall] 387[Wall]
@ -499,8 +499,8 @@ flowchart LR
435["SweepEdge Adjacent"] 435["SweepEdge Adjacent"]
436["SweepEdge Opposite"] 436["SweepEdge Opposite"]
437["SweepEdge Adjacent"] 437["SweepEdge Adjacent"]
438["Plane<br>[462, 481, 7]"] 438["Plane<br>[462, 481, 8]"]
455["Sweep Revolve<br>[1462, 1493, 7]"] 455["Sweep Revolve<br>[1462, 1493, 8]"]
456[Wall] 456[Wall]
457[Wall] 457[Wall]
458[Wall] 458[Wall]
@ -529,17 +529,17 @@ flowchart LR
481["SweepEdge Adjacent"] 481["SweepEdge Adjacent"]
482["SweepEdge Adjacent"] 482["SweepEdge Adjacent"]
483["SweepEdge Adjacent"] 483["SweepEdge Adjacent"]
484["StartSketchOnFace<br>[795, 822, 4]"] 484["StartSketchOnFace<br>[795, 822, 5]"]
485["StartSketchOnFace<br>[993, 1024, 4]"] 485["StartSketchOnFace<br>[993, 1024, 5]"]
486["StartSketchOnFace<br>[1451, 1480, 4]"] 486["StartSketchOnFace<br>[1451, 1480, 5]"]
487["StartSketchOnFace<br>[1590, 1624, 4]"] 487["StartSketchOnFace<br>[1590, 1624, 5]"]
488["StartSketchOnFace<br>[1796, 1829, 4]"] 488["StartSketchOnFace<br>[1796, 1829, 5]"]
489["StartSketchOnFace<br>[2116, 2145, 4]"] 489["StartSketchOnFace<br>[2116, 2145, 5]"]
490["StartSketchOnFace<br>[2465, 2494, 4]"] 490["StartSketchOnFace<br>[2465, 2494, 5]"]
491["StartSketchOnFace<br>[2947, 2980, 4]"] 491["StartSketchOnFace<br>[2947, 2980, 5]"]
492["StartSketchOnFace<br>[649, 678, 3]"] 492["StartSketchOnFace<br>[649, 678, 4]"]
493["StartSketchOnFace<br>[953, 987, 3]"] 493["StartSketchOnFace<br>[953, 987, 4]"]
494["StartSketchOnFace<br>[1310, 1339, 3]"] 494["StartSketchOnFace<br>[1310, 1339, 4]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 ---- 5 2 ---- 5

View File

@ -18,6 +18,66 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 6.0,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -74,6 +134,66 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 3.0,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -130,6 +250,66 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -2.25,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.315,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -215,6 +395,78 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Face",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.25,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -265,6 +517,66 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 6.0,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -321,6 +633,66 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -2.25,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.315,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -406,6 +778,66 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 5.5,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.25,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -700,6 +1132,126 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 3.0,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.5,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -776,6 +1328,126 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 3.0,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.5,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -852,6 +1524,60 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 2.25,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.6,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -931,6 +1657,60 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 2.25,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.31496062992125984,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -1068,7 +1848,7 @@ description: Operations executed car-wheel-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
2752, 2752,
4324, 4324,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1455,7 +2235,7 @@ description: Operations executed car-wheel-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
2752, 2752,
4324, 4324,
3 4
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1880,7 +2660,7 @@ description: Operations executed car-wheel-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
666, 666,
1293, 1293,
6 7
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},

View File

@ -5,7 +5,7 @@ description: Variables in memory after executing car-wheel-assembly.kcl
{ {
"brakeCaliper": { "brakeCaliper": {
"type": "Module", "type": "Module",
"value": 5 "value": 6
}, },
"c1": { "c1": {
"type": "TagIdentifier", "type": "TagIdentifier",
@ -14,15 +14,15 @@ description: Variables in memory after executing car-wheel-assembly.kcl
}, },
"carRotor": { "carRotor": {
"type": "Module", "type": "Module",
"value": 4 "value": 5
}, },
"carTire": { "carTire": {
"type": "Module", "type": "Module",
"value": 7 "value": 8
}, },
"carWheel": { "carWheel": {
"type": "Module", "type": "Module",
"value": 3 "value": 4
}, },
"lugCount": { "lugCount": {
"type": "Number", "type": "Number",
@ -39,6 +39,6 @@ description: Variables in memory after executing car-wheel-assembly.kcl
}, },
"lugNut": { "lugNut": {
"type": "Module", "type": "Module",
"value": 6 "value": 7
} }
} }

View File

@ -132,6 +132,66 @@ description: Operations executed cycloidal-gear.kcl
{ {
"type": "UserDefinedFunctionReturn" "type": "UserDefinedFunctionReturn"
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.1485,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -272,6 +332,66 @@ description: Operations executed cycloidal-gear.kcl
{ {
"type": "UserDefinedFunctionReturn" "type": "UserDefinedFunctionReturn"
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.1485,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -418,6 +538,66 @@ description: Operations executed cycloidal-gear.kcl
{ {
"type": "UserDefinedFunctionReturn" "type": "UserDefinedFunctionReturn"
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.1485,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,60 @@ description: Operations executed flange.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 1.75,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.3125,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"data": { "data": {
@ -33,6 +87,66 @@ description: Operations executed flange.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.3125,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -138,6 +252,66 @@ description: Operations executed flange.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.1565,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -194,6 +368,66 @@ description: Operations executed flange.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.25,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -250,6 +484,66 @@ description: Operations executed flange.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.625,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -488,6 +488,54 @@ description: Operations executed focusrite-scarlett-mounting-bracket.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 82.0,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 27.333333333333332,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.5,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -874,6 +922,54 @@ description: Operations executed focusrite-scarlett-mounting-bracket.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -82.0,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 27.333333333333332,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.5,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

View File

@ -480,6 +480,66 @@ description: Operations executed french-press.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.055,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -706,6 +766,132 @@ description: Operations executed french-press.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.965,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.15,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -788,6 +974,72 @@ description: Operations executed french-press.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 1.4,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.3,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -891,6 +1143,72 @@ description: Operations executed french-press.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.6,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.2,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -961,6 +1279,66 @@ description: Operations executed french-press.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.205,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -4623,6 +4623,66 @@ description: Operations executed gear.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 4.933386259126019,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -1065,6 +1065,54 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 8.0,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": 8.0,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 3.25,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"type": "UserDefinedFunctionCall", "type": "UserDefinedFunctionCall",
"name": "magnetBase", "name": "magnetBase",

View File

@ -657,6 +657,66 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -8.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 8.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 3.25,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -657,6 +657,66 @@ description: Operations executed gridfinity-bins.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -8.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 8.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 3.25,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -30,6 +30,66 @@ description: Operations executed hex-nut.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.15625,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

View File

@ -133,6 +133,294 @@ description: Operations executed keyboard.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Face",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.75,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.75,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.4,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Face",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 4.4,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.75,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.4,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Face",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.73,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 12.85,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.4,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Face",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 4.4,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 12.85,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.4,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -124,6 +124,54 @@ description: Operations executed lego.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -16.0,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": -36.0,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.4,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -479,6 +527,54 @@ description: Operations executed lego.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -12.0,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": -32.0,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.4,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -34,30 +34,58 @@ description: Operations executed mounting-plate.kcl
"type": "UserDefinedFunctionReturn" "type": "UserDefinedFunctionReturn"
}, },
{ {
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": { "labeledArgs": {
"holeSketch": { "center": {
"value": { "value": {
"type": "Sketch", "type": "Array",
"value": { "value": [
"artifactId": "[uuid]" {
"type": "Number",
"value": -2.25,
"ty": {
"type": "Unknown"
} }
}, },
{
"type": "Number",
"value": 4.25,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": [] "sourceRange": []
}, },
"sketch": { "radius": {
"value": { "value": {
"type": "Sketch", "type": "Number",
"value": { "value": 0.25,
"artifactId": "[uuid]" "ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
} }
}, },
"sourceRange": [] "sourceRange": []
} }
}, },
"name": "hole", "sourceRange": []
"sourceRange": [], },
"type": "StdLibCall", {
"unlabeledArg": null "type": "UserDefinedFunctionReturn"
}, },
{ {
"labeledArgs": { "labeledArgs": {
@ -86,30 +114,58 @@ description: Operations executed mounting-plate.kcl
"unlabeledArg": null "unlabeledArg": null
}, },
{ {
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": { "labeledArgs": {
"holeSketch": { "center": {
"value": { "value": {
"type": "Sketch", "type": "Array",
"value": { "value": [
"artifactId": "[uuid]" {
"type": "Number",
"value": 2.25,
"ty": {
"type": "Unknown"
} }
}, },
{
"type": "Number",
"value": 4.25,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": [] "sourceRange": []
}, },
"sketch": { "radius": {
"value": { "value": {
"type": "Sketch", "type": "Number",
"value": { "value": 0.25,
"artifactId": "[uuid]" "ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
} }
}, },
"sourceRange": [] "sourceRange": []
} }
}, },
"name": "hole", "sourceRange": []
"sourceRange": [], },
"type": "StdLibCall", {
"unlabeledArg": null "type": "UserDefinedFunctionReturn"
}, },
{ {
"labeledArgs": { "labeledArgs": {
@ -137,6 +193,232 @@ description: Operations executed mounting-plate.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -2.25,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": -4.25,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.25,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"holeSketch": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
},
"sketch": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
}
},
"name": "hole",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 2.25,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": -4.25,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.25,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"holeSketch": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
},
"sketch": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
}
},
"name": "hole",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

View File

@ -1,162 +1,162 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[228, 283, 3]"] 2["Path<br>[228, 283, 4]"]
3["Segment<br>[289, 351, 3]"] 3["Segment<br>[289, 351, 4]"]
4["Segment<br>[357, 472, 3]"] 4["Segment<br>[357, 472, 4]"]
5["Segment<br>[478, 598, 3]"] 5["Segment<br>[478, 598, 4]"]
6["Segment<br>[604, 689, 3]"] 6["Segment<br>[604, 689, 4]"]
7["Segment<br>[695, 702, 3]"] 7["Segment<br>[695, 702, 4]"]
8[Solid2d] 8[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[1137, 1194, 3]"] 28["Path<br>[1137, 1194, 4]"]
29["Segment<br>[1137, 1194, 3]"] 29["Segment<br>[1137, 1194, 4]"]
30[Solid2d] 30[Solid2d]
end end
subgraph path36 [Path] subgraph path36 [Path]
36["Path<br>[1413, 1450, 3]"] 36["Path<br>[1413, 1450, 4]"]
37["Segment<br>[1413, 1450, 3]"] 37["Segment<br>[1413, 1450, 4]"]
38[Solid2d] 38[Solid2d]
end end
subgraph path44 [Path] subgraph path44 [Path]
44["Path<br>[1582, 1721, 3]"] 44["Path<br>[1582, 1721, 4]"]
45["Segment<br>[1582, 1721, 3]"] 45["Segment<br>[1582, 1721, 4]"]
46[Solid2d] 46[Solid2d]
end end
subgraph path54 [Path] subgraph path54 [Path]
54["Path<br>[1966, 2105, 3]"] 54["Path<br>[1966, 2105, 4]"]
55["Segment<br>[1966, 2105, 3]"] 55["Segment<br>[1966, 2105, 4]"]
56[Solid2d] 56[Solid2d]
end end
subgraph path65 [Path] subgraph path65 [Path]
65["Path<br>[205, 265, 4]"] 65["Path<br>[205, 265, 5]"]
66["Segment<br>[205, 265, 4]"] 66["Segment<br>[205, 265, 5]"]
67[Solid2d] 67[Solid2d]
end end
subgraph path75 [Path] subgraph path75 [Path]
75["Path<br>[516, 552, 4]"] 75["Path<br>[516, 552, 5]"]
76["Segment<br>[558, 602, 4]"] 76["Segment<br>[558, 602, 5]"]
77["Segment<br>[608, 696, 4]"] 77["Segment<br>[608, 696, 5]"]
78["Segment<br>[702, 751, 4]"] 78["Segment<br>[702, 751, 5]"]
79["Segment<br>[757, 813, 4]"] 79["Segment<br>[757, 813, 5]"]
80["Segment<br>[819, 826, 4]"] 80["Segment<br>[819, 826, 5]"]
81[Solid2d] 81[Solid2d]
end end
subgraph path97 [Path] subgraph path97 [Path]
97["Path<br>[923, 1091, 4]"] 97["Path<br>[923, 1091, 5]"]
98["Segment<br>[923, 1091, 4]"] 98["Segment<br>[923, 1091, 5]"]
99[Solid2d] 99[Solid2d]
end end
subgraph path105 [Path] subgraph path105 [Path]
105["Path<br>[1316, 1462, 4]"] 105["Path<br>[1316, 1462, 5]"]
106["Segment<br>[1316, 1462, 4]"] 106["Segment<br>[1316, 1462, 5]"]
107[Solid2d] 107[Solid2d]
end end
subgraph path116 [Path] subgraph path116 [Path]
116["Path<br>[1778, 1943, 4]"] 116["Path<br>[1778, 1943, 5]"]
117["Segment<br>[1778, 1943, 4]"] 117["Segment<br>[1778, 1943, 5]"]
118[Solid2d] 118[Solid2d]
end end
subgraph path125 [Path] subgraph path125 [Path]
125["Path<br>[2189, 2229, 4]"] 125["Path<br>[2189, 2229, 5]"]
126["Segment<br>[2189, 2229, 4]"] 126["Segment<br>[2189, 2229, 5]"]
127[Solid2d] 127[Solid2d]
end end
subgraph path137 [Path] subgraph path137 [Path]
137["Path<br>[253, 396, 5]"] 137["Path<br>[253, 396, 6]"]
138["Segment<br>[402, 518, 5]"] 138["Segment<br>[402, 518, 6]"]
139["Segment<br>[524, 602, 5]"] 139["Segment<br>[524, 602, 6]"]
140["Segment<br>[608, 724, 5]"] 140["Segment<br>[608, 724, 6]"]
141["Segment<br>[730, 786, 5]"] 141["Segment<br>[730, 786, 6]"]
142["Segment<br>[792, 799, 5]"] 142["Segment<br>[792, 799, 6]"]
143[Solid2d] 143[Solid2d]
end end
subgraph path159 [Path] subgraph path159 [Path]
159["Path<br>[915, 979, 5]"] 159["Path<br>[915, 979, 6]"]
160["Segment<br>[915, 979, 5]"] 160["Segment<br>[915, 979, 6]"]
161[Solid2d] 161[Solid2d]
end end
subgraph path167 [Path] subgraph path167 [Path]
167["Path<br>[1169, 1364, 5]"] 167["Path<br>[1169, 1364, 6]"]
168["Segment<br>[1169, 1364, 5]"] 168["Segment<br>[1169, 1364, 6]"]
169[Solid2d] 169[Solid2d]
end end
subgraph path175 [Path] subgraph path175 [Path]
175["Path<br>[1588, 1632, 5]"] 175["Path<br>[1588, 1632, 6]"]
176["Segment<br>[1588, 1632, 5]"] 176["Segment<br>[1588, 1632, 6]"]
177[Solid2d] 177[Solid2d]
end end
subgraph path190 [Path] subgraph path190 [Path]
190["Path<br>[1869, 2060, 5]"] 190["Path<br>[1869, 2060, 6]"]
191["Segment<br>[1869, 2060, 5]"] 191["Segment<br>[1869, 2060, 6]"]
192[Solid2d] 192[Solid2d]
end end
subgraph path201 [Path] subgraph path201 [Path]
201["Path<br>[2412, 2586, 5]"] 201["Path<br>[2412, 2586, 6]"]
202["Segment<br>[2412, 2586, 5]"] 202["Segment<br>[2412, 2586, 6]"]
203[Solid2d] 203[Solid2d]
end end
subgraph path210 [Path] subgraph path210 [Path]
210["Path<br>[273, 506, 6]"] 210["Path<br>[273, 506, 7]"]
211["Segment<br>[512, 631, 6]"] 211["Segment<br>[512, 631, 7]"]
212["Segment<br>[637, 717, 6]"] 212["Segment<br>[637, 717, 7]"]
213["Segment<br>[723, 842, 6]"] 213["Segment<br>[723, 842, 7]"]
214["Segment<br>[848, 918, 6]"] 214["Segment<br>[848, 918, 7]"]
215["Segment<br>[924, 931, 6]"] 215["Segment<br>[924, 931, 7]"]
216[Solid2d] 216[Solid2d]
end end
subgraph path232 [Path] subgraph path232 [Path]
232["Path<br>[1045, 1245, 6]"] 232["Path<br>[1045, 1245, 7]"]
233["Segment<br>[1045, 1245, 6]"] 233["Segment<br>[1045, 1245, 7]"]
234[Solid2d] 234[Solid2d]
end end
subgraph path240 [Path] subgraph path240 [Path]
240["Path<br>[1471, 1659, 6]"] 240["Path<br>[1471, 1659, 7]"]
241["Segment<br>[1471, 1659, 6]"] 241["Segment<br>[1471, 1659, 7]"]
242[Solid2d] 242[Solid2d]
end end
subgraph path255 [Path] subgraph path255 [Path]
255["Path<br>[2079, 2364, 6]"] 255["Path<br>[2079, 2364, 7]"]
256["Segment<br>[2079, 2364, 6]"] 256["Segment<br>[2079, 2364, 7]"]
257[Solid2d] 257[Solid2d]
end end
subgraph path264 [Path] subgraph path264 [Path]
264["Path<br>[2463, 2746, 6]"] 264["Path<br>[2463, 2746, 7]"]
265["Segment<br>[2463, 2746, 6]"] 265["Segment<br>[2463, 2746, 7]"]
266[Solid2d] 266[Solid2d]
end end
subgraph path273 [Path] subgraph path273 [Path]
273["Path<br>[2900, 2938, 6]"] 273["Path<br>[2900, 2938, 7]"]
274["Segment<br>[2900, 2938, 6]"] 274["Segment<br>[2900, 2938, 7]"]
275[Solid2d] 275[Solid2d]
end end
subgraph path282 [Path] subgraph path282 [Path]
282["Path<br>[3068, 3293, 6]"] 282["Path<br>[3068, 3293, 7]"]
283["Segment<br>[3299, 3393, 6]"] 283["Segment<br>[3299, 3393, 7]"]
284["Segment<br>[3399, 3542, 6]"] 284["Segment<br>[3399, 3542, 7]"]
285["Segment<br>[3548, 3642, 6]"] 285["Segment<br>[3548, 3642, 7]"]
286["Segment<br>[3648, 3750, 6]"] 286["Segment<br>[3648, 3750, 7]"]
287["Segment<br>[3756, 3858, 6]"] 287["Segment<br>[3756, 3858, 7]"]
288["Segment<br>[3864, 3964, 6]"] 288["Segment<br>[3864, 3964, 7]"]
289["Segment<br>[3970, 4026, 6]"] 289["Segment<br>[3970, 4026, 7]"]
290["Segment<br>[4032, 4039, 6]"] 290["Segment<br>[4032, 4039, 7]"]
291[Solid2d] 291[Solid2d]
end end
subgraph path316 [Path] subgraph path316 [Path]
316["Path<br>[4168, 4393, 6]"] 316["Path<br>[4168, 4393, 7]"]
317["Segment<br>[4399, 4495, 6]"] 317["Segment<br>[4399, 4495, 7]"]
318["Segment<br>[4501, 4649, 6]"] 318["Segment<br>[4501, 4649, 7]"]
319["Segment<br>[4655, 4751, 6]"] 319["Segment<br>[4655, 4751, 7]"]
320["Segment<br>[4757, 4861, 6]"] 320["Segment<br>[4757, 4861, 7]"]
321["Segment<br>[4867, 4971, 6]"] 321["Segment<br>[4867, 4971, 7]"]
322["Segment<br>[4977, 5079, 6]"] 322["Segment<br>[4977, 5079, 7]"]
323["Segment<br>[5085, 5141, 6]"] 323["Segment<br>[5085, 5141, 7]"]
324["Segment<br>[5147, 5154, 6]"] 324["Segment<br>[5147, 5154, 7]"]
325[Solid2d] 325[Solid2d]
end end
1["Plane<br>[203, 222, 3]"] 1["Plane<br>[203, 222, 4]"]
9["Sweep Extrusion<br>[716, 763, 3]"] 9["Sweep Extrusion<br>[716, 763, 4]"]
10[Wall] 10[Wall]
11[Wall] 11[Wall]
12[Wall] 12[Wall]
@ -171,43 +171,43 @@ flowchart LR
21["SweepEdge Adjacent"] 21["SweepEdge Adjacent"]
22["SweepEdge Opposite"] 22["SweepEdge Opposite"]
23["SweepEdge Adjacent"] 23["SweepEdge Adjacent"]
24["EdgeCut Chamfer<br>[769, 1045, 3]"] 24["EdgeCut Chamfer<br>[769, 1045, 4]"]
25["EdgeCut Chamfer<br>[769, 1045, 3]"] 25["EdgeCut Chamfer<br>[769, 1045, 4]"]
26["EdgeCut Chamfer<br>[769, 1045, 3]"] 26["EdgeCut Chamfer<br>[769, 1045, 4]"]
27["EdgeCut Chamfer<br>[769, 1045, 3]"] 27["EdgeCut Chamfer<br>[769, 1045, 4]"]
31["Sweep Extrusion<br>[1208, 1274, 3]"] 31["Sweep Extrusion<br>[1208, 1274, 4]"]
32[Wall] 32[Wall]
33["Cap End"] 33["Cap End"]
34["SweepEdge Opposite"] 34["SweepEdge Opposite"]
35["SweepEdge Adjacent"] 35["SweepEdge Adjacent"]
39["Sweep Extrusion<br>[1464, 1494, 3]"] 39["Sweep Extrusion<br>[1464, 1494, 4]"]
40[Wall] 40[Wall]
41["Cap End"] 41["Cap End"]
42["SweepEdge Opposite"] 42["SweepEdge Opposite"]
43["SweepEdge Adjacent"] 43["SweepEdge Adjacent"]
47["Sweep Extrusion<br>[1868, 1915, 3]"] 47["Sweep Extrusion<br>[1868, 1915, 4]"]
48[Wall] 48[Wall]
49["SweepEdge Opposite"] 49["SweepEdge Opposite"]
50["SweepEdge Adjacent"] 50["SweepEdge Adjacent"]
51["Sweep Extrusion<br>[1868, 1915, 3]"] 51["Sweep Extrusion<br>[1868, 1915, 4]"]
52["Sweep Extrusion<br>[1868, 1915, 3]"] 52["Sweep Extrusion<br>[1868, 1915, 4]"]
53["Sweep Extrusion<br>[1868, 1915, 3]"] 53["Sweep Extrusion<br>[1868, 1915, 4]"]
57["Sweep Extrusion<br>[2240, 2287, 3]"] 57["Sweep Extrusion<br>[2240, 2287, 4]"]
58[Wall] 58[Wall]
59["SweepEdge Opposite"] 59["SweepEdge Opposite"]
60["SweepEdge Adjacent"] 60["SweepEdge Adjacent"]
61["Sweep Extrusion<br>[2240, 2287, 3]"] 61["Sweep Extrusion<br>[2240, 2287, 4]"]
62["Sweep Extrusion<br>[2240, 2287, 3]"] 62["Sweep Extrusion<br>[2240, 2287, 4]"]
63["Sweep Extrusion<br>[2240, 2287, 3]"] 63["Sweep Extrusion<br>[2240, 2287, 4]"]
64["Plane<br>[176, 199, 4]"] 64["Plane<br>[176, 199, 5]"]
68["Sweep Extrusion<br>[279, 317, 4]"] 68["Sweep Extrusion<br>[279, 317, 5]"]
69[Wall] 69[Wall]
70["Cap Start"] 70["Cap Start"]
71["Cap End"] 71["Cap End"]
72["SweepEdge Opposite"] 72["SweepEdge Opposite"]
73["SweepEdge Adjacent"] 73["SweepEdge Adjacent"]
74["Plane<br>[487, 510, 4]"] 74["Plane<br>[487, 510, 5]"]
82["Sweep Extrusion<br>[841, 871, 4]"] 82["Sweep Extrusion<br>[841, 871, 5]"]
83[Wall] 83[Wall]
84[Wall] 84[Wall]
85[Wall] 85[Wall]
@ -222,35 +222,35 @@ flowchart LR
94["SweepEdge Adjacent"] 94["SweepEdge Adjacent"]
95["SweepEdge Opposite"] 95["SweepEdge Opposite"]
96["SweepEdge Adjacent"] 96["SweepEdge Adjacent"]
100["Sweep Extrusion<br>[1105, 1137, 4]"] 100["Sweep Extrusion<br>[1105, 1137, 5]"]
101[Wall] 101[Wall]
102["Cap End"] 102["Cap End"]
103["SweepEdge Opposite"] 103["SweepEdge Opposite"]
104["SweepEdge Adjacent"] 104["SweepEdge Adjacent"]
108["Sweep Extrusion<br>[1694, 1726, 4]"] 108["Sweep Extrusion<br>[1694, 1726, 5]"]
109[Wall] 109[Wall]
110["Cap End"] 110["Cap End"]
111["SweepEdge Opposite"] 111["SweepEdge Opposite"]
112["SweepEdge Adjacent"] 112["SweepEdge Adjacent"]
113["Sweep Extrusion<br>[1694, 1726, 4]"] 113["Sweep Extrusion<br>[1694, 1726, 5]"]
114["Sweep Extrusion<br>[1694, 1726, 4]"] 114["Sweep Extrusion<br>[1694, 1726, 5]"]
115["Sweep Extrusion<br>[1694, 1726, 4]"] 115["Sweep Extrusion<br>[1694, 1726, 5]"]
119["Sweep Extrusion<br>[1957, 1990, 4]"] 119["Sweep Extrusion<br>[1957, 1990, 5]"]
120[Wall] 120[Wall]
121["Cap End"] 121["Cap End"]
122["SweepEdge Opposite"] 122["SweepEdge Opposite"]
123["SweepEdge Adjacent"] 123["SweepEdge Adjacent"]
124["Plane<br>[2160, 2183, 4]"] 124["Plane<br>[2160, 2183, 5]"]
128["Sweep Extrusion<br>[2231, 2262, 4]"] 128["Sweep Extrusion<br>[2231, 2262, 5]"]
129[Wall] 129[Wall]
130["Cap Start"] 130["Cap Start"]
131["Cap End"] 131["Cap End"]
132["SweepEdge Opposite"] 132["SweepEdge Opposite"]
133["SweepEdge Adjacent"] 133["SweepEdge Adjacent"]
134["EdgeCut Fillet<br>[323, 406, 4]"] 134["EdgeCut Fillet<br>[323, 406, 5]"]
135["EdgeCut Fillet<br>[1996, 2079, 4]"] 135["EdgeCut Fillet<br>[1996, 2079, 5]"]
136["Plane<br>[224, 247, 5]"] 136["Plane<br>[224, 247, 6]"]
144["Sweep Extrusion<br>[813, 861, 5]"] 144["Sweep Extrusion<br>[813, 861, 6]"]
145[Wall] 145[Wall]
146[Wall] 146[Wall]
147[Wall] 147[Wall]
@ -265,43 +265,43 @@ flowchart LR
156["SweepEdge Adjacent"] 156["SweepEdge Adjacent"]
157["SweepEdge Opposite"] 157["SweepEdge Opposite"]
158["SweepEdge Adjacent"] 158["SweepEdge Adjacent"]
162["Sweep Extrusion<br>[994, 1027, 5]"] 162["Sweep Extrusion<br>[994, 1027, 6]"]
163[Wall] 163[Wall]
164["Cap End"] 164["Cap End"]
165["SweepEdge Opposite"] 165["SweepEdge Opposite"]
166["SweepEdge Adjacent"] 166["SweepEdge Adjacent"]
170["Sweep Extrusion<br>[1379, 1409, 5]"] 170["Sweep Extrusion<br>[1379, 1409, 6]"]
171[Wall] 171[Wall]
172["Cap End"] 172["Cap End"]
173["SweepEdge Opposite"] 173["SweepEdge Opposite"]
174["SweepEdge Adjacent"] 174["SweepEdge Adjacent"]
178["Sweep Extrusion<br>[1784, 1817, 5]"] 178["Sweep Extrusion<br>[1784, 1817, 6]"]
179[Wall] 179[Wall]
180["Cap End"] 180["Cap End"]
181["SweepEdge Opposite"] 181["SweepEdge Opposite"]
182["SweepEdge Adjacent"] 182["SweepEdge Adjacent"]
183["Sweep Extrusion<br>[1784, 1817, 5]"] 183["Sweep Extrusion<br>[1784, 1817, 6]"]
184["Sweep Extrusion<br>[1784, 1817, 5]"] 184["Sweep Extrusion<br>[1784, 1817, 6]"]
185["Sweep Extrusion<br>[1784, 1817, 5]"] 185["Sweep Extrusion<br>[1784, 1817, 6]"]
186["Sweep Extrusion<br>[1784, 1817, 5]"] 186["Sweep Extrusion<br>[1784, 1817, 6]"]
187["Sweep Extrusion<br>[1784, 1817, 5]"] 187["Sweep Extrusion<br>[1784, 1817, 6]"]
188["Sweep Extrusion<br>[1784, 1817, 5]"] 188["Sweep Extrusion<br>[1784, 1817, 6]"]
189["Sweep Extrusion<br>[1784, 1817, 5]"] 189["Sweep Extrusion<br>[1784, 1817, 6]"]
193["Sweep Extrusion<br>[2327, 2360, 5]"] 193["Sweep Extrusion<br>[2327, 2360, 6]"]
194[Wall] 194[Wall]
195["Cap End"] 195["Cap End"]
196["SweepEdge Opposite"] 196["SweepEdge Opposite"]
197["SweepEdge Adjacent"] 197["SweepEdge Adjacent"]
198["Sweep Extrusion<br>[2327, 2360, 5]"] 198["Sweep Extrusion<br>[2327, 2360, 6]"]
199["Sweep Extrusion<br>[2327, 2360, 5]"] 199["Sweep Extrusion<br>[2327, 2360, 6]"]
200["Sweep Extrusion<br>[2327, 2360, 5]"] 200["Sweep Extrusion<br>[2327, 2360, 6]"]
204["Sweep Extrusion<br>[2588, 2618, 5]"] 204["Sweep Extrusion<br>[2588, 2618, 6]"]
205[Wall] 205[Wall]
206["Cap End"] 206["Cap End"]
207["SweepEdge Opposite"] 207["SweepEdge Opposite"]
208["SweepEdge Adjacent"] 208["SweepEdge Adjacent"]
209["Plane<br>[244, 267, 6]"] 209["Plane<br>[244, 267, 7]"]
217["Sweep Extrusion<br>[945, 993, 6]"] 217["Sweep Extrusion<br>[945, 993, 7]"]
218[Wall] 218[Wall]
219[Wall] 219[Wall]
220[Wall] 220[Wall]
@ -316,42 +316,42 @@ flowchart LR
229["SweepEdge Adjacent"] 229["SweepEdge Adjacent"]
230["SweepEdge Opposite"] 230["SweepEdge Opposite"]
231["SweepEdge Adjacent"] 231["SweepEdge Adjacent"]
235["Sweep Extrusion<br>[1260, 1293, 6]"] 235["Sweep Extrusion<br>[1260, 1293, 7]"]
236[Wall] 236[Wall]
237["Cap End"] 237["Cap End"]
238["SweepEdge Opposite"] 238["SweepEdge Opposite"]
239["SweepEdge Adjacent"] 239["SweepEdge Adjacent"]
243["Sweep Extrusion<br>[1923, 1956, 6]"] 243["Sweep Extrusion<br>[1923, 1956, 7]"]
244[Wall] 244[Wall]
245["Cap End"] 245["Cap End"]
246["SweepEdge Opposite"] 246["SweepEdge Opposite"]
247["SweepEdge Adjacent"] 247["SweepEdge Adjacent"]
248["Sweep Extrusion<br>[1923, 1956, 6]"] 248["Sweep Extrusion<br>[1923, 1956, 7]"]
249["Sweep Extrusion<br>[1923, 1956, 6]"] 249["Sweep Extrusion<br>[1923, 1956, 7]"]
250["Sweep Extrusion<br>[1923, 1956, 6]"] 250["Sweep Extrusion<br>[1923, 1956, 7]"]
251["Sweep Extrusion<br>[1923, 1956, 6]"] 251["Sweep Extrusion<br>[1923, 1956, 7]"]
252["Sweep Extrusion<br>[1923, 1956, 6]"] 252["Sweep Extrusion<br>[1923, 1956, 7]"]
253["Sweep Extrusion<br>[1923, 1956, 6]"] 253["Sweep Extrusion<br>[1923, 1956, 7]"]
254["Sweep Extrusion<br>[1923, 1956, 6]"] 254["Sweep Extrusion<br>[1923, 1956, 7]"]
258["Sweep Extrusion<br>[2378, 2411, 6]"] 258["Sweep Extrusion<br>[2378, 2411, 7]"]
259[Wall] 259[Wall]
260["Cap Start"] 260["Cap Start"]
261["Cap End"] 261["Cap End"]
262["SweepEdge Opposite"] 262["SweepEdge Opposite"]
263["SweepEdge Adjacent"] 263["SweepEdge Adjacent"]
267["Sweep Extrusion<br>[2761, 2794, 6]"] 267["Sweep Extrusion<br>[2761, 2794, 7]"]
268[Wall] 268[Wall]
269["Cap Start"] 269["Cap Start"]
270["Cap End"] 270["Cap End"]
271["SweepEdge Opposite"] 271["SweepEdge Opposite"]
272["SweepEdge Adjacent"] 272["SweepEdge Adjacent"]
276["Sweep Extrusion<br>[2953, 2987, 6]"] 276["Sweep Extrusion<br>[2953, 2987, 7]"]
277[Wall] 277[Wall]
278["Cap Start"] 278["Cap Start"]
279["Cap End"] 279["Cap End"]
280["SweepEdge Opposite"] 280["SweepEdge Opposite"]
281["SweepEdge Adjacent"] 281["SweepEdge Adjacent"]
292["Sweep Extrusion<br>[4054, 4087, 6]"] 292["Sweep Extrusion<br>[4054, 4087, 7]"]
293[Wall] 293[Wall]
294[Wall] 294[Wall]
295[Wall] 295[Wall]
@ -375,7 +375,7 @@ flowchart LR
313["SweepEdge Adjacent"] 313["SweepEdge Adjacent"]
314["SweepEdge Opposite"] 314["SweepEdge Opposite"]
315["SweepEdge Adjacent"] 315["SweepEdge Adjacent"]
326["Sweep Extrusion<br>[5156, 5189, 6]"] 326["Sweep Extrusion<br>[5156, 5189, 7]"]
327[Wall] 327[Wall]
328[Wall] 328[Wall]
329[Wall] 329[Wall]
@ -399,25 +399,25 @@ flowchart LR
347["SweepEdge Adjacent"] 347["SweepEdge Adjacent"]
348["SweepEdge Opposite"] 348["SweepEdge Opposite"]
349["SweepEdge Adjacent"] 349["SweepEdge Adjacent"]
350["StartSketchOnFace<br>[1099, 1131, 3]"] 350["StartSketchOnFace<br>[1099, 1131, 4]"]
351["StartSketchOnFace<br>[1375, 1407, 3]"] 351["StartSketchOnFace<br>[1375, 1407, 4]"]
352["StartSketchOnFace<br>[1544, 1576, 3]"] 352["StartSketchOnFace<br>[1544, 1576, 4]"]
353["StartSketchOnFace<br>[1928, 1960, 3]"] 353["StartSketchOnFace<br>[1928, 1960, 4]"]
354["StartSketchOnFace<br>[885, 917, 4]"] 354["StartSketchOnFace<br>[885, 917, 5]"]
355["StartSketchOnFace<br>[1278, 1310, 4]"] 355["StartSketchOnFace<br>[1278, 1310, 5]"]
356["StartSketchOnFace<br>[1740, 1772, 4]"] 356["StartSketchOnFace<br>[1740, 1772, 5]"]
357["StartSketchOnFace<br>[875, 909, 5]"] 357["StartSketchOnFace<br>[875, 909, 6]"]
358["StartSketchOnFace<br>[1129, 1163, 5]"] 358["StartSketchOnFace<br>[1129, 1163, 6]"]
359["StartSketchOnFace<br>[1550, 1582, 5]"] 359["StartSketchOnFace<br>[1550, 1582, 6]"]
360["StartSketchOnFace<br>[1831, 1863, 5]"] 360["StartSketchOnFace<br>[1831, 1863, 6]"]
361["StartSketchOnFace<br>[2374, 2406, 5]"] 361["StartSketchOnFace<br>[2374, 2406, 6]"]
362["StartSketchOnFace<br>[1007, 1039, 6]"] 362["StartSketchOnFace<br>[1007, 1039, 7]"]
363["StartSketchOnFace<br>[1433, 1465, 6]"] 363["StartSketchOnFace<br>[1433, 1465, 7]"]
364["StartSketchOnFace<br>[2039, 2073, 6]"] 364["StartSketchOnFace<br>[2039, 2073, 7]"]
365["StartSketchOnFace<br>[2425, 2457, 6]"] 365["StartSketchOnFace<br>[2425, 2457, 7]"]
366["StartSketchOnFace<br>[2860, 2894, 6]"] 366["StartSketchOnFace<br>[2860, 2894, 7]"]
367["StartSketchOnFace<br>[3028, 3062, 6]"] 367["StartSketchOnFace<br>[3028, 3062, 7]"]
368["StartSketchOnFace<br>[4128, 4162, 6]"] 368["StartSketchOnFace<br>[4128, 4162, 7]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

File diff suppressed because it is too large Load Diff

View File

@ -5,18 +5,18 @@ description: Variables in memory after executing multi-axis-robot.kcl
{ {
"j2RobotArm": { "j2RobotArm": {
"type": "Module", "type": "Module",
"value": 5 "value": 6
}, },
"j3RobotArm": { "j3RobotArm": {
"type": "Module", "type": "Module",
"value": 6 "value": 7
}, },
"robotArmBase": { "robotArmBase": {
"type": "Module", "type": "Module",
"value": 3 "value": 4
}, },
"rotatingBase": { "rotatingBase": {
"type": "Module", "type": "Module",
"value": 4 "value": 5
} }
} }

View File

@ -1,206 +1,206 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[466, 559, 4]"] 2["Path<br>[466, 559, 5]"]
3["Segment<br>[466, 559, 4]"] 3["Segment<br>[466, 559, 5]"]
4[Solid2d] 4[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[790, 845, 4]"] 6["Path<br>[790, 845, 5]"]
7["Segment<br>[790, 845, 4]"] 7["Segment<br>[790, 845, 5]"]
8[Solid2d] 8[Solid2d]
end end
subgraph path15 [Path] subgraph path15 [Path]
15["Path<br>[1060, 1119, 4]"] 15["Path<br>[1060, 1119, 5]"]
16["Segment<br>[1060, 1119, 4]"] 16["Segment<br>[1060, 1119, 5]"]
17[Solid2d] 17[Solid2d]
end end
subgraph path23 [Path] subgraph path23 [Path]
23["Path<br>[1221, 1281, 4]"] 23["Path<br>[1221, 1281, 5]"]
24["Segment<br>[1221, 1281, 4]"] 24["Segment<br>[1221, 1281, 5]"]
25[Solid2d] 25[Solid2d]
end end
subgraph path31 [Path] subgraph path31 [Path]
31["Path<br>[1438, 1491, 4]"] 31["Path<br>[1438, 1491, 5]"]
32["Segment<br>[1438, 1491, 4]"] 32["Segment<br>[1438, 1491, 5]"]
33[Solid2d] 33[Solid2d]
end end
subgraph path39 [Path] subgraph path39 [Path]
39["Path<br>[466, 559, 4]"] 39["Path<br>[466, 559, 5]"]
40["Segment<br>[466, 559, 4]"] 40["Segment<br>[466, 559, 5]"]
41[Solid2d] 41[Solid2d]
end end
subgraph path43 [Path] subgraph path43 [Path]
43["Path<br>[790, 845, 4]"] 43["Path<br>[790, 845, 5]"]
44["Segment<br>[790, 845, 4]"] 44["Segment<br>[790, 845, 5]"]
45[Solid2d] 45[Solid2d]
end end
subgraph path52 [Path] subgraph path52 [Path]
52["Path<br>[1060, 1119, 4]"] 52["Path<br>[1060, 1119, 5]"]
53["Segment<br>[1060, 1119, 4]"] 53["Segment<br>[1060, 1119, 5]"]
54[Solid2d] 54[Solid2d]
end end
subgraph path60 [Path] subgraph path60 [Path]
60["Path<br>[1221, 1281, 4]"] 60["Path<br>[1221, 1281, 5]"]
61["Segment<br>[1221, 1281, 4]"] 61["Segment<br>[1221, 1281, 5]"]
62[Solid2d] 62[Solid2d]
end end
subgraph path68 [Path] subgraph path68 [Path]
68["Path<br>[1438, 1491, 4]"] 68["Path<br>[1438, 1491, 5]"]
69["Segment<br>[1438, 1491, 4]"] 69["Segment<br>[1438, 1491, 5]"]
70[Solid2d] 70[Solid2d]
end end
subgraph path76 [Path] subgraph path76 [Path]
76["Path<br>[314, 376, 5]"] 76["Path<br>[314, 376, 6]"]
77["Segment<br>[314, 376, 5]"] 77["Segment<br>[314, 376, 6]"]
78[Solid2d] 78[Solid2d]
end end
subgraph path85 [Path] subgraph path85 [Path]
85["Path<br>[526, 586, 5]"] 85["Path<br>[526, 586, 6]"]
86["Segment<br>[526, 586, 5]"] 86["Segment<br>[526, 586, 6]"]
87[Solid2d] 87[Solid2d]
end end
subgraph path93 [Path] subgraph path93 [Path]
93["Path<br>[303, 355, 6]"] 93["Path<br>[303, 355, 7]"]
94["Segment<br>[303, 355, 6]"] 94["Segment<br>[303, 355, 7]"]
95[Solid2d] 95[Solid2d]
end end
subgraph path102 [Path] subgraph path102 [Path]
102["Path<br>[488, 540, 6]"] 102["Path<br>[488, 540, 7]"]
103["Segment<br>[488, 540, 6]"] 103["Segment<br>[488, 540, 7]"]
104[Solid2d] 104[Solid2d]
end end
subgraph path110 [Path] subgraph path110 [Path]
110["Path<br>[379, 449, 7]"] 110["Path<br>[379, 449, 8]"]
111["Segment<br>[379, 449, 7]"] 111["Segment<br>[379, 449, 8]"]
112[Solid2d] 112[Solid2d]
end end
subgraph path121 [Path] subgraph path121 [Path]
121["Path<br>[713, 800, 7]"] 121["Path<br>[713, 800, 8]"]
122["Segment<br>[808, 891, 7]"] 122["Segment<br>[808, 891, 8]"]
123["Segment<br>[899, 982, 7]"] 123["Segment<br>[899, 982, 8]"]
124["Segment<br>[990, 1073, 7]"] 124["Segment<br>[990, 1073, 8]"]
125["Segment<br>[1081, 1163, 7]"] 125["Segment<br>[1081, 1163, 8]"]
126["Segment<br>[1171, 1253, 7]"] 126["Segment<br>[1171, 1253, 8]"]
127["Segment<br>[1261, 1268, 7]"] 127["Segment<br>[1261, 1268, 8]"]
128[Solid2d] 128[Solid2d]
end end
subgraph path149 [Path] subgraph path149 [Path]
149["Path<br>[1402, 1471, 7]"] 149["Path<br>[1402, 1471, 8]"]
150["Segment<br>[1402, 1471, 7]"] 150["Segment<br>[1402, 1471, 8]"]
151[Solid2d] 151[Solid2d]
end end
subgraph path158 [Path] subgraph path158 [Path]
158["Path<br>[326, 416, 8]"] 158["Path<br>[326, 416, 9]"]
159["Segment<br>[424, 506, 8]"] 159["Segment<br>[424, 506, 9]"]
160["Segment<br>[514, 596, 8]"] 160["Segment<br>[514, 596, 9]"]
161["Segment<br>[604, 686, 8]"] 161["Segment<br>[604, 686, 9]"]
162["Segment<br>[694, 775, 8]"] 162["Segment<br>[694, 775, 9]"]
163["Segment<br>[783, 864, 8]"] 163["Segment<br>[783, 864, 9]"]
164["Segment<br>[872, 879, 8]"] 164["Segment<br>[872, 879, 9]"]
165[Solid2d] 165[Solid2d]
end end
subgraph path187 [Path] subgraph path187 [Path]
187["Path<br>[1023, 1075, 8]"] 187["Path<br>[1023, 1075, 9]"]
188["Segment<br>[1023, 1075, 8]"] 188["Segment<br>[1023, 1075, 9]"]
189[Solid2d] 189[Solid2d]
end end
subgraph path195 [Path] subgraph path195 [Path]
195["Path<br>[285, 343, 9]"] 195["Path<br>[285, 343, 10]"]
196["Segment<br>[285, 343, 9]"] 196["Segment<br>[285, 343, 10]"]
197[Solid2d] 197[Solid2d]
end end
subgraph path204 [Path] subgraph path204 [Path]
204["Path<br>[482, 537, 9]"] 204["Path<br>[482, 537, 10]"]
205["Segment<br>[482, 537, 9]"] 205["Segment<br>[482, 537, 10]"]
206[Solid2d] 206[Solid2d]
end end
subgraph path212 [Path] subgraph path212 [Path]
212["Path<br>[285, 343, 9]"] 212["Path<br>[285, 343, 10]"]
213["Segment<br>[285, 343, 9]"] 213["Segment<br>[285, 343, 10]"]
214[Solid2d] 214[Solid2d]
end end
subgraph path221 [Path] subgraph path221 [Path]
221["Path<br>[482, 537, 9]"] 221["Path<br>[482, 537, 10]"]
222["Segment<br>[482, 537, 9]"] 222["Segment<br>[482, 537, 10]"]
223[Solid2d] 223[Solid2d]
end end
1["Plane<br>[439, 458, 4]"] 1["Plane<br>[439, 458, 5]"]
5["Plane<br>[763, 782, 4]"] 5["Plane<br>[763, 782, 5]"]
9["Sweep Extrusion<br>[883, 923, 4]"] 9["Sweep Extrusion<br>[883, 923, 5]"]
10[Wall] 10[Wall]
11["Cap Start"] 11["Cap Start"]
12["Cap End"] 12["Cap End"]
13["SweepEdge Opposite"] 13["SweepEdge Opposite"]
14["SweepEdge Adjacent"] 14["SweepEdge Adjacent"]
18["Sweep Extrusion<br>[1127, 1164, 4]"] 18["Sweep Extrusion<br>[1127, 1164, 5]"]
19[Wall] 19[Wall]
20["Cap End"] 20["Cap End"]
21["SweepEdge Opposite"] 21["SweepEdge Opposite"]
22["SweepEdge Adjacent"] 22["SweepEdge Adjacent"]
26["Sweep Extrusion<br>[1289, 1327, 4]"] 26["Sweep Extrusion<br>[1289, 1327, 5]"]
27[Wall] 27[Wall]
28["Cap End"] 28["Cap End"]
29["SweepEdge Opposite"] 29["SweepEdge Opposite"]
30["SweepEdge Adjacent"] 30["SweepEdge Adjacent"]
34["Sweep Extrusion<br>[1499, 1541, 4]"] 34["Sweep Extrusion<br>[1499, 1541, 5]"]
35[Wall] 35[Wall]
36["SweepEdge Opposite"] 36["SweepEdge Opposite"]
37["SweepEdge Adjacent"] 37["SweepEdge Adjacent"]
38["Plane<br>[439, 458, 4]"] 38["Plane<br>[439, 458, 5]"]
42["Plane<br>[763, 782, 4]"] 42["Plane<br>[763, 782, 5]"]
46["Sweep Extrusion<br>[883, 923, 4]"] 46["Sweep Extrusion<br>[883, 923, 5]"]
47[Wall] 47[Wall]
48["Cap Start"] 48["Cap Start"]
49["Cap End"] 49["Cap End"]
50["SweepEdge Opposite"] 50["SweepEdge Opposite"]
51["SweepEdge Adjacent"] 51["SweepEdge Adjacent"]
55["Sweep Extrusion<br>[1127, 1164, 4]"] 55["Sweep Extrusion<br>[1127, 1164, 5]"]
56[Wall] 56[Wall]
57["Cap End"] 57["Cap End"]
58["SweepEdge Opposite"] 58["SweepEdge Opposite"]
59["SweepEdge Adjacent"] 59["SweepEdge Adjacent"]
63["Sweep Extrusion<br>[1289, 1327, 4]"] 63["Sweep Extrusion<br>[1289, 1327, 5]"]
64[Wall] 64[Wall]
65["Cap End"] 65["Cap End"]
66["SweepEdge Opposite"] 66["SweepEdge Opposite"]
67["SweepEdge Adjacent"] 67["SweepEdge Adjacent"]
71["Sweep Extrusion<br>[1499, 1541, 4]"] 71["Sweep Extrusion<br>[1499, 1541, 5]"]
72[Wall] 72[Wall]
73["SweepEdge Opposite"] 73["SweepEdge Opposite"]
74["SweepEdge Adjacent"] 74["SweepEdge Adjacent"]
75["Plane<br>[287, 306, 5]"] 75["Plane<br>[287, 306, 6]"]
79["Sweep Extrusion<br>[384, 420, 5]"] 79["Sweep Extrusion<br>[384, 420, 6]"]
80[Wall] 80[Wall]
81["Cap Start"] 81["Cap Start"]
82["Cap End"] 82["Cap End"]
83["SweepEdge Opposite"] 83["SweepEdge Opposite"]
84["SweepEdge Adjacent"] 84["SweepEdge Adjacent"]
88["Sweep Extrusion<br>[594, 631, 5]"] 88["Sweep Extrusion<br>[594, 631, 6]"]
89[Wall] 89[Wall]
90["SweepEdge Opposite"] 90["SweepEdge Opposite"]
91["SweepEdge Adjacent"] 91["SweepEdge Adjacent"]
92["Plane<br>[276, 295, 6]"] 92["Plane<br>[276, 295, 7]"]
96["Sweep Extrusion<br>[363, 396, 6]"] 96["Sweep Extrusion<br>[363, 396, 7]"]
97[Wall] 97[Wall]
98["Cap Start"] 98["Cap Start"]
99["Cap End"] 99["Cap End"]
100["SweepEdge Opposite"] 100["SweepEdge Opposite"]
101["SweepEdge Adjacent"] 101["SweepEdge Adjacent"]
105["Sweep Extrusion<br>[548, 585, 6]"] 105["Sweep Extrusion<br>[548, 585, 7]"]
106[Wall] 106[Wall]
107["SweepEdge Opposite"] 107["SweepEdge Opposite"]
108["SweepEdge Adjacent"] 108["SweepEdge Adjacent"]
109["Plane<br>[352, 371, 7]"] 109["Plane<br>[352, 371, 8]"]
113["Sweep Extrusion<br>[457, 490, 7]"] 113["Sweep Extrusion<br>[457, 490, 8]"]
114[Wall] 114[Wall]
115["Cap Start"] 115["Cap Start"]
116["Cap End"] 116["Cap End"]
117["SweepEdge Opposite"] 117["SweepEdge Opposite"]
118["SweepEdge Adjacent"] 118["SweepEdge Adjacent"]
119["EdgeCut Fillet<br>[498, 564, 7]"] 119["EdgeCut Fillet<br>[498, 564, 8]"]
120["EdgeCut Fillet<br>[498, 564, 7]"] 120["EdgeCut Fillet<br>[498, 564, 8]"]
129["Sweep Extrusion<br>[1276, 1316, 7]"] 129["Sweep Extrusion<br>[1276, 1316, 8]"]
130[Wall] 130[Wall]
131[Wall] 131[Wall]
132[Wall] 132[Wall]
@ -220,13 +220,13 @@ flowchart LR
146["SweepEdge Adjacent"] 146["SweepEdge Adjacent"]
147["SweepEdge Opposite"] 147["SweepEdge Opposite"]
148["SweepEdge Adjacent"] 148["SweepEdge Adjacent"]
152["Sweep Extrusion<br>[1479, 1507, 7]"] 152["Sweep Extrusion<br>[1479, 1507, 8]"]
153[Wall] 153[Wall]
154["Cap End"] 154["Cap End"]
155["SweepEdge Opposite"] 155["SweepEdge Opposite"]
156["SweepEdge Adjacent"] 156["SweepEdge Adjacent"]
157["Plane<br>[299, 318, 8]"] 157["Plane<br>[299, 318, 9]"]
166["Sweep Extrusion<br>[887, 920, 8]"] 166["Sweep Extrusion<br>[887, 920, 9]"]
167[Wall] 167[Wall]
168[Wall] 168[Wall]
169[Wall] 169[Wall]
@ -247,45 +247,45 @@ flowchart LR
184["SweepEdge Adjacent"] 184["SweepEdge Adjacent"]
185["SweepEdge Opposite"] 185["SweepEdge Opposite"]
186["SweepEdge Adjacent"] 186["SweepEdge Adjacent"]
190["Sweep Extrusion<br>[1083, 1120, 8]"] 190["Sweep Extrusion<br>[1083, 1120, 9]"]
191[Wall] 191[Wall]
192["SweepEdge Opposite"] 192["SweepEdge Opposite"]
193["SweepEdge Adjacent"] 193["SweepEdge Adjacent"]
194["Plane<br>[258, 277, 9]"] 194["Plane<br>[258, 277, 10]"]
198["Sweep Extrusion<br>[351, 382, 9]"] 198["Sweep Extrusion<br>[351, 382, 10]"]
199[Wall] 199[Wall]
200["Cap Start"] 200["Cap Start"]
201["Cap End"] 201["Cap End"]
202["SweepEdge Opposite"] 202["SweepEdge Opposite"]
203["SweepEdge Adjacent"] 203["SweepEdge Adjacent"]
207["Sweep Extrusion<br>[545, 577, 9]"] 207["Sweep Extrusion<br>[545, 577, 10]"]
208[Wall] 208[Wall]
209["SweepEdge Opposite"] 209["SweepEdge Opposite"]
210["SweepEdge Adjacent"] 210["SweepEdge Adjacent"]
211["Plane<br>[258, 277, 9]"] 211["Plane<br>[258, 277, 10]"]
215["Sweep Extrusion<br>[351, 382, 9]"] 215["Sweep Extrusion<br>[351, 382, 10]"]
216[Wall] 216[Wall]
217["Cap Start"] 217["Cap Start"]
218["Cap End"] 218["Cap End"]
219["SweepEdge Opposite"] 219["SweepEdge Opposite"]
220["SweepEdge Adjacent"] 220["SweepEdge Adjacent"]
224["Sweep Extrusion<br>[545, 577, 9]"] 224["Sweep Extrusion<br>[545, 577, 10]"]
225[Wall] 225[Wall]
226["SweepEdge Opposite"] 226["SweepEdge Opposite"]
227["SweepEdge Adjacent"] 227["SweepEdge Adjacent"]
228["StartSketchOnFace<br>[1018, 1052, 4]"] 228["StartSketchOnFace<br>[1018, 1052, 5]"]
229["StartSketchOnFace<br>[1181, 1213, 4]"] 229["StartSketchOnFace<br>[1181, 1213, 5]"]
230["StartSketchOnFace<br>[1397, 1430, 4]"] 230["StartSketchOnFace<br>[1397, 1430, 5]"]
231["StartSketchOnFace<br>[1018, 1052, 4]"] 231["StartSketchOnFace<br>[1018, 1052, 5]"]
232["StartSketchOnFace<br>[1181, 1213, 4]"] 232["StartSketchOnFace<br>[1181, 1213, 5]"]
233["StartSketchOnFace<br>[1397, 1430, 4]"] 233["StartSketchOnFace<br>[1397, 1430, 5]"]
234["StartSketchOnFace<br>[486, 518, 5]"] 234["StartSketchOnFace<br>[486, 518, 6]"]
235["StartSketchOnFace<br>[448, 480, 6]"] 235["StartSketchOnFace<br>[448, 480, 7]"]
236["StartSketchOnFace<br>[673, 705, 7]"] 236["StartSketchOnFace<br>[673, 705, 8]"]
237["StartSketchOnFace<br>[1364, 1394, 7]"] 237["StartSketchOnFace<br>[1364, 1394, 8]"]
238["StartSketchOnFace<br>[983, 1015, 8]"] 238["StartSketchOnFace<br>[983, 1015, 9]"]
239["StartSketchOnFace<br>[444, 474, 9]"] 239["StartSketchOnFace<br>[444, 474, 10]"]
240["StartSketchOnFace<br>[444, 474, 9]"] 240["StartSketchOnFace<br>[444, 474, 10]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,138 @@ description: Operations executed pipe-with-bend.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Plane",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 30.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 10.0,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": {
"value": {
"type": "Plane",
"artifact_id": "[uuid]"
},
"sourceRange": []
},
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 30.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 5.0,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

View File

@ -417,6 +417,72 @@ description: Operations executed sheet-metal-bracket.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.75,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 1.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.25,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -443,6 +509,72 @@ description: Operations executed sheet-metal-bracket.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.75,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 4.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.25,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -564,6 +696,72 @@ description: Operations executed sheet-metal-bracket.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -6.75,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 1.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.25,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {
@ -590,6 +788,72 @@ description: Operations executed sheet-metal-bracket.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -6.75,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 4.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.25,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

View File

@ -45,6 +45,66 @@ description: Operations executed socket-head-cap-screw.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.1565,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -151,6 +211,66 @@ description: Operations executed socket-head-cap-screw.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.095,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -1,186 +1,186 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[298, 341, 3]"] 2["Path<br>[298, 341, 4]"]
3["Segment<br>[347, 385, 3]"] 3["Segment<br>[347, 385, 4]"]
4["Segment<br>[391, 431, 3]"] 4["Segment<br>[391, 431, 4]"]
5["Segment<br>[437, 476, 3]"] 5["Segment<br>[437, 476, 4]"]
6["Segment<br>[482, 504, 3]"] 6["Segment<br>[482, 504, 4]"]
7[Solid2d] 7[Solid2d]
end end
subgraph path27 [Path] subgraph path27 [Path]
27["Path<br>[888, 1013, 3]"] 27["Path<br>[888, 1013, 4]"]
28["Segment<br>[1019, 1077, 3]"] 28["Segment<br>[1019, 1077, 4]"]
29["Segment<br>[1083, 1208, 3]"] 29["Segment<br>[1083, 1208, 4]"]
30["Segment<br>[1214, 1272, 3]"] 30["Segment<br>[1214, 1272, 4]"]
31["Segment<br>[1278, 1406, 3]"] 31["Segment<br>[1278, 1406, 4]"]
32["Segment<br>[1412, 1492, 3]"] 32["Segment<br>[1412, 1492, 4]"]
33["Segment<br>[1498, 1627, 3]"] 33["Segment<br>[1498, 1627, 4]"]
34["Segment<br>[1633, 1712, 3]"] 34["Segment<br>[1633, 1712, 4]"]
35["Segment<br>[1718, 1725, 3]"] 35["Segment<br>[1718, 1725, 4]"]
36[Solid2d] 36[Solid2d]
end end
subgraph path63 [Path] subgraph path63 [Path]
63["Path<br>[1865, 1919, 3]"] 63["Path<br>[1865, 1919, 4]"]
64["Segment<br>[1925, 1966, 3]"] 64["Segment<br>[1925, 1966, 4]"]
65["Segment<br>[1972, 2001, 3]"] 65["Segment<br>[1972, 2001, 4]"]
66["Segment<br>[2007, 2037, 3]"] 66["Segment<br>[2007, 2037, 4]"]
67["Segment<br>[2043, 2099, 3]"] 67["Segment<br>[2043, 2099, 4]"]
68["Segment<br>[2105, 2112, 3]"] 68["Segment<br>[2105, 2112, 4]"]
69[Solid2d] 69[Solid2d]
end end
subgraph path84 [Path] subgraph path84 [Path]
84["Path<br>[2246, 2283, 3]"] 84["Path<br>[2246, 2283, 4]"]
85["Segment<br>[2289, 2320, 3]"] 85["Segment<br>[2289, 2320, 4]"]
86["Segment<br>[2326, 2359, 3]"] 86["Segment<br>[2326, 2359, 4]"]
87["Segment<br>[2365, 2397, 3]"] 87["Segment<br>[2365, 2397, 4]"]
88["Segment<br>[2403, 2410, 3]"] 88["Segment<br>[2403, 2410, 4]"]
89[Solid2d] 89[Solid2d]
end end
subgraph path106 [Path] subgraph path106 [Path]
106["Path<br>[1373, 1532, 5]"] 106["Path<br>[1373, 1532, 6]"]
107["Segment<br>[1538, 1633, 5]"] 107["Segment<br>[1538, 1633, 6]"]
108["Segment<br>[1639, 1800, 5]"] 108["Segment<br>[1639, 1800, 6]"]
109["Segment<br>[1806, 1901, 5]"] 109["Segment<br>[1806, 1901, 6]"]
110["Segment<br>[1907, 2071, 5]"] 110["Segment<br>[1907, 2071, 6]"]
111["Segment<br>[2077, 2173, 5]"] 111["Segment<br>[2077, 2173, 6]"]
112["Segment<br>[2179, 2342, 5]"] 112["Segment<br>[2179, 2342, 6]"]
113["Segment<br>[2348, 2443, 5]"] 113["Segment<br>[2348, 2443, 6]"]
114["Segment<br>[2449, 2456, 5]"] 114["Segment<br>[2449, 2456, 6]"]
115[Solid2d] 115[Solid2d]
end end
subgraph path116 [Path] subgraph path116 [Path]
116["Path<br>[463, 517, 5]"] 116["Path<br>[463, 517, 6]"]
117["Segment<br>[525, 552, 5]"] 117["Segment<br>[525, 552, 6]"]
118["Segment<br>[560, 589, 5]"] 118["Segment<br>[560, 589, 6]"]
119["Segment<br>[597, 625, 5]"] 119["Segment<br>[597, 625, 6]"]
120["Segment<br>[633, 689, 5]"] 120["Segment<br>[633, 689, 6]"]
121["Segment<br>[697, 704, 5]"] 121["Segment<br>[697, 704, 6]"]
122[Solid2d] 122[Solid2d]
end end
subgraph path123 [Path] subgraph path123 [Path]
123["Path<br>[952, 979, 5]"] 123["Path<br>[952, 979, 6]"]
124["Segment<br>[987, 1028, 5]"] 124["Segment<br>[987, 1028, 6]"]
125["Segment<br>[1036, 1078, 5]"] 125["Segment<br>[1036, 1078, 6]"]
126["Segment<br>[1086, 1128, 5]"] 126["Segment<br>[1086, 1128, 6]"]
127["Segment<br>[1136, 1143, 5]"] 127["Segment<br>[1136, 1143, 6]"]
128[Solid2d] 128[Solid2d]
end end
subgraph path129 [Path] subgraph path129 [Path]
129["Path<br>[123, 210, 10]"] 129["Path<br>[123, 210, 11]"]
130["Segment<br>[218, 247, 10]"] 130["Segment<br>[218, 247, 11]"]
131["Segment<br>[255, 283, 10]"] 131["Segment<br>[255, 283, 11]"]
132["Segment<br>[291, 388, 10]"] 132["Segment<br>[291, 388, 11]"]
133["Segment<br>[396, 443, 10]"] 133["Segment<br>[396, 443, 11]"]
134["Segment<br>[451, 479, 10]"] 134["Segment<br>[451, 479, 11]"]
135["Segment<br>[487, 516, 10]"] 135["Segment<br>[487, 516, 11]"]
136["Segment<br>[524, 553, 10]"] 136["Segment<br>[524, 553, 11]"]
137["Segment<br>[561, 652, 10]"] 137["Segment<br>[561, 652, 11]"]
138["Segment<br>[660, 688, 10]"] 138["Segment<br>[660, 688, 11]"]
139["Segment<br>[696, 725, 10]"] 139["Segment<br>[696, 725, 11]"]
140["Segment<br>[733, 821, 10]"] 140["Segment<br>[733, 821, 11]"]
141["Segment<br>[829, 857, 10]"] 141["Segment<br>[829, 857, 11]"]
142["Segment<br>[865, 899, 10]"] 142["Segment<br>[865, 899, 11]"]
143["Segment<br>[907, 937, 10]"] 143["Segment<br>[907, 937, 11]"]
144["Segment<br>[945, 1054, 10]"] 144["Segment<br>[945, 1054, 11]"]
145["Segment<br>[1062, 1069, 10]"] 145["Segment<br>[1062, 1069, 11]"]
146[Solid2d] 146[Solid2d]
end end
subgraph path147 [Path] subgraph path147 [Path]
147["Path<br>[1203, 1301, 10]"] 147["Path<br>[1203, 1301, 11]"]
148["Segment<br>[1309, 1428, 10]"] 148["Segment<br>[1309, 1428, 11]"]
149["Segment<br>[1436, 1490, 10]"] 149["Segment<br>[1436, 1490, 11]"]
150["Segment<br>[1498, 1619, 10]"] 150["Segment<br>[1498, 1619, 11]"]
151["Segment<br>[1627, 1634, 10]"] 151["Segment<br>[1627, 1634, 11]"]
152[Solid2d] 152[Solid2d]
end end
subgraph path153 [Path] subgraph path153 [Path]
153["Path<br>[1731, 1828, 10]"] 153["Path<br>[1731, 1828, 11]"]
154["Segment<br>[1836, 1955, 10]"] 154["Segment<br>[1836, 1955, 11]"]
155["Segment<br>[1963, 2018, 10]"] 155["Segment<br>[1963, 2018, 11]"]
156["Segment<br>[2026, 2147, 10]"] 156["Segment<br>[2026, 2147, 11]"]
157["Segment<br>[2155, 2162, 10]"] 157["Segment<br>[2155, 2162, 11]"]
158[Solid2d] 158[Solid2d]
end end
subgraph path159 [Path] subgraph path159 [Path]
159["Path<br>[1203, 1301, 10]"] 159["Path<br>[1203, 1301, 11]"]
160["Segment<br>[1309, 1428, 10]"] 160["Segment<br>[1309, 1428, 11]"]
161["Segment<br>[1436, 1490, 10]"] 161["Segment<br>[1436, 1490, 11]"]
162["Segment<br>[1498, 1619, 10]"] 162["Segment<br>[1498, 1619, 11]"]
163["Segment<br>[1627, 1634, 10]"] 163["Segment<br>[1627, 1634, 11]"]
164[Solid2d] 164[Solid2d]
end end
subgraph path165 [Path] subgraph path165 [Path]
165["Path<br>[1731, 1828, 10]"] 165["Path<br>[1731, 1828, 11]"]
166["Segment<br>[1836, 1955, 10]"] 166["Segment<br>[1836, 1955, 11]"]
167["Segment<br>[1963, 2018, 10]"] 167["Segment<br>[1963, 2018, 11]"]
168["Segment<br>[2026, 2147, 10]"] 168["Segment<br>[2026, 2147, 11]"]
169["Segment<br>[2155, 2162, 10]"] 169["Segment<br>[2155, 2162, 11]"]
170[Solid2d] 170[Solid2d]
end end
subgraph path199 [Path] subgraph path199 [Path]
199["Path<br>[592, 633, 4]"] 199["Path<br>[592, 633, 5]"]
200["Segment<br>[639, 672, 4]"] 200["Segment<br>[639, 672, 5]"]
201["Segment<br>[678, 713, 4]"] 201["Segment<br>[678, 713, 5]"]
202["Segment<br>[719, 753, 4]"] 202["Segment<br>[719, 753, 5]"]
203["Segment<br>[759, 766, 4]"] 203["Segment<br>[759, 766, 5]"]
204[Solid2d] 204[Solid2d]
end end
subgraph path206 [Path] subgraph path206 [Path]
206["Path<br>[899, 1051, 4]"] 206["Path<br>[899, 1051, 5]"]
211[Solid2d] 211[Solid2d]
end end
subgraph path224 [Path] subgraph path224 [Path]
224["Path<br>[314, 355, 8]"] 224["Path<br>[314, 355, 9]"]
225["Segment<br>[363, 458, 8]"] 225["Segment<br>[363, 458, 9]"]
226["Segment<br>[466, 562, 8]"] 226["Segment<br>[466, 562, 9]"]
227["Segment<br>[570, 656, 8]"] 227["Segment<br>[570, 656, 9]"]
228["Segment<br>[664, 671, 8]"] 228["Segment<br>[664, 671, 9]"]
229[Solid2d] 229[Solid2d]
end end
subgraph path246 [Path] subgraph path246 [Path]
246["Path<br>[314, 355, 8]"] 246["Path<br>[314, 355, 9]"]
247["Segment<br>[363, 458, 8]"] 247["Segment<br>[363, 458, 9]"]
248["Segment<br>[466, 562, 8]"] 248["Segment<br>[466, 562, 9]"]
249["Segment<br>[570, 656, 8]"] 249["Segment<br>[570, 656, 9]"]
250["Segment<br>[664, 671, 8]"] 250["Segment<br>[664, 671, 9]"]
251[Solid2d] 251[Solid2d]
end end
subgraph path268 [Path] subgraph path268 [Path]
268["Path<br>[314, 355, 8]"] 268["Path<br>[314, 355, 9]"]
269["Segment<br>[363, 458, 8]"] 269["Segment<br>[363, 458, 9]"]
270["Segment<br>[466, 562, 8]"] 270["Segment<br>[466, 562, 9]"]
271["Segment<br>[570, 656, 8]"] 271["Segment<br>[570, 656, 9]"]
272["Segment<br>[664, 671, 8]"] 272["Segment<br>[664, 671, 9]"]
273[Solid2d] 273[Solid2d]
end end
subgraph path290 [Path] subgraph path290 [Path]
290["Path<br>[314, 355, 8]"] 290["Path<br>[314, 355, 9]"]
291["Segment<br>[363, 458, 8]"] 291["Segment<br>[363, 458, 9]"]
292["Segment<br>[466, 562, 8]"] 292["Segment<br>[466, 562, 9]"]
293["Segment<br>[570, 656, 8]"] 293["Segment<br>[570, 656, 9]"]
294["Segment<br>[664, 671, 8]"] 294["Segment<br>[664, 671, 9]"]
295[Solid2d] 295[Solid2d]
end end
subgraph path312 [Path] subgraph path312 [Path]
312["Path<br>[503, 596, 6]"] 312["Path<br>[503, 596, 7]"]
313["Segment<br>[602, 651, 6]"] 313["Segment<br>[602, 651, 7]"]
314["Segment<br>[657, 707, 6]"] 314["Segment<br>[657, 707, 7]"]
315["Segment<br>[713, 763, 6]"] 315["Segment<br>[713, 763, 7]"]
316["Segment<br>[769, 787, 6]"] 316["Segment<br>[769, 787, 7]"]
317[Solid2d] 317[Solid2d]
end end
subgraph path346 [Path] subgraph path346 [Path]
346["Path<br>[524, 554, 7]"] 346["Path<br>[524, 554, 8]"]
347["Segment<br>[560, 592, 7]"] 347["Segment<br>[560, 592, 8]"]
348["Segment<br>[598, 631, 7]"] 348["Segment<br>[598, 631, 8]"]
349["Segment<br>[637, 718, 7]"] 349["Segment<br>[637, 718, 8]"]
350["Segment<br>[724, 751, 7]"] 350["Segment<br>[724, 751, 8]"]
351["Segment<br>[757, 764, 7]"] 351["Segment<br>[757, 764, 8]"]
352[Solid2d] 352[Solid2d]
end end
1["Plane<br>[273, 292, 3]"] 1["Plane<br>[273, 292, 4]"]
8["Sweep Extrusion<br>[519, 558, 3]"] 8["Sweep Extrusion<br>[519, 558, 4]"]
9[Wall] 9[Wall]
10[Wall] 10[Wall]
11[Wall] 11[Wall]
@ -195,11 +195,11 @@ flowchart LR
20["SweepEdge Adjacent"] 20["SweepEdge Adjacent"]
21["SweepEdge Opposite"] 21["SweepEdge Opposite"]
22["SweepEdge Adjacent"] 22["SweepEdge Adjacent"]
23["EdgeCut Chamfer<br>[564, 794, 3]"] 23["EdgeCut Chamfer<br>[564, 794, 4]"]
24["EdgeCut Chamfer<br>[564, 794, 3]"] 24["EdgeCut Chamfer<br>[564, 794, 4]"]
25["EdgeCut Chamfer<br>[564, 794, 3]"] 25["EdgeCut Chamfer<br>[564, 794, 4]"]
26["EdgeCut Chamfer<br>[564, 794, 3]"] 26["EdgeCut Chamfer<br>[564, 794, 4]"]
37["Sweep Extrusion<br>[1739, 1775, 3]"] 37["Sweep Extrusion<br>[1739, 1775, 4]"]
38[Wall] 38[Wall]
39[Wall] 39[Wall]
40[Wall] 40[Wall]
@ -225,7 +225,7 @@ flowchart LR
60["SweepEdge Adjacent"] 60["SweepEdge Adjacent"]
61["SweepEdge Opposite"] 61["SweepEdge Opposite"]
62["SweepEdge Adjacent"] 62["SweepEdge Adjacent"]
70["Sweep Extrusion<br>[2126, 2166, 3]"] 70["Sweep Extrusion<br>[2126, 2166, 4]"]
71[Wall] 71[Wall]
72[Wall] 72[Wall]
73[Wall] 73[Wall]
@ -239,7 +239,7 @@ flowchart LR
81["SweepEdge Adjacent"] 81["SweepEdge Adjacent"]
82["SweepEdge Opposite"] 82["SweepEdge Opposite"]
83["SweepEdge Adjacent"] 83["SweepEdge Adjacent"]
90["Sweep Extrusion<br>[2411, 2443, 3]"] 90["Sweep Extrusion<br>[2411, 2443, 4]"]
91[Wall] 91[Wall]
92[Wall] 92[Wall]
93[Wall] 93[Wall]
@ -253,9 +253,9 @@ flowchart LR
101["SweepEdge Adjacent"] 101["SweepEdge Adjacent"]
102["SweepEdge Opposite"] 102["SweepEdge Opposite"]
103["SweepEdge Adjacent"] 103["SweepEdge Adjacent"]
104["Plane<br>[355, 384, 5]"] 104["Plane<br>[355, 384, 6]"]
105["Plane<br>[1337, 1366, 5]"] 105["Plane<br>[1337, 1366, 6]"]
171["Sweep Extrusion<br>[2784, 2820, 5]"] 171["Sweep Extrusion<br>[2784, 2820, 6]"]
172[Wall] 172[Wall]
173[Wall] 173[Wall]
174[Wall] 174[Wall]
@ -282,13 +282,13 @@ flowchart LR
195["SweepEdge Adjacent"] 195["SweepEdge Adjacent"]
196["SweepEdge Opposite"] 196["SweepEdge Opposite"]
197["SweepEdge Adjacent"] 197["SweepEdge Adjacent"]
198["Plane<br>[559, 586, 4]"] 198["Plane<br>[559, 586, 5]"]
205["Plane<br>[813, 855, 4]"] 205["Plane<br>[813, 855, 5]"]
207["SweepEdge Opposite"] 207["SweepEdge Opposite"]
208["SweepEdge Opposite"] 208["SweepEdge Opposite"]
209["SweepEdge Opposite"] 209["SweepEdge Opposite"]
210["SweepEdge Opposite"] 210["SweepEdge Opposite"]
212["Sweep Loft<br>[1215, 1243, 4]"] 212["Sweep Loft<br>[1215, 1243, 5]"]
213[Wall] 213[Wall]
214[Wall] 214[Wall]
215[Wall] 215[Wall]
@ -300,7 +300,7 @@ flowchart LR
221["SweepEdge Adjacent"] 221["SweepEdge Adjacent"]
222["SweepEdge Adjacent"] 222["SweepEdge Adjacent"]
223["Plane<br>[838, 875, 0]"] 223["Plane<br>[838, 875, 0]"]
230["Sweep Extrusion<br>[690, 737, 8]"] 230["Sweep Extrusion<br>[690, 737, 9]"]
231[Wall] 231[Wall]
232[Wall] 232[Wall]
233[Wall] 233[Wall]
@ -316,7 +316,7 @@ flowchart LR
243["SweepEdge Opposite"] 243["SweepEdge Opposite"]
244["SweepEdge Adjacent"] 244["SweepEdge Adjacent"]
245["Plane<br>[965, 1002, 0]"] 245["Plane<br>[965, 1002, 0]"]
252["Sweep Extrusion<br>[690, 737, 8]"] 252["Sweep Extrusion<br>[690, 737, 9]"]
253[Wall] 253[Wall]
254[Wall] 254[Wall]
255[Wall] 255[Wall]
@ -332,7 +332,7 @@ flowchart LR
265["SweepEdge Opposite"] 265["SweepEdge Opposite"]
266["SweepEdge Adjacent"] 266["SweepEdge Adjacent"]
267["Plane<br>[1085, 1122, 0]"] 267["Plane<br>[1085, 1122, 0]"]
274["Sweep Extrusion<br>[690, 737, 8]"] 274["Sweep Extrusion<br>[690, 737, 9]"]
275[Wall] 275[Wall]
276[Wall] 276[Wall]
277[Wall] 277[Wall]
@ -348,7 +348,7 @@ flowchart LR
287["SweepEdge Opposite"] 287["SweepEdge Opposite"]
288["SweepEdge Adjacent"] 288["SweepEdge Adjacent"]
289["Plane<br>[1211, 1248, 0]"] 289["Plane<br>[1211, 1248, 0]"]
296["Sweep Extrusion<br>[690, 737, 8]"] 296["Sweep Extrusion<br>[690, 737, 9]"]
297[Wall] 297[Wall]
298[Wall] 298[Wall]
299[Wall] 299[Wall]
@ -363,8 +363,8 @@ flowchart LR
308["SweepEdge Adjacent"] 308["SweepEdge Adjacent"]
309["SweepEdge Opposite"] 309["SweepEdge Opposite"]
310["SweepEdge Adjacent"] 310["SweepEdge Adjacent"]
311["Plane<br>[467, 497, 6]"] 311["Plane<br>[467, 497, 7]"]
318["Sweep Extrusion<br>[833, 885, 6]"] 318["Sweep Extrusion<br>[833, 885, 7]"]
319[Wall] 319[Wall]
320[Wall] 320[Wall]
321[Wall] 321[Wall]
@ -379,20 +379,20 @@ flowchart LR
330["SweepEdge Adjacent"] 330["SweepEdge Adjacent"]
331["SweepEdge Opposite"] 331["SweepEdge Opposite"]
332["SweepEdge Adjacent"] 332["SweepEdge Adjacent"]
333["EdgeCut Chamfer<br>[745, 890, 8]"] 333["EdgeCut Chamfer<br>[745, 890, 9]"]
334["EdgeCut Chamfer<br>[745, 890, 8]"] 334["EdgeCut Chamfer<br>[745, 890, 9]"]
335["EdgeCut Chamfer<br>[745, 890, 8]"] 335["EdgeCut Chamfer<br>[745, 890, 9]"]
336["EdgeCut Chamfer<br>[745, 890, 8]"] 336["EdgeCut Chamfer<br>[745, 890, 9]"]
337["EdgeCut Chamfer<br>[745, 890, 8]"] 337["EdgeCut Chamfer<br>[745, 890, 9]"]
338["EdgeCut Chamfer<br>[745, 890, 8]"] 338["EdgeCut Chamfer<br>[745, 890, 9]"]
339["EdgeCut Chamfer<br>[745, 890, 8]"] 339["EdgeCut Chamfer<br>[745, 890, 9]"]
340["EdgeCut Chamfer<br>[745, 890, 8]"] 340["EdgeCut Chamfer<br>[745, 890, 9]"]
341["EdgeCut Fillet<br>[891, 1096, 6]"] 341["EdgeCut Fillet<br>[891, 1096, 7]"]
342["EdgeCut Fillet<br>[891, 1096, 6]"] 342["EdgeCut Fillet<br>[891, 1096, 7]"]
343["EdgeCut Fillet<br>[891, 1096, 6]"] 343["EdgeCut Fillet<br>[891, 1096, 7]"]
344["EdgeCut Fillet<br>[891, 1096, 6]"] 344["EdgeCut Fillet<br>[891, 1096, 7]"]
345["Plane<br>[494, 518, 7]"] 345["Plane<br>[494, 518, 8]"]
353["Sweep Revolve<br>[770, 789, 7]"] 353["Sweep Revolve<br>[770, 789, 8]"]
354[Wall] 354[Wall]
355[Wall] 355[Wall]
356[Wall] 356[Wall]
@ -402,17 +402,17 @@ flowchart LR
360["SweepEdge Adjacent"] 360["SweepEdge Adjacent"]
361["SweepEdge Adjacent"] 361["SweepEdge Adjacent"]
362["SweepEdge Adjacent"] 362["SweepEdge Adjacent"]
363["StartSketchOnFace<br>[849, 882, 3]"] 363["StartSketchOnFace<br>[849, 882, 4]"]
364["StartSketchOnFace<br>[1825, 1859, 3]"] 364["StartSketchOnFace<br>[1825, 1859, 4]"]
365["StartSketchOnFace<br>[2206, 2240, 3]"] 365["StartSketchOnFace<br>[2206, 2240, 4]"]
366["StartSketchOnPlane<br>[1323, 1367, 5]"] 366["StartSketchOnPlane<br>[1323, 1367, 6]"]
367["StartSketchOnPlane<br>[429, 455, 5]"] 367["StartSketchOnPlane<br>[429, 455, 6]"]
368["StartSketchOnPlane<br>[924, 944, 5]"] 368["StartSketchOnPlane<br>[924, 944, 6]"]
369["StartSketchOnPlane<br>[869, 893, 4]"] 369["StartSketchOnPlane<br>[869, 893, 5]"]
370["StartSketchOnPlane<br>[286, 306, 8]"] 370["StartSketchOnPlane<br>[286, 306, 9]"]
371["StartSketchOnPlane<br>[286, 306, 8]"] 371["StartSketchOnPlane<br>[286, 306, 9]"]
372["StartSketchOnPlane<br>[286, 306, 8]"] 372["StartSketchOnPlane<br>[286, 306, 9]"]
373["StartSketchOnPlane<br>[286, 306, 8]"] 373["StartSketchOnPlane<br>[286, 306, 9]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

View File

@ -475,7 +475,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
399, 399,
725, 725,
5 6
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -531,7 +531,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
747, 747,
1310, 1310,
5 6
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1444,7 +1444,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
69, 69,
1088, 1088,
10 11
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1485,7 +1485,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
1146, 1146,
1656, 1656,
10 11
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1526,7 +1526,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
1674, 1674,
2184, 2184,
10 11
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1567,7 +1567,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
1146, 1146,
1656, 1656,
10 11
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1608,7 +1608,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
1674, 1674,
2184, 2184,
10 11
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1969,7 +1969,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
241, 241,
954, 954,
8 9
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2109,7 +2109,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
241, 241,
954, 954,
8 9
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2249,7 +2249,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
241, 241,
954, 954,
8 9
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2389,7 +2389,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
241, 241,
954, 954,
8 9
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},

View File

@ -5,18 +5,18 @@ description: Variables in memory after executing walkie-talkie.kcl
{ {
"antenna": { "antenna": {
"type": "Module", "type": "Module",
"value": 4 "value": 5
}, },
"body": { "body": {
"type": "Module", "type": "Module",
"value": 3 "value": 4
}, },
"button": { "button": {
"type": "Function" "type": "Function"
}, },
"case": { "case": {
"type": "Module", "type": "Module",
"value": 5 "value": 6
}, },
"height": { "height": {
"type": "Number", "type": "Number",
@ -33,7 +33,7 @@ description: Variables in memory after executing walkie-talkie.kcl
}, },
"knob": { "knob": {
"type": "Module", "type": "Module",
"value": 7 "value": 8
}, },
"screenHeight": { "screenHeight": {
"type": "Number", "type": "Number",
@ -70,7 +70,7 @@ description: Variables in memory after executing walkie-talkie.kcl
}, },
"talkButton": { "talkButton": {
"type": "Module", "type": "Module",
"value": 6 "value": 7
}, },
"thickness": { "thickness": {
"type": "Number", "type": "Number",

View File

@ -30,6 +30,126 @@ description: Operations executed washer.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.219,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.1015,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"holeSketch": { "holeSketch": {

View File

@ -1,5 +1,5 @@
--- ---
source: kcl/src/simulation_tests.rs source: kcl-lib/src/simulation_tests.rs
description: Error from executing kw_fn_too_few_args.kcl description: Error from executing kw_fn_too_few_args.kcl
--- ---
KCL Semantic error KCL Semantic error

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

View File

@ -33,6 +33,72 @@ description: Operations executed revolve_about_edge.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -50.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 10.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"angle": { "angle": {

View File

@ -45,6 +45,73 @@ description: Operations executed rotate_after_fillet.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.469,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "topEdge"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -200,6 +267,73 @@ description: Operations executed rotate_after_fillet.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.3125,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "filletEdge"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -45,6 +45,73 @@ description: Operations executed scale_after_fillet.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.469,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "topEdge"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -200,6 +267,73 @@ description: Operations executed scale_after_fillet.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.3125,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "filletEdge"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -89,6 +89,79 @@ description: Operations executed sketch_on_face_circle_tagged.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 5.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "myCircle"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -75,6 +75,72 @@ description: Operations executed ssi_pattern.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -2.08,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 47.7,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 1.4,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {

View File

@ -45,6 +45,73 @@ description: Operations executed translate_after_fillet.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.469,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "topEdge"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {
@ -200,6 +267,73 @@ description: Operations executed translate_after_fillet.kcl
"type": "StdLibCall", "type": "StdLibCall",
"unlabeledArg": null "unlabeledArg": null
}, },
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
{
"type": "Number",
"value": 0.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 0.3125,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "filletEdge"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{ {
"labeledArgs": { "labeledArgs": {
"length": { "length": {