fix cache and imports (#6647)
* updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix clippy Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
@ -12,7 +12,7 @@ to other modules.
|
|||||||
|
|
||||||
```kcl
|
```kcl
|
||||||
// util.kcl
|
// util.kcl
|
||||||
export fn increment(@x) {
|
export fn increment(x) {
|
||||||
return x + 1
|
return x + 1
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -37,11 +37,11 @@ Multiple functions can be exported in a file.
|
|||||||
|
|
||||||
```kcl
|
```kcl
|
||||||
// util.kcl
|
// util.kcl
|
||||||
export fn increment(@x) {
|
export fn increment(x) {
|
||||||
return x + 1
|
return x + 1
|
||||||
}
|
}
|
||||||
|
|
||||||
export fn decrement(@x) {
|
export fn decrement(x) {
|
||||||
return x - 1
|
return x - 1
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -81,7 +81,7 @@ fn cube(center) {
|
|||||||
|> extrude(length = 10)
|
|> extrude(length = 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
myCube = cube(center = [0, 0])
|
myCube = cube([0, 0])
|
||||||
```
|
```
|
||||||
|
|
||||||
*Pros*
|
*Pros*
|
||||||
|
@ -249,8 +249,8 @@ fn rect(origin) {
|
|||||||
|> close()
|
|> close()
|
||||||
}
|
}
|
||||||
|
|
||||||
rect(origin = [0, 0])
|
rect([0, 0])
|
||||||
rect(origin = [20, 0])
|
rect([20, 0])
|
||||||
```
|
```
|
||||||
|
|
||||||
Those tags would only be available in the `rect` function and not globally.
|
Those tags would only be available in the `rect` function and not globally.
|
||||||
@ -279,8 +279,8 @@ fn rect(origin) {
|
|||||||
|> close()
|
|> close()
|
||||||
}
|
}
|
||||||
|
|
||||||
rect(origin = [0, 0])
|
rect([0, 0])
|
||||||
myRect = rect(origin = [20, 0])
|
myRect = rect([20, 0])
|
||||||
|
|
||||||
myRect
|
myRect
|
||||||
|> extrude(length = 10)
|
|> extrude(length = 10)
|
||||||
|
@ -474,3 +474,79 @@ extrude(profile001, length = 100)
|
|||||||
result.first().unwrap();
|
result.first().unwrap();
|
||||||
result.last().unwrap();
|
result.last().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(feature = "artifact-graph")]
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_cache_multi_file_other_file_only_change() {
|
||||||
|
let code = r#"import "toBeImported.kcl" as importedCube
|
||||||
|
|
||||||
|
importedCube
|
||||||
|
|
||||||
|
sketch001 = startSketchOn(XZ)
|
||||||
|
profile001 = startProfile(sketch001, at = [-134.53, -56.17])
|
||||||
|
|> angledLine(angle = 0, length = 79.05, tag = $rectangleSegmentA001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 76.28)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $seg01)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
|
||||||
|
|> close()
|
||||||
|
extrude001 = extrude(profile001, length = 100)
|
||||||
|
sketch003 = startSketchOn(extrude001, face = seg02)
|
||||||
|
sketch002 = startSketchOn(extrude001, face = seg01)
|
||||||
|
"#;
|
||||||
|
|
||||||
|
let other_file = (
|
||||||
|
std::path::PathBuf::from("toBeImported.kcl"),
|
||||||
|
r#"sketch001 = startSketchOn(XZ)
|
||||||
|
profile001 = startProfile(sketch001, at = [281.54, 305.81])
|
||||||
|
|> angledLine(angle = 0, length = 123.43, tag = $rectangleSegmentA001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 85.99)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
extrude(profile001, length = 100)
|
||||||
|
"#
|
||||||
|
.to_string(),
|
||||||
|
);
|
||||||
|
|
||||||
|
let other_file2 = (
|
||||||
|
std::path::PathBuf::from("toBeImported.kcl"),
|
||||||
|
r#"sketch001 = startSketchOn(XZ)
|
||||||
|
profile001 = startProfile(sketch001, at = [281.54, 305.81])
|
||||||
|
|> angledLine(angle = 0, length = 123.43, tag = $rectangleSegmentA001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 85.99)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
extrude(profile001, length = 100)
|
||||||
|
|> translate(z = 100)
|
||||||
|
"#
|
||||||
|
.to_string(),
|
||||||
|
);
|
||||||
|
|
||||||
|
let result = cache_test(
|
||||||
|
"multi_file_other_file_only_change",
|
||||||
|
vec![
|
||||||
|
Variation {
|
||||||
|
code,
|
||||||
|
other_files: vec![other_file],
|
||||||
|
settings: &Default::default(),
|
||||||
|
},
|
||||||
|
Variation {
|
||||||
|
code,
|
||||||
|
other_files: vec![other_file2],
|
||||||
|
settings: &Default::default(),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
)
|
||||||
|
.await;
|
||||||
|
|
||||||
|
let r1 = result.first().unwrap();
|
||||||
|
let r2 = result.last().unwrap();
|
||||||
|
|
||||||
|
assert!(r1.1 != r2.1, "The images should be different");
|
||||||
|
// Make sure the outcomes are different.
|
||||||
|
assert!(
|
||||||
|
r1.2.artifact_graph != r2.2.artifact_graph,
|
||||||
|
"The outcomes artifact graphs should be different"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 35 KiB |
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
@ -80,6 +80,15 @@ pub(super) enum CacheResult {
|
|||||||
/// The program that needs to be executed.
|
/// The program that needs to be executed.
|
||||||
program: Node<Program>,
|
program: Node<Program>,
|
||||||
},
|
},
|
||||||
|
/// Check only the imports, and not the main program.
|
||||||
|
/// Before sending this we already checked the main program and it is the same.
|
||||||
|
/// And we made sure the import statements > 0.
|
||||||
|
CheckImportsOnly {
|
||||||
|
/// Argument is whether we need to reapply settings.
|
||||||
|
reapply_settings: bool,
|
||||||
|
/// The ast of the main file, which did not change.
|
||||||
|
ast: Node<Program>,
|
||||||
|
},
|
||||||
/// Argument is whether we need to reapply settings.
|
/// Argument is whether we need to reapply settings.
|
||||||
NoAction(bool),
|
NoAction(bool),
|
||||||
}
|
}
|
||||||
@ -105,7 +114,19 @@ pub(super) async fn get_changed_program(old: CacheInformation<'_>, new: CacheInf
|
|||||||
// If the ASTs are the EXACT same we return None.
|
// If the ASTs are the EXACT same we return None.
|
||||||
// We don't even need to waste time computing the digests.
|
// We don't even need to waste time computing the digests.
|
||||||
if old.ast == new.ast {
|
if old.ast == new.ast {
|
||||||
return CacheResult::NoAction(reapply_settings);
|
// First we need to make sure an imported file didn't change it's ast.
|
||||||
|
// We know they have the same imports because the ast is the same.
|
||||||
|
// If we have no imports, we can skip this.
|
||||||
|
if !old.ast.has_import_statements() {
|
||||||
|
println!("No imports, no need to check.");
|
||||||
|
return CacheResult::NoAction(reapply_settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tell the CacheResult we need to check all the imports, but the main ast is the same.
|
||||||
|
return CacheResult::CheckImportsOnly {
|
||||||
|
reapply_settings,
|
||||||
|
ast: old.ast.clone(),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// We have to clone just because the digests are stored inline :-(
|
// We have to clone just because the digests are stored inline :-(
|
||||||
@ -119,7 +140,19 @@ pub(super) async fn get_changed_program(old: CacheInformation<'_>, new: CacheInf
|
|||||||
|
|
||||||
// Check if the digest is the same.
|
// Check if the digest is the same.
|
||||||
if old_ast.digest == new_ast.digest {
|
if old_ast.digest == new_ast.digest {
|
||||||
return CacheResult::NoAction(reapply_settings);
|
// First we need to make sure an imported file didn't change it's ast.
|
||||||
|
// We know they have the same imports because the ast is the same.
|
||||||
|
// If we have no imports, we can skip this.
|
||||||
|
if !old.ast.has_import_statements() {
|
||||||
|
println!("No imports, no need to check.");
|
||||||
|
return CacheResult::NoAction(reapply_settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tell the CacheResult we need to check all the imports, but the main ast is the same.
|
||||||
|
return CacheResult::CheckImportsOnly {
|
||||||
|
reapply_settings,
|
||||||
|
ast: old.ast.clone(),
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if the annotations are different.
|
// Check if the annotations are different.
|
||||||
@ -242,6 +275,8 @@ fn generate_changed_program(old_ast: Node<Program>, mut new_ast: Node<Program>,
|
|||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
|
use pretty_assertions::assert_eq;
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::execution::{parse_execute, parse_execute_with_project_dir, ExecTestResults};
|
use crate::execution::{parse_execute, parse_execute_with_project_dir, ExecTestResults};
|
||||||
|
|
||||||
@ -658,6 +693,92 @@ extrude(profile001, length = 100)"#
|
|||||||
)
|
)
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
assert_eq!(result, CacheResult::NoAction(false));
|
let CacheResult::CheckImportsOnly { reapply_settings, .. } = result else {
|
||||||
|
panic!("Expected CheckImportsOnly, got {:?}", result);
|
||||||
|
};
|
||||||
|
|
||||||
|
assert_eq!(reapply_settings, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn test_cache_multi_file_only_other_file_changes_should_reexecute() {
|
||||||
|
let code = r#"import "toBeImported.kcl" as importedCube
|
||||||
|
|
||||||
|
importedCube
|
||||||
|
|
||||||
|
sketch001 = startSketchOn(XZ)
|
||||||
|
profile001 = startProfile(sketch001, at = [-134.53, -56.17])
|
||||||
|
|> angledLine(angle = 0, length = 79.05, tag = $rectangleSegmentA001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 76.28)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $seg01)
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $seg02)
|
||||||
|
|> close()
|
||||||
|
extrude001 = extrude(profile001, length = 100)
|
||||||
|
sketch003 = startSketchOn(extrude001, face = seg02)
|
||||||
|
sketch002 = startSketchOn(extrude001, face = seg01)
|
||||||
|
"#;
|
||||||
|
|
||||||
|
let other_file = (
|
||||||
|
std::path::PathBuf::from("toBeImported.kcl"),
|
||||||
|
r#"sketch001 = startSketchOn(XZ)
|
||||||
|
profile001 = startProfile(sketch001, at = [281.54, 305.81])
|
||||||
|
|> angledLine(angle = 0, length = 123.43, tag = $rectangleSegmentA001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 85.99)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
extrude(profile001, length = 100)"#
|
||||||
|
.to_string(),
|
||||||
|
);
|
||||||
|
|
||||||
|
let other_file2 = (
|
||||||
|
std::path::PathBuf::from("toBeImported.kcl"),
|
||||||
|
r#"sketch001 = startSketchOn(XZ)
|
||||||
|
profile001 = startProfile(sketch001, at = [281.54, 305.81])
|
||||||
|
|> angledLine(angle = 0, length = 123.43, tag = $rectangleSegmentA001)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001) - 90, length = 85.99)
|
||||||
|
|> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
extrude(profile001, length = 100)
|
||||||
|
|> translate(z=100)
|
||||||
|
"#
|
||||||
|
.to_string(),
|
||||||
|
);
|
||||||
|
|
||||||
|
let tmp_dir = std::env::temp_dir();
|
||||||
|
let tmp_dir = tmp_dir.join(uuid::Uuid::new_v4().to_string());
|
||||||
|
|
||||||
|
// Create a temporary file for each of the other files.
|
||||||
|
let tmp_file = tmp_dir.join(other_file.0);
|
||||||
|
std::fs::create_dir_all(tmp_file.parent().unwrap()).unwrap();
|
||||||
|
std::fs::write(&tmp_file, other_file.1).unwrap();
|
||||||
|
|
||||||
|
let ExecTestResults { program, exec_ctxt, .. } =
|
||||||
|
parse_execute_with_project_dir(code, Some(tmp_dir)).await.unwrap();
|
||||||
|
|
||||||
|
// Change the other file.
|
||||||
|
std::fs::write(tmp_file, other_file2.1).unwrap();
|
||||||
|
|
||||||
|
let mut new_program = crate::Program::parse_no_errs(code).unwrap();
|
||||||
|
new_program.compute_digest();
|
||||||
|
|
||||||
|
let result = get_changed_program(
|
||||||
|
CacheInformation {
|
||||||
|
ast: &program.ast,
|
||||||
|
settings: &exec_ctxt.settings,
|
||||||
|
},
|
||||||
|
CacheInformation {
|
||||||
|
ast: &new_program.ast,
|
||||||
|
settings: &exec_ctxt.settings,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
.await;
|
||||||
|
|
||||||
|
let CacheResult::CheckImportsOnly { reapply_settings, .. } = result else {
|
||||||
|
panic!("Expected CheckImportsOnly, got {:?}", result);
|
||||||
|
};
|
||||||
|
|
||||||
|
assert_eq!(reapply_settings, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2791,13 +2791,12 @@ d = b + c
|
|||||||
let mut exec_state = ExecState::new(&exec_ctxt);
|
let mut exec_state = ExecState::new(&exec_ctxt);
|
||||||
|
|
||||||
exec_ctxt
|
exec_ctxt
|
||||||
.run_concurrent(
|
.run(
|
||||||
&crate::Program {
|
&crate::Program {
|
||||||
ast: main.clone(),
|
ast: main.clone(),
|
||||||
original_file_contents: "".to_owned(),
|
original_file_contents: "".to_owned(),
|
||||||
},
|
},
|
||||||
&mut exec_state,
|
&mut exec_state,
|
||||||
false,
|
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
@ -42,6 +42,7 @@ use crate::{
|
|||||||
parsing::ast::types::{Expr, ImportPath, NodeRef},
|
parsing::ast::types::{Expr, ImportPath, NodeRef},
|
||||||
source_range::SourceRange,
|
source_range::SourceRange,
|
||||||
std::StdLib,
|
std::StdLib,
|
||||||
|
walk::{Universe, UniverseMap},
|
||||||
CompilationError, ExecError, KclErrorWithOutputs,
|
CompilationError, ExecError, KclErrorWithOutputs,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -586,7 +587,7 @@ impl ExecutorContext {
|
|||||||
pub async fn run_with_caching(&self, program: crate::Program) -> Result<ExecOutcome, KclErrorWithOutputs> {
|
pub async fn run_with_caching(&self, program: crate::Program) -> Result<ExecOutcome, KclErrorWithOutputs> {
|
||||||
assert!(!self.is_mock());
|
assert!(!self.is_mock());
|
||||||
|
|
||||||
let (program, mut exec_state, preserve_mem) = if let Some(OldAstState {
|
let (program, mut exec_state, preserve_mem, imports_info) = if let Some(OldAstState {
|
||||||
ast: old_ast,
|
ast: old_ast,
|
||||||
exec_state: mut old_state,
|
exec_state: mut old_state,
|
||||||
settings: old_settings,
|
settings: old_settings,
|
||||||
@ -603,7 +604,7 @@ impl ExecutorContext {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Get the program that actually changed from the old and new information.
|
// Get the program that actually changed from the old and new information.
|
||||||
let (clear_scene, program) = match cache::get_changed_program(old, new).await {
|
let (clear_scene, program, import_check_info) = match cache::get_changed_program(old, new).await {
|
||||||
CacheResult::ReExecute {
|
CacheResult::ReExecute {
|
||||||
clear_scene,
|
clear_scene,
|
||||||
reapply_settings,
|
reapply_settings,
|
||||||
@ -616,7 +617,7 @@ impl ExecutorContext {
|
|||||||
.await
|
.await
|
||||||
.is_err()
|
.is_err()
|
||||||
{
|
{
|
||||||
(true, program)
|
(true, program, None)
|
||||||
} else {
|
} else {
|
||||||
(
|
(
|
||||||
clear_scene,
|
clear_scene,
|
||||||
@ -624,6 +625,52 @@ impl ExecutorContext {
|
|||||||
ast: changed_program,
|
ast: changed_program,
|
||||||
original_file_contents: program.original_file_contents,
|
original_file_contents: program.original_file_contents,
|
||||||
},
|
},
|
||||||
|
None,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CacheResult::CheckImportsOnly {
|
||||||
|
reapply_settings,
|
||||||
|
ast: changed_program,
|
||||||
|
} => {
|
||||||
|
if reapply_settings
|
||||||
|
&& self
|
||||||
|
.engine
|
||||||
|
.reapply_settings(&self.settings, Default::default(), old_state.id_generator())
|
||||||
|
.await
|
||||||
|
.is_err()
|
||||||
|
{
|
||||||
|
(true, program, None)
|
||||||
|
} else {
|
||||||
|
// We need to check our imports to see if they changed.
|
||||||
|
let mut new_exec_state = ExecState::new(self);
|
||||||
|
let (new_universe, new_universe_map) = self.get_universe(&program, &mut new_exec_state).await?;
|
||||||
|
let mut clear_scene = false;
|
||||||
|
|
||||||
|
let mut keys = new_universe.keys().clone().collect::<Vec<_>>();
|
||||||
|
keys.sort();
|
||||||
|
for key in keys {
|
||||||
|
let (_, id, _, _) = &new_universe[key];
|
||||||
|
let old_source = old_state.get_source(*id);
|
||||||
|
let new_source = new_exec_state.get_source(*id);
|
||||||
|
if old_source != new_source {
|
||||||
|
clear_scene = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(
|
||||||
|
clear_scene,
|
||||||
|
crate::Program {
|
||||||
|
ast: changed_program,
|
||||||
|
original_file_contents: program.original_file_contents,
|
||||||
|
},
|
||||||
|
// We only care about this if we are clearing the scene.
|
||||||
|
if clear_scene {
|
||||||
|
Some((new_universe, new_universe_map, new_exec_state))
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -646,7 +693,7 @@ impl ExecutorContext {
|
|||||||
let outcome = old_state.to_exec_outcome(result_env).await;
|
let outcome = old_state.to_exec_outcome(result_env).await;
|
||||||
return Ok(outcome);
|
return Ok(outcome);
|
||||||
}
|
}
|
||||||
(true, program)
|
(true, program, None)
|
||||||
}
|
}
|
||||||
CacheResult::NoAction(false) => {
|
CacheResult::NoAction(false) => {
|
||||||
let outcome = old_state.to_exec_outcome(result_env).await;
|
let outcome = old_state.to_exec_outcome(result_env).await;
|
||||||
@ -654,34 +701,42 @@ impl ExecutorContext {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let (exec_state, preserve_mem) = if clear_scene {
|
let (exec_state, preserve_mem, universe_info) =
|
||||||
// Pop the execution state, since we are starting fresh.
|
if let Some((new_universe, new_universe_map, mut new_exec_state)) = import_check_info {
|
||||||
let mut exec_state = old_state;
|
// Clear the scene if the imports changed.
|
||||||
exec_state.reset(self);
|
self.send_clear_scene(&mut new_exec_state, Default::default())
|
||||||
|
.await
|
||||||
|
.map_err(KclErrorWithOutputs::no_outputs)?;
|
||||||
|
|
||||||
// We don't do this in mock mode since there is no engine connection
|
(new_exec_state, false, Some((new_universe, new_universe_map)))
|
||||||
// anyways and from the TS side we override memory and don't want to clear it.
|
} else if clear_scene {
|
||||||
self.send_clear_scene(&mut exec_state, Default::default())
|
// Pop the execution state, since we are starting fresh.
|
||||||
.await
|
let mut exec_state = old_state;
|
||||||
.map_err(KclErrorWithOutputs::no_outputs)?;
|
exec_state.reset(self);
|
||||||
|
|
||||||
(exec_state, false)
|
self.send_clear_scene(&mut exec_state, Default::default())
|
||||||
} else {
|
.await
|
||||||
old_state.mut_stack().restore_env(result_env);
|
.map_err(KclErrorWithOutputs::no_outputs)?;
|
||||||
|
|
||||||
(old_state, true)
|
(exec_state, false, None)
|
||||||
};
|
} else {
|
||||||
|
old_state.mut_stack().restore_env(result_env);
|
||||||
|
|
||||||
(program, exec_state, preserve_mem)
|
(old_state, true, None)
|
||||||
|
};
|
||||||
|
|
||||||
|
(program, exec_state, preserve_mem, universe_info)
|
||||||
} else {
|
} else {
|
||||||
let mut exec_state = ExecState::new(self);
|
let mut exec_state = ExecState::new(self);
|
||||||
self.send_clear_scene(&mut exec_state, Default::default())
|
self.send_clear_scene(&mut exec_state, Default::default())
|
||||||
.await
|
.await
|
||||||
.map_err(KclErrorWithOutputs::no_outputs)?;
|
.map_err(KclErrorWithOutputs::no_outputs)?;
|
||||||
(program, exec_state, false)
|
(program, exec_state, false, None)
|
||||||
};
|
};
|
||||||
|
|
||||||
let result = self.run_concurrent(&program, &mut exec_state, preserve_mem).await;
|
let result = self
|
||||||
|
.run_concurrent(&program, &mut exec_state, imports_info, preserve_mem)
|
||||||
|
.await;
|
||||||
|
|
||||||
if result.is_err() {
|
if result.is_err() {
|
||||||
cache::bust_cache().await;
|
cache::bust_cache().await;
|
||||||
@ -714,7 +769,7 @@ impl ExecutorContext {
|
|||||||
program: &crate::Program,
|
program: &crate::Program,
|
||||||
exec_state: &mut ExecState,
|
exec_state: &mut ExecState,
|
||||||
) -> Result<(EnvironmentRef, Option<ModelingSessionData>), KclErrorWithOutputs> {
|
) -> Result<(EnvironmentRef, Option<ModelingSessionData>), KclErrorWithOutputs> {
|
||||||
self.run_concurrent(program, exec_state, false).await
|
self.run_concurrent(program, exec_state, None, false).await
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Perform the execution of a program using a concurrent
|
/// Perform the execution of a program using a concurrent
|
||||||
@ -728,47 +783,24 @@ impl ExecutorContext {
|
|||||||
&self,
|
&self,
|
||||||
program: &crate::Program,
|
program: &crate::Program,
|
||||||
exec_state: &mut ExecState,
|
exec_state: &mut ExecState,
|
||||||
|
universe_info: Option<(Universe, UniverseMap)>,
|
||||||
preserve_mem: bool,
|
preserve_mem: bool,
|
||||||
) -> Result<(EnvironmentRef, Option<ModelingSessionData>), KclErrorWithOutputs> {
|
) -> Result<(EnvironmentRef, Option<ModelingSessionData>), KclErrorWithOutputs> {
|
||||||
exec_state.add_root_module_contents(program);
|
// Reuse our cached universe if we have one.
|
||||||
|
#[allow(unused_variables)]
|
||||||
|
let (universe, universe_map) = if let Some((universe, universe_map)) = universe_info {
|
||||||
|
(universe, universe_map)
|
||||||
|
} else {
|
||||||
|
self.get_universe(program, exec_state).await?
|
||||||
|
};
|
||||||
|
|
||||||
|
let default_planes = self.engine.get_default_planes().read().await.clone();
|
||||||
|
|
||||||
|
// Run the prelude to set up the engine.
|
||||||
self.eval_prelude(exec_state, SourceRange::synthetic())
|
self.eval_prelude(exec_state, SourceRange::synthetic())
|
||||||
.await
|
.await
|
||||||
.map_err(KclErrorWithOutputs::no_outputs)?;
|
.map_err(KclErrorWithOutputs::no_outputs)?;
|
||||||
|
|
||||||
let mut universe = std::collections::HashMap::new();
|
|
||||||
|
|
||||||
let default_planes = self.engine.get_default_planes().read().await.clone();
|
|
||||||
#[cfg_attr(not(feature = "artifact-graph"), expect(unused_variables))]
|
|
||||||
let root_imports = crate::walk::import_universe(
|
|
||||||
self,
|
|
||||||
&ModuleRepr::Kcl(program.ast.clone(), None),
|
|
||||||
&mut universe,
|
|
||||||
exec_state,
|
|
||||||
)
|
|
||||||
.await
|
|
||||||
.map_err(|err| {
|
|
||||||
println!("Error: {err:?}");
|
|
||||||
let module_id_to_module_path: IndexMap<ModuleId, ModulePath> = exec_state
|
|
||||||
.global
|
|
||||||
.path_to_source_id
|
|
||||||
.iter()
|
|
||||||
.map(|(k, v)| ((*v), k.clone()))
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
KclErrorWithOutputs::new(
|
|
||||||
err,
|
|
||||||
#[cfg(feature = "artifact-graph")]
|
|
||||||
exec_state.global.operations.clone(),
|
|
||||||
#[cfg(feature = "artifact-graph")]
|
|
||||||
exec_state.global.artifact_commands.clone(),
|
|
||||||
#[cfg(feature = "artifact-graph")]
|
|
||||||
exec_state.global.artifact_graph.clone(),
|
|
||||||
module_id_to_module_path,
|
|
||||||
exec_state.global.id_to_source.clone(),
|
|
||||||
default_planes.clone(),
|
|
||||||
)
|
|
||||||
})?;
|
|
||||||
|
|
||||||
for modules in crate::walk::import_graph(&universe, self)
|
for modules in crate::walk::import_graph(&universe, self)
|
||||||
.map_err(|err| {
|
.map_err(|err| {
|
||||||
let module_id_to_module_path: IndexMap<ModuleId, ModulePath> = exec_state
|
let module_id_to_module_path: IndexMap<ModuleId, ModulePath> = exec_state
|
||||||
@ -821,7 +853,7 @@ impl ExecutorContext {
|
|||||||
ModulePath::Local { value, .. } => {
|
ModulePath::Local { value, .. } => {
|
||||||
// We only want to display the top-level module imports in
|
// We only want to display the top-level module imports in
|
||||||
// the Feature Tree, not transitive imports.
|
// the Feature Tree, not transitive imports.
|
||||||
if root_imports.contains_key(value) {
|
if universe_map.contains_key(value) {
|
||||||
exec_state.global.operations.push(Operation::GroupBegin {
|
exec_state.global.operations.push(Operation::GroupBegin {
|
||||||
group: Group::ModuleInstance {
|
group: Group::ModuleInstance {
|
||||||
name: value.file_name().unwrap_or_default().to_string_lossy().into_owned(),
|
name: value.file_name().unwrap_or_default().to_string_lossy().into_owned(),
|
||||||
@ -974,6 +1006,52 @@ impl ExecutorContext {
|
|||||||
self.inner_run(program, exec_state, preserve_mem).await
|
self.inner_run(program, exec_state, preserve_mem).await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get the universe & universe map of the program.
|
||||||
|
/// And see if any of the imports changed.
|
||||||
|
async fn get_universe(
|
||||||
|
&self,
|
||||||
|
program: &crate::Program,
|
||||||
|
exec_state: &mut ExecState,
|
||||||
|
) -> Result<(Universe, UniverseMap), KclErrorWithOutputs> {
|
||||||
|
exec_state.add_root_module_contents(program);
|
||||||
|
|
||||||
|
let mut universe = std::collections::HashMap::new();
|
||||||
|
|
||||||
|
let default_planes = self.engine.get_default_planes().read().await.clone();
|
||||||
|
|
||||||
|
let root_imports = crate::walk::import_universe(
|
||||||
|
self,
|
||||||
|
&ModuleRepr::Kcl(program.ast.clone(), None),
|
||||||
|
&mut universe,
|
||||||
|
exec_state,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.map_err(|err| {
|
||||||
|
println!("Error: {err:?}");
|
||||||
|
let module_id_to_module_path: IndexMap<ModuleId, ModulePath> = exec_state
|
||||||
|
.global
|
||||||
|
.path_to_source_id
|
||||||
|
.iter()
|
||||||
|
.map(|(k, v)| ((*v), k.clone()))
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
KclErrorWithOutputs::new(
|
||||||
|
err,
|
||||||
|
#[cfg(feature = "artifact-graph")]
|
||||||
|
exec_state.global.operations.clone(),
|
||||||
|
#[cfg(feature = "artifact-graph")]
|
||||||
|
exec_state.global.artifact_commands.clone(),
|
||||||
|
#[cfg(feature = "artifact-graph")]
|
||||||
|
exec_state.global.artifact_graph.clone(),
|
||||||
|
module_id_to_module_path,
|
||||||
|
exec_state.global.id_to_source.clone(),
|
||||||
|
default_planes,
|
||||||
|
)
|
||||||
|
})?;
|
||||||
|
|
||||||
|
Ok((universe, root_imports))
|
||||||
|
}
|
||||||
|
|
||||||
/// Perform the execution of a program. Accept all possible parameters and
|
/// Perform the execution of a program. Accept all possible parameters and
|
||||||
/// output everything.
|
/// output everything.
|
||||||
async fn inner_run(
|
async fn inner_run(
|
||||||
|
@ -238,6 +238,10 @@ impl ExecState {
|
|||||||
self.global.id_to_source.insert(id, source.clone());
|
self.global.id_to_source.insert(id, source.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub(super) fn get_source(&self, id: ModuleId) -> Option<&ModuleSource> {
|
||||||
|
self.global.id_to_source.get(&id)
|
||||||
|
}
|
||||||
|
|
||||||
pub(super) fn add_module(&mut self, id: ModuleId, path: ModulePath, repr: ModuleRepr) {
|
pub(super) fn add_module(&mut self, id: ModuleId, path: ModulePath, repr: ModuleRepr) {
|
||||||
debug_assert!(self.global.path_to_source_id.contains_key(&path));
|
debug_assert!(self.global.path_to_source_id.contains_key(&path));
|
||||||
let module_info = ModuleInfo { id, repr, path };
|
let module_info = ModuleInfo { id, repr, path };
|
||||||
|
@ -542,6 +542,16 @@ impl Program {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Checks if the ast has any import statements.
|
||||||
|
pub fn has_import_statements(&self) -> bool {
|
||||||
|
for item in &self.body {
|
||||||
|
if let BodyItem::ImportStatement(_) = item {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
pub fn in_comment(&self, pos: usize) -> bool {
|
pub fn in_comment(&self, pos: usize) -> bool {
|
||||||
// Check if its in the body.
|
// Check if its in the body.
|
||||||
if self.non_code_meta.in_comment(pos) {
|
if self.non_code_meta.in_comment(pos) {
|
||||||
|
@ -21,8 +21,9 @@ type Dependency = (String, String);
|
|||||||
|
|
||||||
type Graph = Vec<Dependency>;
|
type Graph = Vec<Dependency>;
|
||||||
|
|
||||||
type DependencyInfo = (AstNode<ImportStatement>, ModuleId, ModulePath, ModuleRepr);
|
pub(crate) type DependencyInfo = (AstNode<ImportStatement>, ModuleId, ModulePath, ModuleRepr);
|
||||||
type Universe = HashMap<String, DependencyInfo>;
|
pub(crate) type UniverseMap = HashMap<PathBuf, AstNode<ImportStatement>>;
|
||||||
|
pub(crate) type Universe = HashMap<String, DependencyInfo>;
|
||||||
|
|
||||||
/// Process a number of programs, returning the graph of dependencies.
|
/// Process a number of programs, returning the graph of dependencies.
|
||||||
///
|
///
|
||||||
@ -184,7 +185,7 @@ pub(crate) async fn import_universe(
|
|||||||
repr: &ModuleRepr,
|
repr: &ModuleRepr,
|
||||||
out: &mut Universe,
|
out: &mut Universe,
|
||||||
exec_state: &mut ExecState,
|
exec_state: &mut ExecState,
|
||||||
) -> Result<HashMap<PathBuf, crate::parsing::ast::types::Node<ImportStatement>>, KclError> {
|
) -> Result<UniverseMap, KclError> {
|
||||||
let modules = import_dependencies(repr, ctx)?;
|
let modules = import_dependencies(repr, ctx)?;
|
||||||
let mut module_imports = HashMap::new();
|
let mut module_imports = HashMap::new();
|
||||||
for (filename, import_stmt, module_path) in modules {
|
for (filename, import_stmt, module_path) in modules {
|
||||||
|
@ -9,4 +9,4 @@ pub use ast_node::Node;
|
|||||||
pub use ast_visitor::Visitable;
|
pub use ast_visitor::Visitable;
|
||||||
pub use ast_walk::walk;
|
pub use ast_walk::walk;
|
||||||
pub use import_graph::import_graph;
|
pub use import_graph::import_graph;
|
||||||
pub(crate) use import_graph::import_universe;
|
pub(crate) use import_graph::{import_universe, Universe, UniverseMap};
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path3 [Path]
|
subgraph path3 [Path]
|
||||||
3["Path<br>[74, 114, 8]"]
|
3["Path<br>[74, 114, 1]"]
|
||||||
5["Segment<br>[120, 137, 8]"]
|
5["Segment<br>[120, 137, 1]"]
|
||||||
6["Segment<br>[143, 161, 8]"]
|
6["Segment<br>[143, 161, 1]"]
|
||||||
7["Segment<br>[167, 185, 8]"]
|
7["Segment<br>[167, 185, 1]"]
|
||||||
8["Segment<br>[191, 247, 8]"]
|
8["Segment<br>[191, 247, 1]"]
|
||||||
9["Segment<br>[253, 260, 8]"]
|
9["Segment<br>[253, 260, 1]"]
|
||||||
15[Solid2d]
|
15[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path4 [Path]
|
subgraph path4 [Path]
|
||||||
4["Path<br>[74, 112, 9]"]
|
4["Path<br>[74, 112, 2]"]
|
||||||
10["Segment<br>[118, 135, 9]"]
|
10["Segment<br>[118, 135, 2]"]
|
||||||
11["Segment<br>[141, 159, 9]"]
|
11["Segment<br>[141, 159, 2]"]
|
||||||
12["Segment<br>[165, 183, 9]"]
|
12["Segment<br>[165, 183, 2]"]
|
||||||
13["Segment<br>[189, 245, 9]"]
|
13["Segment<br>[189, 245, 2]"]
|
||||||
14["Segment<br>[251, 258, 9]"]
|
14["Segment<br>[251, 258, 2]"]
|
||||||
16[Solid2d]
|
16[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[47, 64, 8]"]
|
1["Plane<br>[47, 64, 1]"]
|
||||||
2["Plane<br>[47, 64, 9]"]
|
2["Plane<br>[47, 64, 2]"]
|
||||||
17["Sweep Extrusion<br>[266, 288, 8]"]
|
17["Sweep Extrusion<br>[266, 288, 1]"]
|
||||||
18["Sweep Extrusion<br>[264, 286, 9]"]
|
18["Sweep Extrusion<br>[264, 286, 2]"]
|
||||||
19[Wall]
|
19[Wall]
|
||||||
20[Wall]
|
20[Wall]
|
||||||
21[Wall]
|
21[Wall]
|
||||||
@ -66,44 +66,44 @@ flowchart LR
|
|||||||
4 --- 14
|
4 --- 14
|
||||||
4 --- 16
|
4 --- 16
|
||||||
4 ---- 18
|
4 ---- 18
|
||||||
5 --- 24
|
5 --- 25
|
||||||
5 x--> 27
|
5 x--> 28
|
||||||
5 --- 37
|
5 --- 36
|
||||||
5 --- 46
|
5 --- 43
|
||||||
6 --- 25
|
6 --- 24
|
||||||
6 x--> 27
|
6 x--> 28
|
||||||
6 --- 35
|
6 --- 37
|
||||||
6 --- 45
|
6 --- 45
|
||||||
7 --- 26
|
7 --- 23
|
||||||
7 x--> 27
|
7 x--> 28
|
||||||
7 --- 36
|
7 --- 35
|
||||||
7 --- 44
|
7 --- 44
|
||||||
8 --- 23
|
8 --- 26
|
||||||
8 x--> 27
|
8 x--> 28
|
||||||
8 --- 38
|
8 --- 38
|
||||||
8 --- 43
|
8 --- 46
|
||||||
10 --- 19
|
10 --- 19
|
||||||
10 x--> 28
|
10 x--> 27
|
||||||
10 --- 31
|
10 --- 31
|
||||||
10 --- 39
|
10 --- 40
|
||||||
11 --- 22
|
11 --- 22
|
||||||
11 x--> 28
|
11 x--> 27
|
||||||
11 --- 34
|
11 --- 33
|
||||||
11 --- 41
|
11 --- 41
|
||||||
12 --- 21
|
12 --- 21
|
||||||
12 x--> 28
|
12 x--> 27
|
||||||
12 --- 32
|
12 --- 32
|
||||||
12 --- 42
|
12 --- 39
|
||||||
13 --- 20
|
13 --- 20
|
||||||
13 x--> 28
|
13 x--> 27
|
||||||
13 --- 33
|
13 --- 34
|
||||||
13 --- 40
|
13 --- 42
|
||||||
17 --- 23
|
17 --- 23
|
||||||
17 --- 24
|
17 --- 24
|
||||||
17 --- 25
|
17 --- 25
|
||||||
17 --- 26
|
17 --- 26
|
||||||
17 --- 27
|
17 --- 28
|
||||||
17 --- 29
|
17 --- 30
|
||||||
17 --- 35
|
17 --- 35
|
||||||
17 --- 36
|
17 --- 36
|
||||||
17 --- 37
|
17 --- 37
|
||||||
@ -116,8 +116,8 @@ flowchart LR
|
|||||||
18 --- 20
|
18 --- 20
|
||||||
18 --- 21
|
18 --- 21
|
||||||
18 --- 22
|
18 --- 22
|
||||||
18 --- 28
|
18 --- 27
|
||||||
18 --- 30
|
18 --- 29
|
||||||
18 --- 31
|
18 --- 31
|
||||||
18 --- 32
|
18 --- 32
|
||||||
18 --- 33
|
18 --- 33
|
||||||
@ -127,35 +127,35 @@ flowchart LR
|
|||||||
18 --- 41
|
18 --- 41
|
||||||
18 --- 42
|
18 --- 42
|
||||||
31 <--x 19
|
31 <--x 19
|
||||||
39 <--x 19
|
|
||||||
40 <--x 19
|
40 <--x 19
|
||||||
33 <--x 20
|
42 <--x 19
|
||||||
40 <--x 20
|
34 <--x 20
|
||||||
|
39 <--x 20
|
||||||
42 <--x 20
|
42 <--x 20
|
||||||
32 <--x 21
|
32 <--x 21
|
||||||
|
39 <--x 21
|
||||||
41 <--x 21
|
41 <--x 21
|
||||||
42 <--x 21
|
33 <--x 22
|
||||||
34 <--x 22
|
40 <--x 22
|
||||||
39 <--x 22
|
|
||||||
41 <--x 22
|
41 <--x 22
|
||||||
38 <--x 23
|
35 <--x 23
|
||||||
43 <--x 23
|
|
||||||
44 <--x 23
|
44 <--x 23
|
||||||
|
45 <--x 23
|
||||||
37 <--x 24
|
37 <--x 24
|
||||||
43 <--x 24
|
43 <--x 24
|
||||||
46 <--x 24
|
45 <--x 24
|
||||||
35 <--x 25
|
36 <--x 25
|
||||||
45 <--x 25
|
43 <--x 25
|
||||||
46 <--x 25
|
46 <--x 25
|
||||||
36 <--x 26
|
38 <--x 26
|
||||||
44 <--x 26
|
44 <--x 26
|
||||||
45 <--x 26
|
46 <--x 26
|
||||||
35 <--x 29
|
31 <--x 29
|
||||||
36 <--x 29
|
32 <--x 29
|
||||||
37 <--x 29
|
33 <--x 29
|
||||||
38 <--x 29
|
34 <--x 29
|
||||||
31 <--x 30
|
35 <--x 30
|
||||||
32 <--x 30
|
36 <--x 30
|
||||||
33 <--x 30
|
37 <--x 30
|
||||||
34 <--x 30
|
38 <--x 30
|
||||||
```
|
```
|
||||||
|
@ -5,10 +5,10 @@ description: Variables in memory after executing assembly_mixed_units_cubes.kcl
|
|||||||
{
|
{
|
||||||
"cubeIn": {
|
"cubeIn": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
},
|
},
|
||||||
"cubeMm": {
|
"cubeMm": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 9
|
"value": 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path3 [Path]
|
subgraph path3 [Path]
|
||||||
3["Path<br>[195, 230, 8]"]
|
3["Path<br>[195, 230, 1]"]
|
||||||
5["Segment<br>[195, 230, 8]"]
|
5["Segment<br>[195, 230, 1]"]
|
||||||
7[Solid2d]
|
|
||||||
end
|
|
||||||
subgraph path4 [Path]
|
|
||||||
4["Path<br>[111, 146, 10]"]
|
|
||||||
6["Segment<br>[111, 146, 10]"]
|
|
||||||
8[Solid2d]
|
8[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[172, 189, 8]"]
|
subgraph path4 [Path]
|
||||||
2["Plane<br>[88, 105, 10]"]
|
4["Path<br>[111, 146, 3]"]
|
||||||
|
6["Segment<br>[111, 146, 3]"]
|
||||||
|
7[Solid2d]
|
||||||
|
end
|
||||||
|
1["Plane<br>[172, 189, 1]"]
|
||||||
|
2["Plane<br>[88, 105, 3]"]
|
||||||
1 --- 3
|
1 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
3 --- 5
|
3 --- 5
|
||||||
3 --- 7
|
3 --- 8
|
||||||
4 --- 6
|
4 --- 6
|
||||||
4 --- 8
|
4 --- 7
|
||||||
```
|
```
|
||||||
|
@ -5,10 +5,10 @@ description: Variables in memory after executing assembly_non_default_units.kcl
|
|||||||
{
|
{
|
||||||
"other1": {
|
"other1": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
},
|
},
|
||||||
"other2": {
|
"other2": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 10
|
"value": 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3598,7 +3598,7 @@ description: Variables in memory after executing import_async.kcl
|
|||||||
},
|
},
|
||||||
"screw": {
|
"screw": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"type": "Sketch",
|
"type": "Sketch",
|
||||||
|
@ -5,7 +5,7 @@ description: Variables in memory after executing import_foreign.kcl
|
|||||||
{
|
{
|
||||||
"cube": {
|
"cube": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
},
|
},
|
||||||
"model": {
|
"model": {
|
||||||
"type": "ImportedGeometry",
|
"type": "ImportedGeometry",
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path2 [Path]
|
subgraph path2 [Path]
|
||||||
2["Path<br>[75, 101, 8]"]
|
2["Path<br>[75, 101, 1]"]
|
||||||
3["Segment<br>[107, 125, 8]"]
|
3["Segment<br>[107, 125, 1]"]
|
||||||
4["Segment<br>[131, 150, 8]"]
|
4["Segment<br>[131, 150, 1]"]
|
||||||
5["Segment<br>[156, 175, 8]"]
|
5["Segment<br>[156, 175, 1]"]
|
||||||
6["Segment<br>[181, 200, 8]"]
|
6["Segment<br>[181, 200, 1]"]
|
||||||
7["Segment<br>[206, 231, 8]"]
|
7["Segment<br>[206, 231, 1]"]
|
||||||
8["Segment<br>[237, 258, 8]"]
|
8["Segment<br>[237, 258, 1]"]
|
||||||
9["Segment<br>[264, 283, 8]"]
|
9["Segment<br>[264, 283, 1]"]
|
||||||
10["Segment<br>[289, 296, 8]"]
|
10["Segment<br>[289, 296, 1]"]
|
||||||
11[Solid2d]
|
11[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[52, 69, 8]"]
|
1["Plane<br>[52, 69, 1]"]
|
||||||
12["Sweep Revolve<br>[302, 319, 8]"]
|
12["Sweep Revolve<br>[302, 319, 1]"]
|
||||||
13[Wall]
|
13[Wall]
|
||||||
14[Wall]
|
14[Wall]
|
||||||
15[Wall]
|
15[Wall]
|
||||||
@ -41,29 +41,29 @@ flowchart LR
|
|||||||
2 --- 11
|
2 --- 11
|
||||||
2 ---- 12
|
2 ---- 12
|
||||||
12 <--x 3
|
12 <--x 3
|
||||||
3 --- 15
|
3 --- 16
|
||||||
3 x--> 26
|
3 x--> 26
|
||||||
12 <--x 4
|
12 <--x 4
|
||||||
4 --- 18
|
4 --- 15
|
||||||
4 --- 26
|
4 --- 26
|
||||||
12 <--x 5
|
12 <--x 5
|
||||||
5 --- 20
|
5 --- 13
|
||||||
5 --- 22
|
5 --- 24
|
||||||
12 <--x 6
|
12 <--x 6
|
||||||
6 --- 13
|
6 --- 20
|
||||||
6 --- 24
|
6 --- 25
|
||||||
12 <--x 7
|
12 <--x 7
|
||||||
7 --- 16
|
7 --- 17
|
||||||
7 --- 21
|
7 --- 22
|
||||||
12 <--x 8
|
12 <--x 8
|
||||||
8 --- 17
|
8 --- 19
|
||||||
8 --- 23
|
8 --- 21
|
||||||
12 <--x 9
|
12 <--x 9
|
||||||
9 --- 14
|
9 --- 14
|
||||||
9 --- 27
|
9 --- 27
|
||||||
12 <--x 10
|
12 <--x 10
|
||||||
10 --- 19
|
10 --- 18
|
||||||
10 --- 25
|
10 --- 23
|
||||||
12 --- 13
|
12 --- 13
|
||||||
12 --- 14
|
12 --- 14
|
||||||
12 --- 15
|
12 --- 15
|
||||||
@ -79,18 +79,18 @@ flowchart LR
|
|||||||
12 --- 25
|
12 --- 25
|
||||||
12 --- 26
|
12 --- 26
|
||||||
12 --- 27
|
12 --- 27
|
||||||
22 <--x 13
|
|
||||||
24 <--x 13
|
24 <--x 13
|
||||||
23 <--x 14
|
21 <--x 14
|
||||||
27 <--x 14
|
27 <--x 14
|
||||||
25 <--x 15
|
|
||||||
26 <--x 15
|
26 <--x 15
|
||||||
21 <--x 16
|
23 <--x 16
|
||||||
24 <--x 16
|
26 <--x 16
|
||||||
21 <--x 17
|
22 <--x 17
|
||||||
23 <--x 17
|
25 <--x 17
|
||||||
26 <--x 18
|
23 <--x 18
|
||||||
25 <--x 19
|
27 <--x 18
|
||||||
27 <--x 19
|
21 <--x 19
|
||||||
22 <--x 20
|
22 <--x 19
|
||||||
|
24 <--x 20
|
||||||
|
25 <--x 20
|
||||||
```
|
```
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path2 [Path]
|
subgraph path2 [Path]
|
||||||
2["Path<br>[100, 136, 8]"]
|
2["Path<br>[100, 136, 1]"]
|
||||||
3["Segment<br>[100, 136, 8]"]
|
3["Segment<br>[100, 136, 1]"]
|
||||||
4[Solid2d]
|
4[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[77, 94, 8]"]
|
1["Plane<br>[77, 94, 1]"]
|
||||||
1 --- 2
|
1 --- 2
|
||||||
2 --- 3
|
2 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
|
@ -5,6 +5,6 @@ description: Variables in memory after executing import_transform.kcl
|
|||||||
{
|
{
|
||||||
"screw": {
|
"screw": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
source: kcl-lib/src/simulation_tests.rs
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
description: Artifact graph flowchart import_whole.kcl
|
description: Artifact graph flowchart import_whole_simple.kcl
|
||||||
extension: md
|
extension: md
|
||||||
snapshot_kind: binary
|
snapshot_kind: binary
|
||||||
---
|
---
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path2 [Path]
|
subgraph path2 [Path]
|
||||||
2["Path<br>[82, 118, 8]"]
|
2["Path<br>[82, 118, 1]"]
|
||||||
3["Segment<br>[82, 118, 8]"]
|
3["Segment<br>[82, 118, 1]"]
|
||||||
4[Solid2d]
|
4[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[59, 76, 8]"]
|
1["Plane<br>[59, 76, 1]"]
|
||||||
5["Sweep Extrusion<br>[124, 144, 8]"]
|
5["Sweep Extrusion<br>[124, 144, 1]"]
|
||||||
6[Wall]
|
6[Wall]
|
||||||
7["Cap Start"]
|
7["Cap Start"]
|
||||||
8["Cap End"]
|
8["Cap End"]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
source: kcl-lib/src/simulation_tests.rs
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
description: Variables in memory after executing import_whole.kcl
|
description: Variables in memory after executing import_whole_simple.kcl
|
||||||
---
|
---
|
||||||
{
|
{
|
||||||
"bar": {
|
"bar": {
|
||||||
@ -113,6 +113,6 @@ description: Variables in memory after executing import_whole.kcl
|
|||||||
},
|
},
|
||||||
"foo": {
|
"foo": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path2 [Path]
|
subgraph path2 [Path]
|
||||||
2["Path<br>[101, 137, 8]"]
|
2["Path<br>[101, 137, 1]"]
|
||||||
3["Segment<br>[101, 137, 8]"]
|
3["Segment<br>[101, 137, 1]"]
|
||||||
4[Solid2d]
|
4[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[78, 95, 8]"]
|
1["Plane<br>[78, 95, 1]"]
|
||||||
5["Sweep Extrusion<br>[143, 163, 8]"]
|
5["Sweep Extrusion<br>[143, 163, 1]"]
|
||||||
6[Wall]
|
6[Wall]
|
||||||
7["Cap Start"]
|
7["Cap Start"]
|
||||||
8["Cap End"]
|
8["Cap End"]
|
||||||
|
@ -113,6 +113,6 @@ description: Variables in memory after executing import_whole_transitive_import.
|
|||||||
},
|
},
|
||||||
"part": {
|
"part": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -5,14 +5,14 @@ description: Variables in memory after executing axial-fan.kcl
|
|||||||
{
|
{
|
||||||
"fan": {
|
"fan": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 11
|
"value": 4
|
||||||
},
|
},
|
||||||
"fanHousing": {
|
"fanHousing": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
},
|
},
|
||||||
"motor": {
|
"motor": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 10
|
"value": 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,235 +1,235 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path24 [Path]
|
subgraph path24 [Path]
|
||||||
24["Path<br>[362, 395, 8]"]
|
24["Path<br>[362, 395, 1]"]
|
||||||
44["Segment<br>[403, 429, 8]"]
|
44["Segment<br>[403, 429, 1]"]
|
||||||
49["Segment<br>[437, 499, 8]"]
|
49["Segment<br>[437, 499, 1]"]
|
||||||
57["Segment<br>[507, 569, 8]"]
|
57["Segment<br>[507, 569, 1]"]
|
||||||
62["Segment<br>[577, 640, 8]"]
|
62["Segment<br>[577, 640, 1]"]
|
||||||
69["Segment<br>[648, 673, 8]"]
|
69["Segment<br>[648, 673, 1]"]
|
||||||
70["Segment<br>[681, 701, 8]"]
|
70["Segment<br>[681, 701, 1]"]
|
||||||
79["Segment<br>[709, 733, 8]"]
|
79["Segment<br>[709, 733, 1]"]
|
||||||
84["Segment<br>[741, 803, 8]"]
|
84["Segment<br>[741, 803, 1]"]
|
||||||
88["Segment<br>[811, 836, 8]"]
|
88["Segment<br>[811, 836, 1]"]
|
||||||
98["Segment<br>[844, 864, 8]"]
|
98["Segment<br>[844, 864, 1]"]
|
||||||
104["Segment<br>[872, 896, 8]"]
|
104["Segment<br>[872, 896, 1]"]
|
||||||
107["Segment<br>[904, 965, 8]"]
|
107["Segment<br>[904, 965, 1]"]
|
||||||
112["Segment<br>[973, 1034, 8]"]
|
112["Segment<br>[973, 1034, 1]"]
|
||||||
122["Segment<br>[1042, 1067, 8]"]
|
122["Segment<br>[1042, 1067, 1]"]
|
||||||
129["Segment<br>[1075, 1099, 8]"]
|
129["Segment<br>[1075, 1099, 1]"]
|
||||||
133["Segment<br>[1107, 1169, 8]"]
|
133["Segment<br>[1107, 1169, 1]"]
|
||||||
141["Segment<br>[1177, 1202, 8]"]
|
141["Segment<br>[1177, 1202, 1]"]
|
||||||
144["Segment<br>[1210, 1237, 8]"]
|
144["Segment<br>[1210, 1237, 1]"]
|
||||||
149["Segment<br>[1245, 1306, 8]"]
|
149["Segment<br>[1245, 1306, 1]"]
|
||||||
155["Segment<br>[1314, 1358, 8]"]
|
155["Segment<br>[1314, 1358, 1]"]
|
||||||
160["Segment<br>[1366, 1373, 8]"]
|
160["Segment<br>[1366, 1373, 1]"]
|
||||||
212[Solid2d]
|
212[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path25 [Path]
|
subgraph path25 [Path]
|
||||||
25["Path<br>[362, 395, 8]"]
|
25["Path<br>[362, 395, 1]"]
|
||||||
40["Segment<br>[403, 429, 8]"]
|
40["Segment<br>[403, 429, 1]"]
|
||||||
51["Segment<br>[437, 499, 8]"]
|
51["Segment<br>[437, 499, 1]"]
|
||||||
56["Segment<br>[507, 569, 8]"]
|
56["Segment<br>[507, 569, 1]"]
|
||||||
59["Segment<br>[577, 640, 8]"]
|
59["Segment<br>[577, 640, 1]"]
|
||||||
67["Segment<br>[648, 673, 8]"]
|
67["Segment<br>[648, 673, 1]"]
|
||||||
74["Segment<br>[681, 701, 8]"]
|
74["Segment<br>[681, 701, 1]"]
|
||||||
81["Segment<br>[709, 733, 8]"]
|
81["Segment<br>[709, 733, 1]"]
|
||||||
82["Segment<br>[741, 803, 8]"]
|
82["Segment<br>[741, 803, 1]"]
|
||||||
90["Segment<br>[811, 836, 8]"]
|
90["Segment<br>[811, 836, 1]"]
|
||||||
99["Segment<br>[844, 864, 8]"]
|
99["Segment<br>[844, 864, 1]"]
|
||||||
105["Segment<br>[872, 896, 8]"]
|
105["Segment<br>[872, 896, 1]"]
|
||||||
109["Segment<br>[904, 965, 8]"]
|
109["Segment<br>[904, 965, 1]"]
|
||||||
113["Segment<br>[973, 1034, 8]"]
|
113["Segment<br>[973, 1034, 1]"]
|
||||||
119["Segment<br>[1042, 1067, 8]"]
|
119["Segment<br>[1042, 1067, 1]"]
|
||||||
124["Segment<br>[1075, 1099, 8]"]
|
124["Segment<br>[1075, 1099, 1]"]
|
||||||
132["Segment<br>[1107, 1169, 8]"]
|
132["Segment<br>[1107, 1169, 1]"]
|
||||||
140["Segment<br>[1177, 1202, 8]"]
|
140["Segment<br>[1177, 1202, 1]"]
|
||||||
143["Segment<br>[1210, 1237, 8]"]
|
143["Segment<br>[1210, 1237, 1]"]
|
||||||
150["Segment<br>[1245, 1306, 8]"]
|
150["Segment<br>[1245, 1306, 1]"]
|
||||||
154["Segment<br>[1314, 1358, 8]"]
|
154["Segment<br>[1314, 1358, 1]"]
|
||||||
164["Segment<br>[1366, 1373, 8]"]
|
164["Segment<br>[1366, 1373, 1]"]
|
||||||
217[Solid2d]
|
217[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path26 [Path]
|
subgraph path26 [Path]
|
||||||
26["Path<br>[362, 395, 8]"]
|
26["Path<br>[362, 395, 1]"]
|
||||||
43["Segment<br>[403, 429, 8]"]
|
43["Segment<br>[403, 429, 1]"]
|
||||||
50["Segment<br>[437, 499, 8]"]
|
50["Segment<br>[437, 499, 1]"]
|
||||||
54["Segment<br>[507, 569, 8]"]
|
54["Segment<br>[507, 569, 1]"]
|
||||||
61["Segment<br>[577, 640, 8]"]
|
61["Segment<br>[577, 640, 1]"]
|
||||||
65["Segment<br>[648, 673, 8]"]
|
65["Segment<br>[648, 673, 1]"]
|
||||||
71["Segment<br>[681, 701, 8]"]
|
71["Segment<br>[681, 701, 1]"]
|
||||||
80["Segment<br>[709, 733, 8]"]
|
80["Segment<br>[709, 733, 1]"]
|
||||||
87["Segment<br>[741, 803, 8]"]
|
87["Segment<br>[741, 803, 1]"]
|
||||||
92["Segment<br>[811, 836, 8]"]
|
92["Segment<br>[811, 836, 1]"]
|
||||||
94["Segment<br>[844, 864, 8]"]
|
94["Segment<br>[844, 864, 1]"]
|
||||||
101["Segment<br>[872, 896, 8]"]
|
101["Segment<br>[872, 896, 1]"]
|
||||||
111["Segment<br>[904, 965, 8]"]
|
111["Segment<br>[904, 965, 1]"]
|
||||||
117["Segment<br>[973, 1034, 8]"]
|
117["Segment<br>[973, 1034, 1]"]
|
||||||
123["Segment<br>[1042, 1067, 8]"]
|
123["Segment<br>[1042, 1067, 1]"]
|
||||||
125["Segment<br>[1075, 1099, 8]"]
|
125["Segment<br>[1075, 1099, 1]"]
|
||||||
134["Segment<br>[1107, 1169, 8]"]
|
134["Segment<br>[1107, 1169, 1]"]
|
||||||
136["Segment<br>[1177, 1202, 8]"]
|
136["Segment<br>[1177, 1202, 1]"]
|
||||||
147["Segment<br>[1210, 1237, 8]"]
|
147["Segment<br>[1210, 1237, 1]"]
|
||||||
148["Segment<br>[1245, 1306, 8]"]
|
148["Segment<br>[1245, 1306, 1]"]
|
||||||
156["Segment<br>[1314, 1358, 8]"]
|
156["Segment<br>[1314, 1358, 1]"]
|
||||||
165["Segment<br>[1366, 1373, 8]"]
|
165["Segment<br>[1366, 1373, 1]"]
|
||||||
218[Solid2d]
|
218[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path27 [Path]
|
subgraph path27 [Path]
|
||||||
27["Path<br>[362, 395, 8]"]
|
27["Path<br>[362, 395, 1]"]
|
||||||
42["Segment<br>[403, 429, 8]"]
|
42["Segment<br>[403, 429, 1]"]
|
||||||
47["Segment<br>[437, 499, 8]"]
|
47["Segment<br>[437, 499, 1]"]
|
||||||
53["Segment<br>[507, 569, 8]"]
|
53["Segment<br>[507, 569, 1]"]
|
||||||
58["Segment<br>[577, 640, 8]"]
|
58["Segment<br>[577, 640, 1]"]
|
||||||
68["Segment<br>[648, 673, 8]"]
|
68["Segment<br>[648, 673, 1]"]
|
||||||
73["Segment<br>[681, 701, 8]"]
|
73["Segment<br>[681, 701, 1]"]
|
||||||
77["Segment<br>[709, 733, 8]"]
|
77["Segment<br>[709, 733, 1]"]
|
||||||
83["Segment<br>[741, 803, 8]"]
|
83["Segment<br>[741, 803, 1]"]
|
||||||
91["Segment<br>[811, 836, 8]"]
|
91["Segment<br>[811, 836, 1]"]
|
||||||
95["Segment<br>[844, 864, 8]"]
|
95["Segment<br>[844, 864, 1]"]
|
||||||
100["Segment<br>[872, 896, 8]"]
|
100["Segment<br>[872, 896, 1]"]
|
||||||
108["Segment<br>[904, 965, 8]"]
|
108["Segment<br>[904, 965, 1]"]
|
||||||
114["Segment<br>[973, 1034, 8]"]
|
114["Segment<br>[973, 1034, 1]"]
|
||||||
120["Segment<br>[1042, 1067, 8]"]
|
120["Segment<br>[1042, 1067, 1]"]
|
||||||
126["Segment<br>[1075, 1099, 8]"]
|
126["Segment<br>[1075, 1099, 1]"]
|
||||||
135["Segment<br>[1107, 1169, 8]"]
|
135["Segment<br>[1107, 1169, 1]"]
|
||||||
139["Segment<br>[1177, 1202, 8]"]
|
139["Segment<br>[1177, 1202, 1]"]
|
||||||
142["Segment<br>[1210, 1237, 8]"]
|
142["Segment<br>[1210, 1237, 1]"]
|
||||||
151["Segment<br>[1245, 1306, 8]"]
|
151["Segment<br>[1245, 1306, 1]"]
|
||||||
157["Segment<br>[1314, 1358, 8]"]
|
157["Segment<br>[1314, 1358, 1]"]
|
||||||
161["Segment<br>[1366, 1373, 8]"]
|
161["Segment<br>[1366, 1373, 1]"]
|
||||||
219[Solid2d]
|
219[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path28 [Path]
|
subgraph path28 [Path]
|
||||||
28["Path<br>[362, 395, 8]"]
|
28["Path<br>[362, 395, 1]"]
|
||||||
45["Segment<br>[403, 429, 8]"]
|
45["Segment<br>[403, 429, 1]"]
|
||||||
46["Segment<br>[437, 499, 8]"]
|
46["Segment<br>[437, 499, 1]"]
|
||||||
52["Segment<br>[507, 569, 8]"]
|
52["Segment<br>[507, 569, 1]"]
|
||||||
63["Segment<br>[577, 640, 8]"]
|
63["Segment<br>[577, 640, 1]"]
|
||||||
66["Segment<br>[648, 673, 8]"]
|
66["Segment<br>[648, 673, 1]"]
|
||||||
72["Segment<br>[681, 701, 8]"]
|
72["Segment<br>[681, 701, 1]"]
|
||||||
78["Segment<br>[709, 733, 8]"]
|
78["Segment<br>[709, 733, 1]"]
|
||||||
86["Segment<br>[741, 803, 8]"]
|
86["Segment<br>[741, 803, 1]"]
|
||||||
89["Segment<br>[811, 836, 8]"]
|
89["Segment<br>[811, 836, 1]"]
|
||||||
96["Segment<br>[844, 864, 8]"]
|
96["Segment<br>[844, 864, 1]"]
|
||||||
102["Segment<br>[872, 896, 8]"]
|
102["Segment<br>[872, 896, 1]"]
|
||||||
106["Segment<br>[904, 965, 8]"]
|
106["Segment<br>[904, 965, 1]"]
|
||||||
116["Segment<br>[973, 1034, 8]"]
|
116["Segment<br>[973, 1034, 1]"]
|
||||||
118["Segment<br>[1042, 1067, 8]"]
|
118["Segment<br>[1042, 1067, 1]"]
|
||||||
128["Segment<br>[1075, 1099, 8]"]
|
128["Segment<br>[1075, 1099, 1]"]
|
||||||
130["Segment<br>[1107, 1169, 8]"]
|
130["Segment<br>[1107, 1169, 1]"]
|
||||||
137["Segment<br>[1177, 1202, 8]"]
|
137["Segment<br>[1177, 1202, 1]"]
|
||||||
145["Segment<br>[1210, 1237, 8]"]
|
145["Segment<br>[1210, 1237, 1]"]
|
||||||
152["Segment<br>[1245, 1306, 8]"]
|
152["Segment<br>[1245, 1306, 1]"]
|
||||||
158["Segment<br>[1314, 1358, 8]"]
|
158["Segment<br>[1314, 1358, 1]"]
|
||||||
162["Segment<br>[1366, 1373, 8]"]
|
162["Segment<br>[1366, 1373, 1]"]
|
||||||
220[Solid2d]
|
220[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path29 [Path]
|
subgraph path29 [Path]
|
||||||
29["Path<br>[362, 395, 8]"]
|
29["Path<br>[362, 395, 1]"]
|
||||||
41["Segment<br>[403, 429, 8]"]
|
41["Segment<br>[403, 429, 1]"]
|
||||||
48["Segment<br>[437, 499, 8]"]
|
48["Segment<br>[437, 499, 1]"]
|
||||||
55["Segment<br>[507, 569, 8]"]
|
55["Segment<br>[507, 569, 1]"]
|
||||||
60["Segment<br>[577, 640, 8]"]
|
60["Segment<br>[577, 640, 1]"]
|
||||||
64["Segment<br>[648, 673, 8]"]
|
64["Segment<br>[648, 673, 1]"]
|
||||||
75["Segment<br>[681, 701, 8]"]
|
75["Segment<br>[681, 701, 1]"]
|
||||||
76["Segment<br>[709, 733, 8]"]
|
76["Segment<br>[709, 733, 1]"]
|
||||||
85["Segment<br>[741, 803, 8]"]
|
85["Segment<br>[741, 803, 1]"]
|
||||||
93["Segment<br>[811, 836, 8]"]
|
93["Segment<br>[811, 836, 1]"]
|
||||||
97["Segment<br>[844, 864, 8]"]
|
97["Segment<br>[844, 864, 1]"]
|
||||||
103["Segment<br>[872, 896, 8]"]
|
103["Segment<br>[872, 896, 1]"]
|
||||||
110["Segment<br>[904, 965, 8]"]
|
110["Segment<br>[904, 965, 1]"]
|
||||||
115["Segment<br>[973, 1034, 8]"]
|
115["Segment<br>[973, 1034, 1]"]
|
||||||
121["Segment<br>[1042, 1067, 8]"]
|
121["Segment<br>[1042, 1067, 1]"]
|
||||||
127["Segment<br>[1075, 1099, 8]"]
|
127["Segment<br>[1075, 1099, 1]"]
|
||||||
131["Segment<br>[1107, 1169, 8]"]
|
131["Segment<br>[1107, 1169, 1]"]
|
||||||
138["Segment<br>[1177, 1202, 8]"]
|
138["Segment<br>[1177, 1202, 1]"]
|
||||||
146["Segment<br>[1210, 1237, 8]"]
|
146["Segment<br>[1210, 1237, 1]"]
|
||||||
153["Segment<br>[1245, 1306, 8]"]
|
153["Segment<br>[1245, 1306, 1]"]
|
||||||
159["Segment<br>[1314, 1358, 8]"]
|
159["Segment<br>[1314, 1358, 1]"]
|
||||||
163["Segment<br>[1366, 1373, 8]"]
|
163["Segment<br>[1366, 1373, 1]"]
|
||||||
221[Solid2d]
|
221[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path30 [Path]
|
subgraph path30 [Path]
|
||||||
30["Path<br>[1765, 1789, 8]"]
|
30["Path<br>[1765, 1789, 1]"]
|
||||||
end
|
end
|
||||||
subgraph path31 [Path]
|
subgraph path31 [Path]
|
||||||
31["Path<br>[1765, 1789, 8]"]
|
31["Path<br>[1765, 1789, 1]"]
|
||||||
end
|
end
|
||||||
subgraph path32 [Path]
|
subgraph path32 [Path]
|
||||||
32["Path<br>[1797, 1923, 8]"]
|
32["Path<br>[1797, 1923, 1]"]
|
||||||
169["Segment<br>[1797, 1923, 8]"]
|
169["Segment<br>[1797, 1923, 1]"]
|
||||||
170["Segment<br>[1797, 1923, 8]"]
|
170["Segment<br>[1797, 1923, 1]"]
|
||||||
171["Segment<br>[1797, 1923, 8]"]
|
171["Segment<br>[1797, 1923, 1]"]
|
||||||
172["Segment<br>[1797, 1923, 8]"]
|
172["Segment<br>[1797, 1923, 1]"]
|
||||||
176["Segment<br>[1797, 1923, 8]"]
|
176["Segment<br>[1797, 1923, 1]"]
|
||||||
178["Segment<br>[1797, 1923, 8]"]
|
178["Segment<br>[1797, 1923, 1]"]
|
||||||
179["Segment<br>[1797, 1923, 8]"]
|
179["Segment<br>[1797, 1923, 1]"]
|
||||||
215[Solid2d]
|
215[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path33 [Path]
|
subgraph path33 [Path]
|
||||||
33["Path<br>[1797, 1923, 8]"]
|
33["Path<br>[1797, 1923, 1]"]
|
||||||
166["Segment<br>[1797, 1923, 8]"]
|
166["Segment<br>[1797, 1923, 1]"]
|
||||||
167["Segment<br>[1797, 1923, 8]"]
|
167["Segment<br>[1797, 1923, 1]"]
|
||||||
168["Segment<br>[1797, 1923, 8]"]
|
168["Segment<br>[1797, 1923, 1]"]
|
||||||
173["Segment<br>[1797, 1923, 8]"]
|
173["Segment<br>[1797, 1923, 1]"]
|
||||||
174["Segment<br>[1797, 1923, 8]"]
|
174["Segment<br>[1797, 1923, 1]"]
|
||||||
175["Segment<br>[1797, 1923, 8]"]
|
175["Segment<br>[1797, 1923, 1]"]
|
||||||
177["Segment<br>[1797, 1923, 8]"]
|
177["Segment<br>[1797, 1923, 1]"]
|
||||||
222[Solid2d]
|
222[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path34 [Path]
|
subgraph path34 [Path]
|
||||||
34["Path<br>[2217, 2244, 8]"]
|
34["Path<br>[2217, 2244, 1]"]
|
||||||
180["Segment<br>[2252, 2274, 8]"]
|
180["Segment<br>[2252, 2274, 1]"]
|
||||||
181["Segment<br>[2282, 2304, 8]"]
|
181["Segment<br>[2282, 2304, 1]"]
|
||||||
182["Segment<br>[2312, 2334, 8]"]
|
182["Segment<br>[2312, 2334, 1]"]
|
||||||
183["Segment<br>[2342, 2365, 8]"]
|
183["Segment<br>[2342, 2365, 1]"]
|
||||||
184["Segment<br>[2373, 2396, 8]"]
|
184["Segment<br>[2373, 2396, 1]"]
|
||||||
185["Segment<br>[2404, 2439, 8]"]
|
185["Segment<br>[2404, 2439, 1]"]
|
||||||
186["Segment<br>[2447, 2454, 8]"]
|
186["Segment<br>[2447, 2454, 1]"]
|
||||||
223[Solid2d]
|
223[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path35 [Path]
|
subgraph path35 [Path]
|
||||||
35["Path<br>[2728, 2757, 8]"]
|
35["Path<br>[2728, 2757, 1]"]
|
||||||
187["Segment<br>[2765, 2800, 8]"]
|
187["Segment<br>[2765, 2800, 1]"]
|
||||||
188["Segment<br>[2808, 2833, 8]"]
|
188["Segment<br>[2808, 2833, 1]"]
|
||||||
189["Segment<br>[2841, 2877, 8]"]
|
189["Segment<br>[2841, 2877, 1]"]
|
||||||
190["Segment<br>[2885, 2909, 8]"]
|
190["Segment<br>[2885, 2909, 1]"]
|
||||||
191["Segment<br>[2917, 2951, 8]"]
|
191["Segment<br>[2917, 2951, 1]"]
|
||||||
192["Segment<br>[2959, 2994, 8]"]
|
192["Segment<br>[2959, 2994, 1]"]
|
||||||
193["Segment<br>[3002, 3009, 8]"]
|
193["Segment<br>[3002, 3009, 1]"]
|
||||||
214[Solid2d]
|
214[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path36 [Path]
|
subgraph path36 [Path]
|
||||||
36["Path<br>[3286, 3313, 8]"]
|
36["Path<br>[3286, 3313, 1]"]
|
||||||
195["Segment<br>[3321, 3340, 8]"]
|
195["Segment<br>[3321, 3340, 1]"]
|
||||||
197["Segment<br>[3348, 3397, 8]"]
|
197["Segment<br>[3348, 3397, 1]"]
|
||||||
end
|
end
|
||||||
subgraph path37 [Path]
|
subgraph path37 [Path]
|
||||||
37["Path<br>[3286, 3313, 8]"]
|
37["Path<br>[3286, 3313, 1]"]
|
||||||
194["Segment<br>[3321, 3340, 8]"]
|
194["Segment<br>[3321, 3340, 1]"]
|
||||||
196["Segment<br>[3348, 3397, 8]"]
|
196["Segment<br>[3348, 3397, 1]"]
|
||||||
end
|
end
|
||||||
subgraph path38 [Path]
|
subgraph path38 [Path]
|
||||||
38["Path<br>[3498, 3531, 8]"]
|
38["Path<br>[3498, 3531, 1]"]
|
||||||
199["Segment<br>[3539, 3558, 8]"]
|
199["Segment<br>[3539, 3558, 1]"]
|
||||||
200["Segment<br>[3566, 3588, 8]"]
|
200["Segment<br>[3566, 3588, 1]"]
|
||||||
202["Segment<br>[3596, 3619, 8]"]
|
202["Segment<br>[3596, 3619, 1]"]
|
||||||
204["Segment<br>[3627, 3647, 8]"]
|
204["Segment<br>[3627, 3647, 1]"]
|
||||||
206["Segment<br>[3655, 3679, 8]"]
|
206["Segment<br>[3655, 3679, 1]"]
|
||||||
209["Segment<br>[3687, 3710, 8]"]
|
209["Segment<br>[3687, 3710, 1]"]
|
||||||
211["Segment<br>[3718, 3725, 8]"]
|
211["Segment<br>[3718, 3725, 1]"]
|
||||||
213[Solid2d]
|
213[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path39 [Path]
|
subgraph path39 [Path]
|
||||||
39["Path<br>[3498, 3531, 8]"]
|
39["Path<br>[3498, 3531, 1]"]
|
||||||
198["Segment<br>[3539, 3558, 8]"]
|
198["Segment<br>[3539, 3558, 1]"]
|
||||||
201["Segment<br>[3566, 3588, 8]"]
|
201["Segment<br>[3566, 3588, 1]"]
|
||||||
203["Segment<br>[3596, 3619, 8]"]
|
203["Segment<br>[3596, 3619, 1]"]
|
||||||
205["Segment<br>[3627, 3647, 8]"]
|
205["Segment<br>[3627, 3647, 1]"]
|
||||||
207["Segment<br>[3655, 3679, 8]"]
|
207["Segment<br>[3655, 3679, 1]"]
|
||||||
208["Segment<br>[3687, 3710, 8]"]
|
208["Segment<br>[3687, 3710, 1]"]
|
||||||
210["Segment<br>[3718, 3725, 8]"]
|
210["Segment<br>[3718, 3725, 1]"]
|
||||||
216[Solid2d]
|
216[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[823, 864, 0]"]
|
1["Plane<br>[823, 864, 0]"]
|
||||||
@ -237,39 +237,39 @@ flowchart LR
|
|||||||
3["Plane<br>[975, 1017, 0]"]
|
3["Plane<br>[975, 1017, 0]"]
|
||||||
4["Plane<br>[1077, 1144, 0]"]
|
4["Plane<br>[1077, 1144, 0]"]
|
||||||
5["Plane<br>[1223, 1290, 0]"]
|
5["Plane<br>[1223, 1290, 0]"]
|
||||||
6["Plane<br>[334, 354, 8]"]
|
6["Plane<br>[334, 354, 1]"]
|
||||||
7["Plane<br>[334, 354, 8]"]
|
7["Plane<br>[334, 354, 1]"]
|
||||||
8["Plane<br>[3807, 3842, 8]"]
|
8["Plane<br>[3807, 3842, 1]"]
|
||||||
9["Plane<br>[3807, 3842, 8]"]
|
9["Plane<br>[3807, 3842, 1]"]
|
||||||
10["Plane<br>[3871, 3900, 8]"]
|
10["Plane<br>[3871, 3900, 1]"]
|
||||||
11["Plane<br>[3871, 3900, 8]"]
|
11["Plane<br>[3871, 3900, 1]"]
|
||||||
12["StartSketchOnPlane<br>[2700, 2720, 8]"]
|
12["StartSketchOnPlane<br>[2700, 2720, 1]"]
|
||||||
13["StartSketchOnPlane<br>[1737, 1757, 8]"]
|
13["StartSketchOnPlane<br>[1737, 1757, 1]"]
|
||||||
14["StartSketchOnPlane<br>[3258, 3278, 8]"]
|
14["StartSketchOnPlane<br>[3258, 3278, 1]"]
|
||||||
15["StartSketchOnPlane<br>[1737, 1757, 8]"]
|
15["StartSketchOnPlane<br>[1737, 1757, 1]"]
|
||||||
16["StartSketchOnPlane<br>[334, 354, 8]"]
|
16["StartSketchOnPlane<br>[334, 354, 1]"]
|
||||||
17["StartSketchOnPlane<br>[3470, 3490, 8]"]
|
17["StartSketchOnPlane<br>[3470, 3490, 1]"]
|
||||||
18["StartSketchOnPlane<br>[3470, 3490, 8]"]
|
18["StartSketchOnPlane<br>[3470, 3490, 1]"]
|
||||||
19["StartSketchOnPlane<br>[334, 354, 8]"]
|
19["StartSketchOnPlane<br>[334, 354, 1]"]
|
||||||
20["StartSketchOnPlane<br>[334, 354, 8]"]
|
20["StartSketchOnPlane<br>[334, 354, 1]"]
|
||||||
21["StartSketchOnPlane<br>[3258, 3278, 8]"]
|
21["StartSketchOnPlane<br>[3258, 3278, 1]"]
|
||||||
22["StartSketchOnPlane<br>[334, 354, 8]"]
|
22["StartSketchOnPlane<br>[334, 354, 1]"]
|
||||||
23["StartSketchOnPlane<br>[2189, 2209, 8]"]
|
23["StartSketchOnPlane<br>[2189, 2209, 1]"]
|
||||||
224["Sweep Extrusion<br>[1462, 1500, 8]"]
|
224["Sweep Extrusion<br>[1462, 1500, 1]"]
|
||||||
225["Sweep Extrusion<br>[1462, 1500, 8]"]
|
225["Sweep Extrusion<br>[1462, 1500, 1]"]
|
||||||
226["Sweep Extrusion<br>[1462, 1500, 8]"]
|
226["Sweep Extrusion<br>[1462, 1500, 1]"]
|
||||||
227["Sweep Extrusion<br>[1538, 1577, 8]"]
|
227["Sweep Extrusion<br>[1538, 1577, 1]"]
|
||||||
228["Sweep Extrusion<br>[1538, 1577, 8]"]
|
228["Sweep Extrusion<br>[1538, 1577, 1]"]
|
||||||
229["Sweep Extrusion<br>[1538, 1577, 8]"]
|
229["Sweep Extrusion<br>[1538, 1577, 1]"]
|
||||||
230["Sweep Extrusion<br>[2034, 2058, 8]"]
|
230["Sweep Extrusion<br>[2034, 2058, 1]"]
|
||||||
231["Sweep Extrusion<br>[2108, 2132, 8]"]
|
231["Sweep Extrusion<br>[2108, 2132, 1]"]
|
||||||
232["Sweep Extrusion<br>[2618, 2642, 8]"]
|
232["Sweep Extrusion<br>[2618, 2642, 1]"]
|
||||||
233["Sweep Extrusion<br>[2618, 2642, 8]"]
|
233["Sweep Extrusion<br>[2618, 2642, 1]"]
|
||||||
234["Sweep Extrusion<br>[2618, 2642, 8]"]
|
234["Sweep Extrusion<br>[2618, 2642, 1]"]
|
||||||
235["Sweep Extrusion<br>[3180, 3204, 8]"]
|
235["Sweep Extrusion<br>[3180, 3204, 1]"]
|
||||||
236["Sweep Extrusion<br>[3180, 3204, 8]"]
|
236["Sweep Extrusion<br>[3180, 3204, 1]"]
|
||||||
237["Sweep Sweep<br>[3922, 3949, 8]"]
|
237["Sweep Sweep<br>[3922, 3949, 1]"]
|
||||||
238["Sweep Sweep<br>[3922, 3949, 8]"]
|
238["Sweep Sweep<br>[3922, 3949, 1]"]
|
||||||
239[Wall]
|
239[Wall]
|
||||||
240[Wall]
|
240[Wall]
|
||||||
241[Wall]
|
241[Wall]
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -31,7 +31,7 @@ description: Variables in memory after executing car-wheel-assembly.kcl
|
|||||||
},
|
},
|
||||||
"brakeCaliper": {
|
"brakeCaliper": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 11
|
"value": 4
|
||||||
},
|
},
|
||||||
"c1": {
|
"c1": {
|
||||||
"type": "TagIdentifier",
|
"type": "TagIdentifier",
|
||||||
@ -105,15 +105,15 @@ description: Variables in memory after executing car-wheel-assembly.kcl
|
|||||||
},
|
},
|
||||||
"carRotor": {
|
"carRotor": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 10
|
"value": 3
|
||||||
},
|
},
|
||||||
"carTire": {
|
"carTire": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 13
|
"value": 6
|
||||||
},
|
},
|
||||||
"carWheel": {
|
"carWheel": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
},
|
},
|
||||||
"drillAndSlotCount": {
|
"drillAndSlotCount": {
|
||||||
"type": "Number",
|
"type": "Number",
|
||||||
@ -183,7 +183,7 @@ description: Variables in memory after executing car-wheel-assembly.kcl
|
|||||||
},
|
},
|
||||||
"lugNut": {
|
"lugNut": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 12
|
"value": 5
|
||||||
},
|
},
|
||||||
"lugSpacing": {
|
"lugSpacing": {
|
||||||
"type": "Number",
|
"type": "Number",
|
||||||
|
@ -608,7 +608,7 @@ flowchart LR
|
|||||||
83 --- 246
|
83 --- 246
|
||||||
83 --- 289
|
83 --- 289
|
||||||
90 --- 159
|
90 --- 159
|
||||||
90 x--> 193
|
90 x--> 192
|
||||||
90 --- 226
|
90 --- 226
|
||||||
90 --- 271
|
90 --- 271
|
||||||
104 --- 151
|
104 --- 151
|
||||||
@ -910,7 +910,7 @@ flowchart LR
|
|||||||
211 <--x 191
|
211 <--x 191
|
||||||
212 <--x 191
|
212 <--x 191
|
||||||
213 <--x 191
|
213 <--x 191
|
||||||
226 <--x 192
|
226 <--x 193
|
||||||
239 <--x 195
|
239 <--x 195
|
||||||
240 <--x 195
|
240 <--x 195
|
||||||
241 <--x 195
|
241 <--x 195
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -5,18 +5,18 @@ description: Variables in memory after executing multi-axis-robot.kcl
|
|||||||
{
|
{
|
||||||
"j2RobotArm": {
|
"j2RobotArm": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 11
|
"value": 4
|
||||||
},
|
},
|
||||||
"j3RobotArm": {
|
"j3RobotArm": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 12
|
"value": 5
|
||||||
},
|
},
|
||||||
"robotArmBase": {
|
"robotArmBase": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
},
|
},
|
||||||
"rotatingBase": {
|
"rotatingBase": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 10
|
"value": 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,173 +1,173 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path23 [Path]
|
subgraph path23 [Path]
|
||||||
23["Path<br>[422, 484, 9]"]
|
23["Path<br>[422, 484, 2]"]
|
||||||
46["Segment<br>[422, 484, 9]"]
|
46["Segment<br>[422, 484, 2]"]
|
||||||
93[Solid2d]
|
94[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path24 [Path]
|
subgraph path24 [Path]
|
||||||
24["Path<br>[622, 682, 9]"]
|
24["Path<br>[622, 682, 2]"]
|
||||||
47["Segment<br>[622, 682, 9]"]
|
47["Segment<br>[622, 682, 2]"]
|
||||||
84[Solid2d]
|
92[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path25 [Path]
|
subgraph path25 [Path]
|
||||||
25["Path<br>[595, 688, 10]"]
|
25["Path<br>[595, 688, 3]"]
|
||||||
48["Segment<br>[595, 688, 10]"]
|
48["Segment<br>[595, 688, 3]"]
|
||||||
88[Solid2d]
|
87[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path26 [Path]
|
subgraph path26 [Path]
|
||||||
26["Path<br>[595, 688, 10]"]
|
26["Path<br>[595, 688, 3]"]
|
||||||
49["Segment<br>[595, 688, 10]"]
|
49["Segment<br>[595, 688, 3]"]
|
||||||
90[Solid2d]
|
89[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path27 [Path]
|
subgraph path27 [Path]
|
||||||
27["Path<br>[917, 972, 10]"]
|
27["Path<br>[917, 972, 3]"]
|
||||||
51["Segment<br>[917, 972, 10]"]
|
51["Segment<br>[917, 972, 3]"]
|
||||||
85[Solid2d]
|
84[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path28 [Path]
|
subgraph path28 [Path]
|
||||||
28["Path<br>[917, 972, 10]"]
|
28["Path<br>[917, 972, 3]"]
|
||||||
50["Segment<br>[917, 972, 10]"]
|
50["Segment<br>[917, 972, 3]"]
|
||||||
100[Solid2d]
|
100[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path29 [Path]
|
subgraph path29 [Path]
|
||||||
29["Path<br>[1202, 1261, 10]"]
|
29["Path<br>[1202, 1261, 3]"]
|
||||||
53["Segment<br>[1202, 1261, 10]"]
|
53["Segment<br>[1202, 1261, 3]"]
|
||||||
86[Solid2d]
|
85[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path30 [Path]
|
subgraph path30 [Path]
|
||||||
30["Path<br>[1202, 1261, 10]"]
|
30["Path<br>[1202, 1261, 3]"]
|
||||||
52["Segment<br>[1202, 1261, 10]"]
|
52["Segment<br>[1202, 1261, 3]"]
|
||||||
99[Solid2d]
|
99[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path31 [Path]
|
subgraph path31 [Path]
|
||||||
31["Path<br>[1368, 1428, 10]"]
|
31["Path<br>[1368, 1428, 3]"]
|
||||||
54["Segment<br>[1368, 1428, 10]"]
|
54["Segment<br>[1368, 1428, 3]"]
|
||||||
82[Solid2d]
|
82[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path32 [Path]
|
subgraph path32 [Path]
|
||||||
32["Path<br>[1368, 1428, 10]"]
|
32["Path<br>[1368, 1428, 3]"]
|
||||||
55["Segment<br>[1368, 1428, 10]"]
|
55["Segment<br>[1368, 1428, 3]"]
|
||||||
95[Solid2d]
|
95[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path33 [Path]
|
subgraph path33 [Path]
|
||||||
33["Path<br>[1590, 1643, 10]"]
|
33["Path<br>[1590, 1643, 3]"]
|
||||||
56["Segment<br>[1590, 1643, 10]"]
|
56["Segment<br>[1590, 1643, 3]"]
|
||||||
81[Solid2d]
|
81[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path34 [Path]
|
subgraph path34 [Path]
|
||||||
34["Path<br>[1590, 1643, 10]"]
|
34["Path<br>[1590, 1643, 3]"]
|
||||||
57["Segment<br>[1590, 1643, 10]"]
|
57["Segment<br>[1590, 1643, 3]"]
|
||||||
98[Solid2d]
|
98[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path35 [Path]
|
subgraph path35 [Path]
|
||||||
35["Path<br>[411, 463, 11]"]
|
35["Path<br>[411, 463, 4]"]
|
||||||
58["Segment<br>[411, 463, 11]"]
|
58["Segment<br>[411, 463, 4]"]
|
||||||
94[Solid2d]
|
93[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path36 [Path]
|
subgraph path36 [Path]
|
||||||
36["Path<br>[601, 653, 11]"]
|
36["Path<br>[601, 653, 4]"]
|
||||||
59["Segment<br>[601, 653, 11]"]
|
59["Segment<br>[601, 653, 4]"]
|
||||||
101[Solid2d]
|
101[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path37 [Path]
|
subgraph path37 [Path]
|
||||||
37["Path<br>[439, 509, 12]"]
|
37["Path<br>[439, 509, 5]"]
|
||||||
60["Segment<br>[439, 509, 12]"]
|
60["Segment<br>[439, 509, 5]"]
|
||||||
92[Solid2d]
|
91[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path38 [Path]
|
subgraph path38 [Path]
|
||||||
38["Path<br>[778, 865, 12]"]
|
38["Path<br>[778, 865, 5]"]
|
||||||
61["Segment<br>[873, 924, 12]"]
|
61["Segment<br>[873, 924, 5]"]
|
||||||
62["Segment<br>[932, 983, 12]"]
|
62["Segment<br>[932, 983, 5]"]
|
||||||
63["Segment<br>[991, 1042, 12]"]
|
63["Segment<br>[991, 1042, 5]"]
|
||||||
64["Segment<br>[1050, 1100, 12]"]
|
64["Segment<br>[1050, 1100, 5]"]
|
||||||
65["Segment<br>[1108, 1158, 12]"]
|
65["Segment<br>[1108, 1158, 5]"]
|
||||||
66["Segment<br>[1166, 1173, 12]"]
|
66["Segment<br>[1166, 1173, 5]"]
|
||||||
83[Solid2d]
|
83[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path39 [Path]
|
subgraph path39 [Path]
|
||||||
39["Path<br>[1312, 1381, 12]"]
|
39["Path<br>[1312, 1381, 5]"]
|
||||||
67["Segment<br>[1312, 1381, 12]"]
|
67["Segment<br>[1312, 1381, 5]"]
|
||||||
96[Solid2d]
|
96[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path40 [Path]
|
subgraph path40 [Path]
|
||||||
40["Path<br>[425, 515, 13]"]
|
40["Path<br>[425, 515, 6]"]
|
||||||
68["Segment<br>[523, 573, 13]"]
|
68["Segment<br>[523, 573, 6]"]
|
||||||
69["Segment<br>[581, 631, 13]"]
|
69["Segment<br>[581, 631, 6]"]
|
||||||
70["Segment<br>[639, 689, 13]"]
|
70["Segment<br>[639, 689, 6]"]
|
||||||
71["Segment<br>[697, 746, 13]"]
|
71["Segment<br>[697, 746, 6]"]
|
||||||
72["Segment<br>[754, 803, 13]"]
|
72["Segment<br>[754, 803, 6]"]
|
||||||
73["Segment<br>[811, 818, 13]"]
|
73["Segment<br>[811, 818, 6]"]
|
||||||
87[Solid2d]
|
86[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path41 [Path]
|
subgraph path41 [Path]
|
||||||
41["Path<br>[967, 1019, 13]"]
|
41["Path<br>[967, 1019, 6]"]
|
||||||
74["Segment<br>[967, 1019, 13]"]
|
74["Segment<br>[967, 1019, 6]"]
|
||||||
97[Solid2d]
|
97[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path42 [Path]
|
subgraph path42 [Path]
|
||||||
42["Path<br>[325, 383, 14]"]
|
42["Path<br>[325, 383, 7]"]
|
||||||
75["Segment<br>[325, 383, 14]"]
|
75["Segment<br>[325, 383, 7]"]
|
||||||
80[Solid2d]
|
80[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path43 [Path]
|
subgraph path43 [Path]
|
||||||
43["Path<br>[325, 383, 14]"]
|
43["Path<br>[325, 383, 7]"]
|
||||||
76["Segment<br>[325, 383, 14]"]
|
76["Segment<br>[325, 383, 7]"]
|
||||||
91[Solid2d]
|
90[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path44 [Path]
|
subgraph path44 [Path]
|
||||||
44["Path<br>[527, 582, 14]"]
|
44["Path<br>[527, 582, 7]"]
|
||||||
78["Segment<br>[527, 582, 14]"]
|
78["Segment<br>[527, 582, 7]"]
|
||||||
79[Solid2d]
|
79[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path45 [Path]
|
subgraph path45 [Path]
|
||||||
45["Path<br>[527, 582, 14]"]
|
45["Path<br>[527, 582, 7]"]
|
||||||
77["Segment<br>[527, 582, 14]"]
|
77["Segment<br>[527, 582, 7]"]
|
||||||
89[Solid2d]
|
88[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[399, 416, 9]"]
|
1["Plane<br>[399, 416, 2]"]
|
||||||
2["Plane<br>[570, 587, 10]"]
|
2["Plane<br>[570, 587, 3]"]
|
||||||
3["Plane<br>[570, 587, 10]"]
|
3["Plane<br>[570, 587, 3]"]
|
||||||
4["Plane<br>[892, 909, 10]"]
|
4["Plane<br>[892, 909, 3]"]
|
||||||
5["Plane<br>[892, 909, 10]"]
|
5["Plane<br>[892, 909, 3]"]
|
||||||
6["Plane<br>[386, 403, 11]"]
|
6["Plane<br>[386, 403, 4]"]
|
||||||
7["Plane<br>[414, 431, 12]"]
|
7["Plane<br>[414, 431, 5]"]
|
||||||
8["Plane<br>[400, 417, 13]"]
|
8["Plane<br>[400, 417, 6]"]
|
||||||
9["Plane<br>[300, 317, 14]"]
|
9["Plane<br>[300, 317, 7]"]
|
||||||
10["Plane<br>[300, 317, 14]"]
|
10["Plane<br>[300, 317, 7]"]
|
||||||
11["StartSketchOnFace<br>[1323, 1360, 10]"]
|
11["StartSketchOnFace<br>[1323, 1360, 3]"]
|
||||||
12["StartSketchOnFace<br>[1544, 1582, 10]"]
|
12["StartSketchOnFace<br>[1544, 1582, 3]"]
|
||||||
13["StartSketchOnFace<br>[922, 959, 13]"]
|
13["StartSketchOnFace<br>[922, 959, 6]"]
|
||||||
14["StartSketchOnFace<br>[484, 519, 14]"]
|
14["StartSketchOnFace<br>[484, 519, 7]"]
|
||||||
15["StartSketchOnFace<br>[1544, 1582, 10]"]
|
15["StartSketchOnFace<br>[1544, 1582, 3]"]
|
||||||
16["StartSketchOnFace<br>[1155, 1194, 10]"]
|
16["StartSketchOnFace<br>[1155, 1194, 3]"]
|
||||||
17["StartSketchOnFace<br>[733, 770, 12]"]
|
17["StartSketchOnFace<br>[733, 770, 5]"]
|
||||||
18["StartSketchOnFace<br>[1269, 1304, 12]"]
|
18["StartSketchOnFace<br>[1269, 1304, 5]"]
|
||||||
19["StartSketchOnFace<br>[556, 593, 11]"]
|
19["StartSketchOnFace<br>[556, 593, 4]"]
|
||||||
20["StartSketchOnFace<br>[1155, 1194, 10]"]
|
20["StartSketchOnFace<br>[1155, 1194, 3]"]
|
||||||
21["StartSketchOnFace<br>[1323, 1360, 10]"]
|
21["StartSketchOnFace<br>[1323, 1360, 3]"]
|
||||||
22["StartSketchOnFace<br>[484, 519, 14]"]
|
22["StartSketchOnFace<br>[484, 519, 7]"]
|
||||||
102["Sweep Extrusion<br>[490, 526, 9]"]
|
102["Sweep Extrusion<br>[490, 526, 2]"]
|
||||||
103["Sweep Extrusion<br>[688, 725, 9]"]
|
103["Sweep Extrusion<br>[688, 725, 2]"]
|
||||||
104["Sweep Extrusion<br>[1020, 1060, 10]"]
|
104["Sweep Extrusion<br>[1020, 1060, 3]"]
|
||||||
105["Sweep Extrusion<br>[1020, 1060, 10]"]
|
105["Sweep Extrusion<br>[1020, 1060, 3]"]
|
||||||
106["Sweep Extrusion<br>[1269, 1306, 10]"]
|
106["Sweep Extrusion<br>[1269, 1306, 3]"]
|
||||||
107["Sweep Extrusion<br>[1269, 1306, 10]"]
|
107["Sweep Extrusion<br>[1269, 1306, 3]"]
|
||||||
108["Sweep Extrusion<br>[1436, 1474, 10]"]
|
108["Sweep Extrusion<br>[1436, 1474, 3]"]
|
||||||
109["Sweep Extrusion<br>[1436, 1474, 10]"]
|
109["Sweep Extrusion<br>[1436, 1474, 3]"]
|
||||||
110["Sweep Extrusion<br>[1651, 1693, 10]"]
|
110["Sweep Extrusion<br>[1651, 1693, 3]"]
|
||||||
111["Sweep Extrusion<br>[1651, 1693, 10]"]
|
111["Sweep Extrusion<br>[1651, 1693, 3]"]
|
||||||
112["Sweep Extrusion<br>[471, 504, 11]"]
|
112["Sweep Extrusion<br>[471, 504, 4]"]
|
||||||
113["Sweep Extrusion<br>[661, 698, 11]"]
|
113["Sweep Extrusion<br>[661, 698, 4]"]
|
||||||
114["Sweep Extrusion<br>[517, 550, 12]"]
|
114["Sweep Extrusion<br>[517, 550, 5]"]
|
||||||
115["Sweep Extrusion<br>[1181, 1221, 12]"]
|
115["Sweep Extrusion<br>[1181, 1221, 5]"]
|
||||||
116["Sweep Extrusion<br>[1389, 1417, 12]"]
|
116["Sweep Extrusion<br>[1389, 1417, 5]"]
|
||||||
117["Sweep Extrusion<br>[826, 859, 13]"]
|
117["Sweep Extrusion<br>[826, 859, 6]"]
|
||||||
118["Sweep Extrusion<br>[1027, 1064, 13]"]
|
118["Sweep Extrusion<br>[1027, 1064, 6]"]
|
||||||
119["Sweep Extrusion<br>[391, 422, 14]"]
|
119["Sweep Extrusion<br>[391, 422, 7]"]
|
||||||
120["Sweep Extrusion<br>[391, 422, 14]"]
|
120["Sweep Extrusion<br>[391, 422, 7]"]
|
||||||
121["Sweep Extrusion<br>[590, 622, 14]"]
|
121["Sweep Extrusion<br>[590, 622, 7]"]
|
||||||
122["Sweep Extrusion<br>[590, 622, 14]"]
|
122["Sweep Extrusion<br>[590, 622, 7]"]
|
||||||
123[Wall]
|
123[Wall]
|
||||||
124[Wall]
|
124[Wall]
|
||||||
125[Wall]
|
125[Wall]
|
||||||
@ -283,8 +283,8 @@ flowchart LR
|
|||||||
235["SweepEdge Adjacent"]
|
235["SweepEdge Adjacent"]
|
||||||
236["SweepEdge Adjacent"]
|
236["SweepEdge Adjacent"]
|
||||||
237["SweepEdge Adjacent"]
|
237["SweepEdge Adjacent"]
|
||||||
238["EdgeCut Fillet<br>[558, 624, 12]"]
|
238["EdgeCut Fillet<br>[558, 624, 5]"]
|
||||||
239["EdgeCut Fillet<br>[558, 624, 12]"]
|
239["EdgeCut Fillet<br>[558, 624, 5]"]
|
||||||
1 --- 23
|
1 --- 23
|
||||||
2 --- 25
|
2 --- 25
|
||||||
3 --- 26
|
3 --- 26
|
||||||
@ -308,24 +308,24 @@ flowchart LR
|
|||||||
170 x--> 21
|
170 x--> 21
|
||||||
171 x--> 22
|
171 x--> 22
|
||||||
23 --- 46
|
23 --- 46
|
||||||
23 --- 93
|
23 --- 94
|
||||||
23 ---- 102
|
23 ---- 102
|
||||||
24 --- 47
|
24 --- 47
|
||||||
24 --- 84
|
24 --- 92
|
||||||
24 ---- 103
|
24 ---- 103
|
||||||
164 --- 24
|
164 --- 24
|
||||||
25 --- 48
|
25 --- 48
|
||||||
25 --- 88
|
25 --- 87
|
||||||
26 --- 49
|
26 --- 49
|
||||||
26 --- 90
|
26 --- 89
|
||||||
27 --- 51
|
27 --- 51
|
||||||
27 --- 85
|
27 --- 84
|
||||||
27 ---- 104
|
27 ---- 104
|
||||||
28 --- 50
|
28 --- 50
|
||||||
28 --- 100
|
28 --- 100
|
||||||
28 ---- 105
|
28 ---- 105
|
||||||
29 --- 53
|
29 --- 53
|
||||||
29 --- 86
|
29 --- 85
|
||||||
29 ---- 107
|
29 ---- 107
|
||||||
159 --- 29
|
159 --- 29
|
||||||
30 --- 52
|
30 --- 52
|
||||||
@ -349,14 +349,14 @@ flowchart LR
|
|||||||
34 ---- 111
|
34 ---- 111
|
||||||
169 --- 34
|
169 --- 34
|
||||||
35 --- 58
|
35 --- 58
|
||||||
35 --- 94
|
35 --- 93
|
||||||
35 ---- 112
|
35 ---- 112
|
||||||
36 --- 59
|
36 --- 59
|
||||||
36 --- 101
|
36 --- 101
|
||||||
36 ---- 113
|
36 ---- 113
|
||||||
173 --- 36
|
173 --- 36
|
||||||
37 --- 60
|
37 --- 60
|
||||||
37 --- 92
|
37 --- 91
|
||||||
37 ---- 114
|
37 ---- 114
|
||||||
38 --- 61
|
38 --- 61
|
||||||
38 --- 62
|
38 --- 62
|
||||||
@ -377,7 +377,7 @@ flowchart LR
|
|||||||
40 --- 71
|
40 --- 71
|
||||||
40 --- 72
|
40 --- 72
|
||||||
40 --- 73
|
40 --- 73
|
||||||
40 --- 87
|
40 --- 86
|
||||||
40 ---- 117
|
40 ---- 117
|
||||||
41 --- 74
|
41 --- 74
|
||||||
41 --- 97
|
41 --- 97
|
||||||
@ -387,24 +387,24 @@ flowchart LR
|
|||||||
42 --- 80
|
42 --- 80
|
||||||
42 ---- 120
|
42 ---- 120
|
||||||
43 --- 76
|
43 --- 76
|
||||||
43 --- 91
|
43 --- 90
|
||||||
43 ---- 119
|
43 ---- 119
|
||||||
44 --- 78
|
44 --- 78
|
||||||
44 --- 79
|
44 --- 79
|
||||||
44 ---- 121
|
44 ---- 121
|
||||||
165 --- 44
|
165 --- 44
|
||||||
45 --- 77
|
45 --- 77
|
||||||
45 --- 89
|
45 --- 88
|
||||||
45 ---- 122
|
45 ---- 122
|
||||||
171 --- 45
|
171 --- 45
|
||||||
46 --- 152
|
46 --- 142
|
||||||
46 x--> 154
|
46 x--> 154
|
||||||
46 --- 205
|
46 --- 195
|
||||||
46 --- 236
|
46 --- 226
|
||||||
47 --- 145
|
47 --- 152
|
||||||
47 x--> 164
|
47 x--> 164
|
||||||
47 --- 198
|
47 --- 205
|
||||||
47 --- 229
|
47 --- 236
|
||||||
50 --- 153
|
50 --- 153
|
||||||
50 x--> 156
|
50 x--> 156
|
||||||
50 --- 206
|
50 --- 206
|
||||||
@ -413,14 +413,14 @@ flowchart LR
|
|||||||
51 x--> 159
|
51 x--> 159
|
||||||
51 --- 180
|
51 --- 180
|
||||||
51 --- 211
|
51 --- 211
|
||||||
52 --- 143
|
52 --- 144
|
||||||
52 x--> 156
|
52 x--> 156
|
||||||
52 --- 196
|
52 --- 197
|
||||||
52 --- 227
|
52 --- 228
|
||||||
53 --- 144
|
53 --- 145
|
||||||
53 x--> 159
|
53 x--> 159
|
||||||
53 --- 197
|
53 --- 198
|
||||||
53 --- 228
|
53 --- 229
|
||||||
54 --- 134
|
54 --- 134
|
||||||
54 x--> 170
|
54 x--> 170
|
||||||
54 --- 187
|
54 --- 187
|
||||||
@ -433,10 +433,10 @@ flowchart LR
|
|||||||
56 x--> 174
|
56 x--> 174
|
||||||
56 --- 179
|
56 --- 179
|
||||||
56 --- 210
|
56 --- 210
|
||||||
57 --- 142
|
57 --- 143
|
||||||
57 x--> 169
|
57 x--> 169
|
||||||
57 --- 195
|
57 --- 196
|
||||||
57 --- 226
|
57 --- 227
|
||||||
58 --- 124
|
58 --- 124
|
||||||
58 x--> 162
|
58 x--> 162
|
||||||
58 --- 177
|
58 --- 177
|
||||||
@ -522,14 +522,14 @@ flowchart LR
|
|||||||
78 x--> 165
|
78 x--> 165
|
||||||
78 --- 183
|
78 --- 183
|
||||||
78 --- 214
|
78 --- 214
|
||||||
102 --- 152
|
102 --- 142
|
||||||
102 --- 154
|
102 --- 154
|
||||||
102 --- 164
|
102 --- 164
|
||||||
102 --- 205
|
102 --- 195
|
||||||
102 --- 236
|
102 --- 226
|
||||||
103 --- 145
|
103 --- 152
|
||||||
103 --- 198
|
103 --- 205
|
||||||
103 --- 229
|
103 --- 236
|
||||||
104 --- 127
|
104 --- 127
|
||||||
104 --- 159
|
104 --- 159
|
||||||
104 --- 170
|
104 --- 170
|
||||||
@ -540,14 +540,14 @@ flowchart LR
|
|||||||
105 --- 166
|
105 --- 166
|
||||||
105 --- 206
|
105 --- 206
|
||||||
105 --- 237
|
105 --- 237
|
||||||
106 --- 143
|
106 --- 144
|
||||||
106 --- 163
|
106 --- 163
|
||||||
106 --- 196
|
106 --- 197
|
||||||
106 --- 227
|
106 --- 228
|
||||||
107 --- 144
|
107 --- 145
|
||||||
107 --- 167
|
107 --- 167
|
||||||
107 --- 197
|
107 --- 198
|
||||||
107 --- 228
|
107 --- 229
|
||||||
108 --- 125
|
108 --- 125
|
||||||
108 --- 169
|
108 --- 169
|
||||||
108 --- 178
|
108 --- 178
|
||||||
@ -559,9 +559,9 @@ flowchart LR
|
|||||||
110 --- 126
|
110 --- 126
|
||||||
110 --- 179
|
110 --- 179
|
||||||
110 --- 210
|
110 --- 210
|
||||||
111 --- 142
|
111 --- 143
|
||||||
111 --- 195
|
111 --- 196
|
||||||
111 --- 226
|
111 --- 227
|
||||||
112 --- 124
|
112 --- 124
|
||||||
112 --- 162
|
112 --- 162
|
||||||
112 --- 173
|
112 --- 173
|
||||||
@ -710,7 +710,7 @@ flowchart LR
|
|||||||
236 <--x 152
|
236 <--x 152
|
||||||
206 <--x 153
|
206 <--x 153
|
||||||
237 <--x 153
|
237 <--x 153
|
||||||
198 <--x 154
|
205 <--x 154
|
||||||
183 <--x 155
|
183 <--x 155
|
||||||
185 <--x 157
|
185 <--x 157
|
||||||
199 <--x 158
|
199 <--x 158
|
||||||
@ -721,13 +721,13 @@ flowchart LR
|
|||||||
204 <--x 158
|
204 <--x 158
|
||||||
186 <--x 160
|
186 <--x 160
|
||||||
182 <--x 162
|
182 <--x 162
|
||||||
195 <--x 163
|
|
||||||
196 <--x 163
|
196 <--x 163
|
||||||
205 <--x 164
|
197 <--x 163
|
||||||
|
195 <--x 164
|
||||||
184 <--x 165
|
184 <--x 165
|
||||||
206 <--x 166
|
206 <--x 166
|
||||||
179 <--x 167
|
179 <--x 167
|
||||||
197 <--x 167
|
198 <--x 167
|
||||||
188 <--x 168
|
188 <--x 168
|
||||||
189 <--x 168
|
189 <--x 168
|
||||||
190 <--x 168
|
190 <--x 168
|
||||||
|
@ -198,7 +198,7 @@ description: Variables in memory after executing pipe-flange-assembly.kcl
|
|||||||
},
|
},
|
||||||
"gasket": {
|
"gasket": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 9
|
"value": 2
|
||||||
},
|
},
|
||||||
"gasketInnerDiameter": {
|
"gasketInnerDiameter": {
|
||||||
"type": "Number",
|
"type": "Number",
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@ description: Variables in memory after executing walkie-talkie.kcl
|
|||||||
{
|
{
|
||||||
"antenna": {
|
"antenna": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 12
|
"value": 5
|
||||||
},
|
},
|
||||||
"antennaBaseHeight": {
|
"antennaBaseHeight": {
|
||||||
"type": "Number",
|
"type": "Number",
|
||||||
@ -74,7 +74,7 @@ description: Variables in memory after executing walkie-talkie.kcl
|
|||||||
},
|
},
|
||||||
"body": {
|
"body": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 9
|
"value": 2
|
||||||
},
|
},
|
||||||
"button": {
|
"button": {
|
||||||
"type": "Function"
|
"type": "Function"
|
||||||
@ -120,7 +120,7 @@ description: Variables in memory after executing walkie-talkie.kcl
|
|||||||
},
|
},
|
||||||
"case": {
|
"case": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 10
|
"value": 3
|
||||||
},
|
},
|
||||||
"caseTolerance": {
|
"caseTolerance": {
|
||||||
"type": "Number",
|
"type": "Number",
|
||||||
@ -163,7 +163,7 @@ description: Variables in memory after executing walkie-talkie.kcl
|
|||||||
},
|
},
|
||||||
"knob": {
|
"knob": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 14
|
"value": 7
|
||||||
},
|
},
|
||||||
"knobDiameter": {
|
"knobDiameter": {
|
||||||
"type": "Number",
|
"type": "Number",
|
||||||
@ -330,7 +330,7 @@ description: Variables in memory after executing walkie-talkie.kcl
|
|||||||
},
|
},
|
||||||
"talkButton": {
|
"talkButton": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 13
|
"value": 6
|
||||||
},
|
},
|
||||||
"talkButtonHeight": {
|
"talkButtonHeight": {
|
||||||
"type": "Number",
|
"type": "Number",
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path2 [Path]
|
subgraph path2 [Path]
|
||||||
2["Path<br>[80, 105, 8]"]
|
2["Path<br>[80, 105, 1]"]
|
||||||
3["Segment<br>[111, 128, 8]"]
|
3["Segment<br>[111, 128, 1]"]
|
||||||
4["Segment<br>[134, 151, 8]"]
|
4["Segment<br>[134, 151, 1]"]
|
||||||
5["Segment<br>[157, 175, 8]"]
|
5["Segment<br>[157, 175, 1]"]
|
||||||
6["Segment<br>[181, 199, 8]"]
|
6["Segment<br>[181, 199, 1]"]
|
||||||
7["Segment<br>[205, 213, 8]"]
|
7["Segment<br>[205, 213, 1]"]
|
||||||
8[Solid2d]
|
8[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[57, 74, 8]"]
|
1["Plane<br>[57, 74, 1]"]
|
||||||
9["Sweep Extrusion<br>[219, 238, 8]"]
|
9["Sweep Extrusion<br>[219, 238, 1]"]
|
||||||
10[Wall]
|
10[Wall]
|
||||||
11[Wall]
|
11[Wall]
|
||||||
12[Wall]
|
12[Wall]
|
||||||
@ -33,22 +33,22 @@ flowchart LR
|
|||||||
2 --- 7
|
2 --- 7
|
||||||
2 --- 8
|
2 --- 8
|
||||||
2 ---- 9
|
2 ---- 9
|
||||||
3 --- 11
|
3 --- 12
|
||||||
3 x--> 14
|
3 x--> 14
|
||||||
3 --- 19
|
3 --- 19
|
||||||
3 --- 20
|
3 --- 23
|
||||||
4 --- 12
|
4 --- 11
|
||||||
4 x--> 14
|
4 x--> 14
|
||||||
4 --- 17
|
4 --- 16
|
||||||
4 --- 21
|
4 --- 21
|
||||||
5 --- 13
|
5 --- 10
|
||||||
5 x--> 14
|
5 x--> 14
|
||||||
5 --- 16
|
5 --- 18
|
||||||
5 --- 22
|
5 --- 22
|
||||||
6 --- 10
|
6 --- 13
|
||||||
6 x--> 14
|
6 x--> 14
|
||||||
6 --- 18
|
6 --- 17
|
||||||
6 --- 23
|
6 --- 20
|
||||||
9 --- 10
|
9 --- 10
|
||||||
9 --- 11
|
9 --- 11
|
||||||
9 --- 12
|
9 --- 12
|
||||||
@ -64,16 +64,16 @@ flowchart LR
|
|||||||
9 --- 22
|
9 --- 22
|
||||||
9 --- 23
|
9 --- 23
|
||||||
18 <--x 10
|
18 <--x 10
|
||||||
|
21 <--x 10
|
||||||
22 <--x 10
|
22 <--x 10
|
||||||
23 <--x 10
|
16 <--x 11
|
||||||
19 <--x 11
|
21 <--x 11
|
||||||
20 <--x 11
|
|
||||||
23 <--x 11
|
23 <--x 11
|
||||||
17 <--x 12
|
19 <--x 12
|
||||||
20 <--x 12
|
20 <--x 12
|
||||||
21 <--x 12
|
23 <--x 12
|
||||||
16 <--x 13
|
17 <--x 13
|
||||||
21 <--x 13
|
20 <--x 13
|
||||||
22 <--x 13
|
22 <--x 13
|
||||||
16 <--x 15
|
16 <--x 15
|
||||||
17 <--x 15
|
17 <--x 15
|
||||||
|
@ -5,6 +5,6 @@ description: Variables in memory after executing module_return_using_var.kcl
|
|||||||
{
|
{
|
||||||
"cube": {
|
"cube": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,11 @@ description: Variables in memory after executing multiple-foreign-imports-all-re
|
|||||||
{
|
{
|
||||||
"anothercube": {
|
"anothercube": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 10
|
"value": 3
|
||||||
},
|
},
|
||||||
"cube": {
|
"cube": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 8
|
"value": 1
|
||||||
},
|
},
|
||||||
"model": {
|
"model": {
|
||||||
"type": "ImportedGeometry",
|
"type": "ImportedGeometry",
|
||||||
@ -20,6 +20,6 @@ description: Variables in memory after executing multiple-foreign-imports-all-re
|
|||||||
},
|
},
|
||||||
"othercube": {
|
"othercube": {
|
||||||
"type": "Module",
|
"type": "Module",
|
||||||
"value": 9
|
"value": 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path3 [Path]
|
subgraph path3 [Path]
|
||||||
3["Path<br>[63, 90, 8]"]
|
3["Path<br>[63, 90, 1]"]
|
||||||
5["Segment<br>[98, 116, 8]"]
|
5["Segment<br>[98, 116, 1]"]
|
||||||
8["Segment<br>[124, 143, 8]"]
|
7["Segment<br>[124, 143, 1]"]
|
||||||
10["Segment<br>[151, 170, 8]"]
|
9["Segment<br>[151, 170, 1]"]
|
||||||
11["Segment<br>[178, 185, 8]"]
|
12["Segment<br>[178, 185, 1]"]
|
||||||
13[Solid2d]
|
13[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path4 [Path]
|
subgraph path4 [Path]
|
||||||
4["Path<br>[63, 90, 8]"]
|
4["Path<br>[63, 90, 1]"]
|
||||||
6["Segment<br>[98, 116, 8]"]
|
6["Segment<br>[98, 116, 1]"]
|
||||||
7["Segment<br>[124, 143, 8]"]
|
8["Segment<br>[124, 143, 1]"]
|
||||||
9["Segment<br>[151, 170, 8]"]
|
10["Segment<br>[151, 170, 1]"]
|
||||||
12["Segment<br>[178, 185, 8]"]
|
11["Segment<br>[178, 185, 1]"]
|
||||||
14[Solid2d]
|
14[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[38, 55, 8]"]
|
1["Plane<br>[38, 55, 1]"]
|
||||||
2["Plane<br>[38, 55, 8]"]
|
2["Plane<br>[38, 55, 1]"]
|
||||||
15["Sweep Extrusion<br>[342, 376, 8]"]
|
15["Sweep Extrusion<br>[342, 376, 1]"]
|
||||||
16["Sweep Extrusion<br>[342, 376, 8]"]
|
16["Sweep Extrusion<br>[342, 376, 1]"]
|
||||||
17["Sweep Extrusion<br>[342, 376, 8]"]
|
17["Sweep Extrusion<br>[342, 376, 1]"]
|
||||||
18["Sweep Extrusion<br>[342, 376, 8]"]
|
18["Sweep Extrusion<br>[342, 376, 1]"]
|
||||||
19["Sweep Extrusion<br>[342, 376, 8]"]
|
19["Sweep Extrusion<br>[342, 376, 1]"]
|
||||||
20["Sweep Extrusion<br>[342, 376, 8]"]
|
20["Sweep Extrusion<br>[342, 376, 1]"]
|
||||||
21["Sweep Extrusion<br>[342, 376, 8]"]
|
21["Sweep Extrusion<br>[342, 376, 1]"]
|
||||||
22["Sweep Extrusion<br>[342, 376, 8]"]
|
22["Sweep Extrusion<br>[342, 376, 1]"]
|
||||||
23[Wall]
|
23[Wall]
|
||||||
24[Wall]
|
24[Wall]
|
||||||
25[Wall]
|
25[Wall]
|
||||||
@ -57,63 +57,63 @@ flowchart LR
|
|||||||
1 --- 3
|
1 --- 3
|
||||||
2 --- 4
|
2 --- 4
|
||||||
3 --- 5
|
3 --- 5
|
||||||
3 --- 8
|
3 --- 7
|
||||||
3 --- 10
|
3 --- 9
|
||||||
3 --- 11
|
3 --- 12
|
||||||
3 --- 13
|
3 --- 13
|
||||||
3 ---- 22
|
3 ---- 22
|
||||||
4 --- 6
|
4 --- 6
|
||||||
4 --- 7
|
4 --- 8
|
||||||
4 --- 9
|
4 --- 10
|
||||||
4 --- 12
|
4 --- 11
|
||||||
4 --- 14
|
4 --- 14
|
||||||
4 ---- 17
|
4 ---- 16
|
||||||
5 --- 28
|
5 --- 29
|
||||||
5 x--> 32
|
5 x--> 32
|
||||||
5 --- 42
|
5 --- 42
|
||||||
5 --- 47
|
5 --- 50
|
||||||
6 --- 26
|
6 --- 26
|
||||||
6 x--> 31
|
6 x--> 31
|
||||||
6 --- 35
|
6 --- 35
|
||||||
6 --- 46
|
6 --- 46
|
||||||
7 --- 24
|
7 --- 28
|
||||||
7 x--> 31
|
7 x--> 32
|
||||||
7 --- 38
|
7 --- 39
|
||||||
7 --- 44
|
7 --- 48
|
||||||
8 --- 29
|
8 --- 24
|
||||||
8 x--> 32
|
8 x--> 31
|
||||||
8 --- 40
|
8 --- 38
|
||||||
8 --- 48
|
8 --- 44
|
||||||
9 --- 23
|
9 --- 27
|
||||||
9 x--> 31
|
9 x--> 32
|
||||||
9 --- 37
|
9 --- 41
|
||||||
9 --- 45
|
9 --- 49
|
||||||
10 --- 30
|
10 --- 23
|
||||||
10 x--> 32
|
10 x--> 31
|
||||||
10 --- 39
|
10 --- 37
|
||||||
10 --- 49
|
10 --- 45
|
||||||
11 --- 27
|
11 --- 25
|
||||||
11 x--> 32
|
11 x--> 31
|
||||||
11 --- 41
|
11 --- 36
|
||||||
11 --- 50
|
11 --- 43
|
||||||
12 --- 25
|
12 --- 30
|
||||||
12 x--> 31
|
12 x--> 32
|
||||||
12 --- 36
|
12 --- 40
|
||||||
12 --- 43
|
12 --- 47
|
||||||
17 --- 23
|
16 --- 23
|
||||||
17 --- 24
|
16 --- 24
|
||||||
17 --- 25
|
16 --- 25
|
||||||
17 --- 26
|
16 --- 26
|
||||||
17 --- 31
|
16 --- 31
|
||||||
17 --- 33
|
16 --- 33
|
||||||
17 --- 35
|
16 --- 35
|
||||||
17 --- 36
|
16 --- 36
|
||||||
17 --- 37
|
16 --- 37
|
||||||
17 --- 38
|
16 --- 38
|
||||||
17 --- 43
|
16 --- 43
|
||||||
17 --- 44
|
16 --- 44
|
||||||
17 --- 45
|
16 --- 45
|
||||||
17 --- 46
|
16 --- 46
|
||||||
22 --- 27
|
22 --- 27
|
||||||
22 --- 28
|
22 --- 28
|
||||||
22 --- 29
|
22 --- 29
|
||||||
@ -141,16 +141,16 @@ flowchart LR
|
|||||||
43 <--x 26
|
43 <--x 26
|
||||||
46 <--x 26
|
46 <--x 26
|
||||||
41 <--x 27
|
41 <--x 27
|
||||||
|
48 <--x 27
|
||||||
49 <--x 27
|
49 <--x 27
|
||||||
50 <--x 27
|
39 <--x 28
|
||||||
42 <--x 28
|
48 <--x 28
|
||||||
47 <--x 28
|
|
||||||
50 <--x 28
|
50 <--x 28
|
||||||
40 <--x 29
|
42 <--x 29
|
||||||
47 <--x 29
|
47 <--x 29
|
||||||
48 <--x 29
|
50 <--x 29
|
||||||
39 <--x 30
|
40 <--x 30
|
||||||
48 <--x 30
|
47 <--x 30
|
||||||
49 <--x 30
|
49 <--x 30
|
||||||
35 <--x 33
|
35 <--x 33
|
||||||
36 <--x 33
|
36 <--x 33
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
flowchart LR
|
flowchart LR
|
||||||
subgraph path3 [Path]
|
subgraph path3 [Path]
|
||||||
3["Path<br>[54, 89, 8]"]
|
3["Path<br>[54, 89, 1]"]
|
||||||
5["Segment<br>[54, 89, 8]"]
|
5["Segment<br>[54, 89, 1]"]
|
||||||
7[Solid2d]
|
7[Solid2d]
|
||||||
end
|
end
|
||||||
subgraph path4 [Path]
|
subgraph path4 [Path]
|
||||||
4["Path<br>[54, 89, 8]"]
|
4["Path<br>[54, 89, 1]"]
|
||||||
6["Segment<br>[54, 89, 8]"]
|
6["Segment<br>[54, 89, 1]"]
|
||||||
8[Solid2d]
|
8[Solid2d]
|
||||||
end
|
end
|
||||||
1["Plane<br>[29, 46, 8]"]
|
1["Plane<br>[29, 46, 1]"]
|
||||||
2["Plane<br>[29, 46, 8]"]
|
2["Plane<br>[29, 46, 1]"]
|
||||||
9["Sweep Extrusion<br>[200, 219, 8]"]
|
9["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
10["Sweep Extrusion<br>[200, 219, 8]"]
|
10["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
11["Sweep Extrusion<br>[200, 219, 8]"]
|
11["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
12["Sweep Extrusion<br>[200, 219, 8]"]
|
12["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
13["Sweep Extrusion<br>[200, 219, 8]"]
|
13["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
14["Sweep Extrusion<br>[200, 219, 8]"]
|
14["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
15["Sweep Extrusion<br>[200, 219, 8]"]
|
15["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
16["Sweep Extrusion<br>[200, 219, 8]"]
|
16["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
17["Sweep Extrusion<br>[200, 219, 8]"]
|
17["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
18["Sweep Extrusion<br>[200, 219, 8]"]
|
18["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
19["Sweep Extrusion<br>[200, 219, 8]"]
|
19["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
20["Sweep Extrusion<br>[200, 219, 8]"]
|
20["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
21["Sweep Extrusion<br>[200, 219, 8]"]
|
21["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
22["Sweep Extrusion<br>[200, 219, 8]"]
|
22["Sweep Extrusion<br>[200, 219, 1]"]
|
||||||
23[Wall]
|
23[Wall]
|
||||||
24[Wall]
|
24[Wall]
|
||||||
25["Cap Start"]
|
25["Cap Start"]
|
||||||
@ -40,32 +40,32 @@ flowchart LR
|
|||||||
2 --- 4
|
2 --- 4
|
||||||
3 --- 5
|
3 --- 5
|
||||||
3 --- 7
|
3 --- 7
|
||||||
3 ---- 20
|
3 ---- 10
|
||||||
4 --- 6
|
4 --- 6
|
||||||
4 --- 8
|
4 --- 8
|
||||||
4 ---- 13
|
4 ---- 15
|
||||||
5 --- 24
|
5 --- 23
|
||||||
5 x--> 25
|
5 x--> 25
|
||||||
5 --- 30
|
5 --- 29
|
||||||
5 --- 32
|
5 --- 31
|
||||||
6 --- 23
|
6 --- 24
|
||||||
6 x--> 26
|
6 x--> 26
|
||||||
6 --- 29
|
6 --- 30
|
||||||
6 --- 31
|
6 --- 32
|
||||||
13 --- 23
|
10 --- 23
|
||||||
13 --- 26
|
10 --- 25
|
||||||
13 --- 28
|
10 --- 27
|
||||||
13 --- 29
|
10 --- 29
|
||||||
13 --- 31
|
10 --- 31
|
||||||
20 --- 24
|
15 --- 24
|
||||||
20 --- 25
|
15 --- 26
|
||||||
20 --- 27
|
15 --- 28
|
||||||
20 --- 30
|
15 --- 30
|
||||||
20 --- 32
|
15 --- 32
|
||||||
29 <--x 23
|
29 <--x 23
|
||||||
31 <--x 23
|
31 <--x 23
|
||||||
30 <--x 24
|
30 <--x 24
|
||||||
32 <--x 24
|
32 <--x 24
|
||||||
30 <--x 27
|
29 <--x 27
|
||||||
29 <--x 28
|
30 <--x 28
|
||||||
```
|
```
|
||||||
|
Reference in New Issue
Block a user