Declare std kwarg functions in KCL and migrate circle (#5955)

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

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Doc comments on parameters

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Update grammar

Signed-off-by: Nick Cameron <nrc@ncameron.org>

* Change use of counterClockWise to ccw

Signed-off-by: Nick Cameron <nrc@ncameron.org>

---------

Signed-off-by: Nick Cameron <nrc@ncameron.org>
This commit is contained in:
Nick Cameron
2025-03-24 21:55:24 +13:00
committed by GitHub
parent dddcd5ff46
commit 3b2abe5814
94 changed files with 16657 additions and 9803 deletions

File diff suppressed because one or more lines are too long

View File

@ -10,10 +10,10 @@ Construct a circle derived from 3 points.
```js
circleThreePoint(
sketchSurfaceOrGroup: SketchOrSurface,
p1: [number],
p2: [number],
p3: [number],
sketchSurfaceOrGroup: SketchOrSurface,
tag?: TagDeclarator,
): Sketch
```
@ -23,10 +23,10 @@ circleThreePoint(
| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `sketchSurfaceOrGroup` | [`SketchOrSurface`](/docs/kcl/types/SketchOrSurface) | Plane or surface to sketch on. | Yes |
| `p1` | [`[number]`](/docs/kcl/types/number) | 1st point to derive the circle. | Yes |
| `p2` | [`[number]`](/docs/kcl/types/number) | 2nd point to derive the circle. | Yes |
| `p3` | [`[number]`](/docs/kcl/types/number) | 3rd point to derive the circle. | Yes |
| `sketchSurfaceOrGroup` | [`SketchOrSurface`](/docs/kcl/types/SketchOrSurface) | Plane or surface to sketch on. | Yes |
| [`tag`](/docs/kcl/types/tag) | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | Identifier for the circle to reference elsewhere. | No |
### Returns

View File

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

View File

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

View File

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

View File

@ -61,7 +61,6 @@ layout: manual
* [`bezierCurve`](kcl/bezierCurve)
* [`ceil`](kcl/ceil)
* [`chamfer`](kcl/chamfer)
* [`circle`](kcl/circle)
* [`circleThreePoint`](kcl/circleThreePoint)
* [`close`](kcl/close)
* [`cm`](kcl/cm)
@ -145,3 +144,5 @@ layout: manual
* [`cos`](kcl/std-math-cos)
* [`sin`](kcl/std-math-sin)
* [`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
cos(num: number(rad)): number(_)
cos(@num: number(rad)): number(_)
```
@ -27,7 +27,7 @@ cos(num: number(rad)): number(_)
### Examples
```js
exampleSketch = startSketchOn("XZ")
exampleSketch = startSketchOn(XZ)
|> startProfileAt([0, 0], %)
|> angledLine({
angle = 30,

View File

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

View File

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

File diff suppressed because one or more lines are too long

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]
```
`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]`.
[`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`](/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]
```
`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]`.
[`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`](/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()
```
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.
The previous sketch commands will never be executed again, in this case.

View File

@ -18,7 +18,7 @@ myPart = startSketchOn('XY')
|> 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.
The previous solid commands will never be executed again, in this case.

View File

@ -1082,7 +1082,7 @@ openSketch = startSketchOn(XY)
}) => {
// One dumb hardcoded screen pixel value
const testPoint = { x: 620, y: 257 }
const expectedOutput = `helix001 = helix( revolutions = 1, angleStart = 360, counterClockWise = false, radius = 5, axis = 'X', length = 5,)`
const expectedOutput = `helix001 = helix( revolutions = 1, angleStart = 360, ccw = false, radius = 5, axis = 'X', length = 5,)`
const expectedLine = `revolutions=1,`
await homePage.goToModelingScene()
@ -1099,7 +1099,7 @@ openSketch = startSketchOn(XY)
headerArguments: {
AngleStart: '',
Axis: '',
CounterClockWise: '',
Ccw: '',
Length: '',
Radius: '',
Revolutions: '',
@ -1141,7 +1141,7 @@ openSketch = startSketchOn(XY)
headerArguments: {
AngleStart: '360',
Axis: 'X',
CounterClockWise: '',
Ccw: '',
Length: initialInput,
Radius: '5',
Revolutions: '1',
@ -1156,7 +1156,7 @@ openSketch = startSketchOn(XY)
headerArguments: {
AngleStart: '360',
Axis: 'X',
CounterClockWise: '',
Ccw: '',
Length: newInput,
Radius: '5',
Revolutions: '1',

View File

@ -75,10 +75,7 @@ LabeledArgument { ArgumentLabel Equals expression }
ArgumentList { "(" commaSep<LabeledArgument | expression> ")" }
type[@isGroup=Type] {
@specialize[@name=PrimitiveType]<
identifier,
"bool" | "number" | "string" | "tag" | "Sketch" | "SketchSurface" | "Solid" | "Plane"
> |
PrimitiveType { identifier } |
ArrayType { "[" type !member (";" Number "+"?)? "]" } |
ObjectType { "{" commaSep<ObjectProperty { PropertyName ":" type }> "}" }
}

View File

@ -837,10 +837,10 @@ holeIndex = 6
// Create the mounting plate extrusion, holes, and fillets
part = rectShape([0, 0], 20, 20)
|> hole(circle(XY, [-holeIndex, holeIndex], holeRadius), %)
|> hole(circle(XY, [holeIndex, holeIndex], holeRadius), %)
|> hole(circle(XY, [-holeIndex, -holeIndex], holeRadius), %)
|> hole(circle(XY, [holeIndex, -holeIndex], holeRadius), %)
|> hole(circle('XY', center = [-holeIndex, holeIndex], radius = holeRadius), %)
|> hole(circle('XY', center = [holeIndex, holeIndex], radius = holeRadius), %)
|> hole(circle('XY', center = [-holeIndex, -holeIndex], radius = holeRadius), %)
|> hole(circle('XY', center = [holeIndex, -holeIndex], radius = holeRadius), %)
|> extrude(length = 2)
|> fillet(
radius = 4,
@ -860,7 +860,7 @@ part = rectShape([0, 0], 20, 20)
};
assert_eq!(
err.error.message(),
"This function requires a keyword argument 'center'"
"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 = cleanup_type_links(
&output,
ty.referenced_types.iter().filter(|t| !DECLARED_TYPES.contains(&&***t)),
);
expectorate::assert_contents(format!("../../docs/kcl/{}.md", file_name), &output);
Ok(())
@ -514,6 +518,13 @@ fn generate_function_from_kcl(function: &FnData, file_name: String) -> Result<()
});
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);
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)
}

View File

@ -1,4 +1,4 @@
use std::str::FromStr;
use std::{collections::HashSet, str::FromStr};
use regex::Regex;
use tower_lsp::lsp_types::{
@ -9,7 +9,7 @@ use tower_lsp::lsp_types::{
use crate::{
execution::annotations,
parsing::{
ast::types::{Annotation, Node, NonCodeNode, VariableKind},
ast::types::{Annotation, Node, PrimitiveType, Type, VariableKind},
token::NumericSuffix,
},
ModuleId,
@ -59,7 +59,6 @@ impl CollectionVisitor {
format!("std::{}::", self.name)
};
let mut dd = match var.kind {
// TODO metadata for args
VariableKind::Fn => DocData::Fn(FnData::from_ast(var, qual_name)),
VariableKind::Const => DocData::Const(ConstData::from_ast(var, qual_name)),
};
@ -322,6 +321,8 @@ pub struct FnData {
/// Code examples.
/// These are tested and we know they compile and execute.
pub examples: Vec<(String, ExampleProperties)>,
#[allow(dead_code)]
pub referenced_types: Vec<String>,
}
impl FnData {
@ -332,6 +333,17 @@ impl FnData {
};
let name = var.declaration.id.name.clone();
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 {
name,
qual_name,
@ -346,6 +358,7 @@ impl FnData {
summary: None,
description: None,
examples: Vec::new(),
referenced_types: referenced_types.into_iter().collect(),
}
}
@ -414,7 +427,7 @@ impl FnData {
}
#[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" {
return "loft([${0:sketch000}, ${1:sketch001}])${}".to_owned();
} else if self.name == "hole" {
@ -480,12 +493,12 @@ pub struct ArgData {
/// If the argument is required.
pub kind: ArgKind,
/// Additional information that could be used instead of the type's description.
/// This is helpful if the type is really basic, like "u32" -- that won't tell the user much about
/// This is helpful if the type is really basic, like "number" -- that won't tell the user much about
/// how this argument is meant to be used.
pub docs: Option<String>,
}
#[derive(Debug, Clone, Copy)]
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum ArgKind {
Special,
// Parameter is whether the arg is optional.
@ -495,38 +508,47 @@ pub enum ArgKind {
impl ArgData {
fn from_ast(arg: &crate::parsing::ast::types::Parameter) -> Self {
ArgData {
let mut result = ArgData {
name: arg.identifier.name.clone(),
ty: arg.type_.as_ref().map(|t| t.to_string()),
// Doc comments are not yet supported on parameters.
docs: None,
kind: if arg.labeled {
ArgKind::Labelled(arg.optional())
} else {
ArgKind::Special
},
}
}
};
fn _with_meta(&mut self, _meta: &[Node<NonCodeNode>]) {
// TODO use comments for docs (we can't currently get the comments for an argument)
result.with_comments(&arg.identifier.pre_comments);
result
}
pub fn get_autocomplete_snippet(&self, index: usize) -> Option<(usize, String)> {
match &self.ty {
Some(s)
if [
"Sketch",
"SketchSet",
"Solid",
"SolidSet",
"SketchSurface",
"SketchOrSurface",
]
.contains(&&**s) =>
{
Some((index, format!("${{{}:{}}}", index, "%")))
let label = if self.kind == ArgKind::Special {
String::new()
} else {
format!("{} = ", self.name)
};
match self.ty.as_deref() {
Some(s) if ["Sketch", "Solid", "Plane | Face", "Sketch | Plane | Face"].contains(&s) => {
Some((index, format!("{label}${{{}:{}}}", 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,
}
}
@ -570,12 +592,19 @@ pub struct TyData {
/// Code examples.
/// These are tested and we know they compile and execute.
pub examples: Vec<(String, ExampleProperties)>,
#[allow(dead_code)]
pub referenced_types: Vec<String>,
}
impl TyData {
fn from_ast(ty: &crate::parsing::ast::types::TypeDeclaration, mut qual_name: String) -> Self {
let name = ty.name.name.clone();
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 {
name,
qual_name,
@ -589,6 +618,7 @@ impl TyData {
summary: None,
description: None,
examples: Vec::new(),
referenced_types: referenced_types.into_iter().collect(),
}
}
@ -852,6 +882,66 @@ impl ApplyMeta for TyData {
}
}
impl ApplyMeta for ArgData {
fn apply_docs(
&mut self,
summary: Option<String>,
description: Option<String>,
_examples: Vec<(String, ExampleProperties)>,
) {
let Some(mut docs) = summary else {
return;
};
if let Some(desc) = description {
docs.push_str("\n\n");
docs.push_str(&desc);
}
self.docs = Some(docs);
}
fn deprecated(&mut self, _deprecated: bool) {
unreachable!();
}
fn doc_hidden(&mut self, _doc_hidden: bool) {
unreachable!();
}
fn impl_kind(&mut self, _impl_kind: annotations::Impl) {
unreachable!();
}
}
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)]
mod test {
use super::*;

View File

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

View File

@ -1,6 +1,7 @@
use std::collections::HashMap;
use async_recursion::async_recursion;
use indexmap::IndexMap;
use crate::{
engine::ExecutionKind,
@ -618,7 +619,11 @@ impl ExecutorContext {
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());
KclValue::Function {
value: FunctionSource::Std { func, props },
value: FunctionSource::Std {
func,
props,
ast: function_expression.clone(),
},
meta: vec![metadata.to_owned()],
}
} else {
@ -630,7 +635,7 @@ impl ExecutorContext {
}
} else {
// Snapshotting memory here is crucial for semantics so that we close
// over variables. Variables defined lexically later shouldn't
// over variables. Variables defined lexically later shouldn't
// be available to the function body.
KclValue::Function {
value: FunctionSource::User {
@ -1130,7 +1135,7 @@ impl Node<CallExpressionKw> {
let callsite: SourceRange = self.into();
// Build a hashmap from argument labels to the final evaluated values.
let mut fn_args = HashMap::with_capacity(self.arguments.len());
let mut fn_args = IndexMap::with_capacity(self.arguments.len());
for arg_expr in &self.arguments {
let source_range = SourceRange::from(arg_expr.arg.clone());
let metadata = Metadata { source_range };
@ -1191,10 +1196,34 @@ impl Node<CallExpressionKw> {
None
};
let formals = func.args(false);
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.
let mut return_value = {
// 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;
exec_state.mut_stack().pop_env();
if let Some(mut op) = op {
op.set_std_lib_call_is_error(result.is_err());
@ -1213,7 +1242,6 @@ impl Node<CallExpressionKw> {
Ok(return_value)
}
FunctionKind::UserDefined => {
let source_range = SourceRange::from(self);
// Clone the function so that we can use a mutable reference to
// exec_state.
let func = fn_name.get_result(exec_state, ctx).await?.clone();
@ -1237,17 +1265,21 @@ impl Node<CallExpressionKw> {
source_range: callsite,
});
let return_value = func
.call_fn_kw(args, exec_state, ctx.clone(), callsite)
.await
.map_err(|e| {
// Add the call expression to the source ranges.
// TODO currently ignored by the frontend
e.add_source_ranges(vec![source_range])
})?;
let Some(fn_src) = func.as_fn() else {
return Err(KclError::Semantic(KclErrorDetails {
message: "cannot call this because it isn't a function".to_string(),
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.
// TODO currently ignored by the frontend
e.add_source_ranges(vec![callsite])
})?;
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.
if let KclValue::Function { meta, .. } = func {
source_ranges = meta.iter().map(|m| m.source_range).collect();
@ -1364,14 +1396,17 @@ impl Node<CallExpression> {
source_range: callsite,
});
let return_value = func
.call_fn(fn_args, exec_state, ctx.clone(), source_range)
.await
.map_err(|e| {
// Add the call expression to the source ranges.
// TODO currently ignored by the frontend
e.add_source_ranges(vec![source_range])
})?;
let Some(fn_src) = func.as_fn() else {
return Err(KclError::Semantic(KclErrorDetails {
message: "cannot call this because it isn't a function".to_string(),
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.
// TODO currently ignored by the frontend
e.add_source_ranges(vec![source_range])
})?;
let result = return_value.ok_or_else(move || {
let mut source_ranges: Vec<SourceRange> = vec![source_range];
@ -1857,6 +1892,27 @@ fn assign_args_to_params_kw(
mut args: crate::std::args::KwArgs,
exec_state: &mut ExecState,
) -> Result<(), KclError> {
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
// been created.
let source_ranges = vec![function_expression.into()];
@ -1905,10 +1961,11 @@ fn assign_args_to_params_kw(
)?;
}
}
Ok(())
}
pub(crate) async fn call_user_defined_function(
async fn call_user_defined_function(
args: Vec<Arg>,
memory: EnvironmentRef,
function_expression: NodeRef<'_, FunctionExpression>,
@ -1941,7 +1998,7 @@ pub(crate) async fn call_user_defined_function(
result
}
pub(crate) async fn call_user_defined_function_kw(
async fn call_user_defined_function_kw(
args: crate::std::args::KwArgs,
memory: EnvironmentRef,
function_expression: NodeRef<'_, FunctionExpression>,
@ -1979,35 +2036,138 @@ impl FunctionSource {
&self,
exec_state: &mut ExecState,
ctx: &ExecutorContext,
args: Vec<Arg>,
source_range: SourceRange,
mut args: Vec<Arg>,
callsite: SourceRange,
) -> Result<Option<KclValue>, KclError> {
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: IndexMap::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 {
exec_state.warn(CompilationError::err(
source_range,
callsite,
format!(
"`{}` is deprecated, see the docs for a recommended replacement",
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)
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, .. } => {
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!(),
}

View File

@ -9,13 +9,13 @@ use crate::{
errors::KclErrorDetails,
execution::{
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::{
DefaultParamVal, FunctionExpression, KclNone, Literal, LiteralValue, Node, TagDeclarator, TagNode,
},
std::{args::Arg, StdFnProps},
CompilationError, KclError, ModuleId, SourceRange,
std::StdFnProps,
KclError, ModuleId, SourceRange,
};
pub type KclObjectFields = HashMap<String, KclValue>;
@ -113,6 +113,7 @@ pub enum FunctionSource {
None,
Std {
func: crate::std::StdFn,
ast: crate::parsing::ast::types::BoxNode<FunctionExpression>,
props: StdFnProps,
},
User {
@ -550,91 +551,10 @@ impl KclValue {
Ok(*b)
}
/// If this memory item is a function, call it with the given arguments, return its val as Ok.
/// 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> {
pub fn as_fn(&self) -> Option<&FunctionSource> {
match self {
KclValue::Function {
value: FunctionSource::Std { func, props },
..
} => {
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],
})),
KclValue::Function { value, .. } => Some(value),
_ => None,
}
}

View File

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

View File

@ -2883,15 +2883,40 @@ fn uom_for_type(i: &mut TokenSlice) -> PResult<NumericSuffix> {
any.try_map(|t: Token| t.value.parse()).parse_next(i)
}
fn comment(i: &mut TokenSlice) -> PResult<Node<String>> {
any.verify_map(|token: Token| {
let value = match token.token_type {
TokenType::LineComment => token.value,
TokenType::BlockComment => token.value,
_ => return None,
};
Some(Node::new(value, token.start, token.end, token.module_id))
})
.context(expected("Comment"))
.parse_next(i)
}
fn comments(i: &mut TokenSlice) -> PResult<Node<Vec<String>>> {
let comments: Vec<Node<String>> = repeat(1.., (comment, opt(whitespace)).map(|(c, _)| c)).parse_next(i)?;
let start = comments[0].start;
let module_id = comments[0].module_id;
let end = comments.last().unwrap().end;
let inner = comments.into_iter().map(|n| n.inner).collect();
Ok(Node::new(inner, start, end, module_id))
}
struct ParamDescription {
labeled: bool,
arg_name: Token,
type_: std::option::Option<Node<Type>>,
default_value: Option<DefaultParamVal>,
comments: Option<Node<Vec<String>>>,
}
fn parameter(i: &mut TokenSlice) -> PResult<ParamDescription> {
let (found_at_sign, arg_name, question_mark, _, type_, _ws, default_literal) = (
let (_, comments, found_at_sign, arg_name, question_mark, _, type_, _ws, default_literal) = (
opt(whitespace),
opt(comments),
opt(at_sign),
any.verify(|token: &Token| !matches!(token.token_type, TokenType::Brace) || token.value != ")"),
opt(question_mark),
@ -2901,6 +2926,7 @@ fn parameter(i: &mut TokenSlice) -> PResult<ParamDescription> {
opt((equals, opt(whitespace), literal).map(|(_, _, literal)| literal)),
)
.parse_next(i)?;
Ok(ParamDescription {
labeled: found_at_sign.is_none(),
arg_name,
@ -2915,6 +2941,7 @@ fn parameter(i: &mut TokenSlice) -> PResult<ParamDescription> {
return Err(ErrMode::Backtrack(ContextError::from(e)));
}
},
comments,
})
}
@ -2924,6 +2951,7 @@ fn parameters(i: &mut TokenSlice) -> PResult<Vec<Parameter>> {
let candidates: Vec<_> = separated(0.., parameter, comma_sep)
.context(expected("function parameters"))
.parse_next(i)?;
opt(comma_sep).parse_next(i)?;
// Make sure all those tokens are valid parameters.
let params: Vec<Parameter> = candidates
@ -2934,8 +2962,13 @@ fn parameters(i: &mut TokenSlice) -> PResult<Vec<Parameter>> {
arg_name,
type_,
default_value,
comments,
}| {
let identifier = Node::<Identifier>::try_from(arg_name)?;
let mut identifier = Node::<Identifier>::try_from(arg_name)?;
if let Some(comments) = comments {
identifier.comment_start = comments.start;
identifier.pre_comments = comments.inner;
}
Ok(Parameter {
identifier,

View File

@ -1,6 +1,7 @@
use std::{collections::HashMap, num::NonZeroU32};
use std::num::NonZeroU32;
use anyhow::Result;
use indexmap::IndexMap;
use kcmc::{
websocket::{ModelingCmdReq, OkWebSocketResponseData},
ModelingCmd,
@ -57,7 +58,7 @@ pub struct KwArgs {
/// Unlabeled keyword args. Currently only the first arg can be unlabeled.
pub unlabeled: Option<Arg>,
/// Labeled args.
pub labeled: HashMap<String, Arg>,
pub labeled: IndexMap<String, Arg>,
}
impl KwArgs {
@ -1000,48 +1001,54 @@ where
impl<'a> FromKclValue<'a> for [f64; 2] {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let KclValue::MixedArray { value, meta: _ } = arg else {
return None;
};
if value.len() != 2 {
return None;
match arg {
KclValue::MixedArray { value, meta: _ } | KclValue::HomArray { value, .. } => {
if value.len() != 2 {
return None;
}
let v0 = value.first()?;
let v1 = value.get(1)?;
let array = [v0.as_f64()?, v1.as_f64()?];
Some(array)
}
_ => None,
}
let v0 = value.first()?;
let v1 = value.get(1)?;
let array = [v0.as_f64()?, v1.as_f64()?];
Some(array)
}
}
impl<'a> FromKclValue<'a> for [usize; 3] {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let KclValue::MixedArray { value, meta: _ } = arg else {
return None;
};
if value.len() != 3 {
return None;
match arg {
KclValue::MixedArray { value, meta: _ } | KclValue::HomArray { value, .. } => {
if value.len() != 3 {
return None;
}
let v0 = value.first()?;
let v1 = value.get(1)?;
let v2 = value.get(2)?;
let array = [v0.as_usize()?, v1.as_usize()?, v2.as_usize()?];
Some(array)
}
_ => None,
}
let v0 = value.first()?;
let v1 = value.get(1)?;
let v2 = value.get(2)?;
let array = [v0.as_usize()?, v1.as_usize()?, v2.as_usize()?];
Some(array)
}
}
impl<'a> FromKclValue<'a> for [f64; 3] {
fn from_kcl_val(arg: &'a KclValue) -> Option<Self> {
let KclValue::MixedArray { value, meta: _ } = arg else {
return None;
};
if value.len() != 3 {
return None;
match arg {
KclValue::MixedArray { value, meta: _ } | KclValue::HomArray { value, .. } => {
if value.len() != 3 {
return None;
}
let v0 = value.first()?;
let v1 = value.get(1)?;
let v2 = value.get(2)?;
let array = [v0.as_f64()?, v1.as_f64()?, v2.as_f64()?];
Some(array)
}
_ => None,
}
let v0 = value.first()?;
let v1 = value.get(1)?;
let v2 = value.get(2)?;
let array = [v0.as_f64()?, v1.as_f64()?, v2.as_f64()?];
Some(array)
}
}

View File

@ -47,19 +47,19 @@ fn inner_rem(num: f64, divisor: f64) -> f64 {
/// Compute the cosine of a number (in radians).
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())))
}
/// Compute the sine of a number (in radians).
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())))
}
/// Compute the tangent of a number (in radians).
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())))
}

View File

@ -72,7 +72,6 @@ lazy_static! {
Box::new(crate::std::segment::TangentToEnd),
Box::new(crate::std::segment::AngleToMatchLengthX),
Box::new(crate::std::segment::AngleToMatchLengthY),
Box::new(crate::std::shapes::Circle),
Box::new(crate::std::shapes::CircleThreePoint),
Box::new(crate::std::shapes::Polygon),
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)),
StdFnProps::default("std::math::tan"),
),
("sketch", "circle") => (
|e, a| Box::pin(crate::std::shapes::circle(e, a)),
StdFnProps::default("std::sketch::circle"),
),
_ => unreachable!(),
}
}

View File

@ -46,38 +46,6 @@ pub async fn circle(exec_state: &mut ExecState, args: Args) -> Result<KclValue,
})
}
/// Construct a 2-dimensional circle, of the specified radius, centered at
/// the provided (x, y) origin point.
///
/// ```no_run
/// exampleSketch = startSketchOn("-XZ")
/// |> circle( center = [0, 0], radius = 10 )
///
/// example = extrude(exampleSketch, length = 5)
/// ```
///
/// ```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(
sketch_or_surface: SketchOrSurface,
center: [f64; 2],
@ -152,13 +120,13 @@ async fn inner_circle(
/// Sketch a 3-point circle.
pub async fn circle_three_point(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let sketch_surface_or_group = args.get_unlabeled_kw_arg("sketch_surface_or_group")?;
let p1 = args.get_kw_arg("p1")?;
let p2 = args.get_kw_arg("p2")?;
let p3 = args.get_kw_arg("p3")?;
let sketch_surface_or_group = args.get_unlabeled_kw_arg("sketch_surface_or_group")?;
let tag = args.get_kw_arg_opt("tag")?;
let sketch = inner_circle_three_point(p1, p2, p3, sketch_surface_or_group, tag, exec_state, args).await?;
let sketch = inner_circle_three_point(sketch_surface_or_group, p1, p2, p3, tag, exec_state, args).await?;
Ok(KclValue::Sketch {
value: Box::new(sketch),
})
@ -176,10 +144,10 @@ pub async fn circle_three_point(exec_state: &mut ExecState, args: Args) -> Resul
keywords = true,
unlabeled_first = true,
args = {
sketch_surface_or_group = {docs = "Plane or surface to sketch on."},
p1 = {docs = "1st point to derive the circle."},
p2 = {docs = "2nd point to derive the circle."},
p3 = {docs = "3rd point to derive the circle."},
sketch_surface_or_group = {docs = "Plane or surface to sketch on."},
tag = {docs = "Identifier for the circle to reference elsewhere."},
}
}]
@ -187,10 +155,10 @@ pub async fn circle_three_point(exec_state: &mut ExecState, args: Args) -> Resul
// Similar to inner_circle, but needs to retain 3-point information in the
// path so it can be used for other features, otherwise it's lost.
async fn inner_circle_three_point(
sketch_surface_or_group: SketchOrSurface,
p1: [f64; 2],
p2: [f64; 2],
p3: [f64; 2],
sketch_surface_or_group: SketchOrSurface,
tag: Option<TagNode>,
exec_state: &mut ExecState,
args: Args,

View File

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

View File

@ -0,0 +1,34 @@
@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 to extend, or plane or surface to sketch on.
@sketch_or_surface: Sketch | Plane | Face,
/// The center of the circle.
center: Point2d,
/// The radius of the circle.
radius: number,
/// Create a new tag which refers to this circle.
tag?: tag,
): Sketch {}

View File

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

View File

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

View File

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

View File

@ -18,6 +18,72 @@ description: Operations executed assembly_non_default_units.kcl
"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": 1.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"data": {
@ -32,5 +98,71 @@ description: Operations executed assembly_non_default_units.kcl
"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": 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": {
"type": "Module",
"value": 3
"value": 4
},
"other2": {
"type": "Module",
"value": 4
"value": 5
}
}

View File

@ -75,6 +75,78 @@ description: Operations executed crazy_multi_profile.kcl
"type": "StdLibCall",
"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": {
"angle": {
@ -161,6 +233,78 @@ description: Operations executed crazy_multi_profile.kcl
"type": "StdLibCall",
"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": {
"length": {

View File

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

View File

@ -18,6 +18,152 @@ description: Operations executed flush_batch_on_end.kcl
"type": "StdLibCall",
"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": {
"holeSketch": {

View File

@ -18,6 +18,72 @@ description: Operations executed helix_ccw.kcl
"type": "StdLibCall",
"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": {
"length": {

View File

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

View File

@ -17,5 +17,71 @@ description: Operations executed import_side_effect.kcl
"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": "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": {
"type": "Module",
"value": 3
"value": 4
}
}

View File

@ -1,12 +1,12 @@
```mermaid
flowchart LR
subgraph path2 [Path]
2["Path<br>[83, 119, 3]"]
3["Segment<br>[83, 119, 3]"]
2["Path<br>[83, 119, 4]"]
3["Segment<br>[83, 119, 4]"]
4[Solid2d]
end
1["Plane<br>[60, 77, 3]"]
5["Sweep Extrusion<br>[125, 145, 3]"]
1["Plane<br>[60, 77, 4]"]
5["Sweep Extrusion<br>[125, 145, 4]"]
6[Wall]
7["Cap Start"]
8["Cap End"]

View File

@ -18,6 +18,72 @@ description: Operations executed import_whole.kcl
"type": "StdLibCall",
"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": {
"length": {

View File

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

View File

@ -30,6 +30,54 @@ description: Operations executed 80-20-rail.kcl
"type": "StdLibCall",
"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": {
"holeSketch": {

View File

@ -74,6 +74,54 @@ description: Operations executed a-parametric-bearing-pillow-block.kcl
"type": "StdLibCall",
"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": {
"length": {
@ -153,6 +201,54 @@ description: Operations executed a-parametric-bearing-pillow-block.kcl
"type": "StdLibCall",
"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": {
"length": {
@ -232,6 +328,66 @@ description: Operations executed a-parametric-bearing-pillow-block.kcl
"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": 1.5,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {

View File

@ -42,6 +42,126 @@ description: Operations executed ball-bearing.kcl
"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": 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": {
"holeSketch": {
@ -504,6 +624,60 @@ description: Operations executed ball-bearing.kcl
"type": "StdLibCall",
"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": {
"angle": {
@ -725,6 +899,126 @@ description: Operations executed ball-bearing.kcl
"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": 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": {
"holeSketch": {

View File

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

View File

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

View File

@ -255,6 +255,66 @@ description: Operations executed bracket.kcl
"type": "StdLibCall",
"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": {
"length": {
@ -329,6 +389,66 @@ description: Operations executed bracket.kcl
"type": "StdLibCall",
"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": {
"length": {

View File

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

View File

@ -18,6 +18,66 @@ description: Operations executed car-wheel-assembly.kcl
"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": 6.0,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {
@ -74,6 +134,66 @@ description: Operations executed car-wheel-assembly.kcl
"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": 3.0,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {
@ -130,6 +250,66 @@ description: Operations executed car-wheel-assembly.kcl
"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": 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": {
"length": {
@ -215,6 +395,78 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall",
"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": {
"length": {
@ -265,6 +517,66 @@ description: Operations executed car-wheel-assembly.kcl
"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": 6.0,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {
@ -321,6 +633,66 @@ description: Operations executed car-wheel-assembly.kcl
"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": 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": {
"length": {
@ -406,6 +778,66 @@ description: Operations executed car-wheel-assembly.kcl
"type": "StdLibCall",
"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": {
"length": {
@ -700,6 +1132,126 @@ description: Operations executed car-wheel-assembly.kcl
"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": 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": {
"holeSketch": {
@ -776,6 +1328,126 @@ description: Operations executed car-wheel-assembly.kcl
"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": 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": {
"holeSketch": {
@ -852,6 +1524,60 @@ description: Operations executed car-wheel-assembly.kcl
"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": 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": {
"length": {
@ -931,6 +1657,60 @@ description: Operations executed car-wheel-assembly.kcl
"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": 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": {
"length": {
@ -1068,7 +1848,7 @@ description: Operations executed car-wheel-assembly.kcl
"functionSourceRange": [
2752,
4324,
3
4
],
"unlabeledArg": null,
"labeledArgs": {},
@ -1455,7 +2235,7 @@ description: Operations executed car-wheel-assembly.kcl
"functionSourceRange": [
2752,
4324,
3
4
],
"unlabeledArg": null,
"labeledArgs": {},
@ -1880,7 +2660,7 @@ description: Operations executed car-wheel-assembly.kcl
"functionSourceRange": [
666,
1293,
6
7
],
"unlabeledArg": null,
"labeledArgs": {},

View File

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

View File

@ -132,6 +132,66 @@ description: Operations executed cycloidal-gear.kcl
{
"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": {
"holeSketch": {
@ -272,6 +332,66 @@ description: Operations executed cycloidal-gear.kcl
{
"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": {
"holeSketch": {
@ -418,6 +538,66 @@ description: Operations executed cycloidal-gear.kcl
{
"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": {
"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",
"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": {
"data": {
@ -33,6 +87,66 @@ description: Operations executed flange.kcl
"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.3125,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"holeSketch": {
@ -138,6 +252,66 @@ description: Operations executed flange.kcl
"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": 1.1565,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {
@ -194,6 +368,66 @@ description: Operations executed flange.kcl
"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": 1.25,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {
@ -250,6 +484,66 @@ description: Operations executed flange.kcl
"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": 0.625,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {

View File

@ -488,6 +488,54 @@ description: Operations executed focusrite-scarlett-mounting-bracket.kcl
"type": "StdLibCall",
"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": {
"holeSketch": {
@ -874,6 +922,54 @@ description: Operations executed focusrite-scarlett-mounting-bracket.kcl
"type": "StdLibCall",
"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": {
"holeSketch": {

View File

@ -480,6 +480,66 @@ description: Operations executed french-press.kcl
"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.055,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {
@ -706,6 +766,132 @@ description: Operations executed french-press.kcl
"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": 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": {
"holeSketch": {
@ -788,6 +974,72 @@ description: Operations executed french-press.kcl
"type": "StdLibCall",
"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": {
"length": {
@ -891,6 +1143,72 @@ description: Operations executed french-press.kcl
"type": "StdLibCall",
"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": {
"length": {
@ -961,6 +1279,66 @@ description: Operations executed french-press.kcl
"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.205,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {

View File

@ -4623,6 +4623,66 @@ description: Operations executed gear.kcl
"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": 4.933386259126019,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {

View File

@ -1065,6 +1065,54 @@ description: Operations executed gridfinity-baseplate-magnets.kcl
"type": "StdLibCall",
"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",
"name": "magnetBase",

View File

@ -657,6 +657,66 @@ description: Operations executed gridfinity-bins-stacking-lip.kcl
"type": "StdLibCall",
"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": {
"length": {

View File

@ -657,6 +657,66 @@ description: Operations executed gridfinity-bins.kcl
"type": "StdLibCall",
"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": {
"length": {

View File

@ -30,6 +30,66 @@ description: Operations executed hex-nut.kcl
"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": 0.15625,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"holeSketch": {

View File

@ -133,6 +133,294 @@ description: Operations executed keyboard.kcl
"type": "StdLibCall",
"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": {
"length": {

View File

@ -124,6 +124,54 @@ description: Operations executed lego.kcl
"type": "StdLibCall",
"unlabeledArg": null
},
{
"type": "UserDefinedFunctionCall",
"name": "circle",
"functionSourceRange": [
0,
0,
0
],
"unlabeledArg": null,
"labeledArgs": {
"center": {
"value": {
"type": "Array",
"value": [
{
"type": "Number",
"value": -4.0,
"ty": {
"type": "Unknown"
}
},
{
"type": "Number",
"value": -12.0,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.4,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {
@ -227,6 +275,54 @@ description: Operations executed lego.kcl
"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": "Unknown"
}
},
{
"type": "Number",
"value": -8.0,
"ty": {
"type": "Unknown"
}
}
]
},
"sourceRange": []
},
"radius": {
"value": {
"type": "Number",
"value": 2.4,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {

View File

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

View File

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

View File

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

View File

@ -417,6 +417,72 @@ description: Operations executed sheet-metal-bracket.kcl
"type": "StdLibCall",
"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": {
"holeSketch": {
@ -443,6 +509,72 @@ description: Operations executed sheet-metal-bracket.kcl
"type": "StdLibCall",
"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": {
"holeSketch": {
@ -564,6 +696,72 @@ description: Operations executed sheet-metal-bracket.kcl
"type": "StdLibCall",
"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": {
"holeSketch": {
@ -590,6 +788,72 @@ description: Operations executed sheet-metal-bracket.kcl
"type": "StdLibCall",
"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": {
"holeSketch": {

View File

@ -45,6 +45,73 @@ description: Operations executed socket-head-cap-screw.kcl
"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": 0.1565,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "topEdge"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {
@ -200,6 +267,73 @@ description: Operations executed socket-head-cap-screw.kcl
"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": 0.095,
"ty": {
"type": "Unknown"
}
},
"sourceRange": []
},
"tag": {
"value": {
"type": "TagDeclarator",
"name": "filletEdge"
},
"sourceRange": []
}
},
"sourceRange": []
},
{
"type": "UserDefinedFunctionReturn"
},
{
"labeledArgs": {
"length": {

View File

@ -1,186 +1,186 @@
```mermaid
flowchart LR
subgraph path2 [Path]
2["Path<br>[415, 458, 4]"]
3["Segment<br>[466, 504, 4]"]
4["Segment<br>[512, 552, 4]"]
5["Segment<br>[560, 599, 4]"]
6["Segment<br>[607, 629, 4]"]
2["Path<br>[415, 458, 5]"]
3["Segment<br>[466, 504, 5]"]
4["Segment<br>[512, 552, 5]"]
5["Segment<br>[560, 599, 5]"]
6["Segment<br>[607, 629, 5]"]
7[Solid2d]
end
subgraph path27 [Path]
27["Path<br>[1038, 1169, 4]"]
28["Segment<br>[1177, 1235, 4]"]
29["Segment<br>[1243, 1374, 4]"]
30["Segment<br>[1382, 1440, 4]"]
31["Segment<br>[1448, 1582, 4]"]
32["Segment<br>[1590, 1676, 4]"]
33["Segment<br>[1684, 1819, 4]"]
34["Segment<br>[1827, 1912, 4]"]
35["Segment<br>[1920, 1927, 4]"]
27["Path<br>[1038, 1169, 5]"]
28["Segment<br>[1177, 1235, 5]"]
29["Segment<br>[1243, 1374, 5]"]
30["Segment<br>[1382, 1440, 5]"]
31["Segment<br>[1448, 1582, 5]"]
32["Segment<br>[1590, 1676, 5]"]
33["Segment<br>[1684, 1819, 5]"]
34["Segment<br>[1827, 1912, 5]"]
35["Segment<br>[1920, 1927, 5]"]
36[Solid2d]
end
subgraph path63 [Path]
63["Path<br>[2077, 2131, 4]"]
64["Segment<br>[2139, 2180, 4]"]
65["Segment<br>[2188, 2217, 4]"]
66["Segment<br>[2225, 2255, 4]"]
67["Segment<br>[2263, 2319, 4]"]
68["Segment<br>[2327, 2334, 4]"]
63["Path<br>[2077, 2131, 5]"]
64["Segment<br>[2139, 2180, 5]"]
65["Segment<br>[2188, 2217, 5]"]
66["Segment<br>[2225, 2255, 5]"]
67["Segment<br>[2263, 2319, 5]"]
68["Segment<br>[2327, 2334, 5]"]
69[Solid2d]
end
subgraph path84 [Path]
84["Path<br>[2478, 2515, 4]"]
85["Segment<br>[2523, 2554, 4]"]
86["Segment<br>[2562, 2595, 4]"]
87["Segment<br>[2603, 2635, 4]"]
88["Segment<br>[2643, 2650, 4]"]
84["Path<br>[2478, 2515, 5]"]
85["Segment<br>[2523, 2554, 5]"]
86["Segment<br>[2562, 2595, 5]"]
87["Segment<br>[2603, 2635, 5]"]
88["Segment<br>[2643, 2650, 5]"]
89[Solid2d]
end
subgraph path105 [Path]
105["Path<br>[294, 319, 7]"]
106["Segment<br>[327, 360, 7]"]
107["Segment<br>[368, 403, 7]"]
108["Segment<br>[411, 445, 7]"]
109["Segment<br>[453, 460, 7]"]
105["Path<br>[294, 319, 8]"]
106["Segment<br>[327, 360, 8]"]
107["Segment<br>[368, 403, 8]"]
108["Segment<br>[411, 445, 8]"]
109["Segment<br>[453, 460, 8]"]
110[Solid2d]
end
subgraph path112 [Path]
112["Path<br>[604, 736, 7]"]
112["Path<br>[604, 736, 8]"]
117[Solid2d]
end
subgraph path130 [Path]
130["Path<br>[501, 555, 5]"]
131["Segment<br>[563, 590, 5]"]
132["Segment<br>[598, 627, 5]"]
133["Segment<br>[635, 663, 5]"]
134["Segment<br>[671, 727, 5]"]
135["Segment<br>[735, 742, 5]"]
130["Path<br>[501, 555, 6]"]
131["Segment<br>[563, 590, 6]"]
132["Segment<br>[598, 627, 6]"]
133["Segment<br>[635, 663, 6]"]
134["Segment<br>[671, 727, 6]"]
135["Segment<br>[735, 742, 6]"]
136[Solid2d]
end
subgraph path138 [Path]
138["Path<br>[1052, 1099, 5]"]
139["Segment<br>[1107, 1148, 5]"]
140["Segment<br>[1156, 1198, 5]"]
141["Segment<br>[1206, 1248, 5]"]
142["Segment<br>[1256, 1263, 5]"]
138["Path<br>[1052, 1099, 6]"]
139["Segment<br>[1107, 1148, 6]"]
140["Segment<br>[1156, 1198, 6]"]
141["Segment<br>[1206, 1248, 6]"]
142["Segment<br>[1256, 1263, 6]"]
143[Solid2d]
end
subgraph path145 [Path]
145["Path<br>[1555, 1720, 5]"]
146["Segment<br>[1728, 1829, 5]"]
147["Segment<br>[1837, 2004, 5]"]
148["Segment<br>[2012, 2113, 5]"]
149["Segment<br>[2121, 2291, 5]"]
150["Segment<br>[2299, 2401, 5]"]
151["Segment<br>[2409, 2578, 5]"]
152["Segment<br>[2586, 2687, 5]"]
153["Segment<br>[2695, 2702, 5]"]
145["Path<br>[1555, 1720, 6]"]
146["Segment<br>[1728, 1829, 6]"]
147["Segment<br>[1837, 2004, 6]"]
148["Segment<br>[2012, 2113, 6]"]
149["Segment<br>[2121, 2291, 6]"]
150["Segment<br>[2299, 2401, 6]"]
151["Segment<br>[2409, 2578, 6]"]
152["Segment<br>[2586, 2687, 6]"]
153["Segment<br>[2695, 2702, 6]"]
154[Solid2d]
end
subgraph path156 [Path]
156["Path<br>[123, 210, 6]"]
157["Segment<br>[218, 247, 6]"]
158["Segment<br>[255, 283, 6]"]
159["Segment<br>[291, 388, 6]"]
160["Segment<br>[396, 443, 6]"]
161["Segment<br>[451, 479, 6]"]
162["Segment<br>[487, 516, 6]"]
163["Segment<br>[524, 553, 6]"]
164["Segment<br>[561, 652, 6]"]
165["Segment<br>[660, 688, 6]"]
166["Segment<br>[696, 725, 6]"]
167["Segment<br>[733, 821, 6]"]
168["Segment<br>[829, 857, 6]"]
169["Segment<br>[865, 899, 6]"]
170["Segment<br>[907, 937, 6]"]
171["Segment<br>[945, 1054, 6]"]
172["Segment<br>[1062, 1069, 6]"]
156["Path<br>[123, 210, 7]"]
157["Segment<br>[218, 247, 7]"]
158["Segment<br>[255, 283, 7]"]
159["Segment<br>[291, 388, 7]"]
160["Segment<br>[396, 443, 7]"]
161["Segment<br>[451, 479, 7]"]
162["Segment<br>[487, 516, 7]"]
163["Segment<br>[524, 553, 7]"]
164["Segment<br>[561, 652, 7]"]
165["Segment<br>[660, 688, 7]"]
166["Segment<br>[696, 725, 7]"]
167["Segment<br>[733, 821, 7]"]
168["Segment<br>[829, 857, 7]"]
169["Segment<br>[865, 899, 7]"]
170["Segment<br>[907, 937, 7]"]
171["Segment<br>[945, 1054, 7]"]
172["Segment<br>[1062, 1069, 7]"]
173[Solid2d]
end
subgraph path175 [Path]
175["Path<br>[1203, 1301, 6]"]
176["Segment<br>[1309, 1428, 6]"]
177["Segment<br>[1436, 1490, 6]"]
178["Segment<br>[1498, 1619, 6]"]
179["Segment<br>[1627, 1634, 6]"]
175["Path<br>[1203, 1301, 7]"]
176["Segment<br>[1309, 1428, 7]"]
177["Segment<br>[1436, 1490, 7]"]
178["Segment<br>[1498, 1619, 7]"]
179["Segment<br>[1627, 1634, 7]"]
180[Solid2d]
end
subgraph path182 [Path]
182["Path<br>[1731, 1828, 6]"]
183["Segment<br>[1836, 1955, 6]"]
184["Segment<br>[1963, 2018, 6]"]
185["Segment<br>[2026, 2147, 6]"]
186["Segment<br>[2155, 2162, 6]"]
182["Path<br>[1731, 1828, 7]"]
183["Segment<br>[1836, 1955, 7]"]
184["Segment<br>[1963, 2018, 7]"]
185["Segment<br>[2026, 2147, 7]"]
186["Segment<br>[2155, 2162, 7]"]
187[Solid2d]
end
subgraph path189 [Path]
189["Path<br>[1203, 1301, 6]"]
190["Segment<br>[1309, 1428, 6]"]
191["Segment<br>[1436, 1490, 6]"]
192["Segment<br>[1498, 1619, 6]"]
193["Segment<br>[1627, 1634, 6]"]
189["Path<br>[1203, 1301, 7]"]
190["Segment<br>[1309, 1428, 7]"]
191["Segment<br>[1436, 1490, 7]"]
192["Segment<br>[1498, 1619, 7]"]
193["Segment<br>[1627, 1634, 7]"]
194[Solid2d]
end
subgraph path196 [Path]
196["Path<br>[1731, 1828, 6]"]
197["Segment<br>[1836, 1955, 6]"]
198["Segment<br>[1963, 2018, 6]"]
199["Segment<br>[2026, 2147, 6]"]
200["Segment<br>[2155, 2162, 6]"]
196["Path<br>[1731, 1828, 7]"]
197["Segment<br>[1836, 1955, 7]"]
198["Segment<br>[1963, 2018, 7]"]
199["Segment<br>[2026, 2147, 7]"]
200["Segment<br>[2155, 2162, 7]"]
201[Solid2d]
end
subgraph path230 [Path]
230["Path<br>[292, 391, 8]"]
231["Segment<br>[399, 448, 8]"]
232["Segment<br>[456, 506, 8]"]
233["Segment<br>[514, 564, 8]"]
234["Segment<br>[572, 590, 8]"]
230["Path<br>[292, 391, 9]"]
231["Segment<br>[399, 448, 9]"]
232["Segment<br>[456, 506, 9]"]
233["Segment<br>[514, 564, 9]"]
234["Segment<br>[572, 590, 9]"]
235[Solid2d]
end
subgraph path256 [Path]
256["Path<br>[322, 352, 9]"]
257["Segment<br>[358, 390, 9]"]
258["Segment<br>[396, 429, 9]"]
259["Segment<br>[435, 516, 9]"]
260["Segment<br>[522, 549, 9]"]
261["Segment<br>[555, 562, 9]"]
256["Path<br>[322, 352, 10]"]
257["Segment<br>[358, 390, 10]"]
258["Segment<br>[396, 429, 10]"]
259["Segment<br>[435, 516, 10]"]
260["Segment<br>[522, 549, 10]"]
261["Segment<br>[555, 562, 10]"]
262[Solid2d]
end
subgraph path274 [Path]
274["Path<br>[314, 339, 10]"]
275["Segment<br>[347, 431, 10]"]
276["Segment<br>[439, 524, 10]"]
277["Segment<br>[532, 607, 10]"]
278["Segment<br>[615, 622, 10]"]
274["Path<br>[314, 339, 11]"]
275["Segment<br>[347, 431, 11]"]
276["Segment<br>[439, 524, 11]"]
277["Segment<br>[532, 607, 11]"]
278["Segment<br>[615, 622, 11]"]
279[Solid2d]
end
subgraph path298 [Path]
298["Path<br>[314, 339, 10]"]
299["Segment<br>[347, 431, 10]"]
300["Segment<br>[439, 524, 10]"]
301["Segment<br>[532, 607, 10]"]
302["Segment<br>[615, 622, 10]"]
298["Path<br>[314, 339, 11]"]
299["Segment<br>[347, 431, 11]"]
300["Segment<br>[439, 524, 11]"]
301["Segment<br>[532, 607, 11]"]
302["Segment<br>[615, 622, 11]"]
303[Solid2d]
end
subgraph path322 [Path]
322["Path<br>[314, 339, 10]"]
323["Segment<br>[347, 431, 10]"]
324["Segment<br>[439, 524, 10]"]
325["Segment<br>[532, 607, 10]"]
326["Segment<br>[615, 622, 10]"]
322["Path<br>[314, 339, 11]"]
323["Segment<br>[347, 431, 11]"]
324["Segment<br>[439, 524, 11]"]
325["Segment<br>[532, 607, 11]"]
326["Segment<br>[615, 622, 11]"]
327[Solid2d]
end
subgraph path346 [Path]
346["Path<br>[314, 339, 10]"]
347["Segment<br>[347, 431, 10]"]
348["Segment<br>[439, 524, 10]"]
349["Segment<br>[532, 607, 10]"]
350["Segment<br>[615, 622, 10]"]
346["Path<br>[314, 339, 11]"]
347["Segment<br>[347, 431, 11]"]
348["Segment<br>[439, 524, 11]"]
349["Segment<br>[532, 607, 11]"]
350["Segment<br>[615, 622, 11]"]
351[Solid2d]
end
1["Plane<br>[388, 407, 4]"]
8["Sweep Extrusion<br>[646, 685, 4]"]
1["Plane<br>[388, 407, 5]"]
8["Sweep Extrusion<br>[646, 685, 5]"]
9[Wall]
10[Wall]
11[Wall]
@ -195,11 +195,11 @@ flowchart LR
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
23["EdgeCut Chamfer<br>[693, 939, 4]"]
24["EdgeCut Chamfer<br>[693, 939, 4]"]
25["EdgeCut Chamfer<br>[693, 939, 4]"]
26["EdgeCut Chamfer<br>[693, 939, 4]"]
37["Sweep Extrusion<br>[1943, 1979, 4]"]
23["EdgeCut Chamfer<br>[693, 939, 5]"]
24["EdgeCut Chamfer<br>[693, 939, 5]"]
25["EdgeCut Chamfer<br>[693, 939, 5]"]
26["EdgeCut Chamfer<br>[693, 939, 5]"]
37["Sweep Extrusion<br>[1943, 1979, 5]"]
38[Wall]
39[Wall]
40[Wall]
@ -225,7 +225,7 @@ flowchart LR
60["SweepEdge Adjacent"]
61["SweepEdge Opposite"]
62["SweepEdge Adjacent"]
70["Sweep Extrusion<br>[2350, 2390, 4]"]
70["Sweep Extrusion<br>[2350, 2390, 5]"]
71[Wall]
72[Wall]
73[Wall]
@ -239,7 +239,7 @@ flowchart LR
81["SweepEdge Adjacent"]
82["SweepEdge Opposite"]
83["SweepEdge Adjacent"]
90["Sweep Extrusion<br>[2661, 2693, 4]"]
90["Sweep Extrusion<br>[2661, 2693, 5]"]
91[Wall]
92[Wall]
93[Wall]
@ -253,13 +253,13 @@ flowchart LR
101["SweepEdge Adjacent"]
102["SweepEdge Opposite"]
103["SweepEdge Adjacent"]
104["Plane<br>[267, 286, 7]"]
111["Plane<br>[513, 554, 7]"]
104["Plane<br>[267, 286, 8]"]
111["Plane<br>[513, 554, 8]"]
113["SweepEdge Opposite"]
114["SweepEdge Opposite"]
115["SweepEdge Opposite"]
116["SweepEdge Opposite"]
118["Sweep Loft<br>[924, 952, 7]"]
118["Sweep Loft<br>[924, 952, 8]"]
119[Wall]
120[Wall]
121[Wall]
@ -270,15 +270,15 @@ flowchart LR
126["SweepEdge Adjacent"]
127["SweepEdge Adjacent"]
128["SweepEdge Adjacent"]
129["Plane<br>[473, 492, 5]"]
137["Plane<br>[1024, 1043, 5]"]
144["Plane<br>[1527, 1546, 5]"]
155["Plane<br>[2815, 2834, 5]"]
174["Plane<br>[2879, 2898, 5]"]
181["Plane<br>[2945, 2964, 5]"]
188["Plane<br>[3010, 3029, 5]"]
195["Plane<br>[3075, 3094, 5]"]
202["Sweep Extrusion<br>[3133, 3169, 5]"]
129["Plane<br>[473, 492, 6]"]
137["Plane<br>[1024, 1043, 6]"]
144["Plane<br>[1527, 1546, 6]"]
155["Plane<br>[2815, 2834, 6]"]
174["Plane<br>[2879, 2898, 6]"]
181["Plane<br>[2945, 2964, 6]"]
188["Plane<br>[3010, 3029, 6]"]
195["Plane<br>[3075, 3094, 6]"]
202["Sweep Extrusion<br>[3133, 3169, 6]"]
203[Wall]
204[Wall]
205[Wall]
@ -305,8 +305,8 @@ flowchart LR
226["SweepEdge Adjacent"]
227["SweepEdge Opposite"]
228["SweepEdge Adjacent"]
229["Plane<br>[265, 284, 8]"]
236["Sweep Extrusion<br>[653, 705, 8]"]
229["Plane<br>[265, 284, 9]"]
236["Sweep Extrusion<br>[653, 705, 9]"]
237[Wall]
238[Wall]
239[Wall]
@ -321,12 +321,12 @@ flowchart LR
248["SweepEdge Adjacent"]
249["SweepEdge Opposite"]
250["SweepEdge Adjacent"]
251["EdgeCut Fillet<br>[713, 910, 8]"]
252["EdgeCut Fillet<br>[713, 910, 8]"]
253["EdgeCut Fillet<br>[713, 910, 8]"]
254["EdgeCut Fillet<br>[713, 910, 8]"]
255["Plane<br>[297, 316, 9]"]
263["Sweep Revolve<br>[568, 596, 9]"]
251["EdgeCut Fillet<br>[713, 910, 9]"]
252["EdgeCut Fillet<br>[713, 910, 9]"]
253["EdgeCut Fillet<br>[713, 910, 9]"]
254["EdgeCut Fillet<br>[713, 910, 9]"]
255["Plane<br>[297, 316, 10]"]
263["Sweep Revolve<br>[568, 596, 10]"]
264[Wall]
265[Wall]
266[Wall]
@ -336,8 +336,8 @@ flowchart LR
270["SweepEdge Adjacent"]
271["SweepEdge Adjacent"]
272["SweepEdge Adjacent"]
273["Plane<br>[287, 306, 10]"]
280["Sweep Extrusion<br>[641, 688, 10]"]
273["Plane<br>[287, 306, 11]"]
280["Sweep Extrusion<br>[641, 688, 11]"]
281[Wall]
282[Wall]
283[Wall]
@ -352,10 +352,10 @@ flowchart LR
292["SweepEdge Adjacent"]
293["SweepEdge Opposite"]
294["SweepEdge Adjacent"]
295["EdgeCut Chamfer<br>[696, 841, 10]"]
296["EdgeCut Chamfer<br>[696, 841, 10]"]
297["Plane<br>[287, 306, 10]"]
304["Sweep Extrusion<br>[641, 688, 10]"]
295["EdgeCut Chamfer<br>[696, 841, 11]"]
296["EdgeCut Chamfer<br>[696, 841, 11]"]
297["Plane<br>[287, 306, 11]"]
304["Sweep Extrusion<br>[641, 688, 11]"]
305[Wall]
306[Wall]
307[Wall]
@ -370,10 +370,10 @@ flowchart LR
316["SweepEdge Adjacent"]
317["SweepEdge Opposite"]
318["SweepEdge Adjacent"]
319["EdgeCut Chamfer<br>[696, 841, 10]"]
320["EdgeCut Chamfer<br>[696, 841, 10]"]
321["Plane<br>[287, 306, 10]"]
328["Sweep Extrusion<br>[641, 688, 10]"]
319["EdgeCut Chamfer<br>[696, 841, 11]"]
320["EdgeCut Chamfer<br>[696, 841, 11]"]
321["Plane<br>[287, 306, 11]"]
328["Sweep Extrusion<br>[641, 688, 11]"]
329[Wall]
330[Wall]
331[Wall]
@ -388,10 +388,10 @@ flowchart LR
340["SweepEdge Adjacent"]
341["SweepEdge Opposite"]
342["SweepEdge Adjacent"]
343["EdgeCut Chamfer<br>[696, 841, 10]"]
344["EdgeCut Chamfer<br>[696, 841, 10]"]
345["Plane<br>[287, 306, 10]"]
352["Sweep Extrusion<br>[641, 688, 10]"]
343["EdgeCut Chamfer<br>[696, 841, 11]"]
344["EdgeCut Chamfer<br>[696, 841, 11]"]
345["Plane<br>[287, 306, 11]"]
352["Sweep Extrusion<br>[641, 688, 11]"]
353[Wall]
354[Wall]
355[Wall]
@ -406,18 +406,18 @@ flowchart LR
364["SweepEdge Adjacent"]
365["SweepEdge Opposite"]
366["SweepEdge Adjacent"]
367["EdgeCut Chamfer<br>[696, 841, 10]"]
368["EdgeCut Chamfer<br>[696, 841, 10]"]
369["StartSketchOnFace<br>[997, 1030, 4]"]
370["StartSketchOnFace<br>[2035, 2069, 4]"]
371["StartSketchOnFace<br>[2436, 2470, 4]"]
372["StartSketchOnFace<br>[997, 1030, 4]"]
373["StartSketchOnFace<br>[2035, 2069, 4]"]
374["StartSketchOnFace<br>[2436, 2470, 4]"]
375["StartSketchOnPlane<br>[572, 596, 7]"]
376["StartSketchOnPlane<br>[459, 493, 5]"]
377["StartSketchOnPlane<br>[1010, 1044, 5]"]
378["StartSketchOnPlane<br>[1513, 1547, 5]"]
367["EdgeCut Chamfer<br>[696, 841, 11]"]
368["EdgeCut Chamfer<br>[696, 841, 11]"]
369["StartSketchOnFace<br>[997, 1030, 5]"]
370["StartSketchOnFace<br>[2035, 2069, 5]"]
371["StartSketchOnFace<br>[2436, 2470, 5]"]
372["StartSketchOnFace<br>[997, 1030, 5]"]
373["StartSketchOnFace<br>[2035, 2069, 5]"]
374["StartSketchOnFace<br>[2436, 2470, 5]"]
375["StartSketchOnPlane<br>[572, 596, 8]"]
376["StartSketchOnPlane<br>[459, 493, 6]"]
377["StartSketchOnPlane<br>[1010, 1044, 6]"]
378["StartSketchOnPlane<br>[1513, 1547, 6]"]
1 --- 2
2 --- 3
2 --- 4

View File

@ -9,7 +9,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
313,
2759,
4
5
],
"unlabeledArg": null,
"labeledArgs": {},
@ -355,7 +355,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
313,
2759,
4
5
],
"unlabeledArg": null,
"labeledArgs": {},
@ -701,7 +701,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
212,
1011,
7
8
],
"unlabeledArg": null,
"labeledArgs": {},
@ -804,7 +804,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
401,
3254,
5
6
],
"unlabeledArg": null,
"labeledArgs": {},
@ -1890,7 +1890,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
69,
1088,
6
7
],
"unlabeledArg": null,
"labeledArgs": {},
@ -1946,7 +1946,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
1146,
1656,
6
7
],
"unlabeledArg": null,
"labeledArgs": {},
@ -2002,7 +2002,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
1674,
2184,
6
7
],
"unlabeledArg": null,
"labeledArgs": {},
@ -2058,7 +2058,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
1146,
1656,
6
7
],
"unlabeledArg": null,
"labeledArgs": {},
@ -2114,7 +2114,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
1674,
2184,
6
7
],
"unlabeledArg": null,
"labeledArgs": {},
@ -2190,7 +2190,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
203,
1002,
8
9
],
"unlabeledArg": null,
"labeledArgs": {},
@ -2308,7 +2308,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
246,
681,
9
10
],
"unlabeledArg": null,
"labeledArgs": {},
@ -2361,7 +2361,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
221,
905,
10
11
],
"unlabeledArg": null,
"labeledArgs": {},
@ -2471,7 +2471,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
221,
905,
10
11
],
"unlabeledArg": null,
"labeledArgs": {},
@ -2581,7 +2581,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
221,
905,
10
11
],
"unlabeledArg": null,
"labeledArgs": {},
@ -2691,7 +2691,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [
221,
905,
10
11
],
"unlabeledArg": null,
"labeledArgs": {},

View File

@ -30,6 +30,126 @@ description: Operations executed washer.kcl
"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": 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": {
"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
---
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",
"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": {
"angle": {

View File

@ -45,6 +45,73 @@ description: Operations executed rotate_after_fillet.kcl
"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": "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": {
"length": {
@ -200,6 +267,73 @@ description: Operations executed rotate_after_fillet.kcl
"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": "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": {
"length": {

View File

@ -45,6 +45,73 @@ description: Operations executed scale_after_fillet.kcl
"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": "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": {
"length": {
@ -200,6 +267,73 @@ description: Operations executed scale_after_fillet.kcl
"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": "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": {
"length": {

View File

@ -89,6 +89,79 @@ description: Operations executed sketch_on_face_circle_tagged.kcl
"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": "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": {
"length": {

View File

@ -75,6 +75,72 @@ description: Operations executed ssi_pattern.kcl
"type": "StdLibCall",
"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": {
"length": {

View File

@ -45,6 +45,73 @@ description: Operations executed translate_after_fillet.kcl
"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": "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": {
"length": {
@ -200,6 +267,73 @@ description: Operations executed translate_after_fillet.kcl
"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": "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": {
"length": {

View File

@ -810,7 +810,7 @@ export function addHelix({
node,
revolutions,
angleStart,
counterClockWise,
ccw,
radius,
axis,
length,
@ -820,7 +820,7 @@ export function addHelix({
node: Node<Program>
revolutions: Expr
angleStart: Expr
counterClockWise: boolean
ccw: boolean
radius: Expr
axis: string
length: Expr
@ -838,7 +838,7 @@ export function addHelix({
[
createLabeledArg('revolutions', revolutions),
createLabeledArg('angleStart', angleStart),
createLabeledArg('counterClockWise', createLiteral(counterClockWise)),
createLabeledArg('ccw', createLiteral(ccw)),
createLabeledArg('radius', radius),
createLabeledArg('axis', createLiteral(axis)),
createLabeledArg('length', length),

View File

@ -99,7 +99,7 @@ export type ModelingCommandSchema = {
// KCL stdlib arguments
revolutions: KclCommandValue
angleStart: KclCommandValue
counterClockWise: boolean
ccw: boolean
radius: KclCommandValue
axis: string
length: KclCommandValue
@ -544,7 +544,7 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig<
defaultValue: KCL_DEFAULT_DEGREE,
required: true,
},
counterClockWise: {
ccw: {
inputType: 'options',
required: true,
defaultValue: false,

View File

@ -487,15 +487,12 @@ const prepareToEditHelix: PrepareToEditCallback = async ({ operation }) => {
if (err(angleStart) || 'errors' in angleStart) return baseCommand
// counterClockWise options boolean arg
if (
!('counterClockWise' in operation.labeledArgs) ||
!operation.labeledArgs.counterClockWise
)
if (!('ccw' in operation.labeledArgs) || !operation.labeledArgs.ccw)
return baseCommand
const counterClockWise =
const ccw =
codeManager.code.slice(
operation.labeledArgs.counterClockWise.sourceRange[0],
operation.labeledArgs.counterClockWise.sourceRange[1]
operation.labeledArgs.ccw.sourceRange[0],
operation.labeledArgs.ccw.sourceRange[1]
) === 'true'
// radius kcl arg
@ -536,7 +533,7 @@ const prepareToEditHelix: PrepareToEditCallback = async ({ operation }) => {
const argDefaultValues: ModelingCommandSchema['Helix'] = {
revolutions,
angleStart,
counterClockWise,
ccw,
radius,
axis,
length,

View File

@ -1906,7 +1906,7 @@ export const modelingMachine = setup({
const {
revolutions,
angleStart,
counterClockWise,
ccw,
radius,
axis,
length,
@ -1962,7 +1962,7 @@ export const modelingMachine = setup({
node: ast,
revolutions: valueOrVariable(revolutions),
angleStart: valueOrVariable(angleStart),
counterClockWise,
ccw,
radius: valueOrVariable(radius),
axis,
length: valueOrVariable(length),