Move turns to a submodule of std (#6039)

* Move turns to a submodule of std

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

* Cache module infos as well as memory; fix a bug with deprecated constants

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-30 11:10:44 +13:00
committed by GitHub
parent 51c16d0048
commit db5ce7ba85
56 changed files with 2678 additions and 2637 deletions

View File

@ -9,13 +9,9 @@ layout: manual
### `std` ### `std`
- [`HALF_TURN`](/docs/kcl/consts/std-HALF_TURN)
- [`QUARTER_TURN`](/docs/kcl/consts/std-QUARTER_TURN)
- [`THREE_QUARTER_TURN`](/docs/kcl/consts/std-THREE_QUARTER_TURN)
- [`XY`](/docs/kcl/consts/std-XY) - [`XY`](/docs/kcl/consts/std-XY)
- [`XZ`](/docs/kcl/consts/std-XZ) - [`XZ`](/docs/kcl/consts/std-XZ)
- [`YZ`](/docs/kcl/consts/std-YZ) - [`YZ`](/docs/kcl/consts/std-YZ)
- [`ZERO`](/docs/kcl/consts/std-ZERO)
### `std::math` ### `std::math`
@ -23,3 +19,10 @@ layout: manual
- [`PI`](/docs/kcl/consts/std-math-PI) - [`PI`](/docs/kcl/consts/std-math-PI)
- [`TAU`](/docs/kcl/consts/std-math-TAU) - [`TAU`](/docs/kcl/consts/std-math-TAU)
### `std::turns`
- [`HALF_TURN`](/docs/kcl/consts/std-turns-HALF_TURN)
- [`QUARTER_TURN`](/docs/kcl/consts/std-turns-QUARTER_TURN)
- [`THREE_QUARTER_TURN`](/docs/kcl/consts/std-turns-THREE_QUARTER_TURN)
- [`ZERO`](/docs/kcl/consts/std-turns-ZERO)

View File

@ -1,15 +0,0 @@
---
title: "std::HALF_TURN"
excerpt: ""
layout: manual
---
```js
std::HALF_TURN: number(deg) = 180deg
```

View File

@ -1,15 +0,0 @@
---
title: "std::QUARTER_TURN"
excerpt: ""
layout: manual
---
```js
std::QUARTER_TURN: number(deg) = 90deg
```

View File

@ -1,15 +0,0 @@
---
title: "std::THREE_QUARTER_TURN"
excerpt: ""
layout: manual
---
```js
std::THREE_QUARTER_TURN: number(deg) = 270deg
```

View File

@ -1,15 +0,0 @@
---
title: "std::ZERO"
excerpt: ""
layout: manual
---
```js
std::ZERO: number = 0
```

View File

@ -0,0 +1,15 @@
---
title: "std::turns::HALF_TURN"
excerpt: ""
layout: manual
---
```js
std::turns::HALF_TURN: number(deg) = 180deg
```

View File

@ -0,0 +1,15 @@
---
title: "std::turns::QUARTER_TURN"
excerpt: ""
layout: manual
---
```js
std::turns::QUARTER_TURN: number(deg) = 90deg
```

View File

@ -0,0 +1,15 @@
---
title: "std::turns::THREE_QUARTER_TURN"
excerpt: ""
layout: manual
---
```js
std::turns::THREE_QUARTER_TURN: number(deg) = 270deg
```

View File

@ -0,0 +1,15 @@
---
title: "std::turns::ZERO"
excerpt: ""
layout: manual
---
```js
std::turns::ZERO: number = 0
```

View File

@ -23,19 +23,15 @@ layout: manual
* [`tag`](kcl/types/tag) * [`tag`](kcl/types/tag)
* **std** * **std**
* [`Face`](kcl/types/Face) * [`Face`](kcl/types/Face)
* [`HALF_TURN`](kcl/consts/std-HALF_TURN)
* [`Helix`](kcl/types/Helix) * [`Helix`](kcl/types/Helix)
* [`Plane`](kcl/types/Plane) * [`Plane`](kcl/types/Plane)
* [`Point2d`](kcl/types/Point2d) * [`Point2d`](kcl/types/Point2d)
* [`Point3d`](kcl/types/Point3d) * [`Point3d`](kcl/types/Point3d)
* [`QUARTER_TURN`](kcl/consts/std-QUARTER_TURN)
* [`Sketch`](kcl/types/Sketch) * [`Sketch`](kcl/types/Sketch)
* [`Solid`](kcl/types/Solid) * [`Solid`](kcl/types/Solid)
* [`THREE_QUARTER_TURN`](kcl/consts/std-THREE_QUARTER_TURN)
* [`XY`](kcl/consts/std-XY) * [`XY`](kcl/consts/std-XY)
* [`XZ`](kcl/consts/std-XZ) * [`XZ`](kcl/consts/std-XZ)
* [`YZ`](kcl/consts/std-YZ) * [`YZ`](kcl/consts/std-YZ)
* [`ZERO`](kcl/consts/std-ZERO)
* [`abs`](kcl/abs) * [`abs`](kcl/abs)
* [`acos`](kcl/acos) * [`acos`](kcl/acos)
* [`angleToMatchLengthX`](kcl/angleToMatchLengthX) * [`angleToMatchLengthX`](kcl/angleToMatchLengthX)
@ -146,3 +142,8 @@ layout: manual
* [`tan`](kcl/std-math-tan) * [`tan`](kcl/std-math-tan)
* **std::sketch** * **std::sketch**
* [`circle`](kcl/std-sketch-circle) * [`circle`](kcl/std-sketch-circle)
* **std::turns**
* [`turns::HALF_TURN`](kcl/consts/std-turns-HALF_TURN)
* [`turns::QUARTER_TURN`](kcl/consts/std-turns-QUARTER_TURN)
* [`turns::THREE_QUARTER_TURN`](kcl/consts/std-turns-THREE_QUARTER_TURN)
* [`turns::ZERO`](kcl/consts/std-turns-ZERO)

View File

@ -76,11 +76,11 @@ part001 = startSketchOn(-XZ)
|> xLine(endAbsolute = totalLen, tag = $seg03) |> xLine(endAbsolute = totalLen, tag = $seg03)
|> yLine(length = -armThick, tag = $seg01) |> yLine(length = -armThick, tag = $seg01)
|> angledLineThatIntersects({ |> angledLineThatIntersects({
angle = HALF_TURN, angle = turns::HALF_TURN,
offset = -armThick, offset = -armThick,
intersectTag = seg04 intersectTag = seg04
}, %) }, %)
|> angledLineToY([segAng(seg04, %) + 180, ZERO], %) |> angledLineToY([segAng(seg04, %) + 180, turns::ZERO], %)
|> angledLineToY({ |> angledLineToY({
angle = -bottomAng, angle = -bottomAng,
to = -totalHeightHalf - armThick, to = -totalHeightHalf - armThick,
@ -88,12 +88,12 @@ part001 = startSketchOn(-XZ)
|> xLine(length = endAbsolute = segEndX(seg03) + 0) |> xLine(length = endAbsolute = segEndX(seg03) + 0)
|> yLine(length = -segLen(seg01, %)) |> yLine(length = -segLen(seg01, %))
|> angledLineThatIntersects({ |> angledLineThatIntersects({
angle = HALF_TURN, angle = turns::HALF_TURN,
offset = -armThick, offset = -armThick,
intersectTag = seg02 intersectTag = seg02
}, %) }, %)
|> angledLineToY([segAng(seg02, %) + 180, -baseHeight], %) |> angledLineToY([segAng(seg02, %) + 180, -baseHeight], %)
|> xLine(endAbsolute = ZERO) |> xLine(endAbsolute = turns::ZERO)
|> close() |> close()
|> extrude(length = 4)` |> extrude(length = 4)`
) )

View File

@ -486,13 +486,13 @@ test.describe('Testing constraints', { tag: ['@skipWin'] }, () => {
testName: 'Add variable, selecting axis', testName: 'Add variable, selecting axis',
addVariable: true, addVariable: true,
axisSelect: true, axisSelect: true,
value: 'QUARTER_TURN - angle001', value: 'turns::QUARTER_TURN - angle001',
}, },
{ {
testName: 'No variable, selecting axis', testName: 'No variable, selecting axis',
addVariable: false, addVariable: false,
axisSelect: true, axisSelect: true,
value: 'QUARTER_TURN - 7', value: 'turns::QUARTER_TURN - 7',
}, },
] as const ] as const
for (const { testName, addVariable, value, axisSelect } of cases) { for (const { testName, addVariable, value, axisSelect } of cases) {
@ -935,12 +935,12 @@ part002 = startSketchOn(XZ)
test.describe('Axis & segment - no modal constraints', () => { test.describe('Axis & segment - no modal constraints', () => {
const cases = [ const cases = [
{ {
codeAfter: `|> line(endAbsolute = [154.9, ZERO])`, codeAfter: `|> line(endAbsolute = [154.9, turns::ZERO])`,
axisClick: { x: 950, y: 250 }, axisClick: { x: 950, y: 250 },
constraintName: 'Snap To X', constraintName: 'Snap To X',
}, },
{ {
codeAfter: `|> line(endAbsolute = [ZERO, 61.34])`, codeAfter: `|> line(endAbsolute = [turns::ZERO, 61.34])`,
axisClick: { x: 600, y: 150 }, axisClick: { x: 600, y: 150 },
constraintName: 'Snap To Y', constraintName: 'Snap To Y',
}, },

View File

@ -67,11 +67,11 @@ part001 = startSketchOn(-XZ)
|> xLine(endAbsolute = totalLen, tag = $seg03) |> xLine(endAbsolute = totalLen, tag = $seg03)
|> yLine(length = -armThick, tag = $seg01) |> yLine(length = -armThick, tag = $seg01)
|> angledLineThatIntersects({ |> angledLineThatIntersects({
angle = HALF_TURN, angle = turns::HALF_TURN,
offset = -armThick, offset = -armThick,
intersectTag = seg04 intersectTag = seg04
}, %) }, %)
|> angledLineToY([segAng(seg04) + 180, ZERO], %) |> angledLineToY([segAng(seg04) + 180, turns::ZERO], %)
|> angledLineToY({ |> angledLineToY({
angle = -bottomAng, angle = -bottomAng,
to = -totalHeightHalf - armThick, to = -totalHeightHalf - armThick,
@ -79,12 +79,12 @@ part001 = startSketchOn(-XZ)
|> xLine(endAbsolute = segEndX(seg03) + 0) |> xLine(endAbsolute = segEndX(seg03) + 0)
|> yLine(length = -segLen(seg01)) |> yLine(length = -segLen(seg01))
|> angledLineThatIntersects({ |> angledLineThatIntersects({
angle = HALF_TURN, angle = turns::HALF_TURN,
offset = -armThick, offset = -armThick,
intersectTag = seg02 intersectTag = seg02
}, %) }, %)
|> angledLineToY([segAng(seg02) + 180, -baseHeight], %) |> angledLineToY([segAng(seg02) + 180, -baseHeight], %)
|> xLine(endAbsolute = ZERO) |> xLine(endAbsolute = turns::ZERO)
|> close() |> close()
|> extrude(length = 4)` |> extrude(length = 4)`
) )

View File

@ -14,7 +14,7 @@ radius = 10
depth = 30 depth = 30
distanceToInsideEdge = slateWidthHalf + templateThickness + templateGap distanceToInsideEdge = slateWidthHalf + templateThickness + templateGap
sketch001 = startSketchOn(XZ) sketch001 = startSketchOn(XZ)
|> startProfileAt([ZERO, depth + templateGap], %) |> startProfileAt([0, depth + templateGap], %)
|> xLine(length = slateWidthHalf - radius, tag = $seg01) |> xLine(length = slateWidthHalf - radius, tag = $seg01)
|> arc({ |> arc({
angleEnd = 0, angleEnd = 0,
@ -28,7 +28,7 @@ sketch001 = startSketchOn(XZ)
|> yLine(length = templateThickness * 2, tag = $seg08) |> yLine(length = templateThickness * 2, tag = $seg08)
|> xLine(endAbsolute = segEndX(seg02) + 0, tag = $seg05) |> xLine(endAbsolute = segEndX(seg02) + 0, tag = $seg05)
|> yLine(endAbsolute = segEndY(seg01) + templateThickness, tag = $seg10) |> yLine(endAbsolute = segEndY(seg01) + templateThickness, tag = $seg10)
|> xLine(endAbsolute = ZERO, tag = $seg04) |> xLine(endAbsolute = 0, tag = $seg04)
|> xLine(length = -segLen(seg04)) |> xLine(length = -segLen(seg04))
|> yLine(length = -segLen(seg10)) |> yLine(length = -segLen(seg10))
|> xLine(length = -segLen(seg05)) |> xLine(length = -segLen(seg05))

View File

@ -28,7 +28,7 @@ sketch001 = startSketchOn(XZ)
|> yLine(endAbsolute = -templateGap * 2 - (templateDiameter / 2), tag = $seg05) |> yLine(endAbsolute = -templateGap * 2 - (templateDiameter / 2), tag = $seg05)
|> xLine(endAbsolute = slateWidthHalf + templateThickness, tag = $seg04) |> xLine(endAbsolute = slateWidthHalf + templateThickness, tag = $seg04)
|> yLine(length = -length002, tag = $seg03) |> yLine(length = -length002, tag = $seg03)
|> xLine(endAbsolute = ZERO, tag = $seg02) |> xLine(endAbsolute = 0, tag = $seg02)
// |> line(end = [7.78, 11.16]) // |> line(end = [7.78, 11.16])
|> xLine(length = -segLen(seg02)) |> xLine(length = -segLen(seg02))
|> yLine(length = segLen(seg03)) |> yLine(length = segLen(seg03))

View File

@ -339,9 +339,9 @@ fn generate_index(combined: &IndexMap<String, Box<dyn StdLibFn>>, kcl_lib: &[Doc
} }
functions.entry(d.mod_name()).or_default().push(match d { functions.entry(d.mod_name()).or_default().push(match d {
DocData::Fn(f) => (f.name.clone(), d.file_name()), DocData::Fn(f) => (f.preferred_name.clone(), d.file_name()),
DocData::Const(c) => (c.name.clone(), d.file_name()), DocData::Const(c) => (c.preferred_name.clone(), d.file_name()),
DocData::Ty(t) => (t.name.clone(), d.file_name()), DocData::Ty(t) => (t.preferred_name.clone(), d.file_name()),
}); });
if let DocData::Const(c) = d { if let DocData::Const(c) = d {

View File

@ -9,7 +9,7 @@ use tower_lsp::lsp_types::{
use crate::{ use crate::{
execution::annotations, execution::annotations,
parsing::{ parsing::{
ast::types::{Annotation, Node, PrimitiveType, Type, VariableKind}, ast::types::{Annotation, ImportSelector, Node, PrimitiveType, Type, VariableKind},
token::NumericSuffix, token::NumericSuffix,
}, },
ModuleId, ModuleId,
@ -17,7 +17,7 @@ use crate::{
pub fn walk_prelude() -> Vec<DocData> { pub fn walk_prelude() -> Vec<DocData> {
let mut visitor = CollectionVisitor::default(); let mut visitor = CollectionVisitor::default();
visitor.visit_module("prelude").unwrap(); visitor.visit_module("prelude", "").unwrap();
visitor.result visitor.result
} }
@ -29,7 +29,7 @@ struct CollectionVisitor {
} }
impl CollectionVisitor { impl CollectionVisitor {
fn visit_module(&mut self, name: &str) -> Result<(), String> { fn visit_module(&mut self, name: &str, preferred_prefix: &str) -> Result<(), String> {
let old_name = std::mem::replace(&mut self.name, name.to_owned()); let old_name = std::mem::replace(&mut self.name, name.to_owned());
let source = crate::modules::read_std(name).unwrap(); let source = crate::modules::read_std(name).unwrap();
let parsed = crate::parsing::parse_str(source, ModuleId::from_usize(self.id)) let parsed = crate::parsing::parse_str(source, ModuleId::from_usize(self.id))
@ -40,14 +40,16 @@ impl CollectionVisitor {
for n in &parsed.body { for n in &parsed.body {
match n { match n {
crate::parsing::ast::types::BodyItem::ImportStatement(import) if !import.visibility.is_default() => { crate::parsing::ast::types::BodyItem::ImportStatement(import) if !import.visibility.is_default() => {
// Only supports glob imports for now.
assert!(matches!(
import.selector,
crate::parsing::ast::types::ImportSelector::Glob(..)
));
match &import.path { match &import.path {
crate::parsing::ast::types::ImportPath::Std { path } => { crate::parsing::ast::types::ImportPath::Std { path } => {
self.visit_module(&path[1])?; match import.selector {
ImportSelector::Glob(..) => self.visit_module(&path[1], "")?,
ImportSelector::None { .. } => {
self.visit_module(&path[1], &format!("{}::", import.module_name().unwrap()))?
}
// Only supports glob or whole-module imports for now.
_ => unimplemented!(),
}
} }
p => return Err(format!("Unexpected import: `{p}`")), p => return Err(format!("Unexpected import: `{p}`")),
} }
@ -59,8 +61,8 @@ impl CollectionVisitor {
format!("std::{}::", self.name) format!("std::{}::", self.name)
}; };
let mut dd = match var.kind { let mut dd = match var.kind {
VariableKind::Fn => DocData::Fn(FnData::from_ast(var, qual_name)), VariableKind::Fn => DocData::Fn(FnData::from_ast(var, qual_name, preferred_prefix)),
VariableKind::Const => DocData::Const(ConstData::from_ast(var, qual_name)), VariableKind::Const => DocData::Const(ConstData::from_ast(var, qual_name, preferred_prefix)),
}; };
dd.with_meta(&var.outer_attrs); dd.with_meta(&var.outer_attrs);
@ -77,7 +79,7 @@ impl CollectionVisitor {
} else { } else {
format!("std::{}::", self.name) format!("std::{}::", self.name)
}; };
let mut dd = DocData::Ty(TyData::from_ast(ty, qual_name)); let mut dd = DocData::Ty(TyData::from_ast(ty, qual_name, preferred_prefix));
dd.with_meta(&ty.outer_attrs); dd.with_meta(&ty.outer_attrs);
for a in &ty.outer_attrs { for a in &ty.outer_attrs {
@ -200,6 +202,8 @@ impl DocData {
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct ConstData { pub struct ConstData {
pub name: String, pub name: String,
/// How the const is indexed, etc.
pub preferred_name: String,
/// The fully qualified name. /// The fully qualified name.
pub qual_name: String, pub qual_name: String,
pub value: Option<String>, pub value: Option<String>,
@ -216,7 +220,11 @@ pub struct ConstData {
} }
impl ConstData { impl ConstData {
fn from_ast(var: &crate::parsing::ast::types::VariableDeclaration, mut qual_name: String) -> Self { fn from_ast(
var: &crate::parsing::ast::types::VariableDeclaration,
mut qual_name: String,
preferred_prefix: &str,
) -> Self {
assert_eq!(var.kind, crate::parsing::ast::types::VariableKind::Const); assert_eq!(var.kind, crate::parsing::ast::types::VariableKind::Const);
let (value, ty) = match &var.declaration.init { let (value, ty) = match &var.declaration.init {
@ -240,6 +248,7 @@ impl ConstData {
let name = var.declaration.id.name.clone(); let name = var.declaration.id.name.clone();
qual_name.push_str(&name); qual_name.push_str(&name);
ConstData { ConstData {
preferred_name: format!("{preferred_prefix}{name}"),
name, name,
qual_name, qual_name,
value, value,
@ -272,7 +281,7 @@ impl ConstData {
detail.push_str(ty); detail.push_str(ty);
} }
CompletionItem { CompletionItem {
label: self.name.clone(), label: self.preferred_name.clone(),
label_details: Some(CompletionItemLabelDetails { label_details: Some(CompletionItemLabelDetails {
detail: self.value.clone(), detail: self.value.clone(),
description: None, description: None,
@ -306,6 +315,8 @@ impl ConstData {
pub struct FnData { pub struct FnData {
/// The name of the function. /// The name of the function.
pub name: String, pub name: String,
/// How the function is indexed, etc.
pub preferred_name: String,
/// The fully qualified name. /// The fully qualified name.
pub qual_name: String, pub qual_name: String,
/// The args of the function. /// The args of the function.
@ -326,7 +337,11 @@ pub struct FnData {
} }
impl FnData { impl FnData {
fn from_ast(var: &crate::parsing::ast::types::VariableDeclaration, mut qual_name: String) -> Self { fn from_ast(
var: &crate::parsing::ast::types::VariableDeclaration,
mut qual_name: String,
preferred_prefix: &str,
) -> Self {
assert_eq!(var.kind, crate::parsing::ast::types::VariableKind::Fn); assert_eq!(var.kind, crate::parsing::ast::types::VariableKind::Fn);
let crate::parsing::ast::types::Expr::FunctionExpression(expr) = &var.declaration.init else { let crate::parsing::ast::types::Expr::FunctionExpression(expr) = &var.declaration.init else {
unreachable!(); unreachable!();
@ -345,6 +360,7 @@ impl FnData {
} }
FnData { FnData {
preferred_name: format!("{preferred_prefix}{name}"),
name, name,
qual_name, qual_name,
args: expr.params.iter().map(ArgData::from_ast).collect(), args: expr.params.iter().map(ArgData::from_ast).collect(),
@ -443,7 +459,7 @@ impl FnData {
} }
// We end with ${} so you can jump to the end of the snippet. // We end with ${} so you can jump to the end of the snippet.
// After the last argument. // After the last argument.
format!("{}({})${{}}", self.name, args.join(", ")) format!("{}({})${{}}", self.preferred_name, args.join(", "))
} }
fn to_signature_help(&self) -> SignatureHelp { fn to_signature_help(&self) -> SignatureHelp {
@ -452,7 +468,7 @@ impl FnData {
SignatureHelp { SignatureHelp {
signatures: vec![SignatureInformation { signatures: vec![SignatureInformation {
label: self.name.clone(), label: self.preferred_name.clone(),
documentation: self.short_docs().map(|s| { documentation: self.short_docs().map(|s| {
Documentation::MarkupContent(MarkupContent { Documentation::MarkupContent(MarkupContent {
kind: MarkupKind::Markdown, kind: MarkupKind::Markdown,
@ -580,6 +596,8 @@ impl ArgKind {
pub struct TyData { pub struct TyData {
/// The name of the function. /// The name of the function.
pub name: String, pub name: String,
/// How the type is indexed, etc.
pub preferred_name: String,
/// The fully qualified name. /// The fully qualified name.
pub qual_name: String, pub qual_name: String,
pub properties: Properties, pub properties: Properties,
@ -597,7 +615,11 @@ pub struct TyData {
} }
impl TyData { impl TyData {
fn from_ast(ty: &crate::parsing::ast::types::TypeDeclaration, mut qual_name: String) -> Self { fn from_ast(
ty: &crate::parsing::ast::types::TypeDeclaration,
mut qual_name: String,
preferred_prefix: &str,
) -> Self {
let name = ty.name.name.clone(); let name = ty.name.name.clone();
qual_name.push_str(&name); qual_name.push_str(&name);
let mut referenced_types = HashSet::new(); let mut referenced_types = HashSet::new();
@ -606,6 +628,7 @@ impl TyData {
} }
TyData { TyData {
preferred_name: format!("{preferred_prefix}{name}"),
name, name,
qual_name, qual_name,
properties: Properties { properties: Properties {
@ -641,7 +664,7 @@ impl TyData {
fn to_completion_item(&self) -> CompletionItem { fn to_completion_item(&self) -> CompletionItem {
CompletionItem { CompletionItem {
label: self.name.clone(), label: self.preferred_name.clone(),
label_details: self.alias.as_ref().map(|t| CompletionItemLabelDetails { label_details: self.alias.as_ref().map(|t| CompletionItemLabelDetails {
detail: Some(format!("type {} = {t}", self.name)), detail: Some(format!("type {} = {t}", self.name)),
description: None, description: None,
@ -658,7 +681,7 @@ impl TyData {
preselect: None, preselect: None,
sort_text: None, sort_text: None,
filter_text: None, filter_text: None,
insert_text: Some(self.name.clone()), insert_text: Some(self.preferred_name.clone()),
insert_text_format: Some(InsertTextFormat::SNIPPET), insert_text_format: Some(InsertTextFormat::SNIPPET),
insert_text_mode: None, insert_text_mode: None,
text_edit: None, text_edit: None,

View File

@ -6,7 +6,7 @@ use itertools::{EitherOrBoth, Itertools};
use tokio::sync::RwLock; use tokio::sync::RwLock;
use crate::{ use crate::{
execution::{annotations, memory::Stack, EnvironmentRef, ExecState, ExecutorSettings}, execution::{annotations, memory::Stack, state::ModuleInfoMap, EnvironmentRef, ExecState, ExecutorSettings},
parsing::ast::types::{Annotation, Node, Program}, parsing::ast::types::{Annotation, Node, Program},
walk::Node as WalkNode, walk::Node as WalkNode,
}; };
@ -15,7 +15,7 @@ lazy_static::lazy_static! {
/// A static mutable lock for updating the last successful execution state for the cache. /// A static mutable lock for updating the last successful execution state for the cache.
static ref OLD_AST: Arc<RwLock<Option<OldAstState>>> = Default::default(); static ref OLD_AST: Arc<RwLock<Option<OldAstState>>> = Default::default();
// The last successful run's memory. Not cleared after an unssuccessful run. // The last successful run's memory. Not cleared after an unssuccessful run.
static ref PREV_MEMORY: Arc<RwLock<Option<Stack>>> = Default::default(); static ref PREV_MEMORY: Arc<RwLock<Option<(Stack, ModuleInfoMap)>>> = Default::default();
} }
/// Read the old ast memory from the lock. /// Read the old ast memory from the lock.
@ -29,12 +29,12 @@ pub(super) async fn write_old_ast(old_state: OldAstState) {
*old_ast = Some(old_state); *old_ast = Some(old_state);
} }
pub(crate) async fn read_old_memory() -> Option<Stack> { pub(crate) async fn read_old_memory() -> Option<(Stack, ModuleInfoMap)> {
let old_mem = PREV_MEMORY.read().await; let old_mem = PREV_MEMORY.read().await;
old_mem.clone() old_mem.clone()
} }
pub(super) async fn write_old_memory(mem: Stack) { pub(super) async fn write_old_memory(mem: (Stack, ModuleInfoMap)) {
let mut old_mem = PREV_MEMORY.write().await; let mut old_mem = PREV_MEMORY.write().await;
*old_mem = Some(mem); *old_mem = Some(mem);
} }

View File

@ -559,7 +559,10 @@ impl ExecutorContext {
let mut exec_state = ExecState::new(self); let mut exec_state = ExecState::new(self);
if use_prev_memory { if use_prev_memory {
match cache::read_old_memory().await { match cache::read_old_memory().await {
Some(mem) => *exec_state.mut_stack() = mem, Some(mem) => {
*exec_state.mut_stack() = mem.0;
exec_state.global.module_infos = mem.1;
}
None => self.prepare_mem(&mut exec_state).await?, None => self.prepare_mem(&mut exec_state).await?,
} }
} else { } else {
@ -577,10 +580,11 @@ impl ExecutorContext {
// memory, not to the exec_state which is not cached for mock execution. // memory, not to the exec_state which is not cached for mock execution.
let mut mem = exec_state.stack().clone(); let mut mem = exec_state.stack().clone();
let module_infos = exec_state.global.module_infos.clone();
let outcome = exec_state.to_mock_wasm_outcome(result.0).await; let outcome = exec_state.to_mock_wasm_outcome(result.0).await;
mem.squash_env(result.0); mem.squash_env(result.0);
cache::write_old_memory(mem).await; cache::write_old_memory((mem, module_infos)).await;
Ok(outcome) Ok(outcome)
} }
@ -770,7 +774,7 @@ impl ExecutorContext {
if !self.is_mock() { if !self.is_mock() {
let mut mem = exec_state.stack().deep_clone(); let mut mem = exec_state.stack().deep_clone();
mem.restore_env(env_ref); mem.restore_env(env_ref);
cache::write_old_memory(mem).await; cache::write_old_memory((mem, exec_state.global.module_infos.clone())).await;
} }
let session_data = self.engine.get_session_data().await; let session_data = self.engine.get_session_data().await;
Ok((env_ref, session_data)) Ok((env_ref, session_data))

View File

@ -30,6 +30,8 @@ pub struct ExecState {
pub(super) exec_context: Option<super::ExecutorContext>, pub(super) exec_context: Option<super::ExecutorContext>,
} }
pub type ModuleInfoMap = IndexMap<ModuleId, ModuleInfo>;
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub(super) struct GlobalState { pub(super) struct GlobalState {
/// Map from source file absolute path to module ID. /// Map from source file absolute path to module ID.
@ -37,7 +39,7 @@ pub(super) struct GlobalState {
/// Map from module ID to source file. /// Map from module ID to source file.
pub id_to_source: IndexMap<ModuleId, ModuleSource>, pub id_to_source: IndexMap<ModuleId, ModuleSource>,
/// Map from module ID to module info. /// Map from module ID to module info.
pub module_infos: IndexMap<ModuleId, ModuleInfo>, pub module_infos: ModuleInfoMap,
/// Output map of UUIDs to artifacts. /// Output map of UUIDs to artifacts.
pub artifacts: IndexMap<ArtifactId, Artifact>, pub artifacts: IndexMap<ArtifactId, Artifact>,
/// Output commands to allow building the artifact graph by the caller. /// Output commands to allow building the artifact graph by the caller.

View File

@ -1635,7 +1635,7 @@ fn position_to_char_index(position: Position, code: &str) -> usize {
async fn with_cached_var<T>(name: &str, f: impl Fn(&KclValue) -> T) -> Option<T> { async fn with_cached_var<T>(name: &str, f: impl Fn(&KclValue) -> T) -> Option<T> {
let mem = cache::read_old_memory().await?; let mem = cache::read_old_memory().await?;
let value = mem.get(name, SourceRange::default()).ok()?; let value = mem.0.get(name, SourceRange::default()).ok()?;
Some(f(value)) Some(f(value))
} }

View File

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

View File

@ -1619,10 +1619,9 @@ impl ImportStatement {
return Some(alias.name.clone()); return Some(alias.name.clone());
} }
let mut parts = match &self.path { match &self.path {
ImportPath::Kcl { filename: s } | ImportPath::Foreign { path: s } => s.split('.'), ImportPath::Kcl { filename: s } | ImportPath::Foreign { path: s } => {
_ => return None, let mut parts = s.split('.');
};
let path = parts.next()?; let path = parts.next()?;
let _ext = parts.next()?; let _ext = parts.next()?;
let rest = parts.next(); let rest = parts.next();
@ -1633,6 +1632,9 @@ impl ImportStatement {
path.rsplit(&['/', '\\']).next().map(str::to_owned) path.rsplit(&['/', '\\']).next().map(str::to_owned)
} }
ImportPath::Std { path } => path.last().cloned(),
}
}
} }
impl From<&ImportStatement> for Vec<CompletionItem> { impl From<&ImportStatement> for Vec<CompletionItem> {

View File

@ -152,7 +152,12 @@ const STR_DEPRECATIONS: [(&str, &str); 6] = [
("-YZ", "-YZ"), ("-YZ", "-YZ"),
]; ];
const FN_DEPRECATIONS: [(&str, &str); 3] = [("pi", "PI"), ("e", "E"), ("tau", "TAU")]; const FN_DEPRECATIONS: [(&str, &str); 3] = [("pi", "PI"), ("e", "E"), ("tau", "TAU")];
const CONST_DEPRECATIONS: [(&str, &str); 0] = []; const CONST_DEPRECATIONS: [(&str, &str); 4] = [
("ZERO", "turns::ZERO"),
("QUARTER_TURN", "turns::QUARTER_TURN"),
("HALF_TURN", "turns::HALF_TURN"),
("THREE_QUARTER_TURN", "turns::THREE_QUARTER_TURN"),
];
#[derive(Clone, Copy)] #[derive(Clone, Copy)]
pub enum DeprecationKind { pub enum DeprecationKind {

View File

@ -1823,14 +1823,6 @@ fn import_stmt(i: &mut TokenSlice) -> PResult<BoxNode<ImportStatement>> {
) )
.into(), .into(),
)); ));
} else if matches!(path, ImportPath::Std { .. }) && matches!(selector, ImportSelector::None { .. }) {
return Err(ErrMode::Cut(
CompilationError::fatal(
SourceRange::new(start, end, module_id),
"the standard library cannot be imported as a part",
)
.into(),
));
} }
Ok(Node::boxed( Ok(Node::boxed(
@ -2341,21 +2333,6 @@ fn nameable_identifier(i: &mut TokenSlice) -> PResult<Node<Identifier>> {
)); ));
} }
if let Some(suggestion) = super::deprecation(&result.name, DeprecationKind::Const) {
ParseContext::warn(
CompilationError::err(
result.as_source_range(),
format!("Using `{}` is deprecated, prefer using `{}`.", result.name, suggestion),
)
.with_suggestion(
format!("Replace `{}` with `{}`", result.name, suggestion),
suggestion,
None,
Tag::Deprecated,
),
);
}
Ok(result) Ok(result)
} }
@ -2374,8 +2351,7 @@ fn name(i: &mut TokenSlice) -> PResult<Node<Name>> {
let name = idents.pop().unwrap(); let name = idents.pop().unwrap();
let end = name.end; let end = name.end;
let module_id = name.module_id; let module_id = name.module_id;
let result = Node::new(
Ok(Node::new(
Name { Name {
name, name,
path: idents, path: idents,
@ -2385,7 +2361,24 @@ fn name(i: &mut TokenSlice) -> PResult<Node<Name>> {
start, start,
end, end,
module_id, module_id,
)) );
if let Some(suggestion) = super::deprecation(&result.to_string(), DeprecationKind::Const) {
ParseContext::warn(
CompilationError::err(
result.as_source_range(),
format!("Using `{result}` is deprecated, prefer using `{suggestion}`."),
)
.with_suggestion(
format!("Replace `{result}` with `{suggestion}`"),
suggestion,
None,
Tag::Deprecated,
),
);
}
Ok(result)
} }
impl TryFrom<Token> for Node<TagDeclarator> { impl TryFrom<Token> for Node<TagDeclarator> {

View File

@ -5,6 +5,7 @@
export import * from "std::math" export import * from "std::math"
export import * from "std::sketch" export import * from "std::sketch"
export import "std::turns"
/// A number /// A number
/// ///
@ -245,11 +246,6 @@ export type Point2d = [number; 2]
/// with type `Point3d`, use an array, e.g., `[0, 0, 0]` or `[5.0, 3.14, 6.8]`. /// with type `Point3d`, use an array, e.g., `[0, 0, 0]` or `[5.0, 3.14, 6.8]`.
export type Point3d = [number; 3] export type Point3d = [number; 3]
export ZERO = 0
export QUARTER_TURN = 90deg
export HALF_TURN = 180deg
export THREE_QUARTER_TURN = 270deg
export XY = { export XY = {
origin = { x = 0, y = 0, z = 0 }, origin = { x = 0, y = 0, z = 0 },
xAxis = { x = 1, y = 0, z = 0 }, xAxis = { x = 1, y = 0, z = 0 },

View File

@ -0,0 +1,6 @@
@no_std
export ZERO = 0
export QUARTER_TURN = 90deg
export HALF_TURN = 180deg
export THREE_QUARTER_TURN = 270deg

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,264 +1,264 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[567, 618, 5]"] 2["Path<br>[567, 618, 6]"]
3["Segment<br>[567, 618, 5]"] 3["Segment<br>[567, 618, 6]"]
4[Solid2d] 4[Solid2d]
end end
subgraph path11 [Path] subgraph path11 [Path]
11["Path<br>[803, 859, 5]"] 11["Path<br>[803, 859, 6]"]
12["Segment<br>[803, 859, 5]"] 12["Segment<br>[803, 859, 6]"]
13[Solid2d] 13[Solid2d]
end end
subgraph path19 [Path] subgraph path19 [Path]
19["Path<br>[984, 1037, 5]"] 19["Path<br>[984, 1037, 6]"]
20["Segment<br>[984, 1037, 5]"] 20["Segment<br>[984, 1037, 6]"]
21[Solid2d] 21[Solid2d]
end end
subgraph path30 [Path] subgraph path30 [Path]
30["Path<br>[1420, 1460, 5]"] 30["Path<br>[1420, 1460, 6]"]
31["Segment<br>[1420, 1460, 5]"] 31["Segment<br>[1420, 1460, 6]"]
32[Solid2d] 32[Solid2d]
end end
subgraph path38 [Path] subgraph path38 [Path]
38["Path<br>[1564, 1615, 5]"] 38["Path<br>[1564, 1615, 6]"]
39["Segment<br>[1564, 1615, 5]"] 39["Segment<br>[1564, 1615, 6]"]
40[Solid2d] 40[Solid2d]
end end
subgraph path47 [Path] subgraph path47 [Path]
47["Path<br>[1748, 1801, 5]"] 47["Path<br>[1748, 1801, 6]"]
48["Segment<br>[1748, 1801, 5]"] 48["Segment<br>[1748, 1801, 6]"]
49[Solid2d] 49[Solid2d]
end end
subgraph path58 [Path] subgraph path58 [Path]
58["Path<br>[2044, 2116, 5]"] 58["Path<br>[2044, 2116, 6]"]
59["Segment<br>[2044, 2116, 5]"] 59["Segment<br>[2044, 2116, 6]"]
60[Solid2d] 60[Solid2d]
end end
subgraph path81 [Path] subgraph path81 [Path]
81["Path<br>[2373, 2404, 5]"] 81["Path<br>[2373, 2404, 6]"]
82["Segment<br>[2410, 2430, 5]"] 82["Segment<br>[2410, 2430, 6]"]
83["Segment<br>[2436, 2456, 5]"] 83["Segment<br>[2436, 2456, 6]"]
84["Segment<br>[2462, 2483, 5]"] 84["Segment<br>[2462, 2483, 6]"]
85["Segment<br>[2489, 2545, 5]"] 85["Segment<br>[2489, 2545, 6]"]
86["Segment<br>[2551, 2558, 5]"] 86["Segment<br>[2551, 2558, 6]"]
87[Solid2d] 87[Solid2d]
end end
subgraph path106 [Path] subgraph path106 [Path]
106["Path<br>[2860, 2892, 5]"] 106["Path<br>[2860, 2892, 6]"]
107["Segment<br>[2898, 2919, 5]"] 107["Segment<br>[2898, 2919, 6]"]
108["Segment<br>[2925, 2945, 5]"] 108["Segment<br>[2925, 2945, 6]"]
109["Segment<br>[2951, 2971, 5]"] 109["Segment<br>[2951, 2971, 6]"]
110["Segment<br>[2977, 3033, 5]"] 110["Segment<br>[2977, 3033, 6]"]
111["Segment<br>[3039, 3046, 5]"] 111["Segment<br>[3039, 3046, 6]"]
112[Solid2d] 112[Solid2d]
end end
subgraph path132 [Path] subgraph path132 [Path]
132["Path<br>[350, 406, 4]"] 132["Path<br>[350, 406, 5]"]
133["Segment<br>[350, 406, 4]"] 133["Segment<br>[350, 406, 5]"]
134[Solid2d] 134[Solid2d]
end end
subgraph path135 [Path] subgraph path135 [Path]
135["Path<br>[417, 473, 4]"] 135["Path<br>[417, 473, 5]"]
136["Segment<br>[417, 473, 4]"] 136["Segment<br>[417, 473, 5]"]
137[Solid2d] 137[Solid2d]
end end
subgraph path144 [Path] subgraph path144 [Path]
144["Path<br>[638, 694, 4]"] 144["Path<br>[638, 694, 5]"]
145["Segment<br>[638, 694, 4]"] 145["Segment<br>[638, 694, 5]"]
146[Solid2d] 146[Solid2d]
end end
subgraph path147 [Path] subgraph path147 [Path]
147["Path<br>[705, 761, 4]"] 147["Path<br>[705, 761, 5]"]
148["Segment<br>[705, 761, 4]"] 148["Segment<br>[705, 761, 5]"]
149[Solid2d] 149[Solid2d]
end end
subgraph path156 [Path] subgraph path156 [Path]
156["Path<br>[905, 959, 4]"] 156["Path<br>[905, 959, 5]"]
157["Segment<br>[905, 959, 4]"] 157["Segment<br>[905, 959, 5]"]
158[Solid2d] 158[Solid2d]
end end
subgraph path167 [Path] subgraph path167 [Path]
167["Path<br>[1237, 1297, 4]"] 167["Path<br>[1237, 1297, 5]"]
168["Segment<br>[1237, 1297, 4]"] 168["Segment<br>[1237, 1297, 5]"]
169[Solid2d] 169[Solid2d]
end end
subgraph path179 [Path] subgraph path179 [Path]
179["Path<br>[1655, 1701, 4]"] 179["Path<br>[1655, 1701, 5]"]
180["Segment<br>[1707, 1759, 4]"] 180["Segment<br>[1707, 1759, 5]"]
181["Segment<br>[1765, 1870, 4]"] 181["Segment<br>[1765, 1870, 5]"]
182["Segment<br>[1876, 1898, 4]"] 182["Segment<br>[1876, 1898, 5]"]
183["Segment<br>[1904, 1960, 4]"] 183["Segment<br>[1904, 1960, 5]"]
184["Segment<br>[1966, 1973, 4]"] 184["Segment<br>[1966, 1973, 5]"]
185[Solid2d] 185[Solid2d]
end end
subgraph path195 [Path] subgraph path195 [Path]
195["Path<br>[2107, 2153, 4]"] 195["Path<br>[2107, 2153, 5]"]
196["Segment<br>[2159, 2211, 4]"] 196["Segment<br>[2159, 2211, 5]"]
197["Segment<br>[2217, 2324, 4]"] 197["Segment<br>[2217, 2324, 5]"]
198["Segment<br>[2330, 2367, 4]"] 198["Segment<br>[2330, 2367, 5]"]
199["Segment<br>[2373, 2429, 4]"] 199["Segment<br>[2373, 2429, 5]"]
200["Segment<br>[2435, 2442, 4]"] 200["Segment<br>[2435, 2442, 5]"]
201[Solid2d] 201[Solid2d]
end end
subgraph path212 [Path] subgraph path212 [Path]
212["Path<br>[2953, 3000, 4]"] 212["Path<br>[2953, 3000, 5]"]
213["Segment<br>[3008, 3348, 4]"] 213["Segment<br>[3008, 3348, 5]"]
214["Segment<br>[3356, 3388, 4]"] 214["Segment<br>[3356, 3388, 5]"]
215["Segment<br>[3396, 3740, 4]"] 215["Segment<br>[3396, 3740, 5]"]
216["Segment<br>[3748, 3804, 4]"] 216["Segment<br>[3748, 3804, 5]"]
217["Segment<br>[3812, 3819, 4]"] 217["Segment<br>[3812, 3819, 5]"]
218[Solid2d] 218[Solid2d]
end end
subgraph path235 [Path] subgraph path235 [Path]
235["Path<br>[2953, 3000, 4]"] 235["Path<br>[2953, 3000, 5]"]
236["Segment<br>[3008, 3348, 4]"] 236["Segment<br>[3008, 3348, 5]"]
237["Segment<br>[3356, 3388, 4]"] 237["Segment<br>[3356, 3388, 5]"]
238["Segment<br>[3396, 3740, 4]"] 238["Segment<br>[3396, 3740, 5]"]
239["Segment<br>[3748, 3804, 4]"] 239["Segment<br>[3748, 3804, 5]"]
240["Segment<br>[3812, 3819, 4]"] 240["Segment<br>[3812, 3819, 5]"]
241[Solid2d] 241[Solid2d]
end end
subgraph path258 [Path] subgraph path258 [Path]
258["Path<br>[4347, 4442, 4]"] 258["Path<br>[4347, 4442, 5]"]
259["Segment<br>[4448, 4481, 4]"] 259["Segment<br>[4448, 4481, 5]"]
260["Segment<br>[4487, 4538, 4]"] 260["Segment<br>[4487, 4538, 5]"]
261["Segment<br>[4544, 4577, 4]"] 261["Segment<br>[4544, 4577, 5]"]
262["Segment<br>[4583, 4633, 4]"] 262["Segment<br>[4583, 4633, 5]"]
263["Segment<br>[4639, 4680, 4]"] 263["Segment<br>[4639, 4680, 5]"]
264["Segment<br>[4686, 4735, 4]"] 264["Segment<br>[4686, 4735, 5]"]
265["Segment<br>[4741, 4774, 4]"] 265["Segment<br>[4741, 4774, 5]"]
266["Segment<br>[4780, 4814, 4]"] 266["Segment<br>[4780, 4814, 5]"]
267["Segment<br>[4820, 4854, 4]"] 267["Segment<br>[4820, 4854, 5]"]
268["Segment<br>[4860, 4912, 4]"] 268["Segment<br>[4860, 4912, 5]"]
269["Segment<br>[4918, 4952, 4]"] 269["Segment<br>[4918, 4952, 5]"]
270["Segment<br>[4958, 5034, 4]"] 270["Segment<br>[4958, 5034, 5]"]
271["Segment<br>[5040, 5073, 4]"] 271["Segment<br>[5040, 5073, 5]"]
272["Segment<br>[5079, 5155, 4]"] 272["Segment<br>[5079, 5155, 5]"]
273["Segment<br>[5161, 5195, 4]"] 273["Segment<br>[5161, 5195, 5]"]
274["Segment<br>[5201, 5275, 4]"] 274["Segment<br>[5201, 5275, 5]"]
275["Segment<br>[5281, 5315, 4]"] 275["Segment<br>[5281, 5315, 5]"]
276["Segment<br>[5321, 5372, 4]"] 276["Segment<br>[5321, 5372, 5]"]
277["Segment<br>[5378, 5440, 4]"] 277["Segment<br>[5378, 5440, 5]"]
278["Segment<br>[5446, 5497, 4]"] 278["Segment<br>[5446, 5497, 5]"]
279["Segment<br>[5503, 5537, 4]"] 279["Segment<br>[5503, 5537, 5]"]
280["Segment<br>[5543, 5576, 4]"] 280["Segment<br>[5543, 5576, 5]"]
281["Segment<br>[5582, 5615, 4]"] 281["Segment<br>[5582, 5615, 5]"]
282["Segment<br>[5621, 5628, 4]"] 282["Segment<br>[5621, 5628, 5]"]
283[Solid2d] 283[Solid2d]
end end
subgraph path334 [Path] subgraph path334 [Path]
334["Path<br>[740, 780, 7]"] 334["Path<br>[740, 780, 8]"]
335["Segment<br>[788, 850, 7]"] 335["Segment<br>[788, 850, 8]"]
336["Segment<br>[858, 894, 7]"] 336["Segment<br>[858, 894, 8]"]
337["Segment<br>[902, 932, 7]"] 337["Segment<br>[902, 932, 8]"]
338["Segment<br>[940, 992, 7]"] 338["Segment<br>[940, 992, 8]"]
339["Segment<br>[1000, 1040, 7]"] 339["Segment<br>[1000, 1040, 8]"]
340["Segment<br>[1048, 1083, 7]"] 340["Segment<br>[1048, 1083, 8]"]
341["Segment<br>[1091, 1129, 7]"] 341["Segment<br>[1091, 1129, 8]"]
342["Segment<br>[1137, 1159, 7]"] 342["Segment<br>[1137, 1159, 8]"]
343["Segment<br>[1167, 1174, 7]"] 343["Segment<br>[1167, 1174, 8]"]
344[Solid2d] 344[Solid2d]
end end
subgraph path365 [Path] subgraph path365 [Path]
365["Path<br>[507, 588, 6]"] 365["Path<br>[507, 588, 7]"]
366["Segment<br>[594, 695, 6]"] 366["Segment<br>[594, 695, 7]"]
367["Segment<br>[701, 786, 6]"] 367["Segment<br>[701, 786, 7]"]
368["Segment<br>[792, 876, 6]"] 368["Segment<br>[792, 876, 7]"]
369["Segment<br>[882, 968, 6]"] 369["Segment<br>[882, 968, 7]"]
370["Segment<br>[974, 1059, 6]"] 370["Segment<br>[974, 1059, 7]"]
371["Segment<br>[1065, 1151, 6]"] 371["Segment<br>[1065, 1151, 7]"]
372["Segment<br>[1157, 1280, 6]"] 372["Segment<br>[1157, 1280, 7]"]
373["Segment<br>[1286, 1372, 6]"] 373["Segment<br>[1286, 1372, 7]"]
374["Segment<br>[1378, 1513, 6]"] 374["Segment<br>[1378, 1513, 7]"]
375["Segment<br>[1519, 1605, 6]"] 375["Segment<br>[1519, 1605, 7]"]
376["Segment<br>[1611, 1735, 6]"] 376["Segment<br>[1611, 1735, 7]"]
377["Segment<br>[1741, 1827, 6]"] 377["Segment<br>[1741, 1827, 7]"]
378["Segment<br>[1833, 1918, 6]"] 378["Segment<br>[1833, 1918, 7]"]
379["Segment<br>[1924, 2010, 6]"] 379["Segment<br>[1924, 2010, 7]"]
380["Segment<br>[2016, 2101, 6]"] 380["Segment<br>[2016, 2101, 7]"]
381["Segment<br>[2107, 2192, 6]"] 381["Segment<br>[2107, 2192, 7]"]
382["Segment<br>[2198, 2205, 6]"] 382["Segment<br>[2198, 2205, 7]"]
383[Solid2d] 383[Solid2d]
end end
subgraph path439 [Path] subgraph path439 [Path]
439["Path<br>[483, 540, 8]"] 439["Path<br>[483, 540, 9]"]
440["Segment<br>[546, 680, 8]"] 440["Segment<br>[546, 680, 9]"]
441["Segment<br>[686, 741, 8]"] 441["Segment<br>[686, 741, 9]"]
442["Segment<br>[747, 844, 8]"] 442["Segment<br>[747, 844, 9]"]
443["Segment<br>[850, 882, 8]"] 443["Segment<br>[850, 882, 9]"]
444["Segment<br>[888, 920, 8]"] 444["Segment<br>[888, 920, 9]"]
445["Segment<br>[926, 957, 8]"] 445["Segment<br>[926, 957, 9]"]
446["Segment<br>[963, 1078, 8]"] 446["Segment<br>[963, 1078, 9]"]
447["Segment<br>[1084, 1116, 8]"] 447["Segment<br>[1084, 1116, 9]"]
448["Segment<br>[1122, 1154, 8]"] 448["Segment<br>[1122, 1154, 9]"]
449["Segment<br>[1160, 1191, 8]"] 449["Segment<br>[1160, 1191, 9]"]
450["Segment<br>[1197, 1290, 8]"] 450["Segment<br>[1197, 1290, 9]"]
451["Segment<br>[1296, 1351, 8]"] 451["Segment<br>[1296, 1351, 9]"]
452["Segment<br>[1357, 1430, 8]"] 452["Segment<br>[1357, 1430, 9]"]
453["Segment<br>[1436, 1443, 8]"] 453["Segment<br>[1436, 1443, 9]"]
454[Solid2d] 454[Solid2d]
end end
1["Plane<br>[544, 561, 5]"] 1["Plane<br>[544, 561, 6]"]
5["Sweep Extrusion<br>[627, 683, 5]"] 5["Sweep Extrusion<br>[627, 683, 6]"]
6[Wall] 6[Wall]
7["Cap Start"] 7["Cap Start"]
8["Cap End"] 8["Cap End"]
9["SweepEdge Opposite"] 9["SweepEdge Opposite"]
10["SweepEdge Adjacent"] 10["SweepEdge Adjacent"]
14["Sweep Extrusion<br>[872, 934, 5]"] 14["Sweep Extrusion<br>[872, 934, 6]"]
15[Wall] 15[Wall]
16["Cap End"] 16["Cap End"]
17["SweepEdge Opposite"] 17["SweepEdge Opposite"]
18["SweepEdge Adjacent"] 18["SweepEdge Adjacent"]
22["Sweep Extrusion<br>[1184, 1263, 5]"] 22["Sweep Extrusion<br>[1184, 1263, 6]"]
23[Wall] 23[Wall]
24["SweepEdge Opposite"] 24["SweepEdge Opposite"]
25["SweepEdge Adjacent"] 25["SweepEdge Adjacent"]
26["Sweep Extrusion<br>[1184, 1263, 5]"] 26["Sweep Extrusion<br>[1184, 1263, 6]"]
27["Sweep Extrusion<br>[1184, 1263, 5]"] 27["Sweep Extrusion<br>[1184, 1263, 6]"]
28["Sweep Extrusion<br>[1184, 1263, 5]"] 28["Sweep Extrusion<br>[1184, 1263, 6]"]
29["Sweep Extrusion<br>[1184, 1263, 5]"] 29["Sweep Extrusion<br>[1184, 1263, 6]"]
33["Sweep Extrusion<br>[1466, 1499, 5]"] 33["Sweep Extrusion<br>[1466, 1499, 6]"]
34[Wall] 34[Wall]
35["Cap End"] 35["Cap End"]
36["SweepEdge Opposite"] 36["SweepEdge Opposite"]
37["SweepEdge Adjacent"] 37["SweepEdge Adjacent"]
41["Sweep Extrusion<br>[1630, 1695, 5]"] 41["Sweep Extrusion<br>[1630, 1695, 6]"]
42[Wall] 42[Wall]
43["Cap Start"] 43["Cap Start"]
44["Cap End"] 44["Cap End"]
45["SweepEdge Opposite"] 45["SweepEdge Opposite"]
46["SweepEdge Adjacent"] 46["SweepEdge Adjacent"]
50["Sweep Extrusion<br>[1948, 1992, 5]"] 50["Sweep Extrusion<br>[1948, 1992, 6]"]
51[Wall] 51[Wall]
52["SweepEdge Opposite"] 52["SweepEdge Opposite"]
53["SweepEdge Adjacent"] 53["SweepEdge Adjacent"]
54["Sweep Extrusion<br>[1948, 1992, 5]"] 54["Sweep Extrusion<br>[1948, 1992, 6]"]
55["Sweep Extrusion<br>[1948, 1992, 5]"] 55["Sweep Extrusion<br>[1948, 1992, 6]"]
56["Sweep Extrusion<br>[1948, 1992, 5]"] 56["Sweep Extrusion<br>[1948, 1992, 6]"]
57["Sweep Extrusion<br>[1948, 1992, 5]"] 57["Sweep Extrusion<br>[1948, 1992, 6]"]
61["Sweep Extrusion<br>[2271, 2315, 5]"] 61["Sweep Extrusion<br>[2271, 2315, 6]"]
62[Wall] 62[Wall]
63["Cap End"] 63["Cap End"]
64["SweepEdge Opposite"] 64["SweepEdge Opposite"]
65["SweepEdge Adjacent"] 65["SweepEdge Adjacent"]
66["Sweep Extrusion<br>[2271, 2315, 5]"] 66["Sweep Extrusion<br>[2271, 2315, 6]"]
67["Sweep Extrusion<br>[2271, 2315, 5]"] 67["Sweep Extrusion<br>[2271, 2315, 6]"]
68["Sweep Extrusion<br>[2271, 2315, 5]"] 68["Sweep Extrusion<br>[2271, 2315, 6]"]
69["Sweep Extrusion<br>[2271, 2315, 5]"] 69["Sweep Extrusion<br>[2271, 2315, 6]"]
70["Sweep Extrusion<br>[2271, 2315, 5]"] 70["Sweep Extrusion<br>[2271, 2315, 6]"]
71["Sweep Extrusion<br>[2271, 2315, 5]"] 71["Sweep Extrusion<br>[2271, 2315, 6]"]
72["Sweep Extrusion<br>[2271, 2315, 5]"] 72["Sweep Extrusion<br>[2271, 2315, 6]"]
73["Sweep Extrusion<br>[2271, 2315, 5]"] 73["Sweep Extrusion<br>[2271, 2315, 6]"]
74["Sweep Extrusion<br>[2271, 2315, 5]"] 74["Sweep Extrusion<br>[2271, 2315, 6]"]
75["Sweep Extrusion<br>[2271, 2315, 5]"] 75["Sweep Extrusion<br>[2271, 2315, 6]"]
76["Sweep Extrusion<br>[2271, 2315, 5]"] 76["Sweep Extrusion<br>[2271, 2315, 6]"]
77["Sweep Extrusion<br>[2271, 2315, 5]"] 77["Sweep Extrusion<br>[2271, 2315, 6]"]
78["Sweep Extrusion<br>[2271, 2315, 5]"] 78["Sweep Extrusion<br>[2271, 2315, 6]"]
79["Sweep Extrusion<br>[2271, 2315, 5]"] 79["Sweep Extrusion<br>[2271, 2315, 6]"]
80["Sweep Extrusion<br>[2271, 2315, 5]"] 80["Sweep Extrusion<br>[2271, 2315, 6]"]
88["Sweep Extrusion<br>[2724, 2792, 5]"] 88["Sweep Extrusion<br>[2724, 2792, 6]"]
89[Wall] 89[Wall]
90[Wall] 90[Wall]
91[Wall] 91[Wall]
@ -272,11 +272,11 @@ flowchart LR
99["SweepEdge Adjacent"] 99["SweepEdge Adjacent"]
100["SweepEdge Opposite"] 100["SweepEdge Opposite"]
101["SweepEdge Adjacent"] 101["SweepEdge Adjacent"]
102["Sweep Extrusion<br>[2724, 2792, 5]"] 102["Sweep Extrusion<br>[2724, 2792, 6]"]
103["Sweep Extrusion<br>[2724, 2792, 5]"] 103["Sweep Extrusion<br>[2724, 2792, 6]"]
104["Sweep Extrusion<br>[2724, 2792, 5]"] 104["Sweep Extrusion<br>[2724, 2792, 6]"]
105["Sweep Extrusion<br>[2724, 2792, 5]"] 105["Sweep Extrusion<br>[2724, 2792, 6]"]
113["Sweep Extrusion<br>[3198, 3272, 5]"] 113["Sweep Extrusion<br>[3198, 3272, 6]"]
114[Wall] 114[Wall]
115[Wall] 115[Wall]
116[Wall] 116[Wall]
@ -290,41 +290,41 @@ flowchart LR
124["SweepEdge Adjacent"] 124["SweepEdge Adjacent"]
125["SweepEdge Opposite"] 125["SweepEdge Opposite"]
126["SweepEdge Adjacent"] 126["SweepEdge Adjacent"]
127["Sweep Extrusion<br>[3198, 3272, 5]"] 127["Sweep Extrusion<br>[3198, 3272, 6]"]
128["Sweep Extrusion<br>[3198, 3272, 5]"] 128["Sweep Extrusion<br>[3198, 3272, 6]"]
129["Sweep Extrusion<br>[3198, 3272, 5]"] 129["Sweep Extrusion<br>[3198, 3272, 6]"]
130["Sweep Extrusion<br>[3198, 3272, 5]"] 130["Sweep Extrusion<br>[3198, 3272, 6]"]
131["Plane<br>[327, 344, 4]"] 131["Plane<br>[327, 344, 5]"]
138["Sweep Extrusion<br>[483, 516, 4]"] 138["Sweep Extrusion<br>[483, 516, 5]"]
139[Wall] 139[Wall]
140["Cap Start"] 140["Cap Start"]
141["Cap End"] 141["Cap End"]
142["SweepEdge Opposite"] 142["SweepEdge Opposite"]
143["SweepEdge Adjacent"] 143["SweepEdge Adjacent"]
150["Sweep Extrusion<br>[771, 804, 4]"] 150["Sweep Extrusion<br>[771, 804, 5]"]
151[Wall] 151[Wall]
152["Cap Start"] 152["Cap Start"]
153["Cap End"] 153["Cap End"]
154["SweepEdge Opposite"] 154["SweepEdge Opposite"]
155["SweepEdge Adjacent"] 155["SweepEdge Adjacent"]
159["Sweep Extrusion<br>[1106, 1140, 4]"] 159["Sweep Extrusion<br>[1106, 1140, 5]"]
160[Wall] 160[Wall]
161["SweepEdge Opposite"] 161["SweepEdge Opposite"]
162["SweepEdge Adjacent"] 162["SweepEdge Adjacent"]
163["Sweep Extrusion<br>[1106, 1140, 4]"] 163["Sweep Extrusion<br>[1106, 1140, 5]"]
164["Sweep Extrusion<br>[1106, 1140, 4]"] 164["Sweep Extrusion<br>[1106, 1140, 5]"]
165["Sweep Extrusion<br>[1106, 1140, 4]"] 165["Sweep Extrusion<br>[1106, 1140, 5]"]
166["Sweep Extrusion<br>[1106, 1140, 4]"] 166["Sweep Extrusion<br>[1106, 1140, 5]"]
170["Sweep Extrusion<br>[1444, 1478, 4]"] 170["Sweep Extrusion<br>[1444, 1478, 5]"]
171[Wall] 171[Wall]
172["SweepEdge Opposite"] 172["SweepEdge Opposite"]
173["SweepEdge Adjacent"] 173["SweepEdge Adjacent"]
174["Sweep Extrusion<br>[1444, 1478, 4]"] 174["Sweep Extrusion<br>[1444, 1478, 5]"]
175["Sweep Extrusion<br>[1444, 1478, 4]"] 175["Sweep Extrusion<br>[1444, 1478, 5]"]
176["Sweep Extrusion<br>[1444, 1478, 4]"] 176["Sweep Extrusion<br>[1444, 1478, 5]"]
177["Sweep Extrusion<br>[1444, 1478, 4]"] 177["Sweep Extrusion<br>[1444, 1478, 5]"]
178["Plane<br>[1632, 1649, 4]"] 178["Plane<br>[1632, 1649, 5]"]
186["Sweep Revolve<br>[1979, 1998, 4]"] 186["Sweep Revolve<br>[1979, 1998, 5]"]
187[Wall] 187[Wall]
188[Wall] 188[Wall]
189[Wall] 189[Wall]
@ -332,8 +332,8 @@ flowchart LR
191["SweepEdge Adjacent"] 191["SweepEdge Adjacent"]
192["SweepEdge Adjacent"] 192["SweepEdge Adjacent"]
193["SweepEdge Adjacent"] 193["SweepEdge Adjacent"]
194["Plane<br>[2084, 2101, 4]"] 194["Plane<br>[2084, 2101, 5]"]
202["Sweep Revolve<br>[2448, 2467, 4]"] 202["Sweep Revolve<br>[2448, 2467, 5]"]
203[Wall] 203[Wall]
204[Wall] 204[Wall]
205[Wall] 205[Wall]
@ -342,8 +342,8 @@ flowchart LR
208["SweepEdge Adjacent"] 208["SweepEdge Adjacent"]
209["SweepEdge Adjacent"] 209["SweepEdge Adjacent"]
210["SweepEdge Adjacent"] 210["SweepEdge Adjacent"]
211["Plane<br>[2922, 2945, 4]"] 211["Plane<br>[2922, 2945, 5]"]
219["Sweep Extrusion<br>[3867, 3913, 4]"] 219["Sweep Extrusion<br>[3867, 3913, 5]"]
220[Wall] 220[Wall]
221[Wall] 221[Wall]
222[Wall] 222[Wall]
@ -358,8 +358,8 @@ flowchart LR
231["SweepEdge Adjacent"] 231["SweepEdge Adjacent"]
232["SweepEdge Opposite"] 232["SweepEdge Opposite"]
233["SweepEdge Adjacent"] 233["SweepEdge Adjacent"]
234["Plane<br>[2922, 2945, 4]"] 234["Plane<br>[2922, 2945, 5]"]
242["Sweep Extrusion<br>[3867, 3913, 4]"] 242["Sweep Extrusion<br>[3867, 3913, 5]"]
243[Wall] 243[Wall]
244[Wall] 244[Wall]
245[Wall] 245[Wall]
@ -374,8 +374,8 @@ flowchart LR
254["SweepEdge Adjacent"] 254["SweepEdge Adjacent"]
255["SweepEdge Opposite"] 255["SweepEdge Opposite"]
256["SweepEdge Adjacent"] 256["SweepEdge Adjacent"]
257["Plane<br>[4324, 4341, 4]"] 257["Plane<br>[4324, 4341, 5]"]
284["Sweep Revolve<br>[5634, 5653, 4]"] 284["Sweep Revolve<br>[5634, 5653, 5]"]
285[Wall] 285[Wall]
286[Wall] 286[Wall]
287[Wall] 287[Wall]
@ -424,8 +424,8 @@ flowchart LR
330["SweepEdge Adjacent"] 330["SweepEdge Adjacent"]
331["SweepEdge Adjacent"] 331["SweepEdge Adjacent"]
332["SweepEdge Adjacent"] 332["SweepEdge Adjacent"]
333["Plane<br>[706, 732, 7]"] 333["Plane<br>[706, 732, 8]"]
345["Sweep Revolve<br>[1182, 1201, 7]"] 345["Sweep Revolve<br>[1182, 1201, 8]"]
346[Wall] 346[Wall]
347[Wall] 347[Wall]
348[Wall] 348[Wall]
@ -444,8 +444,8 @@ flowchart LR
361["SweepEdge Adjacent"] 361["SweepEdge Adjacent"]
362["SweepEdge Adjacent"] 362["SweepEdge Adjacent"]
363["SweepEdge Adjacent"] 363["SweepEdge Adjacent"]
364["Plane<br>[484, 501, 6]"] 364["Plane<br>[484, 501, 7]"]
384["Sweep Revolve<br>[2243, 2295, 6]"] 384["Sweep Revolve<br>[2243, 2295, 7]"]
385[Wall] 385[Wall]
386[Wall] 386[Wall]
387[Wall] 387[Wall]
@ -499,8 +499,8 @@ flowchart LR
435["SweepEdge Adjacent"] 435["SweepEdge Adjacent"]
436["SweepEdge Opposite"] 436["SweepEdge Opposite"]
437["SweepEdge Adjacent"] 437["SweepEdge Adjacent"]
438["Plane<br>[460, 477, 8]"] 438["Plane<br>[460, 477, 9]"]
455["Sweep Revolve<br>[1486, 1517, 8]"] 455["Sweep Revolve<br>[1486, 1517, 9]"]
456[Wall] 456[Wall]
457[Wall] 457[Wall]
458[Wall] 458[Wall]
@ -529,17 +529,17 @@ flowchart LR
481["SweepEdge Adjacent"] 481["SweepEdge Adjacent"]
482["SweepEdge Adjacent"] 482["SweepEdge Adjacent"]
483["SweepEdge Adjacent"] 483["SweepEdge Adjacent"]
484["StartSketchOnFace<br>[770, 797, 5]"] 484["StartSketchOnFace<br>[770, 797, 6]"]
485["StartSketchOnFace<br>[947, 978, 5]"] 485["StartSketchOnFace<br>[947, 978, 6]"]
486["StartSketchOnFace<br>[1385, 1414, 5]"] 486["StartSketchOnFace<br>[1385, 1414, 6]"]
487["StartSketchOnFace<br>[1524, 1558, 5]"] 487["StartSketchOnFace<br>[1524, 1558, 6]"]
488["StartSketchOnFace<br>[1709, 1742, 5]"] 488["StartSketchOnFace<br>[1709, 1742, 6]"]
489["StartSketchOnFace<br>[2009, 2038, 5]"] 489["StartSketchOnFace<br>[2009, 2038, 6]"]
490["StartSketchOnFace<br>[2338, 2367, 5]"] 490["StartSketchOnFace<br>[2338, 2367, 6]"]
491["StartSketchOnFace<br>[2821, 2854, 5]"] 491["StartSketchOnFace<br>[2821, 2854, 6]"]
492["StartSketchOnFace<br>[603, 632, 4]"] 492["StartSketchOnFace<br>[603, 632, 5]"]
493["StartSketchOnFace<br>[865, 899, 4]"] 493["StartSketchOnFace<br>[865, 899, 5]"]
494["StartSketchOnFace<br>[1202, 1231, 4]"] 494["StartSketchOnFace<br>[1202, 1231, 5]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 ---- 5 2 ---- 5

View File

@ -1848,7 +1848,7 @@ description: Operations executed car-wheel-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
2620, 2620,
4193, 4193,
4 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2235,7 +2235,7 @@ description: Operations executed car-wheel-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
2620, 2620,
4193, 4193,
4 5
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2660,7 +2660,7 @@ description: Operations executed car-wheel-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
664, 664,
1291, 1291,
7 8
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},

View File

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

View File

@ -1,162 +1,162 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[224, 279, 4]"] 2["Path<br>[224, 279, 5]"]
3["Segment<br>[285, 347, 4]"] 3["Segment<br>[285, 347, 5]"]
4["Segment<br>[353, 468, 4]"] 4["Segment<br>[353, 468, 5]"]
5["Segment<br>[474, 594, 4]"] 5["Segment<br>[474, 594, 5]"]
6["Segment<br>[600, 685, 4]"] 6["Segment<br>[600, 685, 5]"]
7["Segment<br>[691, 698, 4]"] 7["Segment<br>[691, 698, 5]"]
8[Solid2d] 8[Solid2d]
end end
subgraph path28 [Path] subgraph path28 [Path]
28["Path<br>[1134, 1191, 4]"] 28["Path<br>[1134, 1191, 5]"]
29["Segment<br>[1134, 1191, 4]"] 29["Segment<br>[1134, 1191, 5]"]
30[Solid2d] 30[Solid2d]
end end
subgraph path36 [Path] subgraph path36 [Path]
36["Path<br>[1389, 1426, 4]"] 36["Path<br>[1389, 1426, 5]"]
37["Segment<br>[1389, 1426, 4]"] 37["Segment<br>[1389, 1426, 5]"]
38[Solid2d] 38[Solid2d]
end end
subgraph path44 [Path] subgraph path44 [Path]
44["Path<br>[1558, 1698, 4]"] 44["Path<br>[1558, 1698, 5]"]
45["Segment<br>[1558, 1698, 4]"] 45["Segment<br>[1558, 1698, 5]"]
46[Solid2d] 46[Solid2d]
end end
subgraph path54 [Path] subgraph path54 [Path]
54["Path<br>[1944, 2084, 4]"] 54["Path<br>[1944, 2084, 5]"]
55["Segment<br>[1944, 2084, 4]"] 55["Segment<br>[1944, 2084, 5]"]
56[Solid2d] 56[Solid2d]
end end
subgraph path65 [Path] subgraph path65 [Path]
65["Path<br>[203, 263, 5]"] 65["Path<br>[203, 263, 6]"]
66["Segment<br>[203, 263, 5]"] 66["Segment<br>[203, 263, 6]"]
67[Solid2d] 67[Solid2d]
end end
subgraph path75 [Path] subgraph path75 [Path]
75["Path<br>[493, 529, 5]"] 75["Path<br>[493, 529, 6]"]
76["Segment<br>[535, 579, 5]"] 76["Segment<br>[535, 579, 6]"]
77["Segment<br>[585, 673, 5]"] 77["Segment<br>[585, 673, 6]"]
78["Segment<br>[679, 728, 5]"] 78["Segment<br>[679, 728, 6]"]
79["Segment<br>[734, 790, 5]"] 79["Segment<br>[734, 790, 6]"]
80["Segment<br>[796, 803, 5]"] 80["Segment<br>[796, 803, 6]"]
81[Solid2d] 81[Solid2d]
end end
subgraph path97 [Path] subgraph path97 [Path]
97["Path<br>[900, 1075, 5]"] 97["Path<br>[900, 1075, 6]"]
98["Segment<br>[900, 1075, 5]"] 98["Segment<br>[900, 1075, 6]"]
99[Solid2d] 99[Solid2d]
end end
subgraph path105 [Path] subgraph path105 [Path]
105["Path<br>[1279, 1426, 5]"] 105["Path<br>[1279, 1426, 6]"]
106["Segment<br>[1279, 1426, 5]"] 106["Segment<br>[1279, 1426, 6]"]
107[Solid2d] 107[Solid2d]
end end
subgraph path116 [Path] subgraph path116 [Path]
116["Path<br>[1743, 1917, 5]"] 116["Path<br>[1743, 1917, 6]"]
117["Segment<br>[1743, 1917, 5]"] 117["Segment<br>[1743, 1917, 6]"]
118[Solid2d] 118[Solid2d]
end end
subgraph path125 [Path] subgraph path125 [Path]
125["Path<br>[2142, 2182, 5]"] 125["Path<br>[2142, 2182, 6]"]
126["Segment<br>[2142, 2182, 5]"] 126["Segment<br>[2142, 2182, 6]"]
127[Solid2d] 127[Solid2d]
end end
subgraph path137 [Path] subgraph path137 [Path]
137["Path<br>[251, 394, 6]"] 137["Path<br>[251, 394, 7]"]
138["Segment<br>[400, 516, 6]"] 138["Segment<br>[400, 516, 7]"]
139["Segment<br>[522, 600, 6]"] 139["Segment<br>[522, 600, 7]"]
140["Segment<br>[606, 722, 6]"] 140["Segment<br>[606, 722, 7]"]
141["Segment<br>[728, 784, 6]"] 141["Segment<br>[728, 784, 7]"]
142["Segment<br>[790, 797, 6]"] 142["Segment<br>[790, 797, 7]"]
143[Solid2d] 143[Solid2d]
end end
subgraph path159 [Path] subgraph path159 [Path]
159["Path<br>[913, 977, 6]"] 159["Path<br>[913, 977, 7]"]
160["Segment<br>[913, 977, 6]"] 160["Segment<br>[913, 977, 7]"]
161[Solid2d] 161[Solid2d]
end end
subgraph path167 [Path] subgraph path167 [Path]
167["Path<br>[1146, 1354, 6]"] 167["Path<br>[1146, 1354, 7]"]
168["Segment<br>[1146, 1354, 6]"] 168["Segment<br>[1146, 1354, 7]"]
169[Solid2d] 169[Solid2d]
end end
subgraph path175 [Path] subgraph path175 [Path]
175["Path<br>[1557, 1601, 6]"] 175["Path<br>[1557, 1601, 7]"]
176["Segment<br>[1557, 1601, 6]"] 176["Segment<br>[1557, 1601, 7]"]
177[Solid2d] 177[Solid2d]
end end
subgraph path190 [Path] subgraph path190 [Path]
190["Path<br>[1839, 2031, 6]"] 190["Path<br>[1839, 2031, 7]"]
191["Segment<br>[1839, 2031, 6]"] 191["Segment<br>[1839, 2031, 7]"]
192[Solid2d] 192[Solid2d]
end end
subgraph path201 [Path] subgraph path201 [Path]
201["Path<br>[2384, 2559, 6]"] 201["Path<br>[2384, 2559, 7]"]
202["Segment<br>[2384, 2559, 6]"] 202["Segment<br>[2384, 2559, 7]"]
203[Solid2d] 203[Solid2d]
end end
subgraph path210 [Path] subgraph path210 [Path]
210["Path<br>[271, 504, 7]"] 210["Path<br>[271, 504, 8]"]
211["Segment<br>[510, 629, 7]"] 211["Segment<br>[510, 629, 8]"]
212["Segment<br>[635, 715, 7]"] 212["Segment<br>[635, 715, 8]"]
213["Segment<br>[721, 840, 7]"] 213["Segment<br>[721, 840, 8]"]
214["Segment<br>[846, 916, 7]"] 214["Segment<br>[846, 916, 8]"]
215["Segment<br>[922, 929, 7]"] 215["Segment<br>[922, 929, 8]"]
216[Solid2d] 216[Solid2d]
end end
subgraph path232 [Path] subgraph path232 [Path]
232["Path<br>[1043, 1252, 7]"] 232["Path<br>[1043, 1252, 8]"]
233["Segment<br>[1043, 1252, 7]"] 233["Segment<br>[1043, 1252, 8]"]
234[Solid2d] 234[Solid2d]
end end
subgraph path240 [Path] subgraph path240 [Path]
240["Path<br>[1457, 1646, 7]"] 240["Path<br>[1457, 1646, 8]"]
241["Segment<br>[1457, 1646, 7]"] 241["Segment<br>[1457, 1646, 8]"]
242[Solid2d] 242[Solid2d]
end end
subgraph path255 [Path] subgraph path255 [Path]
255["Path<br>[2067, 2353, 7]"] 255["Path<br>[2067, 2353, 8]"]
256["Segment<br>[2067, 2353, 7]"] 256["Segment<br>[2067, 2353, 8]"]
257[Solid2d] 257[Solid2d]
end end
subgraph path264 [Path] subgraph path264 [Path]
264["Path<br>[2452, 2736, 7]"] 264["Path<br>[2452, 2736, 8]"]
265["Segment<br>[2452, 2736, 7]"] 265["Segment<br>[2452, 2736, 8]"]
266[Solid2d] 266[Solid2d]
end end
subgraph path273 [Path] subgraph path273 [Path]
273["Path<br>[2890, 2928, 7]"] 273["Path<br>[2890, 2928, 8]"]
274["Segment<br>[2890, 2928, 7]"] 274["Segment<br>[2890, 2928, 8]"]
275[Solid2d] 275[Solid2d]
end end
subgraph path282 [Path] subgraph path282 [Path]
282["Path<br>[3058, 3283, 7]"] 282["Path<br>[3058, 3283, 8]"]
283["Segment<br>[3289, 3383, 7]"] 283["Segment<br>[3289, 3383, 8]"]
284["Segment<br>[3389, 3532, 7]"] 284["Segment<br>[3389, 3532, 8]"]
285["Segment<br>[3538, 3632, 7]"] 285["Segment<br>[3538, 3632, 8]"]
286["Segment<br>[3638, 3740, 7]"] 286["Segment<br>[3638, 3740, 8]"]
287["Segment<br>[3746, 3848, 7]"] 287["Segment<br>[3746, 3848, 8]"]
288["Segment<br>[3854, 3954, 7]"] 288["Segment<br>[3854, 3954, 8]"]
289["Segment<br>[3960, 4016, 7]"] 289["Segment<br>[3960, 4016, 8]"]
290["Segment<br>[4022, 4029, 7]"] 290["Segment<br>[4022, 4029, 8]"]
291[Solid2d] 291[Solid2d]
end end
subgraph path316 [Path] subgraph path316 [Path]
316["Path<br>[4158, 4383, 7]"] 316["Path<br>[4158, 4383, 8]"]
317["Segment<br>[4389, 4485, 7]"] 317["Segment<br>[4389, 4485, 8]"]
318["Segment<br>[4491, 4639, 7]"] 318["Segment<br>[4491, 4639, 8]"]
319["Segment<br>[4645, 4741, 7]"] 319["Segment<br>[4645, 4741, 8]"]
320["Segment<br>[4747, 4851, 7]"] 320["Segment<br>[4747, 4851, 8]"]
321["Segment<br>[4857, 4961, 7]"] 321["Segment<br>[4857, 4961, 8]"]
322["Segment<br>[4967, 5069, 7]"] 322["Segment<br>[4967, 5069, 8]"]
323["Segment<br>[5075, 5131, 7]"] 323["Segment<br>[5075, 5131, 8]"]
324["Segment<br>[5137, 5144, 7]"] 324["Segment<br>[5137, 5144, 8]"]
325[Solid2d] 325[Solid2d]
end end
1["Plane<br>[201, 218, 4]"] 1["Plane<br>[201, 218, 5]"]
9["Sweep Extrusion<br>[712, 759, 4]"] 9["Sweep Extrusion<br>[712, 759, 5]"]
10[Wall] 10[Wall]
11[Wall] 11[Wall]
12[Wall] 12[Wall]
@ -171,43 +171,43 @@ flowchart LR
21["SweepEdge Adjacent"] 21["SweepEdge Adjacent"]
22["SweepEdge Opposite"] 22["SweepEdge Opposite"]
23["SweepEdge Adjacent"] 23["SweepEdge Adjacent"]
24["EdgeCut Chamfer<br>[765, 1042, 4]"] 24["EdgeCut Chamfer<br>[765, 1042, 5]"]
25["EdgeCut Chamfer<br>[765, 1042, 4]"] 25["EdgeCut Chamfer<br>[765, 1042, 5]"]
26["EdgeCut Chamfer<br>[765, 1042, 4]"] 26["EdgeCut Chamfer<br>[765, 1042, 5]"]
27["EdgeCut Chamfer<br>[765, 1042, 4]"] 27["EdgeCut Chamfer<br>[765, 1042, 5]"]
31["Sweep Extrusion<br>[1205, 1271, 4]"] 31["Sweep Extrusion<br>[1205, 1271, 5]"]
32[Wall] 32[Wall]
33["Cap End"] 33["Cap End"]
34["SweepEdge Opposite"] 34["SweepEdge Opposite"]
35["SweepEdge Adjacent"] 35["SweepEdge Adjacent"]
39["Sweep Extrusion<br>[1440, 1470, 4]"] 39["Sweep Extrusion<br>[1440, 1470, 5]"]
40[Wall] 40[Wall]
41["Cap End"] 41["Cap End"]
42["SweepEdge Opposite"] 42["SweepEdge Opposite"]
43["SweepEdge Adjacent"] 43["SweepEdge Adjacent"]
47["Sweep Extrusion<br>[1846, 1893, 4]"] 47["Sweep Extrusion<br>[1846, 1893, 5]"]
48[Wall] 48[Wall]
49["SweepEdge Opposite"] 49["SweepEdge Opposite"]
50["SweepEdge Adjacent"] 50["SweepEdge Adjacent"]
51["Sweep Extrusion<br>[1846, 1893, 4]"] 51["Sweep Extrusion<br>[1846, 1893, 5]"]
52["Sweep Extrusion<br>[1846, 1893, 4]"] 52["Sweep Extrusion<br>[1846, 1893, 5]"]
53["Sweep Extrusion<br>[1846, 1893, 4]"] 53["Sweep Extrusion<br>[1846, 1893, 5]"]
57["Sweep Extrusion<br>[2220, 2267, 4]"] 57["Sweep Extrusion<br>[2220, 2267, 5]"]
58[Wall] 58[Wall]
59["SweepEdge Opposite"] 59["SweepEdge Opposite"]
60["SweepEdge Adjacent"] 60["SweepEdge Adjacent"]
61["Sweep Extrusion<br>[2220, 2267, 4]"] 61["Sweep Extrusion<br>[2220, 2267, 5]"]
62["Sweep Extrusion<br>[2220, 2267, 4]"] 62["Sweep Extrusion<br>[2220, 2267, 5]"]
63["Sweep Extrusion<br>[2220, 2267, 4]"] 63["Sweep Extrusion<br>[2220, 2267, 5]"]
64["Plane<br>[174, 197, 5]"] 64["Plane<br>[174, 197, 6]"]
68["Sweep Extrusion<br>[277, 315, 5]"] 68["Sweep Extrusion<br>[277, 315, 6]"]
69[Wall] 69[Wall]
70["Cap Start"] 70["Cap Start"]
71["Cap End"] 71["Cap End"]
72["SweepEdge Opposite"] 72["SweepEdge Opposite"]
73["SweepEdge Adjacent"] 73["SweepEdge Adjacent"]
74["Plane<br>[464, 487, 5]"] 74["Plane<br>[464, 487, 6]"]
82["Sweep Extrusion<br>[818, 848, 5]"] 82["Sweep Extrusion<br>[818, 848, 6]"]
83[Wall] 83[Wall]
84[Wall] 84[Wall]
85[Wall] 85[Wall]
@ -222,35 +222,35 @@ flowchart LR
94["SweepEdge Adjacent"] 94["SweepEdge Adjacent"]
95["SweepEdge Opposite"] 95["SweepEdge Opposite"]
96["SweepEdge Adjacent"] 96["SweepEdge Adjacent"]
100["Sweep Extrusion<br>[1089, 1121, 5]"] 100["Sweep Extrusion<br>[1089, 1121, 6]"]
101[Wall] 101[Wall]
102["Cap End"] 102["Cap End"]
103["SweepEdge Opposite"] 103["SweepEdge Opposite"]
104["SweepEdge Adjacent"] 104["SweepEdge Adjacent"]
108["Sweep Extrusion<br>[1659, 1691, 5]"] 108["Sweep Extrusion<br>[1659, 1691, 6]"]
109[Wall] 109[Wall]
110["Cap End"] 110["Cap End"]
111["SweepEdge Opposite"] 111["SweepEdge Opposite"]
112["SweepEdge Adjacent"] 112["SweepEdge Adjacent"]
113["Sweep Extrusion<br>[1659, 1691, 5]"] 113["Sweep Extrusion<br>[1659, 1691, 6]"]
114["Sweep Extrusion<br>[1659, 1691, 5]"] 114["Sweep Extrusion<br>[1659, 1691, 6]"]
115["Sweep Extrusion<br>[1659, 1691, 5]"] 115["Sweep Extrusion<br>[1659, 1691, 6]"]
119["Sweep Extrusion<br>[1931, 1964, 5]"] 119["Sweep Extrusion<br>[1931, 1964, 6]"]
120[Wall] 120[Wall]
121["Cap End"] 121["Cap End"]
122["SweepEdge Opposite"] 122["SweepEdge Opposite"]
123["SweepEdge Adjacent"] 123["SweepEdge Adjacent"]
124["Plane<br>[2113, 2136, 5]"] 124["Plane<br>[2113, 2136, 6]"]
128["Sweep Extrusion<br>[2184, 2215, 5]"] 128["Sweep Extrusion<br>[2184, 2215, 6]"]
129[Wall] 129[Wall]
130["Cap Start"] 130["Cap Start"]
131["Cap End"] 131["Cap End"]
132["SweepEdge Opposite"] 132["SweepEdge Opposite"]
133["SweepEdge Adjacent"] 133["SweepEdge Adjacent"]
134["EdgeCut Fillet<br>[321, 383, 5]"] 134["EdgeCut Fillet<br>[321, 383, 6]"]
135["EdgeCut Fillet<br>[1970, 2032, 5]"] 135["EdgeCut Fillet<br>[1970, 2032, 6]"]
136["Plane<br>[222, 245, 6]"] 136["Plane<br>[222, 245, 7]"]
144["Sweep Extrusion<br>[811, 859, 6]"] 144["Sweep Extrusion<br>[811, 859, 7]"]
145[Wall] 145[Wall]
146[Wall] 146[Wall]
147[Wall] 147[Wall]
@ -265,43 +265,43 @@ flowchart LR
156["SweepEdge Adjacent"] 156["SweepEdge Adjacent"]
157["SweepEdge Opposite"] 157["SweepEdge Opposite"]
158["SweepEdge Adjacent"] 158["SweepEdge Adjacent"]
162["Sweep Extrusion<br>[992, 1025, 6]"] 162["Sweep Extrusion<br>[992, 1025, 7]"]
163[Wall] 163[Wall]
164["Cap End"] 164["Cap End"]
165["SweepEdge Opposite"] 165["SweepEdge Opposite"]
166["SweepEdge Adjacent"] 166["SweepEdge Adjacent"]
170["Sweep Extrusion<br>[1369, 1399, 6]"] 170["Sweep Extrusion<br>[1369, 1399, 7]"]
171[Wall] 171[Wall]
172["Cap End"] 172["Cap End"]
173["SweepEdge Opposite"] 173["SweepEdge Opposite"]
174["SweepEdge Adjacent"] 174["SweepEdge Adjacent"]
178["Sweep Extrusion<br>[1754, 1787, 6]"] 178["Sweep Extrusion<br>[1754, 1787, 7]"]
179[Wall] 179[Wall]
180["Cap End"] 180["Cap End"]
181["SweepEdge Opposite"] 181["SweepEdge Opposite"]
182["SweepEdge Adjacent"] 182["SweepEdge Adjacent"]
183["Sweep Extrusion<br>[1754, 1787, 6]"] 183["Sweep Extrusion<br>[1754, 1787, 7]"]
184["Sweep Extrusion<br>[1754, 1787, 6]"] 184["Sweep Extrusion<br>[1754, 1787, 7]"]
185["Sweep Extrusion<br>[1754, 1787, 6]"] 185["Sweep Extrusion<br>[1754, 1787, 7]"]
186["Sweep Extrusion<br>[1754, 1787, 6]"] 186["Sweep Extrusion<br>[1754, 1787, 7]"]
187["Sweep Extrusion<br>[1754, 1787, 6]"] 187["Sweep Extrusion<br>[1754, 1787, 7]"]
188["Sweep Extrusion<br>[1754, 1787, 6]"] 188["Sweep Extrusion<br>[1754, 1787, 7]"]
189["Sweep Extrusion<br>[1754, 1787, 6]"] 189["Sweep Extrusion<br>[1754, 1787, 7]"]
193["Sweep Extrusion<br>[2299, 2332, 6]"] 193["Sweep Extrusion<br>[2299, 2332, 7]"]
194[Wall] 194[Wall]
195["Cap End"] 195["Cap End"]
196["SweepEdge Opposite"] 196["SweepEdge Opposite"]
197["SweepEdge Adjacent"] 197["SweepEdge Adjacent"]
198["Sweep Extrusion<br>[2299, 2332, 6]"] 198["Sweep Extrusion<br>[2299, 2332, 7]"]
199["Sweep Extrusion<br>[2299, 2332, 6]"] 199["Sweep Extrusion<br>[2299, 2332, 7]"]
200["Sweep Extrusion<br>[2299, 2332, 6]"] 200["Sweep Extrusion<br>[2299, 2332, 7]"]
204["Sweep Extrusion<br>[2561, 2591, 6]"] 204["Sweep Extrusion<br>[2561, 2591, 7]"]
205[Wall] 205[Wall]
206["Cap End"] 206["Cap End"]
207["SweepEdge Opposite"] 207["SweepEdge Opposite"]
208["SweepEdge Adjacent"] 208["SweepEdge Adjacent"]
209["Plane<br>[242, 265, 7]"] 209["Plane<br>[242, 265, 8]"]
217["Sweep Extrusion<br>[943, 991, 7]"] 217["Sweep Extrusion<br>[943, 991, 8]"]
218[Wall] 218[Wall]
219[Wall] 219[Wall]
220[Wall] 220[Wall]
@ -316,42 +316,42 @@ flowchart LR
229["SweepEdge Adjacent"] 229["SweepEdge Adjacent"]
230["SweepEdge Opposite"] 230["SweepEdge Opposite"]
231["SweepEdge Adjacent"] 231["SweepEdge Adjacent"]
235["Sweep Extrusion<br>[1267, 1300, 7]"] 235["Sweep Extrusion<br>[1267, 1300, 8]"]
236[Wall] 236[Wall]
237["Cap End"] 237["Cap End"]
238["SweepEdge Opposite"] 238["SweepEdge Opposite"]
239["SweepEdge Adjacent"] 239["SweepEdge Adjacent"]
243["Sweep Extrusion<br>[1911, 1944, 7]"] 243["Sweep Extrusion<br>[1911, 1944, 8]"]
244[Wall] 244[Wall]
245["Cap End"] 245["Cap End"]
246["SweepEdge Opposite"] 246["SweepEdge Opposite"]
247["SweepEdge Adjacent"] 247["SweepEdge Adjacent"]
248["Sweep Extrusion<br>[1911, 1944, 7]"] 248["Sweep Extrusion<br>[1911, 1944, 8]"]
249["Sweep Extrusion<br>[1911, 1944, 7]"] 249["Sweep Extrusion<br>[1911, 1944, 8]"]
250["Sweep Extrusion<br>[1911, 1944, 7]"] 250["Sweep Extrusion<br>[1911, 1944, 8]"]
251["Sweep Extrusion<br>[1911, 1944, 7]"] 251["Sweep Extrusion<br>[1911, 1944, 8]"]
252["Sweep Extrusion<br>[1911, 1944, 7]"] 252["Sweep Extrusion<br>[1911, 1944, 8]"]
253["Sweep Extrusion<br>[1911, 1944, 7]"] 253["Sweep Extrusion<br>[1911, 1944, 8]"]
254["Sweep Extrusion<br>[1911, 1944, 7]"] 254["Sweep Extrusion<br>[1911, 1944, 8]"]
258["Sweep Extrusion<br>[2367, 2400, 7]"] 258["Sweep Extrusion<br>[2367, 2400, 8]"]
259[Wall] 259[Wall]
260["Cap Start"] 260["Cap Start"]
261["Cap End"] 261["Cap End"]
262["SweepEdge Opposite"] 262["SweepEdge Opposite"]
263["SweepEdge Adjacent"] 263["SweepEdge Adjacent"]
267["Sweep Extrusion<br>[2751, 2784, 7]"] 267["Sweep Extrusion<br>[2751, 2784, 8]"]
268[Wall] 268[Wall]
269["Cap Start"] 269["Cap Start"]
270["Cap End"] 270["Cap End"]
271["SweepEdge Opposite"] 271["SweepEdge Opposite"]
272["SweepEdge Adjacent"] 272["SweepEdge Adjacent"]
276["Sweep Extrusion<br>[2943, 2977, 7]"] 276["Sweep Extrusion<br>[2943, 2977, 8]"]
277[Wall] 277[Wall]
278["Cap Start"] 278["Cap Start"]
279["Cap End"] 279["Cap End"]
280["SweepEdge Opposite"] 280["SweepEdge Opposite"]
281["SweepEdge Adjacent"] 281["SweepEdge Adjacent"]
292["Sweep Extrusion<br>[4044, 4077, 7]"] 292["Sweep Extrusion<br>[4044, 4077, 8]"]
293[Wall] 293[Wall]
294[Wall] 294[Wall]
295[Wall] 295[Wall]
@ -375,7 +375,7 @@ flowchart LR
313["SweepEdge Adjacent"] 313["SweepEdge Adjacent"]
314["SweepEdge Opposite"] 314["SweepEdge Opposite"]
315["SweepEdge Adjacent"] 315["SweepEdge Adjacent"]
326["Sweep Extrusion<br>[5146, 5179, 7]"] 326["Sweep Extrusion<br>[5146, 5179, 8]"]
327[Wall] 327[Wall]
328[Wall] 328[Wall]
329[Wall] 329[Wall]
@ -399,25 +399,25 @@ flowchart LR
347["SweepEdge Adjacent"] 347["SweepEdge Adjacent"]
348["SweepEdge Opposite"] 348["SweepEdge Opposite"]
349["SweepEdge Adjacent"] 349["SweepEdge Adjacent"]
350["StartSketchOnFace<br>[1096, 1128, 4]"] 350["StartSketchOnFace<br>[1096, 1128, 5]"]
351["StartSketchOnFace<br>[1351, 1383, 4]"] 351["StartSketchOnFace<br>[1351, 1383, 5]"]
352["StartSketchOnFace<br>[1520, 1552, 4]"] 352["StartSketchOnFace<br>[1520, 1552, 5]"]
353["StartSketchOnFace<br>[1906, 1938, 4]"] 353["StartSketchOnFace<br>[1906, 1938, 5]"]
354["StartSketchOnFace<br>[862, 894, 5]"] 354["StartSketchOnFace<br>[862, 894, 6]"]
355["StartSketchOnFace<br>[1241, 1273, 5]"] 355["StartSketchOnFace<br>[1241, 1273, 6]"]
356["StartSketchOnFace<br>[1705, 1737, 5]"] 356["StartSketchOnFace<br>[1705, 1737, 6]"]
357["StartSketchOnFace<br>[873, 907, 6]"] 357["StartSketchOnFace<br>[873, 907, 7]"]
358["StartSketchOnFace<br>[1106, 1140, 6]"] 358["StartSketchOnFace<br>[1106, 1140, 7]"]
359["StartSketchOnFace<br>[1519, 1551, 6]"] 359["StartSketchOnFace<br>[1519, 1551, 7]"]
360["StartSketchOnFace<br>[1801, 1833, 6]"] 360["StartSketchOnFace<br>[1801, 1833, 7]"]
361["StartSketchOnFace<br>[2346, 2378, 6]"] 361["StartSketchOnFace<br>[2346, 2378, 7]"]
362["StartSketchOnFace<br>[1005, 1037, 7]"] 362["StartSketchOnFace<br>[1005, 1037, 8]"]
363["StartSketchOnFace<br>[1419, 1451, 7]"] 363["StartSketchOnFace<br>[1419, 1451, 8]"]
364["StartSketchOnFace<br>[2027, 2061, 7]"] 364["StartSketchOnFace<br>[2027, 2061, 8]"]
365["StartSketchOnFace<br>[2414, 2446, 7]"] 365["StartSketchOnFace<br>[2414, 2446, 8]"]
366["StartSketchOnFace<br>[2850, 2884, 7]"] 366["StartSketchOnFace<br>[2850, 2884, 8]"]
367["StartSketchOnFace<br>[3018, 3052, 7]"] 367["StartSketchOnFace<br>[3018, 3052, 8]"]
368["StartSketchOnFace<br>[4118, 4152, 7]"] 368["StartSketchOnFace<br>[4118, 4152, 8]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

View File

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

View File

@ -1,206 +1,206 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[537, 630, 5]"] 2["Path<br>[537, 630, 6]"]
3["Segment<br>[537, 630, 5]"] 3["Segment<br>[537, 630, 6]"]
4[Solid2d] 4[Solid2d]
end end
subgraph path6 [Path] subgraph path6 [Path]
6["Path<br>[859, 914, 5]"] 6["Path<br>[859, 914, 6]"]
7["Segment<br>[859, 914, 5]"] 7["Segment<br>[859, 914, 6]"]
8[Solid2d] 8[Solid2d]
end end
subgraph path15 [Path] subgraph path15 [Path]
15["Path<br>[1129, 1188, 5]"] 15["Path<br>[1129, 1188, 6]"]
16["Segment<br>[1129, 1188, 5]"] 16["Segment<br>[1129, 1188, 6]"]
17[Solid2d] 17[Solid2d]
end end
subgraph path23 [Path] subgraph path23 [Path]
23["Path<br>[1290, 1350, 5]"] 23["Path<br>[1290, 1350, 6]"]
24["Segment<br>[1290, 1350, 5]"] 24["Segment<br>[1290, 1350, 6]"]
25[Solid2d] 25[Solid2d]
end end
subgraph path31 [Path] subgraph path31 [Path]
31["Path<br>[1507, 1560, 5]"] 31["Path<br>[1507, 1560, 6]"]
32["Segment<br>[1507, 1560, 5]"] 32["Segment<br>[1507, 1560, 6]"]
33[Solid2d] 33[Solid2d]
end end
subgraph path39 [Path] subgraph path39 [Path]
39["Path<br>[537, 630, 5]"] 39["Path<br>[537, 630, 6]"]
40["Segment<br>[537, 630, 5]"] 40["Segment<br>[537, 630, 6]"]
41[Solid2d] 41[Solid2d]
end end
subgraph path43 [Path] subgraph path43 [Path]
43["Path<br>[859, 914, 5]"] 43["Path<br>[859, 914, 6]"]
44["Segment<br>[859, 914, 5]"] 44["Segment<br>[859, 914, 6]"]
45[Solid2d] 45[Solid2d]
end end
subgraph path52 [Path] subgraph path52 [Path]
52["Path<br>[1129, 1188, 5]"] 52["Path<br>[1129, 1188, 6]"]
53["Segment<br>[1129, 1188, 5]"] 53["Segment<br>[1129, 1188, 6]"]
54[Solid2d] 54[Solid2d]
end end
subgraph path60 [Path] subgraph path60 [Path]
60["Path<br>[1290, 1350, 5]"] 60["Path<br>[1290, 1350, 6]"]
61["Segment<br>[1290, 1350, 5]"] 61["Segment<br>[1290, 1350, 6]"]
62[Solid2d] 62[Solid2d]
end end
subgraph path68 [Path] subgraph path68 [Path]
68["Path<br>[1507, 1560, 5]"] 68["Path<br>[1507, 1560, 6]"]
69["Segment<br>[1507, 1560, 5]"] 69["Segment<br>[1507, 1560, 6]"]
70[Solid2d] 70[Solid2d]
end end
subgraph path76 [Path] subgraph path76 [Path]
76["Path<br>[494, 556, 6]"] 76["Path<br>[494, 556, 7]"]
77["Segment<br>[494, 556, 6]"] 77["Segment<br>[494, 556, 7]"]
78[Solid2d] 78[Solid2d]
end end
subgraph path85 [Path] subgraph path85 [Path]
85["Path<br>[706, 766, 6]"] 85["Path<br>[706, 766, 7]"]
86["Segment<br>[706, 766, 6]"] 86["Segment<br>[706, 766, 7]"]
87[Solid2d] 87[Solid2d]
end end
subgraph path93 [Path] subgraph path93 [Path]
93["Path<br>[355, 407, 7]"] 93["Path<br>[355, 407, 8]"]
94["Segment<br>[355, 407, 7]"] 94["Segment<br>[355, 407, 8]"]
95[Solid2d] 95[Solid2d]
end end
subgraph path102 [Path] subgraph path102 [Path]
102["Path<br>[540, 592, 7]"] 102["Path<br>[540, 592, 8]"]
103["Segment<br>[540, 592, 7]"] 103["Segment<br>[540, 592, 8]"]
104[Solid2d] 104[Solid2d]
end end
subgraph path110 [Path] subgraph path110 [Path]
110["Path<br>[446, 516, 8]"] 110["Path<br>[446, 516, 9]"]
111["Segment<br>[446, 516, 8]"] 111["Segment<br>[446, 516, 9]"]
112[Solid2d] 112[Solid2d]
end end
subgraph path121 [Path] subgraph path121 [Path]
121["Path<br>[780, 867, 8]"] 121["Path<br>[780, 867, 9]"]
122["Segment<br>[875, 958, 8]"] 122["Segment<br>[875, 958, 9]"]
123["Segment<br>[966, 1049, 8]"] 123["Segment<br>[966, 1049, 9]"]
124["Segment<br>[1057, 1140, 8]"] 124["Segment<br>[1057, 1140, 9]"]
125["Segment<br>[1148, 1230, 8]"] 125["Segment<br>[1148, 1230, 9]"]
126["Segment<br>[1238, 1320, 8]"] 126["Segment<br>[1238, 1320, 9]"]
127["Segment<br>[1328, 1335, 8]"] 127["Segment<br>[1328, 1335, 9]"]
128[Solid2d] 128[Solid2d]
end end
subgraph path149 [Path] subgraph path149 [Path]
149["Path<br>[1469, 1538, 8]"] 149["Path<br>[1469, 1538, 9]"]
150["Segment<br>[1469, 1538, 8]"] 150["Segment<br>[1469, 1538, 9]"]
151[Solid2d] 151[Solid2d]
end end
subgraph path158 [Path] subgraph path158 [Path]
158["Path<br>[378, 468, 9]"] 158["Path<br>[378, 468, 10]"]
159["Segment<br>[476, 558, 9]"] 159["Segment<br>[476, 558, 10]"]
160["Segment<br>[566, 648, 9]"] 160["Segment<br>[566, 648, 10]"]
161["Segment<br>[656, 738, 9]"] 161["Segment<br>[656, 738, 10]"]
162["Segment<br>[746, 827, 9]"] 162["Segment<br>[746, 827, 10]"]
163["Segment<br>[835, 916, 9]"] 163["Segment<br>[835, 916, 10]"]
164["Segment<br>[924, 931, 9]"] 164["Segment<br>[924, 931, 10]"]
165[Solid2d] 165[Solid2d]
end end
subgraph path187 [Path] subgraph path187 [Path]
187["Path<br>[1075, 1127, 9]"] 187["Path<br>[1075, 1127, 10]"]
188["Segment<br>[1075, 1127, 9]"] 188["Segment<br>[1075, 1127, 10]"]
189[Solid2d] 189[Solid2d]
end end
subgraph path195 [Path] subgraph path195 [Path]
195["Path<br>[313, 371, 10]"] 195["Path<br>[313, 371, 11]"]
196["Segment<br>[313, 371, 10]"] 196["Segment<br>[313, 371, 11]"]
197[Solid2d] 197[Solid2d]
end end
subgraph path204 [Path] subgraph path204 [Path]
204["Path<br>[510, 565, 10]"] 204["Path<br>[510, 565, 11]"]
205["Segment<br>[510, 565, 10]"] 205["Segment<br>[510, 565, 11]"]
206[Solid2d] 206[Solid2d]
end end
subgraph path212 [Path] subgraph path212 [Path]
212["Path<br>[313, 371, 10]"] 212["Path<br>[313, 371, 11]"]
213["Segment<br>[313, 371, 10]"] 213["Segment<br>[313, 371, 11]"]
214[Solid2d] 214[Solid2d]
end end
subgraph path221 [Path] subgraph path221 [Path]
221["Path<br>[510, 565, 10]"] 221["Path<br>[510, 565, 11]"]
222["Segment<br>[510, 565, 10]"] 222["Segment<br>[510, 565, 11]"]
223[Solid2d] 223[Solid2d]
end end
1["Plane<br>[512, 529, 5]"] 1["Plane<br>[512, 529, 6]"]
5["Plane<br>[834, 851, 5]"] 5["Plane<br>[834, 851, 6]"]
9["Sweep Extrusion<br>[952, 992, 5]"] 9["Sweep Extrusion<br>[952, 992, 6]"]
10[Wall] 10[Wall]
11["Cap Start"] 11["Cap Start"]
12["Cap End"] 12["Cap End"]
13["SweepEdge Opposite"] 13["SweepEdge Opposite"]
14["SweepEdge Adjacent"] 14["SweepEdge Adjacent"]
18["Sweep Extrusion<br>[1196, 1233, 5]"] 18["Sweep Extrusion<br>[1196, 1233, 6]"]
19[Wall] 19[Wall]
20["Cap End"] 20["Cap End"]
21["SweepEdge Opposite"] 21["SweepEdge Opposite"]
22["SweepEdge Adjacent"] 22["SweepEdge Adjacent"]
26["Sweep Extrusion<br>[1358, 1396, 5]"] 26["Sweep Extrusion<br>[1358, 1396, 6]"]
27[Wall] 27[Wall]
28["Cap End"] 28["Cap End"]
29["SweepEdge Opposite"] 29["SweepEdge Opposite"]
30["SweepEdge Adjacent"] 30["SweepEdge Adjacent"]
34["Sweep Extrusion<br>[1568, 1610, 5]"] 34["Sweep Extrusion<br>[1568, 1610, 6]"]
35[Wall] 35[Wall]
36["SweepEdge Opposite"] 36["SweepEdge Opposite"]
37["SweepEdge Adjacent"] 37["SweepEdge Adjacent"]
38["Plane<br>[512, 529, 5]"] 38["Plane<br>[512, 529, 6]"]
42["Plane<br>[834, 851, 5]"] 42["Plane<br>[834, 851, 6]"]
46["Sweep Extrusion<br>[952, 992, 5]"] 46["Sweep Extrusion<br>[952, 992, 6]"]
47[Wall] 47[Wall]
48["Cap Start"] 48["Cap Start"]
49["Cap End"] 49["Cap End"]
50["SweepEdge Opposite"] 50["SweepEdge Opposite"]
51["SweepEdge Adjacent"] 51["SweepEdge Adjacent"]
55["Sweep Extrusion<br>[1196, 1233, 5]"] 55["Sweep Extrusion<br>[1196, 1233, 6]"]
56[Wall] 56[Wall]
57["Cap End"] 57["Cap End"]
58["SweepEdge Opposite"] 58["SweepEdge Opposite"]
59["SweepEdge Adjacent"] 59["SweepEdge Adjacent"]
63["Sweep Extrusion<br>[1358, 1396, 5]"] 63["Sweep Extrusion<br>[1358, 1396, 6]"]
64[Wall] 64[Wall]
65["Cap End"] 65["Cap End"]
66["SweepEdge Opposite"] 66["SweepEdge Opposite"]
67["SweepEdge Adjacent"] 67["SweepEdge Adjacent"]
71["Sweep Extrusion<br>[1568, 1610, 5]"] 71["Sweep Extrusion<br>[1568, 1610, 6]"]
72[Wall] 72[Wall]
73["SweepEdge Opposite"] 73["SweepEdge Opposite"]
74["SweepEdge Adjacent"] 74["SweepEdge Adjacent"]
75["Plane<br>[469, 486, 6]"] 75["Plane<br>[469, 486, 7]"]
79["Sweep Extrusion<br>[564, 600, 6]"] 79["Sweep Extrusion<br>[564, 600, 7]"]
80[Wall] 80[Wall]
81["Cap Start"] 81["Cap Start"]
82["Cap End"] 82["Cap End"]
83["SweepEdge Opposite"] 83["SweepEdge Opposite"]
84["SweepEdge Adjacent"] 84["SweepEdge Adjacent"]
88["Sweep Extrusion<br>[774, 811, 6]"] 88["Sweep Extrusion<br>[774, 811, 7]"]
89[Wall] 89[Wall]
90["SweepEdge Opposite"] 90["SweepEdge Opposite"]
91["SweepEdge Adjacent"] 91["SweepEdge Adjacent"]
92["Plane<br>[330, 347, 7]"] 92["Plane<br>[330, 347, 8]"]
96["Sweep Extrusion<br>[415, 448, 7]"] 96["Sweep Extrusion<br>[415, 448, 8]"]
97[Wall] 97[Wall]
98["Cap Start"] 98["Cap Start"]
99["Cap End"] 99["Cap End"]
100["SweepEdge Opposite"] 100["SweepEdge Opposite"]
101["SweepEdge Adjacent"] 101["SweepEdge Adjacent"]
105["Sweep Extrusion<br>[600, 637, 7]"] 105["Sweep Extrusion<br>[600, 637, 8]"]
106[Wall] 106[Wall]
107["SweepEdge Opposite"] 107["SweepEdge Opposite"]
108["SweepEdge Adjacent"] 108["SweepEdge Adjacent"]
109["Plane<br>[421, 438, 8]"] 109["Plane<br>[421, 438, 9]"]
113["Sweep Extrusion<br>[524, 557, 8]"] 113["Sweep Extrusion<br>[524, 557, 9]"]
114[Wall] 114[Wall]
115["Cap Start"] 115["Cap Start"]
116["Cap End"] 116["Cap End"]
117["SweepEdge Opposite"] 117["SweepEdge Opposite"]
118["SweepEdge Adjacent"] 118["SweepEdge Adjacent"]
119["EdgeCut Fillet<br>[565, 631, 8]"] 119["EdgeCut Fillet<br>[565, 631, 9]"]
120["EdgeCut Fillet<br>[565, 631, 8]"] 120["EdgeCut Fillet<br>[565, 631, 9]"]
129["Sweep Extrusion<br>[1343, 1383, 8]"] 129["Sweep Extrusion<br>[1343, 1383, 9]"]
130[Wall] 130[Wall]
131[Wall] 131[Wall]
132[Wall] 132[Wall]
@ -220,13 +220,13 @@ flowchart LR
146["SweepEdge Adjacent"] 146["SweepEdge Adjacent"]
147["SweepEdge Opposite"] 147["SweepEdge Opposite"]
148["SweepEdge Adjacent"] 148["SweepEdge Adjacent"]
152["Sweep Extrusion<br>[1546, 1574, 8]"] 152["Sweep Extrusion<br>[1546, 1574, 9]"]
153[Wall] 153[Wall]
154["Cap End"] 154["Cap End"]
155["SweepEdge Opposite"] 155["SweepEdge Opposite"]
156["SweepEdge Adjacent"] 156["SweepEdge Adjacent"]
157["Plane<br>[353, 370, 9]"] 157["Plane<br>[353, 370, 10]"]
166["Sweep Extrusion<br>[939, 972, 9]"] 166["Sweep Extrusion<br>[939, 972, 10]"]
167[Wall] 167[Wall]
168[Wall] 168[Wall]
169[Wall] 169[Wall]
@ -247,45 +247,45 @@ flowchart LR
184["SweepEdge Adjacent"] 184["SweepEdge Adjacent"]
185["SweepEdge Opposite"] 185["SweepEdge Opposite"]
186["SweepEdge Adjacent"] 186["SweepEdge Adjacent"]
190["Sweep Extrusion<br>[1135, 1172, 9]"] 190["Sweep Extrusion<br>[1135, 1172, 10]"]
191[Wall] 191[Wall]
192["SweepEdge Opposite"] 192["SweepEdge Opposite"]
193["SweepEdge Adjacent"] 193["SweepEdge Adjacent"]
194["Plane<br>[288, 305, 10]"] 194["Plane<br>[288, 305, 11]"]
198["Sweep Extrusion<br>[379, 410, 10]"] 198["Sweep Extrusion<br>[379, 410, 11]"]
199[Wall] 199[Wall]
200["Cap Start"] 200["Cap Start"]
201["Cap End"] 201["Cap End"]
202["SweepEdge Opposite"] 202["SweepEdge Opposite"]
203["SweepEdge Adjacent"] 203["SweepEdge Adjacent"]
207["Sweep Extrusion<br>[573, 605, 10]"] 207["Sweep Extrusion<br>[573, 605, 11]"]
208[Wall] 208[Wall]
209["SweepEdge Opposite"] 209["SweepEdge Opposite"]
210["SweepEdge Adjacent"] 210["SweepEdge Adjacent"]
211["Plane<br>[288, 305, 10]"] 211["Plane<br>[288, 305, 11]"]
215["Sweep Extrusion<br>[379, 410, 10]"] 215["Sweep Extrusion<br>[379, 410, 11]"]
216[Wall] 216[Wall]
217["Cap Start"] 217["Cap Start"]
218["Cap End"] 218["Cap End"]
219["SweepEdge Opposite"] 219["SweepEdge Opposite"]
220["SweepEdge Adjacent"] 220["SweepEdge Adjacent"]
224["Sweep Extrusion<br>[573, 605, 10]"] 224["Sweep Extrusion<br>[573, 605, 11]"]
225[Wall] 225[Wall]
226["SweepEdge Opposite"] 226["SweepEdge Opposite"]
227["SweepEdge Adjacent"] 227["SweepEdge Adjacent"]
228["StartSketchOnFace<br>[1087, 1121, 5]"] 228["StartSketchOnFace<br>[1087, 1121, 6]"]
229["StartSketchOnFace<br>[1250, 1282, 5]"] 229["StartSketchOnFace<br>[1250, 1282, 6]"]
230["StartSketchOnFace<br>[1466, 1499, 5]"] 230["StartSketchOnFace<br>[1466, 1499, 6]"]
231["StartSketchOnFace<br>[1087, 1121, 5]"] 231["StartSketchOnFace<br>[1087, 1121, 6]"]
232["StartSketchOnFace<br>[1250, 1282, 5]"] 232["StartSketchOnFace<br>[1250, 1282, 6]"]
233["StartSketchOnFace<br>[1466, 1499, 5]"] 233["StartSketchOnFace<br>[1466, 1499, 6]"]
234["StartSketchOnFace<br>[666, 698, 6]"] 234["StartSketchOnFace<br>[666, 698, 7]"]
235["StartSketchOnFace<br>[500, 532, 7]"] 235["StartSketchOnFace<br>[500, 532, 8]"]
236["StartSketchOnFace<br>[740, 772, 8]"] 236["StartSketchOnFace<br>[740, 772, 9]"]
237["StartSketchOnFace<br>[1431, 1461, 8]"] 237["StartSketchOnFace<br>[1431, 1461, 9]"]
238["StartSketchOnFace<br>[1035, 1067, 9]"] 238["StartSketchOnFace<br>[1035, 1067, 10]"]
239["StartSketchOnFace<br>[472, 502, 10]"] 239["StartSketchOnFace<br>[472, 502, 11]"]
240["StartSketchOnFace<br>[472, 502, 10]"] 240["StartSketchOnFace<br>[472, 502, 11]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

View File

@ -39,7 +39,7 @@ description: Operations executed pipe-flange-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
451, 451,
1670, 1670,
5 6
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -657,7 +657,7 @@ description: Operations executed pipe-flange-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
451, 451,
1670, 1670,
5 6
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1275,7 +1275,7 @@ description: Operations executed pipe-flange-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
414, 414,
870, 870,
6 7
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1525,7 +1525,7 @@ description: Operations executed pipe-flange-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
275, 275,
696, 696,
7 8
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2024,7 +2024,7 @@ description: Operations executed pipe-flange-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
365, 365,
1664, 1664,
8 9
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2524,7 +2524,7 @@ description: Operations executed pipe-flange-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
297, 297,
1231, 1231,
9 10
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2839,7 +2839,7 @@ description: Operations executed pipe-flange-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
244, 244,
658, 658,
10 11
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -3083,7 +3083,7 @@ description: Operations executed pipe-flange-assembly.kcl
"functionSourceRange": [ "functionSourceRange": [
244, 244,
658, 658,
10 11
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},

View File

@ -1,59 +1,59 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[460, 506, 0]"] 2["Path<br>[460, 503, 0]"]
3["Segment<br>[512, 565, 0]"] 3["Segment<br>[509, 562, 0]"]
4["Segment<br>[571, 673, 0]"] 4["Segment<br>[568, 670, 0]"]
5["Segment<br>[679, 732, 0]"] 5["Segment<br>[676, 729, 0]"]
6["Segment<br>[738, 785, 0]"] 6["Segment<br>[735, 782, 0]"]
7["Segment<br>[791, 886, 0]"] 7["Segment<br>[788, 883, 0]"]
8["Segment<br>[892, 963, 0]"] 8["Segment<br>[889, 960, 0]"]
9["Segment<br>[969, 1020, 0]"] 9["Segment<br>[966, 1017, 0]"]
10["Segment<br>[1026, 1079, 0]"] 10["Segment<br>[1023, 1076, 0]"]
11["Segment<br>[1085, 1154, 0]"] 11["Segment<br>[1082, 1151, 0]"]
12["Segment<br>[1160, 1199, 0]"] 12["Segment<br>[1157, 1193, 0]"]
13["Segment<br>[1205, 1235, 0]"] 13["Segment<br>[1199, 1229, 0]"]
14["Segment<br>[1241, 1271, 0]"] 14["Segment<br>[1235, 1265, 0]"]
15["Segment<br>[1277, 1307, 0]"] 15["Segment<br>[1271, 1301, 0]"]
16["Segment<br>[1313, 1343, 0]"] 16["Segment<br>[1307, 1337, 0]"]
17["Segment<br>[1349, 1378, 0]"] 17["Segment<br>[1343, 1372, 0]"]
18["Segment<br>[1384, 1414, 0]"] 18["Segment<br>[1378, 1408, 0]"]
19["Segment<br>[1420, 1449, 0]"] 19["Segment<br>[1414, 1443, 0]"]
20["Segment<br>[1455, 1484, 0]"] 20["Segment<br>[1449, 1478, 0]"]
21["Segment<br>[1490, 1586, 0]"] 21["Segment<br>[1484, 1580, 0]"]
22["Segment<br>[1592, 1648, 0]"] 22["Segment<br>[1586, 1642, 0]"]
23["Segment<br>[1654, 1661, 0]"] 23["Segment<br>[1648, 1655, 0]"]
24[Solid2d] 24[Solid2d]
end end
subgraph path85 [Path] subgraph path85 [Path]
85["Path<br>[1759, 1803, 0]"] 85["Path<br>[1753, 1797, 0]"]
86["Segment<br>[1809, 1871, 0]"] 86["Segment<br>[1803, 1865, 0]"]
87["Segment<br>[1877, 1990, 0]"] 87["Segment<br>[1871, 1984, 0]"]
88["Segment<br>[1996, 2116, 0]"] 88["Segment<br>[1990, 2110, 0]"]
89["Segment<br>[2122, 2178, 0]"] 89["Segment<br>[2116, 2172, 0]"]
90["Segment<br>[2184, 2191, 0]"] 90["Segment<br>[2178, 2185, 0]"]
91[Solid2d] 91[Solid2d]
end end
subgraph path107 [Path] subgraph path107 [Path]
107["Path<br>[2290, 2335, 0]"] 107["Path<br>[2284, 2329, 0]"]
108["Segment<br>[2341, 2401, 0]"] 108["Segment<br>[2335, 2395, 0]"]
109["Segment<br>[2407, 2520, 0]"] 109["Segment<br>[2401, 2514, 0]"]
110["Segment<br>[2526, 2646, 0]"] 110["Segment<br>[2520, 2640, 0]"]
111["Segment<br>[2652, 2708, 0]"] 111["Segment<br>[2646, 2702, 0]"]
112["Segment<br>[2714, 2721, 0]"] 112["Segment<br>[2708, 2715, 0]"]
113[Solid2d] 113[Solid2d]
end end
subgraph path129 [Path] subgraph path129 [Path]
129["Path<br>[2819, 2864, 0]"] 129["Path<br>[2813, 2858, 0]"]
130["Segment<br>[2870, 2937, 0]"] 130["Segment<br>[2864, 2931, 0]"]
131["Segment<br>[2943, 3056, 0]"] 131["Segment<br>[2937, 3050, 0]"]
132["Segment<br>[3062, 3182, 0]"] 132["Segment<br>[3056, 3176, 0]"]
133["Segment<br>[3188, 3244, 0]"] 133["Segment<br>[3182, 3238, 0]"]
134["Segment<br>[3250, 3257, 0]"] 134["Segment<br>[3244, 3251, 0]"]
135[Solid2d] 135[Solid2d]
end end
1["Plane<br>[437, 454, 0]"] 1["Plane<br>[437, 454, 0]"]
25["Sweep Extrusion<br>[1675, 1705, 0]"] 25["Sweep Extrusion<br>[1669, 1699, 0]"]
26[Wall] 26[Wall]
27[Wall] 27[Wall]
28[Wall] 28[Wall]
@ -113,7 +113,7 @@ flowchart LR
82["SweepEdge Adjacent"] 82["SweepEdge Adjacent"]
83["SweepEdge Opposite"] 83["SweepEdge Opposite"]
84["SweepEdge Adjacent"] 84["SweepEdge Adjacent"]
92["Sweep Extrusion<br>[2205, 2236, 0]"] 92["Sweep Extrusion<br>[2199, 2230, 0]"]
93[Wall] 93[Wall]
94[Wall] 94[Wall]
95[Wall] 95[Wall]
@ -128,7 +128,7 @@ flowchart LR
104["SweepEdge Adjacent"] 104["SweepEdge Adjacent"]
105["SweepEdge Opposite"] 105["SweepEdge Opposite"]
106["SweepEdge Adjacent"] 106["SweepEdge Adjacent"]
114["Sweep Extrusion<br>[2736, 2767, 0]"] 114["Sweep Extrusion<br>[2730, 2761, 0]"]
115[Wall] 115[Wall]
116[Wall] 116[Wall]
117[Wall] 117[Wall]
@ -143,7 +143,7 @@ flowchart LR
126["SweepEdge Adjacent"] 126["SweepEdge Adjacent"]
127["SweepEdge Opposite"] 127["SweepEdge Opposite"]
128["SweepEdge Adjacent"] 128["SweepEdge Adjacent"]
136["Sweep Extrusion<br>[3271, 3301, 0]"] 136["Sweep Extrusion<br>[3265, 3295, 0]"]
137[Wall] 137[Wall]
138[Wall] 138[Wall]
139[Wall] 139[Wall]
@ -158,9 +158,9 @@ flowchart LR
148["SweepEdge Adjacent"] 148["SweepEdge Adjacent"]
149["SweepEdge Opposite"] 149["SweepEdge Opposite"]
150["SweepEdge Adjacent"] 150["SweepEdge Adjacent"]
151["StartSketchOnFace<br>[1719, 1753, 0]"] 151["StartSketchOnFace<br>[1713, 1747, 0]"]
152["StartSketchOnFace<br>[2250, 2284, 0]"] 152["StartSketchOnFace<br>[2244, 2278, 0]"]
153["StartSketchOnFace<br>[2781, 2813, 0]"] 153["StartSketchOnFace<br>[2775, 2807, 0]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

View File

@ -7,36 +7,36 @@ flowchart LR
5["Segment<br>[705, 781, 0]"] 5["Segment<br>[705, 781, 0]"]
6["Segment<br>[787, 856, 0]"] 6["Segment<br>[787, 856, 0]"]
7["Segment<br>[862, 902, 0]"] 7["Segment<br>[862, 902, 0]"]
8["Segment<br>[908, 947, 0]"] 8["Segment<br>[908, 944, 0]"]
9["Segment<br>[987, 1017, 0]"] 9["Segment<br>[984, 1014, 0]"]
10["Segment<br>[1023, 1052, 0]"] 10["Segment<br>[1020, 1049, 0]"]
11["Segment<br>[1058, 1087, 0]"] 11["Segment<br>[1055, 1084, 0]"]
12["Segment<br>[1093, 1122, 0]"] 12["Segment<br>[1090, 1119, 0]"]
13["Segment<br>[1128, 1228, 0]"] 13["Segment<br>[1125, 1225, 0]"]
14["Segment<br>[1234, 1290, 0]"] 14["Segment<br>[1231, 1287, 0]"]
15["Segment<br>[1296, 1303, 0]"] 15["Segment<br>[1293, 1300, 0]"]
16[Solid2d] 16[Solid2d]
end end
subgraph path52 [Path] subgraph path52 [Path]
52["Path<br>[1458, 1558, 0]"] 52["Path<br>[1455, 1555, 0]"]
53["Segment<br>[1564, 1611, 0]"] 53["Segment<br>[1561, 1608, 0]"]
54["Segment<br>[1617, 1732, 0]"] 54["Segment<br>[1614, 1729, 0]"]
55["Segment<br>[1738, 1858, 0]"] 55["Segment<br>[1735, 1855, 0]"]
56["Segment<br>[1864, 1920, 0]"] 56["Segment<br>[1861, 1917, 0]"]
57["Segment<br>[1926, 1933, 0]"] 57["Segment<br>[1923, 1930, 0]"]
58[Solid2d] 58[Solid2d]
end end
subgraph path74 [Path] subgraph path74 [Path]
74["Path<br>[2090, 2189, 0]"] 74["Path<br>[2087, 2186, 0]"]
75["Segment<br>[2195, 2241, 0]"] 75["Segment<br>[2192, 2238, 0]"]
76["Segment<br>[2247, 2339, 0]"] 76["Segment<br>[2244, 2336, 0]"]
77["Segment<br>[2345, 2442, 0]"] 77["Segment<br>[2342, 2439, 0]"]
78["Segment<br>[2448, 2504, 0]"] 78["Segment<br>[2445, 2501, 0]"]
79["Segment<br>[2510, 2517, 0]"] 79["Segment<br>[2507, 2514, 0]"]
80[Solid2d] 80[Solid2d]
end end
1["Plane<br>[484, 501, 0]"] 1["Plane<br>[484, 501, 0]"]
17["Sweep Extrusion<br>[1346, 1376, 0]"] 17["Sweep Extrusion<br>[1343, 1373, 0]"]
18[Wall] 18[Wall]
19[Wall] 19[Wall]
20[Wall] 20[Wall]
@ -71,7 +71,7 @@ flowchart LR
49["SweepEdge Opposite"] 49["SweepEdge Opposite"]
50["SweepEdge Adjacent"] 50["SweepEdge Adjacent"]
51["SweepEdge Opposite"] 51["SweepEdge Opposite"]
59["Sweep Extrusion<br>[1977, 2009, 0]"] 59["Sweep Extrusion<br>[1974, 2006, 0]"]
60[Wall] 60[Wall]
61[Wall] 61[Wall]
62[Wall] 62[Wall]
@ -86,7 +86,7 @@ flowchart LR
71["SweepEdge Adjacent"] 71["SweepEdge Adjacent"]
72["SweepEdge Opposite"] 72["SweepEdge Opposite"]
73["SweepEdge Adjacent"] 73["SweepEdge Adjacent"]
81["Sweep Extrusion<br>[2560, 2592, 0]"] 81["Sweep Extrusion<br>[2557, 2589, 0]"]
82[Wall] 82[Wall]
83[Wall] 83[Wall]
84[Wall] 84[Wall]
@ -101,8 +101,8 @@ flowchart LR
93["SweepEdge Adjacent"] 93["SweepEdge Adjacent"]
94["SweepEdge Opposite"] 94["SweepEdge Opposite"]
95["SweepEdge Adjacent"] 95["SweepEdge Adjacent"]
96["StartSketchOnFace<br>[1418, 1452, 0]"] 96["StartSketchOnFace<br>[1415, 1449, 0]"]
97["StartSketchOnFace<br>[2050, 2084, 0]"] 97["StartSketchOnFace<br>[2047, 2081, 0]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

File diff suppressed because it is too large Load Diff

View File

@ -264,9 +264,9 @@ description: Variables in memory after executing router-template-slate.kcl
-122.4938 -122.4938
], ],
"tag": { "tag": {
"commentStart": 940, "commentStart": 937,
"end": 946, "end": 943,
"start": 940, "start": 937,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg02" "value": "seg02"
}, },
@ -514,9 +514,9 @@ description: Variables in memory after executing router-template-slate.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 1589, "commentStart": 1586,
"end": 1610, "end": 1607,
"start": 1589, "start": 1586,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentA001" "value": "rectangleSegmentA001"
}, },
@ -527,9 +527,9 @@ description: Variables in memory after executing router-template-slate.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 1710, "commentStart": 1707,
"end": 1731, "end": 1728,
"start": 1710, "start": 1707,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentB001" "value": "rectangleSegmentB001"
}, },
@ -540,9 +540,9 @@ description: Variables in memory after executing router-template-slate.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 1836, "commentStart": 1833,
"end": 1857, "end": 1854,
"start": 1836, "start": 1833,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentC001" "value": "rectangleSegmentC001"
}, },
@ -570,9 +570,9 @@ description: Variables in memory after executing router-template-slate.kcl
-12.4937 -12.4937
], ],
"tag": { "tag": {
"commentStart": 1589, "commentStart": 1586,
"end": 1610, "end": 1607,
"start": 1589, "start": 1586,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentA001" "value": "rectangleSegmentA001"
}, },
@ -595,9 +595,9 @@ description: Variables in memory after executing router-template-slate.kcl
-12.4937 -12.4937
], ],
"tag": { "tag": {
"commentStart": 1710, "commentStart": 1707,
"end": 1731, "end": 1728,
"start": 1710, "start": 1707,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentB001" "value": "rectangleSegmentB001"
}, },
@ -620,9 +620,9 @@ description: Variables in memory after executing router-template-slate.kcl
-92.4938 -92.4938
], ],
"tag": { "tag": {
"commentStart": 1836, "commentStart": 1833,
"end": 1857, "end": 1854,
"start": 1836, "start": 1833,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentC001" "value": "rectangleSegmentC001"
}, },
@ -940,9 +940,9 @@ description: Variables in memory after executing router-template-slate.kcl
-122.4938 -122.4938
], ],
"tag": { "tag": {
"commentStart": 940, "commentStart": 937,
"end": 946, "end": 943,
"start": 940, "start": 937,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg02" "value": "seg02"
}, },
@ -1239,9 +1239,9 @@ description: Variables in memory after executing router-template-slate.kcl
"id": "[uuid]", "id": "[uuid]",
"sourceRange": [], "sourceRange": [],
"tag": { "tag": {
"commentStart": 2219, "commentStart": 2216,
"end": 2240, "end": 2237,
"start": 2219, "start": 2216,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentA002" "value": "rectangleSegmentA002"
}, },
@ -1283,9 +1283,9 @@ description: Variables in memory after executing router-template-slate.kcl
-12.4937 -12.4937
], ],
"tag": { "tag": {
"commentStart": 2219, "commentStart": 2216,
"end": 2240, "end": 2237,
"start": 2219, "start": 2216,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentA002" "value": "rectangleSegmentA002"
}, },
@ -1641,9 +1641,9 @@ description: Variables in memory after executing router-template-slate.kcl
-122.4938 -122.4938
], ],
"tag": { "tag": {
"commentStart": 940, "commentStart": 937,
"end": 946, "end": 943,
"start": 940, "start": 937,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg02" "value": "seg02"
}, },
@ -2165,9 +2165,9 @@ description: Variables in memory after executing router-template-slate.kcl
-122.4938 -122.4938
], ],
"tag": { "tag": {
"commentStart": 940, "commentStart": 937,
"end": 946, "end": 943,
"start": 940, "start": 937,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg02" "value": "seg02"
}, },
@ -2412,9 +2412,9 @@ description: Variables in memory after executing router-template-slate.kcl
-12.4937 -12.4937
], ],
"tag": { "tag": {
"commentStart": 1589, "commentStart": 1586,
"end": 1610, "end": 1607,
"start": 1589, "start": 1586,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentA001" "value": "rectangleSegmentA001"
}, },
@ -2437,9 +2437,9 @@ description: Variables in memory after executing router-template-slate.kcl
-12.4937 -12.4937
], ],
"tag": { "tag": {
"commentStart": 1710, "commentStart": 1707,
"end": 1731, "end": 1728,
"start": 1710, "start": 1707,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentB001" "value": "rectangleSegmentB001"
}, },
@ -2462,9 +2462,9 @@ description: Variables in memory after executing router-template-slate.kcl
-92.4938 -92.4938
], ],
"tag": { "tag": {
"commentStart": 1836, "commentStart": 1833,
"end": 1857, "end": 1854,
"start": 1836, "start": 1833,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentC001" "value": "rectangleSegmentC001"
}, },
@ -2782,9 +2782,9 @@ description: Variables in memory after executing router-template-slate.kcl
-122.4938 -122.4938
], ],
"tag": { "tag": {
"commentStart": 940, "commentStart": 937,
"end": 946, "end": 943,
"start": 940, "start": 937,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg02" "value": "seg02"
}, },
@ -3078,9 +3078,9 @@ description: Variables in memory after executing router-template-slate.kcl
-12.4937 -12.4937
], ],
"tag": { "tag": {
"commentStart": 2219, "commentStart": 2216,
"end": 2240, "end": 2237,
"start": 2219, "start": 2216,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "rectangleSegmentA002" "value": "rectangleSegmentA002"
}, },
@ -3436,9 +3436,9 @@ description: Variables in memory after executing router-template-slate.kcl
-122.4938 -122.4938
], ],
"tag": { "tag": {
"commentStart": 940, "commentStart": 937,
"end": 946, "end": 943,
"start": 940, "start": 937,
"type": "TagDeclarator", "type": "TagDeclarator",
"value": "seg02" "value": "seg02"
}, },

View File

@ -1,186 +1,186 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path] subgraph path2 [Path]
2["Path<br>[458, 501, 5]"] 2["Path<br>[458, 501, 6]"]
3["Segment<br>[509, 547, 5]"] 3["Segment<br>[509, 547, 6]"]
4["Segment<br>[555, 595, 5]"] 4["Segment<br>[555, 595, 6]"]
5["Segment<br>[603, 642, 5]"] 5["Segment<br>[603, 642, 6]"]
6["Segment<br>[650, 672, 5]"] 6["Segment<br>[650, 672, 6]"]
7[Solid2d] 7[Solid2d]
end end
subgraph path27 [Path] subgraph path27 [Path]
27["Path<br>[1082, 1213, 5]"] 27["Path<br>[1082, 1213, 6]"]
28["Segment<br>[1221, 1279, 5]"] 28["Segment<br>[1221, 1279, 6]"]
29["Segment<br>[1287, 1418, 5]"] 29["Segment<br>[1287, 1418, 6]"]
30["Segment<br>[1426, 1484, 5]"] 30["Segment<br>[1426, 1484, 6]"]
31["Segment<br>[1492, 1626, 5]"] 31["Segment<br>[1492, 1626, 6]"]
32["Segment<br>[1634, 1720, 5]"] 32["Segment<br>[1634, 1720, 6]"]
33["Segment<br>[1728, 1863, 5]"] 33["Segment<br>[1728, 1863, 6]"]
34["Segment<br>[1871, 1956, 5]"] 34["Segment<br>[1871, 1956, 6]"]
35["Segment<br>[1964, 1971, 5]"] 35["Segment<br>[1964, 1971, 6]"]
36[Solid2d] 36[Solid2d]
end end
subgraph path63 [Path] subgraph path63 [Path]
63["Path<br>[2119, 2173, 5]"] 63["Path<br>[2119, 2173, 6]"]
64["Segment<br>[2181, 2222, 5]"] 64["Segment<br>[2181, 2222, 6]"]
65["Segment<br>[2230, 2259, 5]"] 65["Segment<br>[2230, 2259, 6]"]
66["Segment<br>[2267, 2297, 5]"] 66["Segment<br>[2267, 2297, 6]"]
67["Segment<br>[2305, 2361, 5]"] 67["Segment<br>[2305, 2361, 6]"]
68["Segment<br>[2369, 2376, 5]"] 68["Segment<br>[2369, 2376, 6]"]
69[Solid2d] 69[Solid2d]
end end
subgraph path84 [Path] subgraph path84 [Path]
84["Path<br>[2518, 2555, 5]"] 84["Path<br>[2518, 2555, 6]"]
85["Segment<br>[2563, 2594, 5]"] 85["Segment<br>[2563, 2594, 6]"]
86["Segment<br>[2602, 2635, 5]"] 86["Segment<br>[2602, 2635, 6]"]
87["Segment<br>[2643, 2675, 5]"] 87["Segment<br>[2643, 2675, 6]"]
88["Segment<br>[2683, 2690, 5]"] 88["Segment<br>[2683, 2690, 6]"]
89[Solid2d] 89[Solid2d]
end end
subgraph path105 [Path] subgraph path105 [Path]
105["Path<br>[346, 371, 8]"] 105["Path<br>[346, 371, 9]"]
106["Segment<br>[379, 412, 8]"] 106["Segment<br>[379, 412, 9]"]
107["Segment<br>[420, 455, 8]"] 107["Segment<br>[420, 455, 9]"]
108["Segment<br>[463, 497, 8]"] 108["Segment<br>[463, 497, 9]"]
109["Segment<br>[505, 512, 8]"] 109["Segment<br>[505, 512, 9]"]
110[Solid2d] 110[Solid2d]
end end
subgraph path112 [Path] subgraph path112 [Path]
112["Path<br>[649, 781, 8]"] 112["Path<br>[649, 781, 9]"]
117[Solid2d] 117[Solid2d]
end end
subgraph path130 [Path] subgraph path130 [Path]
130["Path<br>[551, 605, 6]"] 130["Path<br>[551, 605, 7]"]
131["Segment<br>[613, 640, 6]"] 131["Segment<br>[613, 640, 7]"]
132["Segment<br>[648, 677, 6]"] 132["Segment<br>[648, 677, 7]"]
133["Segment<br>[685, 713, 6]"] 133["Segment<br>[685, 713, 7]"]
134["Segment<br>[721, 777, 6]"] 134["Segment<br>[721, 777, 7]"]
135["Segment<br>[785, 792, 6]"] 135["Segment<br>[785, 792, 7]"]
136[Solid2d] 136[Solid2d]
end end
subgraph path138 [Path] subgraph path138 [Path]
138["Path<br>[1098, 1145, 6]"] 138["Path<br>[1098, 1145, 7]"]
139["Segment<br>[1153, 1194, 6]"] 139["Segment<br>[1153, 1194, 7]"]
140["Segment<br>[1202, 1244, 6]"] 140["Segment<br>[1202, 1244, 7]"]
141["Segment<br>[1252, 1294, 6]"] 141["Segment<br>[1252, 1294, 7]"]
142["Segment<br>[1302, 1309, 6]"] 142["Segment<br>[1302, 1309, 7]"]
143[Solid2d] 143[Solid2d]
end end
subgraph path145 [Path] subgraph path145 [Path]
145["Path<br>[1597, 1762, 6]"] 145["Path<br>[1597, 1762, 7]"]
146["Segment<br>[1770, 1871, 6]"] 146["Segment<br>[1770, 1871, 7]"]
147["Segment<br>[1879, 2046, 6]"] 147["Segment<br>[1879, 2046, 7]"]
148["Segment<br>[2054, 2155, 6]"] 148["Segment<br>[2054, 2155, 7]"]
149["Segment<br>[2163, 2333, 6]"] 149["Segment<br>[2163, 2333, 7]"]
150["Segment<br>[2341, 2443, 6]"] 150["Segment<br>[2341, 2443, 7]"]
151["Segment<br>[2451, 2620, 6]"] 151["Segment<br>[2451, 2620, 7]"]
152["Segment<br>[2628, 2729, 6]"] 152["Segment<br>[2628, 2729, 7]"]
153["Segment<br>[2737, 2744, 6]"] 153["Segment<br>[2737, 2744, 7]"]
154[Solid2d] 154[Solid2d]
end end
subgraph path156 [Path] subgraph path156 [Path]
156["Path<br>[123, 210, 7]"] 156["Path<br>[123, 210, 8]"]
157["Segment<br>[218, 247, 7]"] 157["Segment<br>[218, 247, 8]"]
158["Segment<br>[255, 283, 7]"] 158["Segment<br>[255, 283, 8]"]
159["Segment<br>[291, 388, 7]"] 159["Segment<br>[291, 388, 8]"]
160["Segment<br>[396, 443, 7]"] 160["Segment<br>[396, 443, 8]"]
161["Segment<br>[451, 479, 7]"] 161["Segment<br>[451, 479, 8]"]
162["Segment<br>[487, 516, 7]"] 162["Segment<br>[487, 516, 8]"]
163["Segment<br>[524, 553, 7]"] 163["Segment<br>[524, 553, 8]"]
164["Segment<br>[561, 652, 7]"] 164["Segment<br>[561, 652, 8]"]
165["Segment<br>[660, 688, 7]"] 165["Segment<br>[660, 688, 8]"]
166["Segment<br>[696, 725, 7]"] 166["Segment<br>[696, 725, 8]"]
167["Segment<br>[733, 821, 7]"] 167["Segment<br>[733, 821, 8]"]
168["Segment<br>[829, 857, 7]"] 168["Segment<br>[829, 857, 8]"]
169["Segment<br>[865, 899, 7]"] 169["Segment<br>[865, 899, 8]"]
170["Segment<br>[907, 937, 7]"] 170["Segment<br>[907, 937, 8]"]
171["Segment<br>[945, 1054, 7]"] 171["Segment<br>[945, 1054, 8]"]
172["Segment<br>[1062, 1069, 7]"] 172["Segment<br>[1062, 1069, 8]"]
173[Solid2d] 173[Solid2d]
end end
subgraph path175 [Path] subgraph path175 [Path]
175["Path<br>[1203, 1301, 7]"] 175["Path<br>[1203, 1301, 8]"]
176["Segment<br>[1309, 1428, 7]"] 176["Segment<br>[1309, 1428, 8]"]
177["Segment<br>[1436, 1490, 7]"] 177["Segment<br>[1436, 1490, 8]"]
178["Segment<br>[1498, 1619, 7]"] 178["Segment<br>[1498, 1619, 8]"]
179["Segment<br>[1627, 1634, 7]"] 179["Segment<br>[1627, 1634, 8]"]
180[Solid2d] 180[Solid2d]
end end
subgraph path182 [Path] subgraph path182 [Path]
182["Path<br>[1731, 1828, 7]"] 182["Path<br>[1731, 1828, 8]"]
183["Segment<br>[1836, 1955, 7]"] 183["Segment<br>[1836, 1955, 8]"]
184["Segment<br>[1963, 2018, 7]"] 184["Segment<br>[1963, 2018, 8]"]
185["Segment<br>[2026, 2147, 7]"] 185["Segment<br>[2026, 2147, 8]"]
186["Segment<br>[2155, 2162, 7]"] 186["Segment<br>[2155, 2162, 8]"]
187[Solid2d] 187[Solid2d]
end end
subgraph path189 [Path] subgraph path189 [Path]
189["Path<br>[1203, 1301, 7]"] 189["Path<br>[1203, 1301, 8]"]
190["Segment<br>[1309, 1428, 7]"] 190["Segment<br>[1309, 1428, 8]"]
191["Segment<br>[1436, 1490, 7]"] 191["Segment<br>[1436, 1490, 8]"]
192["Segment<br>[1498, 1619, 7]"] 192["Segment<br>[1498, 1619, 8]"]
193["Segment<br>[1627, 1634, 7]"] 193["Segment<br>[1627, 1634, 8]"]
194[Solid2d] 194[Solid2d]
end end
subgraph path196 [Path] subgraph path196 [Path]
196["Path<br>[1731, 1828, 7]"] 196["Path<br>[1731, 1828, 8]"]
197["Segment<br>[1836, 1955, 7]"] 197["Segment<br>[1836, 1955, 8]"]
198["Segment<br>[1963, 2018, 7]"] 198["Segment<br>[1963, 2018, 8]"]
199["Segment<br>[2026, 2147, 7]"] 199["Segment<br>[2026, 2147, 8]"]
200["Segment<br>[2155, 2162, 7]"] 200["Segment<br>[2155, 2162, 8]"]
201[Solid2d] 201[Solid2d]
end end
subgraph path230 [Path] subgraph path230 [Path]
230["Path<br>[288, 387, 9]"] 230["Path<br>[288, 387, 10]"]
231["Segment<br>[395, 444, 9]"] 231["Segment<br>[395, 444, 10]"]
232["Segment<br>[452, 502, 9]"] 232["Segment<br>[452, 502, 10]"]
233["Segment<br>[510, 560, 9]"] 233["Segment<br>[510, 560, 10]"]
234["Segment<br>[568, 586, 9]"] 234["Segment<br>[568, 586, 10]"]
235[Solid2d] 235[Solid2d]
end end
subgraph path256 [Path] subgraph path256 [Path]
256["Path<br>[377, 407, 10]"] 256["Path<br>[377, 407, 11]"]
257["Segment<br>[415, 447, 10]"] 257["Segment<br>[415, 447, 11]"]
258["Segment<br>[455, 488, 10]"] 258["Segment<br>[455, 488, 11]"]
259["Segment<br>[496, 585, 10]"] 259["Segment<br>[496, 585, 11]"]
260["Segment<br>[593, 620, 10]"] 260["Segment<br>[593, 620, 11]"]
261["Segment<br>[628, 635, 10]"] 261["Segment<br>[628, 635, 11]"]
262[Solid2d] 262[Solid2d]
end end
subgraph path274 [Path] subgraph path274 [Path]
274["Path<br>[311, 336, 11]"] 274["Path<br>[311, 336, 12]"]
275["Segment<br>[344, 403, 11]"] 275["Segment<br>[344, 403, 12]"]
276["Segment<br>[411, 471, 11]"] 276["Segment<br>[411, 471, 12]"]
277["Segment<br>[479, 529, 11]"] 277["Segment<br>[479, 529, 12]"]
278["Segment<br>[537, 544, 11]"] 278["Segment<br>[537, 544, 12]"]
279[Solid2d] 279[Solid2d]
end end
subgraph path298 [Path] subgraph path298 [Path]
298["Path<br>[311, 336, 11]"] 298["Path<br>[311, 336, 12]"]
299["Segment<br>[344, 403, 11]"] 299["Segment<br>[344, 403, 12]"]
300["Segment<br>[411, 471, 11]"] 300["Segment<br>[411, 471, 12]"]
301["Segment<br>[479, 529, 11]"] 301["Segment<br>[479, 529, 12]"]
302["Segment<br>[537, 544, 11]"] 302["Segment<br>[537, 544, 12]"]
303[Solid2d] 303[Solid2d]
end end
subgraph path322 [Path] subgraph path322 [Path]
322["Path<br>[311, 336, 11]"] 322["Path<br>[311, 336, 12]"]
323["Segment<br>[344, 403, 11]"] 323["Segment<br>[344, 403, 12]"]
324["Segment<br>[411, 471, 11]"] 324["Segment<br>[411, 471, 12]"]
325["Segment<br>[479, 529, 11]"] 325["Segment<br>[479, 529, 12]"]
326["Segment<br>[537, 544, 11]"] 326["Segment<br>[537, 544, 12]"]
327[Solid2d] 327[Solid2d]
end end
subgraph path346 [Path] subgraph path346 [Path]
346["Path<br>[311, 336, 11]"] 346["Path<br>[311, 336, 12]"]
347["Segment<br>[344, 403, 11]"] 347["Segment<br>[344, 403, 12]"]
348["Segment<br>[411, 471, 11]"] 348["Segment<br>[411, 471, 12]"]
349["Segment<br>[479, 529, 11]"] 349["Segment<br>[479, 529, 12]"]
350["Segment<br>[537, 544, 11]"] 350["Segment<br>[537, 544, 12]"]
351[Solid2d] 351[Solid2d]
end end
1["Plane<br>[433, 450, 5]"] 1["Plane<br>[433, 450, 6]"]
8["Sweep Extrusion<br>[689, 728, 5]"] 8["Sweep Extrusion<br>[689, 728, 6]"]
9[Wall] 9[Wall]
10[Wall] 10[Wall]
11[Wall] 11[Wall]
@ -195,11 +195,11 @@ flowchart LR
20["SweepEdge Adjacent"] 20["SweepEdge Adjacent"]
21["SweepEdge Opposite"] 21["SweepEdge Opposite"]
22["SweepEdge Adjacent"] 22["SweepEdge Adjacent"]
23["EdgeCut Chamfer<br>[736, 983, 5]"] 23["EdgeCut Chamfer<br>[736, 983, 6]"]
24["EdgeCut Chamfer<br>[736, 983, 5]"] 24["EdgeCut Chamfer<br>[736, 983, 6]"]
25["EdgeCut Chamfer<br>[736, 983, 5]"] 25["EdgeCut Chamfer<br>[736, 983, 6]"]
26["EdgeCut Chamfer<br>[736, 983, 5]"] 26["EdgeCut Chamfer<br>[736, 983, 6]"]
37["Sweep Extrusion<br>[1987, 2023, 5]"] 37["Sweep Extrusion<br>[1987, 2023, 6]"]
38[Wall] 38[Wall]
39[Wall] 39[Wall]
40[Wall] 40[Wall]
@ -225,7 +225,7 @@ flowchart LR
60["SweepEdge Adjacent"] 60["SweepEdge Adjacent"]
61["SweepEdge Opposite"] 61["SweepEdge Opposite"]
62["SweepEdge Adjacent"] 62["SweepEdge Adjacent"]
70["Sweep Extrusion<br>[2392, 2432, 5]"] 70["Sweep Extrusion<br>[2392, 2432, 6]"]
71[Wall] 71[Wall]
72[Wall] 72[Wall]
73[Wall] 73[Wall]
@ -239,7 +239,7 @@ flowchart LR
81["SweepEdge Adjacent"] 81["SweepEdge Adjacent"]
82["SweepEdge Opposite"] 82["SweepEdge Opposite"]
83["SweepEdge Adjacent"] 83["SweepEdge Adjacent"]
90["Sweep Extrusion<br>[2701, 2733, 5]"] 90["Sweep Extrusion<br>[2701, 2733, 6]"]
91[Wall] 91[Wall]
92[Wall] 92[Wall]
93[Wall] 93[Wall]
@ -253,13 +253,13 @@ flowchart LR
101["SweepEdge Adjacent"] 101["SweepEdge Adjacent"]
102["SweepEdge Opposite"] 102["SweepEdge Opposite"]
103["SweepEdge Adjacent"] 103["SweepEdge Adjacent"]
104["Plane<br>[321, 338, 8]"] 104["Plane<br>[321, 338, 9]"]
111["Plane<br>[563, 602, 8]"] 111["Plane<br>[563, 602, 9]"]
113["SweepEdge Opposite"] 113["SweepEdge Opposite"]
114["SweepEdge Opposite"] 114["SweepEdge Opposite"]
115["SweepEdge Opposite"] 115["SweepEdge Opposite"]
116["SweepEdge Opposite"] 116["SweepEdge Opposite"]
118["Sweep Loft<br>[967, 995, 8]"] 118["Sweep Loft<br>[967, 995, 9]"]
119[Wall] 119[Wall]
120[Wall] 120[Wall]
121[Wall] 121[Wall]
@ -270,15 +270,15 @@ flowchart LR
126["SweepEdge Adjacent"] 126["SweepEdge Adjacent"]
127["SweepEdge Adjacent"] 127["SweepEdge Adjacent"]
128["SweepEdge Adjacent"] 128["SweepEdge Adjacent"]
129["Plane<br>[525, 542, 6]"] 129["Plane<br>[525, 542, 7]"]
137["Plane<br>[1072, 1089, 6]"] 137["Plane<br>[1072, 1089, 7]"]
144["Plane<br>[1571, 1588, 6]"] 144["Plane<br>[1571, 1588, 7]"]
155["Plane<br>[2857, 2874, 6]"] 155["Plane<br>[2857, 2874, 7]"]
174["Plane<br>[2919, 2936, 6]"] 174["Plane<br>[2919, 2936, 7]"]
181["Plane<br>[2983, 3000, 6]"] 181["Plane<br>[2983, 3000, 7]"]
188["Plane<br>[3046, 3063, 6]"] 188["Plane<br>[3046, 3063, 7]"]
195["Plane<br>[3109, 3126, 6]"] 195["Plane<br>[3109, 3126, 7]"]
202["Sweep Extrusion<br>[3162, 3198, 6]"] 202["Sweep Extrusion<br>[3162, 3198, 7]"]
203[Wall] 203[Wall]
204[Wall] 204[Wall]
205[Wall] 205[Wall]
@ -305,8 +305,8 @@ flowchart LR
226["SweepEdge Adjacent"] 226["SweepEdge Adjacent"]
227["SweepEdge Opposite"] 227["SweepEdge Opposite"]
228["SweepEdge Adjacent"] 228["SweepEdge Adjacent"]
229["Plane<br>[263, 280, 9]"] 229["Plane<br>[263, 280, 10]"]
236["Sweep Extrusion<br>[649, 701, 9]"] 236["Sweep Extrusion<br>[649, 701, 10]"]
237[Wall] 237[Wall]
238[Wall] 238[Wall]
239[Wall] 239[Wall]
@ -321,12 +321,12 @@ flowchart LR
248["SweepEdge Adjacent"] 248["SweepEdge Adjacent"]
249["SweepEdge Opposite"] 249["SweepEdge Opposite"]
250["SweepEdge Adjacent"] 250["SweepEdge Adjacent"]
251["EdgeCut Fillet<br>[709, 931, 9]"] 251["EdgeCut Fillet<br>[709, 931, 10]"]
252["EdgeCut Fillet<br>[709, 931, 9]"] 252["EdgeCut Fillet<br>[709, 931, 10]"]
253["EdgeCut Fillet<br>[709, 931, 9]"] 253["EdgeCut Fillet<br>[709, 931, 10]"]
254["EdgeCut Fillet<br>[709, 931, 9]"] 254["EdgeCut Fillet<br>[709, 931, 10]"]
255["Plane<br>[352, 369, 10]"] 255["Plane<br>[352, 369, 11]"]
263["Sweep Revolve<br>[643, 662, 10]"] 263["Sweep Revolve<br>[643, 662, 11]"]
264[Wall] 264[Wall]
265[Wall] 265[Wall]
266[Wall] 266[Wall]
@ -336,8 +336,8 @@ flowchart LR
270["SweepEdge Adjacent"] 270["SweepEdge Adjacent"]
271["SweepEdge Adjacent"] 271["SweepEdge Adjacent"]
272["SweepEdge Adjacent"] 272["SweepEdge Adjacent"]
273["Plane<br>[286, 303, 11]"] 273["Plane<br>[286, 303, 12]"]
280["Sweep Extrusion<br>[563, 610, 11]"] 280["Sweep Extrusion<br>[563, 610, 12]"]
281[Wall] 281[Wall]
282[Wall] 282[Wall]
283[Wall] 283[Wall]
@ -352,10 +352,10 @@ flowchart LR
292["SweepEdge Adjacent"] 292["SweepEdge Adjacent"]
293["SweepEdge Opposite"] 293["SweepEdge Opposite"]
294["SweepEdge Adjacent"] 294["SweepEdge Adjacent"]
295["EdgeCut Chamfer<br>[618, 764, 11]"] 295["EdgeCut Chamfer<br>[618, 764, 12]"]
296["EdgeCut Chamfer<br>[618, 764, 11]"] 296["EdgeCut Chamfer<br>[618, 764, 12]"]
297["Plane<br>[286, 303, 11]"] 297["Plane<br>[286, 303, 12]"]
304["Sweep Extrusion<br>[563, 610, 11]"] 304["Sweep Extrusion<br>[563, 610, 12]"]
305[Wall] 305[Wall]
306[Wall] 306[Wall]
307[Wall] 307[Wall]
@ -370,10 +370,10 @@ flowchart LR
316["SweepEdge Adjacent"] 316["SweepEdge Adjacent"]
317["SweepEdge Opposite"] 317["SweepEdge Opposite"]
318["SweepEdge Adjacent"] 318["SweepEdge Adjacent"]
319["EdgeCut Chamfer<br>[618, 764, 11]"] 319["EdgeCut Chamfer<br>[618, 764, 12]"]
320["EdgeCut Chamfer<br>[618, 764, 11]"] 320["EdgeCut Chamfer<br>[618, 764, 12]"]
321["Plane<br>[286, 303, 11]"] 321["Plane<br>[286, 303, 12]"]
328["Sweep Extrusion<br>[563, 610, 11]"] 328["Sweep Extrusion<br>[563, 610, 12]"]
329[Wall] 329[Wall]
330[Wall] 330[Wall]
331[Wall] 331[Wall]
@ -388,10 +388,10 @@ flowchart LR
340["SweepEdge Adjacent"] 340["SweepEdge Adjacent"]
341["SweepEdge Opposite"] 341["SweepEdge Opposite"]
342["SweepEdge Adjacent"] 342["SweepEdge Adjacent"]
343["EdgeCut Chamfer<br>[618, 764, 11]"] 343["EdgeCut Chamfer<br>[618, 764, 12]"]
344["EdgeCut Chamfer<br>[618, 764, 11]"] 344["EdgeCut Chamfer<br>[618, 764, 12]"]
345["Plane<br>[286, 303, 11]"] 345["Plane<br>[286, 303, 12]"]
352["Sweep Extrusion<br>[563, 610, 11]"] 352["Sweep Extrusion<br>[563, 610, 12]"]
353[Wall] 353[Wall]
354[Wall] 354[Wall]
355[Wall] 355[Wall]
@ -406,18 +406,18 @@ flowchart LR
364["SweepEdge Adjacent"] 364["SweepEdge Adjacent"]
365["SweepEdge Opposite"] 365["SweepEdge Opposite"]
366["SweepEdge Adjacent"] 366["SweepEdge Adjacent"]
367["EdgeCut Chamfer<br>[618, 764, 11]"] 367["EdgeCut Chamfer<br>[618, 764, 12]"]
368["EdgeCut Chamfer<br>[618, 764, 11]"] 368["EdgeCut Chamfer<br>[618, 764, 12]"]
369["StartSketchOnFace<br>[1041, 1074, 5]"] 369["StartSketchOnFace<br>[1041, 1074, 6]"]
370["StartSketchOnFace<br>[2077, 2111, 5]"] 370["StartSketchOnFace<br>[2077, 2111, 6]"]
371["StartSketchOnFace<br>[2476, 2510, 5]"] 371["StartSketchOnFace<br>[2476, 2510, 6]"]
372["StartSketchOnFace<br>[1041, 1074, 5]"] 372["StartSketchOnFace<br>[1041, 1074, 6]"]
373["StartSketchOnFace<br>[2077, 2111, 5]"] 373["StartSketchOnFace<br>[2077, 2111, 6]"]
374["StartSketchOnFace<br>[2476, 2510, 5]"] 374["StartSketchOnFace<br>[2476, 2510, 6]"]
375["StartSketchOnPlane<br>[617, 641, 8]"] 375["StartSketchOnPlane<br>[617, 641, 9]"]
376["StartSketchOnPlane<br>[511, 543, 6]"] 376["StartSketchOnPlane<br>[511, 543, 7]"]
377["StartSketchOnPlane<br>[1058, 1090, 6]"] 377["StartSketchOnPlane<br>[1058, 1090, 7]"]
378["StartSketchOnPlane<br>[1557, 1589, 6]"] 378["StartSketchOnPlane<br>[1557, 1589, 7]"]
1 --- 2 1 --- 2
2 --- 3 2 --- 3
2 --- 4 2 --- 4

View File

@ -9,7 +9,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
359, 359,
2786, 2786,
5 6
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -355,7 +355,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
359, 359,
2786, 2786,
5 6
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -701,7 +701,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
266, 266,
1051, 1051,
8 9
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -804,7 +804,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
454, 454,
3283, 3283,
6 7
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1890,7 +1890,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
69, 69,
1088, 1088,
7 8
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -1946,7 +1946,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
1146, 1146,
1656, 1656,
7 8
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2002,7 +2002,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
1674, 1674,
2184, 2184,
7 8
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2058,7 +2058,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
1146, 1146,
1656, 1656,
7 8
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2114,7 +2114,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
1674, 1674,
2184, 2184,
7 8
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2190,7 +2190,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
202, 202,
1023, 1023,
9 10
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2308,7 +2308,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
298, 298,
748, 748,
10 11
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2361,7 +2361,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
221, 221,
827, 827,
11 12
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2471,7 +2471,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
221, 221,
827, 827,
11 12
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2581,7 +2581,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
221, 221,
827, 827,
11 12
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},
@ -2691,7 +2691,7 @@ description: Operations executed walkie-talkie.kcl
"functionSourceRange": [ "functionSourceRange": [
221, 221,
827, 827,
11 12
], ],
"unlabeledArg": null, "unlabeledArg": null,
"labeledArgs": {}, "labeledArgs": {},

View File

@ -13,10 +13,7 @@ import {
SetAngleLengthModal, SetAngleLengthModal,
createSetAngleLengthModal, createSetAngleLengthModal,
} from '../SetAngleLengthModal' } from '../SetAngleLengthModal'
import { import { createName, createVariableDeclaration } from '../../lang/modifyAst'
createLocalName,
createVariableDeclaration,
} from '../../lang/modifyAst'
import { removeDoubleNegatives } from '../AvailableVarsHelpers' import { removeDoubleNegatives } from '../AvailableVarsHelpers'
import { kclManager } from 'lib/singletons' import { kclManager } from 'lib/singletons'
import { err } from 'lib/trap' import { err } from 'lib/trap'
@ -169,7 +166,7 @@ export function applyConstraintAxisAlign({
if (err(info)) return info if (err(info)) return info
const transformInfos = info.transforms const transformInfos = info.transforms
let finalValue = createLocalName('ZERO') let finalValue = createName(['turns'], 'ZERO')
return transformAstSketchLines({ return transformAstSketchLines({
ast: structuredClone(kclManager.ast), ast: structuredClone(kclManager.ast),

View File

@ -16,6 +16,7 @@ import {
import { import {
createBinaryExpressionWithUnary, createBinaryExpressionWithUnary,
createLocalName, createLocalName,
createName,
createVariableDeclaration, createVariableDeclaration,
} from '../../lang/modifyAst' } from '../../lang/modifyAst'
import { removeDoubleNegatives } from '../AvailableVarsHelpers' import { removeDoubleNegatives } from '../AvailableVarsHelpers'
@ -167,14 +168,16 @@ export async function applyConstraintAngleLength({
isReferencingXAxis && angleOrLength === 'setAngle' isReferencingXAxis && angleOrLength === 'setAngle'
let forceVal = valueUsedInTransform || 0 let forceVal = valueUsedInTransform || 0
let calcIdentifier = createLocalName('ZERO') let calcIdentifier = createName(['turns'], 'ZERO')
if (isReferencingYAxisAngle) { if (isReferencingYAxisAngle) {
calcIdentifier = createLocalName( calcIdentifier = createName(
['turns'],
forceVal < 0 ? 'THREE_QUARTER_TURN' : 'QUARTER_TURN' forceVal < 0 ? 'THREE_QUARTER_TURN' : 'QUARTER_TURN'
) )
forceVal = normaliseAngle(forceVal + (forceVal < 0 ? 90 : -90)) forceVal = normaliseAngle(forceVal + (forceVal < 0 ? 90 : -90))
} else if (isReferencingXAxisAngle) { } else if (isReferencingXAxisAngle) {
calcIdentifier = createLocalName( calcIdentifier = createName(
['turns'],
Math.abs(forceVal) > 90 ? 'HALF_TURN' : 'ZERO' Math.abs(forceVal) > 90 ? 'HALF_TURN' : 'ZERO'
) )
forceVal = forceVal =

View File

@ -1087,6 +1087,22 @@ export function createLocalName(name: string): Node<Name> {
} }
} }
export function createName(path: [string], name: string): Node<Name> {
return {
type: 'Name',
start: 0,
end: 0,
moduleId: 0,
outerAttrs: [],
preComments: [],
commentStart: 0,
abs_path: false,
path: path.map(createIdentifier),
name: createIdentifier(name),
}
}
export function createPipeSubstitution(): Node<PipeSubstitution> { export function createPipeSubstitution(): Node<PipeSubstitution> {
return { return {
type: 'PipeSubstitution', type: 'PipeSubstitution',

View File

@ -35,6 +35,7 @@ import {
createLabeledArg, createLabeledArg,
createLiteral, createLiteral,
createLocalName, createLocalName,
createName,
createObjectExpression, createObjectExpression,
createPipeSubstitution, createPipeSubstitution,
createUnaryExpression, createUnaryExpression,
@ -612,7 +613,7 @@ const setAngledIntersectLineForLines: CreateStdLibSketchCallExpr = ({
270: 'THREE_QUARTER_TURN', 270: 'THREE_QUARTER_TURN',
} }
const angleVal = [0, 90, 180, 270].includes(angle) const angleVal = [0, 90, 180, 270].includes(angle)
? createLocalName(varNamMap[angle]) ? createName(['turns'], varNamMap[angle])
: createLiteral(angle) : createLiteral(angle)
return intersectCallWrapper({ return intersectCallWrapper({
fnName: 'angledLineThatIntersects', fnName: 'angledLineThatIntersects',
@ -665,7 +666,7 @@ const setAngleBetweenCreateNode =
firstHalfValue = createBinaryExpression([ firstHalfValue = createBinaryExpression([
firstHalfValue, firstHalfValue,
'+', '+',
createLocalName('HALF_TURN'), createName(['turns'], 'HALF_TURN'),
]) ])
valueUsedInTransform = normaliseAngle(valueUsedInTransform - 180) valueUsedInTransform = normaliseAngle(valueUsedInTransform - 180)
} }