Compare commits

..

1 Commits

Author SHA1 Message Date
495727d617 hacky shit
Signed-off-by: Jess Frazelle <github@jessfraz.com>
2025-04-05 13:05:04 -07:00
181 changed files with 26510 additions and 22711 deletions

File diff suppressed because one or more lines are too long

View File

@ -67,17 +67,9 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
/// Get the batch of commands to be sent to the engine. /// Get the batch of commands to be sent to the engine.
fn batch(&self) -> Arc<RwLock<Vec<(WebSocketRequest, SourceRange)>>>; fn batch(&self) -> Arc<RwLock<Vec<(WebSocketRequest, SourceRange)>>>;
async fn take_batch(&self) -> Vec<(WebSocketRequest, SourceRange)> {
std::mem::take(&mut *self.batch().write().await)
}
/// Get the batch of end commands to be sent to the engine. /// Get the batch of end commands to be sent to the engine.
fn batch_end(&self) -> Arc<RwLock<IndexMap<uuid::Uuid, (WebSocketRequest, SourceRange)>>>; fn batch_end(&self) -> Arc<RwLock<IndexMap<uuid::Uuid, (WebSocketRequest, SourceRange)>>>;
async fn take_batch_end(&self) -> IndexMap<uuid::Uuid, (WebSocketRequest, SourceRange)> {
std::mem::take(&mut *self.batch_end().write().await)
}
/// Get the command responses from the engine. /// Get the command responses from the engine.
fn responses(&self) -> Arc<RwLock<IndexMap<Uuid, WebSocketResponse>>>; fn responses(&self) -> Arc<RwLock<IndexMap<Uuid, WebSocketResponse>>>;
@ -339,11 +331,11 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
source_range: SourceRange, source_range: SourceRange,
) -> Result<OkWebSocketResponseData, crate::errors::KclError> { ) -> Result<OkWebSocketResponseData, crate::errors::KclError> {
let all_requests = if batch_end { let all_requests = if batch_end {
let mut requests = self.take_batch().await.clone(); let mut requests = self.batch().read().await.clone();
requests.extend(self.take_batch_end().await.values().cloned()); requests.extend(self.batch_end().read().await.values().cloned());
requests requests
} else { } else {
self.take_batch().await.clone() self.batch().read().await.clone()
}; };
// Return early if we have no commands to send. // Return early if we have no commands to send.
@ -412,6 +404,10 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
} }
// Throw away the old batch queue. // Throw away the old batch queue.
self.batch().write().await.clear();
if batch_end {
self.batch_end().write().await.clear();
}
self.stats().batches_sent.fetch_add(1, Ordering::Relaxed); self.stats().batches_sent.fetch_add(1, Ordering::Relaxed);
// We pop off the responses to cleanup our mappings. // We pop off the responses to cleanup our mappings.

View File

@ -147,6 +147,55 @@ impl ExecutorContext {
result.map(|result| (result, env_ref, local_state.module_exports)) result.map(|result| (result, env_ref, local_state.module_exports))
} }
/// Execute an AST's program.
#[async_recursion]
pub(super) async fn preload_all_modules<'a>(
&'a self,
modules: &mut HashMap<String, Program>,
program: NodeRef<'a, Program>,
exec_state: &mut ExecState,
) -> Result<(), KclError> {
for statement in &program.body {
if let BodyItem::ImportStatement(import_stmt) = statement {
let path_str = import_stmt.path.to_string();
if modules.contains_key(&path_str) {
// don't waste our time if we've already loaded the
// module.
continue;
}
let source_range = SourceRange::from(import_stmt);
let attrs = &import_stmt.outer_attrs;
let module_id = self
.open_module(&import_stmt.path, attrs, exec_state, source_range)
.await?;
let Some(module) = exec_state.get_module(module_id) else {
crate::log::log("we got back a module id that doesn't exist");
unreachable!();
};
let progn = {
// this dance is to avoid taking out a mut borrow
// below on exec_state after borrowing here. As a
// result, we need to clone (ugh) the program for
// now.
let ModuleRepr::Kcl(ref progn, _) = module.repr else {
// not a kcl file, we can skip this
continue;
};
progn.clone()
};
modules.insert(path_str, progn.clone().inner);
self.preload_all_modules(modules, &progn, exec_state).await?;
};
}
Ok(())
}
/// Execute an AST's program. /// Execute an AST's program.
#[async_recursion] #[async_recursion]
pub(super) async fn exec_block<'a>( pub(super) async fn exec_block<'a>(
@ -175,6 +224,7 @@ impl ExecutorContext {
match &import_stmt.selector { match &import_stmt.selector {
ImportSelector::List { items } => { ImportSelector::List { items } => {
println!("Importing items from module {}", import_stmt.path,);
let (env_ref, module_exports) = let (env_ref, module_exports) =
self.exec_module_for_items(module_id, exec_state, source_range).await?; self.exec_module_for_items(module_id, exec_state, source_range).await?;
for import_item in items { for import_item in items {
@ -217,6 +267,7 @@ impl ExecutorContext {
} }
} }
ImportSelector::Glob(_) => { ImportSelector::Glob(_) => {
println!("Importing all items from module {}", import_stmt.path);
let (env_ref, module_exports) = let (env_ref, module_exports) =
self.exec_module_for_items(module_id, exec_state, source_range).await?; self.exec_module_for_items(module_id, exec_state, source_range).await?;
for name in module_exports.iter() { for name in module_exports.iter() {
@ -482,12 +533,12 @@ impl ExecutorContext {
let result = match &mut repr { let result = match &mut repr {
ModuleRepr::Root => Err(exec_state.circular_import_error(&path, source_range)), ModuleRepr::Root => Err(exec_state.circular_import_error(&path, source_range)),
ModuleRepr::Kcl(_, Some((_, env_ref, items))) => Ok((*env_ref, items.clone())), ModuleRepr::Kcl(_, Some((env_ref, items))) => Ok((*env_ref, items.clone())),
ModuleRepr::Kcl(program, cache) => self ModuleRepr::Kcl(program, cache) => self
.exec_module_from_ast(program, module_id, &path, exec_state, source_range) .exec_module_from_ast(program, module_id, &path, exec_state, source_range)
.await .await
.map(|(val, er, items)| { .map(|(_, er, items)| {
*cache = Some((val, er, items.clone())); *cache = Some((er, items.clone()));
(er, items) (er, items)
}), }),
ModuleRepr::Foreign(geom) => Err(KclError::Semantic(KclErrorDetails { ModuleRepr::Foreign(geom) => Err(KclError::Semantic(KclErrorDetails {
@ -522,14 +573,13 @@ impl ExecutorContext {
let result = match &mut repr { let result = match &mut repr {
ModuleRepr::Root => Err(exec_state.circular_import_error(&path, source_range)), ModuleRepr::Root => Err(exec_state.circular_import_error(&path, source_range)),
ModuleRepr::Kcl(_, Some((val, _, _))) => Ok(val.clone()),
ModuleRepr::Kcl(program, cached_items) => { ModuleRepr::Kcl(program, cached_items) => {
let result = self let result = self
.exec_module_from_ast(program, module_id, &path, exec_state, source_range) .exec_module_from_ast(program, module_id, &path, exec_state, source_range)
.await; .await;
match result { match result {
Ok((val, env, items)) => { Ok((val, env, items)) => {
*cached_items = Some((val.clone(), env, items)); *cached_items = Some((env, items));
Ok(val) Ok(val)
} }
Err(e) => Err(e), Err(e) => Err(e),
@ -556,6 +606,7 @@ impl ExecutorContext {
exec_state: &mut ExecState, exec_state: &mut ExecState,
source_range: SourceRange, source_range: SourceRange,
) -> Result<(Option<KclValue>, EnvironmentRef, Vec<String>), KclError> { ) -> Result<(Option<KclValue>, EnvironmentRef, Vec<String>), KclError> {
println!("exec_module_from_ast {path}");
exec_state.global.mod_loader.enter_module(path); exec_state.global.mod_loader.enter_module(path);
let result = self.exec_module_body(program, exec_state, false, module_id, path).await; let result = self.exec_module_body(program, exec_state, false, module_id, path).await;
exec_state.global.mod_loader.leave_module(path); exec_state.global.mod_loader.leave_module(path);
@ -2300,16 +2351,14 @@ impl FunctionSource {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use std::sync::Arc;
use tokio::io::AsyncWriteExt;
use super::*; use super::*;
use crate::{ use crate::{
execution::{memory::Stack, parse_execute, ContextType}, execution::{memory::Stack, parse_execute, ContextType},
parsing::ast::types::{DefaultParamVal, Identifier, Parameter}, parsing::ast::types::{DefaultParamVal, Identifier, Parameter},
ExecutorSettings, ExecutorSettings,
}; };
use std::sync::Arc;
use tokio::io::AsyncWriteExt;
#[tokio::test(flavor = "multi_thread")] #[tokio::test(flavor = "multi_thread")]
async fn test_assign_args_to_params() { async fn test_assign_args_to_params() {

View File

@ -4,13 +4,13 @@ use anyhow::Result;
use schemars::JsonSchema; use schemars::JsonSchema;
use serde::Serialize; use serde::Serialize;
use super::{types::UnitLen, EnvironmentRef, ExecState, MetaSettings};
use crate::{ use crate::{
errors::KclErrorDetails, errors::KclErrorDetails,
execution::{ execution::{
annotations::{SETTINGS, SETTINGS_UNIT_LENGTH}, annotations::{SETTINGS, SETTINGS_UNIT_LENGTH},
types::{NumericType, PrimitiveType, RuntimeType, UnitLen}, types::{NumericType, PrimitiveType, RuntimeType},
EnvironmentRef, ExecState, Face, Helix, ImportedGeometry, MetaSettings, Metadata, Plane, Sketch, Solid, Face, Helix, ImportedGeometry, Metadata, Plane, Sketch, Solid, TagIdentifier,
TagIdentifier,
}, },
parsing::ast::types::{ parsing::ast::types::{
DefaultParamVal, FunctionExpression, KclNone, Literal, LiteralValue, Node, TagDeclarator, TagNode, DefaultParamVal, FunctionExpression, KclNone, Literal, LiteralValue, Node, TagDeclarator, TagNode,

View File

@ -27,6 +27,7 @@ pub use memory::EnvironmentRef;
use schemars::JsonSchema; use schemars::JsonSchema;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
pub use state::{ExecState, MetaSettings}; pub use state::{ExecState, MetaSettings};
use tokio::task::JoinSet;
use crate::{ use crate::{
engine::EngineManager, engine::EngineManager,
@ -725,110 +726,96 @@ impl ExecutorContext {
self.prepare_mem(exec_state).await.unwrap(); self.prepare_mem(exec_state).await.unwrap();
let mut universe = std::collections::HashMap::new(); let mut universe = std::collections::HashMap::new();
let mut out_id_map = std::collections::HashMap::new();
crate::walk::import_universe(self, &program.ast, &mut universe, exec_state) crate::walk::import_universe(self, &program.ast, &mut universe, &mut out_id_map, exec_state)
.await .await
.map_err(KclErrorWithOutputs::no_outputs)?; .unwrap();
for modules in crate::walk::import_graph(&universe, self) for modules in crate::walk::import_graph(&universe).unwrap().into_iter() {
.map_err(KclErrorWithOutputs::no_outputs)? println!("Running module {modules:?}");
.into_iter() //let mut set = JoinSet::new();
{ println!("AFTER Running module {modules:?}");
#[cfg(not(target_arch = "wasm32"))]
let mut set = tokio::task::JoinSet::new();
#[allow(clippy::type_complexity)]
let (results_tx, mut results_rx): ( let (results_tx, mut results_rx): (
tokio::sync::mpsc::Sender<( tokio::sync::mpsc::Sender<(
ModuleId, String,
ModulePath,
Result<(Option<KclValue>, EnvironmentRef, Vec<String>), KclError>, Result<(Option<KclValue>, EnvironmentRef, Vec<String>), KclError>,
)>, )>,
tokio::sync::mpsc::Receiver<_>, tokio::sync::mpsc::Receiver<_>,
) = tokio::sync::mpsc::channel(1); ) = tokio::sync::mpsc::channel(1);
for module in modules { for module in modules {
let Some((import_stmt, module_id, module_path, program)) = universe.get(&module) else { let program = universe.get(&module).unwrap().clone();
return Err(KclErrorWithOutputs::no_outputs(KclError::Internal(KclErrorDetails { let Some(module_id) = out_id_map.get(&module) else {
message: format!("Module {module} not found in universe"), panic!("Module {module} not found in exec_state");
source_ranges: Default::default(), };
}))); let module_id = module_id.clone();
let module_path = {
let module_info = exec_state.get_module(module_id).unwrap();
let module_path = module_info.path.clone();
module_path
}; };
let module_id = *module_id;
let module_path = module_path.clone();
let program = program.clone();
let exec_state = exec_state.clone(); let exec_state = exec_state.clone();
let exec_ctxt = self.clone(); let exec_ctxt = self.clone();
let results_tx = results_tx.clone(); let results_tx = results_tx.clone();
let source_range = SourceRange::from(import_stmt);
println!("before spawn");
#[cfg(target_arch = "wasm32")] #[cfg(target_arch = "wasm32")]
{ {
wasm_bindgen_futures::spawn_local(async move { wasm_bindgen_futures::spawn_local(async move {
//set.spawn(async move { //set.spawn(async move {
println!("Running module {module} from run_concurrent");
let mut exec_state = exec_state; let mut exec_state = exec_state;
let exec_ctxt = exec_ctxt; let exec_ctxt = exec_ctxt;
let program = program;
let result = exec_ctxt let result = exec_ctxt
.exec_module_from_ast(&program, module_id, &module_path, &mut exec_state, source_range) .exec_module_from_ast(
&program,
module_id,
&module_path,
&mut exec_state,
Default::default(),
)
.await; .await;
results_tx results_tx.send((module, result)).await.unwrap();
.send((module_id, module_path, result))
.await
.unwrap_or_default();
});
}
#[cfg(not(target_arch = "wasm32"))]
{
set.spawn(async move {
let mut exec_state = exec_state;
let exec_ctxt = exec_ctxt;
let result = exec_ctxt
.exec_module_from_ast(&program, module_id, &module_path, &mut exec_state, source_range)
.await;
results_tx
.send((module_id, module_path, result))
.await
.unwrap_or_default();
}); });
} }
} }
drop(results_tx); drop(results_tx);
while let Some((module_id, _, result)) = results_rx.recv().await { while let Some((module, result)) = results_rx.recv().await {
match result { match result {
Ok((val, session_data, variables)) => { Ok((env_ref, session_data, variables)) => {
let mut repr = exec_state.global.module_infos[&module_id].take_repr(); println!("{module} {:?}", variables);
let Some(module_id) = out_id_map.get(&module) else {
//let snapshot_png_bytes = self.prepare_snapshot().await.unwrap().contents.0;
// Save to a file.
//tokio::fs::write("snapshot.png", snapshot_png_bytes).await.unwrap();
let ModuleRepr::Kcl(_, cache) = &mut repr else { return Err(KclErrorWithOutputs::no_outputs(KclError::Internal(KclErrorDetails {
message: format!("Module {module} not found in exec_state"),
source_ranges: Default::default(),
})));
};
let path = exec_state.global.module_infos[module_id].path.clone();
let mut repr = exec_state.global.module_infos[module_id].take_repr();
let ModuleRepr::Kcl(program, cache) = &mut repr else {
continue; continue;
}; };
*cache = Some((val, session_data, variables.clone()));
exec_state.global.module_infos[&module_id].restore_repr(repr); *cache = Some((session_data, variables.clone()));
exec_state.global.module_infos[module_id].restore_repr(repr);
} }
Err(e) => { Err(e) => {
let module_id_to_module_path: IndexMap<ModuleId, ModulePath> = exec_state //let snapshot_png_bytes = self.prepare_snapshot().await.unwrap().contents.0;
.global // Save to a file.
.path_to_source_id //tokio::fs::write("snapshot.png", snapshot_png_bytes).await.unwrap();
.iter() return Err(KclErrorWithOutputs::no_outputs(e));
.map(|(k, v)| ((*v), k.clone()))
.collect();
let default_planes = self.engine.get_default_planes().read().await.clone();
return Err(KclErrorWithOutputs::new(
e,
exec_state.global.operations.clone(),
exec_state.global.artifact_commands.clone(),
exec_state.global.artifact_graph.clone(),
module_id_to_module_path,
exec_state.global.id_to_source.clone(),
default_planes,
));
} }
} }
} }
@ -885,8 +872,7 @@ impl ExecutorContext {
) )
})?; })?;
// TODO: fix this /* if !self.is_mock() {
/* if !self.is_mock() {
let mut mem = exec_state.stack().deep_clone(); let mut mem = exec_state.stack().deep_clone();
mem.restore_env(env_ref); mem.restore_env(env_ref);
cache::write_old_memory((mem, exec_state.global.module_infos.clone())).await; cache::write_old_memory((mem, exec_state.global.module_infos.clone())).await;

View File

@ -6,7 +6,6 @@ use serde::{Deserialize, Serialize};
use crate::{ use crate::{
errors::{KclError, KclErrorDetails}, errors::{KclError, KclErrorDetails},
exec::KclValue,
execution::{EnvironmentRef, PreImportedGeometry}, execution::{EnvironmentRef, PreImportedGeometry},
fs::{FileManager, FileSystem}, fs::{FileManager, FileSystem},
parsing::ast::types::{ImportPath, Node, Program}, parsing::ast::types::{ImportPath, Node, Program},
@ -95,7 +94,7 @@ pub(crate) fn read_std(mod_name: &str) -> Option<&'static str> {
} }
/// Info about a module. /// Info about a module.
#[derive(Debug, Clone, PartialEq, Serialize)] #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct ModuleInfo { pub struct ModuleInfo {
/// The ID of the module. /// The ID of the module.
pub(crate) id: ModuleId, pub(crate) id: ModuleId,
@ -118,11 +117,11 @@ impl ModuleInfo {
} }
#[allow(clippy::large_enum_variant)] #[allow(clippy::large_enum_variant)]
#[derive(Debug, Clone, PartialEq, Serialize)] #[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub enum ModuleRepr { pub enum ModuleRepr {
Root, Root,
// AST, memory, exported names // AST, memory, exported names
Kcl(Node<Program>, Option<(Option<KclValue>, EnvironmentRef, Vec<String>)>), Kcl(Node<Program>, Option<(EnvironmentRef, Vec<String>)>),
Foreign(PreImportedGeometry), Foreign(PreImportedGeometry),
Dummy, Dummy,
} }

View File

@ -6,37 +6,33 @@ use std::{
use anyhow::Result; use anyhow::Result;
use crate::{ use crate::{
errors::KclErrorDetails, modules::ModuleRepr,
modules::{ModulePath, ModuleRepr}, parsing::ast::types::{ImportPath, Node as AstNode, NodeRef, Program},
parsing::ast::types::{ImportPath, ImportStatement, Node as AstNode, NodeRef, Program},
walk::{Node, Visitable}, walk::{Node, Visitable},
ExecState, ExecutorContext, KclError, ModuleId, ExecState, ExecutorContext, ModuleId,
}; };
/// Specific dependency between two modules. The 0th element of this info /// Specific dependency between two modules. The 0th element of this tuple
/// is the "importing" module, the 1st is the "imported" module. The 0th /// is the "importing" module, the 1st is the "imported" module. The 0th
/// module *depends on* the 1st module. /// module *depends on* the 1st module.
type Dependency = (String, String); type Dependency = (String, String);
type Graph = Vec<Dependency>; type Graph = Vec<Dependency>;
type DependencyInfo = (AstNode<ImportStatement>, ModuleId, ModulePath, AstNode<Program>);
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.
/// ///
/// This will (currently) return a list of lists of IDs that can be safely /// This will (currently) return a list of lists of IDs that can be safely
/// run concurrently. Each "stage" is blocking in this model, which will /// run concurrently. Each "stage" is blocking in this model, which will
/// change in the future. Don't use this function widely, yet. /// change in the future. Don't use this function widely, yet.
#[allow(clippy::iter_over_hash_type)] #[allow(clippy::iter_over_hash_type)]
pub fn import_graph(progs: &Universe, ctx: &ExecutorContext) -> Result<Vec<Vec<String>>, KclError> { pub fn import_graph(progs: &HashMap<String, AstNode<Program>>) -> Result<Vec<Vec<String>>> {
let mut graph = Graph::new(); let mut graph = Graph::new();
for (name, (_, _, _, program)) in progs.iter() { for (name, program) in progs.iter() {
graph.extend( graph.extend(
import_dependencies(program, ctx)? import_dependencies(program)?
.into_iter() .into_iter()
.map(|(dependency, _, _)| (name.clone(), dependency)) .map(|dependency| (name.clone(), dependency))
.collect::<Vec<_>>(), .collect::<Vec<_>>(),
); );
} }
@ -46,7 +42,7 @@ pub fn import_graph(progs: &Universe, ctx: &ExecutorContext) -> Result<Vec<Vec<S
} }
#[allow(clippy::iter_over_hash_type)] #[allow(clippy::iter_over_hash_type)]
fn topsort(all_modules: &[&str], graph: Graph) -> Result<Vec<Vec<String>>, KclError> { fn topsort(all_modules: &[&str], graph: Graph) -> Result<Vec<Vec<String>>> {
if all_modules.is_empty() { if all_modules.is_empty() {
return Ok(vec![]); return Ok(vec![]);
} }
@ -66,6 +62,7 @@ fn topsort(all_modules: &[&str], graph: Graph) -> Result<Vec<Vec<String>>, KclEr
let mut order = vec![]; let mut order = vec![];
loop { loop {
println!("waiting_modules: {:?}", waiting_modules);
// Each pass through we need to find any modules which have nothing // Each pass through we need to find any modules which have nothing
// "pointing at it" -- so-called reverse dependencies. This is an entry // "pointing at it" -- so-called reverse dependencies. This is an entry
// that is either not in the dep_map OR an empty list. // that is either not in the dep_map OR an empty list.
@ -92,10 +89,7 @@ fn topsort(all_modules: &[&str], graph: Graph) -> Result<Vec<Vec<String>>, KclEr
} }
if stage_modules.is_empty() { if stage_modules.is_empty() {
return Err(KclError::Internal(KclErrorDetails { anyhow::bail!("imports are acyclic");
message: "Circular import detected".to_string(),
source_ranges: Default::default(),
}));
} }
// not strictly needed here, but perhaps helpful to avoid thinking // not strictly needed here, but perhaps helpful to avoid thinking
@ -113,89 +107,70 @@ fn topsort(all_modules: &[&str], graph: Graph) -> Result<Vec<Vec<String>>, KclEr
Ok(order) Ok(order)
} }
type ImportDependencies = Vec<(String, AstNode<ImportStatement>, ModulePath)>; pub(crate) fn import_dependencies(prog: NodeRef<Program>) -> Result<Vec<String>> {
pub(crate) fn import_dependencies(
prog: NodeRef<Program>,
ctx: &ExecutorContext,
) -> Result<ImportDependencies, KclError> {
let ret = Arc::new(Mutex::new(vec![])); let ret = Arc::new(Mutex::new(vec![]));
fn walk(ret: Arc<Mutex<ImportDependencies>>, node: Node<'_>, ctx: &ExecutorContext) -> Result<(), KclError> { fn walk(ret: Arc<Mutex<Vec<String>>>, node: Node<'_>) {
if let Node::ImportStatement(is) = node { if let Node::ImportStatement(is) = node {
// We only care about Kcl imports for now. let dependency = match &is.path {
if let ImportPath::Kcl { filename } = &is.path { ImportPath::Kcl { filename } => filename.to_string(),
let resolved_path = ModulePath::from_import_path(&is.path, &ctx.settings.project_directory); ImportPath::Foreign { path } => path.to_string(),
ImportPath::Std { path } => path.join("::"),
};
// We need to lock the mutex to push the dependency. ret.lock().unwrap().push(dependency);
// This is a bit of a hack, but it works for now.
ret.lock()
.map_err(|err| {
KclError::Internal(KclErrorDetails {
message: format!("Failed to lock mutex: {}", err),
source_ranges: Default::default(),
})
})?
.push((filename.to_string(), is.clone(), resolved_path));
}
} }
for child in node.children().iter() { for child in node.children().iter() {
walk(ret.clone(), *child, ctx)?; walk(ret.clone(), *child)
} }
Ok(())
} }
walk(ret.clone(), prog.into(), ctx)?; walk(ret.clone(), prog.into());
let ret = ret.lock().map_err(|err| { let ret = ret.lock().unwrap().clone();
KclError::Internal(KclErrorDetails { Ok(ret)
message: format!("Failed to lock mutex: {}", err),
source_ranges: Default::default(),
})
})?;
Ok(ret.clone())
} }
pub(crate) async fn import_universe( pub(crate) async fn import_universe<'prog>(
ctx: &ExecutorContext, ctx: &ExecutorContext,
prog: NodeRef<'_, Program>, prog: NodeRef<'prog, Program>,
out: &mut Universe, out: &mut HashMap<String, AstNode<Program>>,
out_id_map: &mut HashMap<String, ModuleId>,
exec_state: &mut ExecState, exec_state: &mut ExecState,
) -> Result<(), KclError> { ) -> Result<()> {
let modules = import_dependencies(prog, ctx)?; let modules = import_dependencies(prog)?;
for (filename, import_stmt, module_path) in modules { for module in modules {
if out.contains_key(&filename) { eprintln!("{:?}", module);
if out.contains_key(&module) {
continue; continue;
} }
let module_id = ctx let module_id = ctx
.open_module(&import_stmt.path, &[], exec_state, Default::default()) .open_module(
&ImportPath::Kcl {
filename: module.to_string(),
},
&[],
exec_state,
Default::default(),
)
.await?; .await?;
out_id_map.insert(module.clone(), module_id);
let program = { let program = {
let Some(module_info) = exec_state.get_module(module_id) else { let Some(module_info) = exec_state.get_module(module_id) else {
return Err(KclError::Internal(KclErrorDetails { // We should never get here we just fucking added it.
message: format!("Module {} not found", module_id), anyhow::bail!("Module {} not found", module);
source_ranges: Default::default(),
}));
}; };
let ModuleRepr::Kcl(program, _) = &module_info.repr else { let ModuleRepr::Kcl(program, _) = &module_info.repr else {
return Err(KclError::Internal(KclErrorDetails { anyhow::bail!("Module {} is not a KCL program", module);
message: format!("Module {} is not a KCL module", module_id),
source_ranges: Default::default(),
}));
}; };
program.clone() program.clone()
}; };
out.insert( out.insert(module.clone(), program.clone());
filename.clone(), Box::pin(import_universe(ctx, &program, out, out_id_map, exec_state)).await?;
(import_stmt.clone(), module_id, module_path.clone(), program.clone()),
);
Box::pin(import_universe(ctx, &program, out, exec_state)).await?;
} }
Ok(()) Ok(())
@ -204,7 +179,6 @@ pub(crate) async fn import_universe(
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::*; use super::*;
use crate::parsing::ast::types::ImportSelector;
macro_rules! kcl { macro_rules! kcl {
( $kcl:expr ) => {{ ( $kcl:expr ) => {{
@ -212,41 +186,26 @@ mod tests {
}}; }};
} }
fn into_module_info(program: AstNode<Program>) -> DependencyInfo { #[test]
( fn order_imports() {
AstNode::no_src(ImportStatement {
selector: ImportSelector::None { alias: None },
path: ImportPath::Kcl { filename: "".into() },
visibility: Default::default(),
digest: None,
}),
ModuleId::default(),
ModulePath::Local { value: "".into() },
program,
)
}
#[tokio::test]
async fn order_imports() {
let mut modules = HashMap::new(); let mut modules = HashMap::new();
let a = kcl!(""); let a = kcl!("");
modules.insert("a.kcl".to_owned(), into_module_info(a)); modules.insert("a.kcl".to_owned(), a);
let b = kcl!( let b = kcl!(
" "
import \"a.kcl\" import \"a.kcl\"
" "
); );
modules.insert("b.kcl".to_owned(), into_module_info(b)); modules.insert("b.kcl".to_owned(), b);
let ctx = ExecutorContext::new_mock().await; let order = import_graph(&modules).unwrap();
let order = import_graph(&modules, &ctx).unwrap();
assert_eq!(vec![vec!["a.kcl".to_owned()], vec!["b.kcl".to_owned()]], order); assert_eq!(vec![vec!["a.kcl".to_owned()], vec!["b.kcl".to_owned()]], order);
} }
#[tokio::test] #[test]
async fn order_imports_none() { fn order_imports_none() {
let mut modules = HashMap::new(); let mut modules = HashMap::new();
let a = kcl!( let a = kcl!(
@ -254,51 +213,49 @@ import \"a.kcl\"
y = 2 y = 2
" "
); );
modules.insert("a.kcl".to_owned(), into_module_info(a)); modules.insert("a.kcl".to_owned(), a);
let b = kcl!( let b = kcl!(
" "
x = 1 x = 1
" "
); );
modules.insert("b.kcl".to_owned(), into_module_info(b)); modules.insert("b.kcl".to_owned(), b);
let ctx = ExecutorContext::new_mock().await; let order = import_graph(&modules).unwrap();
let order = import_graph(&modules, &ctx).unwrap();
assert_eq!(vec![vec!["a.kcl".to_owned(), "b.kcl".to_owned()]], order); assert_eq!(vec![vec!["a.kcl".to_owned(), "b.kcl".to_owned()]], order);
} }
#[tokio::test] #[test]
async fn order_imports_2() { fn order_imports_2() {
let mut modules = HashMap::new(); let mut modules = HashMap::new();
let a = kcl!(""); let a = kcl!("");
modules.insert("a.kcl".to_owned(), into_module_info(a)); modules.insert("a.kcl".to_owned(), a);
let b = kcl!( let b = kcl!(
" "
import \"a.kcl\" import \"a.kcl\"
" "
); );
modules.insert("b.kcl".to_owned(), into_module_info(b)); modules.insert("b.kcl".to_owned(), b);
let c = kcl!( let c = kcl!(
" "
import \"a.kcl\" import \"a.kcl\"
" "
); );
modules.insert("c.kcl".to_owned(), into_module_info(c)); modules.insert("c.kcl".to_owned(), c);
let ctx = ExecutorContext::new_mock().await; let order = import_graph(&modules).unwrap();
let order = import_graph(&modules, &ctx).unwrap();
assert_eq!( assert_eq!(
vec![vec!["a.kcl".to_owned()], vec!["b.kcl".to_owned(), "c.kcl".to_owned()]], vec![vec!["a.kcl".to_owned()], vec!["b.kcl".to_owned(), "c.kcl".to_owned()]],
order order
); );
} }
#[tokio::test] #[test]
async fn order_imports_cycle() { fn order_imports_cycle() {
let mut modules = HashMap::new(); let mut modules = HashMap::new();
let a = kcl!( let a = kcl!(
@ -306,16 +263,15 @@ import \"a.kcl\"
import \"b.kcl\" import \"b.kcl\"
" "
); );
modules.insert("a.kcl".to_owned(), into_module_info(a)); modules.insert("a.kcl".to_owned(), a);
let b = kcl!( let b = kcl!(
" "
import \"a.kcl\" import \"a.kcl\"
" "
); );
modules.insert("b.kcl".to_owned(), into_module_info(b)); modules.insert("b.kcl".to_owned(), b);
let ctx = ExecutorContext::new_mock().await; import_graph(&modules).unwrap_err();
import_graph(&modules, &ctx).unwrap_err();
} }
} }

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands angled_line.kcl description: Artifact commands angled_line.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands argument_error.kcl description: Artifact commands argument_error.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands array_elem_pop.kcl description: Artifact commands array_elem_pop.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands array_elem_pop_empty_fail.kcl description: Artifact commands array_elem_pop_empty_fail.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands array_elem_pop_fail.kcl description: Artifact commands array_elem_pop_fail.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands array_elem_push.kcl description: Artifact commands array_elem_push.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands array_elem_push_fail.kcl description: Artifact commands array_elem_push_fail.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands array_index_oob.kcl description: Artifact commands array_index_oob.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands array_range_expr.kcl description: Artifact commands array_range_expr.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands array_range_negative_expr.kcl description: Artifact commands array_range_negative_expr.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands artifact_graph_example_code1.kcl description: Artifact commands artifact_graph_example_code1.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands artifact_graph_example_code_no_3d.kcl description: Artifact commands artifact_graph_example_code_no_3d.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands artifact_graph_example_code_offset_planes.kcl description: Artifact commands artifact_graph_example_code_offset_planes.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands artifact_graph_sketch_on_face_etc.kcl description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -7,16 +7,26 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
"command": { "command": {
"type": "set_scene_units", "type": "edge_lines_visible",
"unit": "mm" "hidden": false
} }
}, },
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
"command": { "command": {
"type": "set_scene_units", "type": "object_visible",
"unit": "mm" "object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
} }
}, },
{ {
@ -32,7 +42,7 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"range": [], "range": [],
"command": { "command": {
"type": "set_scene_units", "type": "set_scene_units",
"unit": "mm" "unit": "in"
} }
}, },
{ {
@ -60,6 +70,263 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"hide": true "hide": true
} }
}, },
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": {
"x": 0.0,
"y": 0.0,
"z": 1.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "start_path"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": -10.0,
"y": -10.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 5.0,
"y": 0.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 0.0,
"y": -5.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": -5.0,
"y": 0.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": -10.0,
"y": -10.0,
"z": 0.0
},
"relative": false
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "close_path",
"path_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": {
"x": 0.0,
"y": 0.0,
"z": 1.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extrude",
"target": "[uuid]",
"distance": 5.0,
"faces": null
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_bring_to_front",
"object_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_extrusion_face_info",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
@ -128,66 +395,6 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"type": "sketch_mode_disable" "type": "sketch_mode_disable"
} }
}, },
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": {
"x": 0.0,
"y": 0.0,
"z": 1.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "start_path"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": -10.0,
"y": -10.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 5.0,
"y": 0.0,
"z": 0.0
},
"relative": true
}
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
@ -222,40 +429,6 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
} }
} }
}, },
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 0.0,
"y": -5.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": -5.0,
"y": 0.0,
"z": 0.0
},
"relative": true
}
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
@ -290,31 +463,6 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
} }
} }
}, },
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": -10.0,
"y": -10.0,
"z": 0.0
},
"relative": false
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "close_path",
"path_id": "[uuid]"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
@ -373,56 +521,6 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"edge_id": "[uuid]" "edge_id": "[uuid]"
} }
}, },
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": {
"x": 0.0,
"y": 0.0,
"z": 1.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extrude",
"target": "[uuid]",
"distance": 5.0,
"faces": null
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_bring_to_front",
"object_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_extrusion_face_info",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
@ -503,120 +601,6 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"face_id": "[uuid]" "face_id": "[uuid]"
} }
}, },
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "edge_lines_visible",
"hidden": false
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -1,47 +1,47 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path3 [Path] subgraph path2 [Path]
3["Path<br>[76, 111, 6]"] 2["Path<br>[76, 113, 5]"]
5["Segment<br>[117, 134, 6]"] 3["Segment<br>[119, 136, 5]"]
7["Segment<br>[140, 158, 6]"] 4["Segment<br>[142, 160, 5]"]
9["Segment<br>[164, 182, 6]"] 5["Segment<br>[166, 184, 5]"]
11["Segment<br>[188, 244, 6]"] 6["Segment<br>[190, 246, 5]"]
13["Segment<br>[250, 257, 6]"] 7["Segment<br>[252, 259, 5]"]
14[Solid2d] 8[Solid2d]
end end
subgraph path4 [Path] subgraph path25 [Path]
4["Path<br>[76, 113, 5]"] 25["Path<br>[76, 111, 6]"]
6["Segment<br>[119, 136, 5]"] 26["Segment<br>[117, 134, 6]"]
8["Segment<br>[142, 160, 5]"] 27["Segment<br>[140, 158, 6]"]
10["Segment<br>[166, 184, 5]"] 28["Segment<br>[164, 182, 6]"]
12["Segment<br>[190, 246, 5]"] 29["Segment<br>[188, 244, 6]"]
15["Segment<br>[252, 259, 5]"] 30["Segment<br>[250, 257, 6]"]
16[Solid2d] 31[Solid2d]
end end
1["Plane<br>[47, 66, 6]"] 1["Plane<br>[47, 66, 5]"]
2["Plane<br>[47, 66, 5]"] 9["Sweep Extrusion<br>[265, 287, 5]"]
17["Sweep Extrusion<br>[263, 285, 6]"] 10[Wall]
18[Wall] 11[Wall]
19[Wall] 12[Wall]
20[Wall] 13[Wall]
21[Wall] 14["Cap Start"]
22["Cap Start"] 15["Cap End"]
23["Cap End"] 16["SweepEdge Opposite"]
24["Sweep Extrusion<br>[265, 287, 5]"] 17["SweepEdge Adjacent"]
25[Wall] 18["SweepEdge Opposite"]
26[Wall] 19["SweepEdge Adjacent"]
27[Wall] 20["SweepEdge Opposite"]
28[Wall] 21["SweepEdge Adjacent"]
29["Cap Start"] 22["SweepEdge Opposite"]
30["Cap End"] 23["SweepEdge Adjacent"]
31["SweepEdge Opposite"] 24["Plane<br>[47, 66, 6]"]
32["SweepEdge Adjacent"] 32["Sweep Extrusion<br>[263, 285, 6]"]
33["SweepEdge Opposite"] 33[Wall]
34["SweepEdge Adjacent"] 34[Wall]
35["SweepEdge Opposite"] 35[Wall]
36["SweepEdge Adjacent"] 36[Wall]
37["SweepEdge Opposite"] 37["Cap Start"]
38["SweepEdge Adjacent"] 38["Cap End"]
39["SweepEdge Opposite"] 39["SweepEdge Opposite"]
40["SweepEdge Adjacent"] 40["SweepEdge Adjacent"]
41["SweepEdge Opposite"] 41["SweepEdge Opposite"]
@ -50,72 +50,72 @@ flowchart LR
44["SweepEdge Adjacent"] 44["SweepEdge Adjacent"]
45["SweepEdge Opposite"] 45["SweepEdge Opposite"]
46["SweepEdge Adjacent"] 46["SweepEdge Adjacent"]
1 --- 3 1 --- 2
2 --- 3
2 --- 4 2 --- 4
3 --- 5 2 --- 5
3 --- 7 2 --- 6
3 --- 9 2 --- 7
3 --- 11 2 ---- 9
2 --- 8
3 --- 13 3 --- 13
3 ---- 17 3 --- 22
3 --- 14 3 --- 23
4 --- 6
4 --- 8
4 --- 10
4 --- 12 4 --- 12
4 --- 15 4 --- 20
4 ---- 24 4 --- 21
4 --- 16 5 --- 11
5 --- 21 5 --- 18
5 --- 37 5 --- 19
5 --- 38 6 --- 10
6 --- 28 6 --- 16
6 --- 45 6 --- 17
6 --- 46 9 --- 10
7 --- 20 9 --- 11
7 --- 35 9 --- 12
7 --- 36 9 --- 13
8 --- 27 9 --- 14
8 --- 43 9 --- 15
8 --- 44 9 --- 16
9 --- 17
9 --- 18
9 --- 19 9 --- 19
9 --- 33 9 --- 20
9 --- 34 9 --- 21
10 --- 26 9 --- 22
10 --- 41 9 --- 23
10 --- 42
11 --- 18
11 --- 31
11 --- 32
12 --- 25
12 --- 39
12 --- 40
17 --- 18
17 --- 19
17 --- 20
17 --- 21
17 --- 22
17 --- 23
17 --- 31
17 --- 32
17 --- 33
17 --- 34
17 --- 35
17 --- 36
17 --- 37
17 --- 38
24 --- 25 24 --- 25
24 --- 26 25 --- 26
24 --- 27 25 --- 27
24 --- 28 25 --- 28
24 --- 29 25 --- 29
24 --- 30 25 --- 30
24 --- 39 25 ---- 32
24 --- 40 25 --- 31
24 --- 41 26 --- 36
24 --- 42 26 --- 45
24 --- 43 26 --- 46
24 --- 44 27 --- 35
24 --- 45 27 --- 43
24 --- 46 27 --- 44
28 --- 34
28 --- 41
28 --- 42
29 --- 33
29 --- 39
29 --- 40
32 --- 33
32 --- 34
32 --- 35
32 --- 36
32 --- 37
32 --- 38
32 --- 39
32 --- 40
32 --- 41
32 --- 42
32 --- 43
32 --- 44
32 --- 45
32 --- 46
``` ```

View File

@ -12,6 +12,53 @@ description: Operations executed assembly_mixed_units_cubes.kcl
}, },
"sourceRange": [] "sourceRange": []
}, },
{
"labeledArgs": {
"data": {
"value": {
"type": "String",
"value": "XY"
},
"sourceRange": []
}
},
"name": "startSketchOn",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"length": {
"value": {
"type": "Number",
"value": 5.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"name": "extrude",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
}
},
{ {
"type": "GroupEnd" "type": "GroupEnd"
}, },
@ -24,6 +71,53 @@ description: Operations executed assembly_mixed_units_cubes.kcl
}, },
"sourceRange": [] "sourceRange": []
}, },
{
"labeledArgs": {
"data": {
"value": {
"type": "String",
"value": "XY"
},
"sourceRange": []
}
},
"name": "startSketchOn",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"length": {
"value": {
"type": "Number",
"value": 5.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"name": "extrude",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
}
},
{ {
"type": "GroupEnd" "type": "GroupEnd"
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

@ -7,16 +7,26 @@ description: Artifact commands assembly_non_default_units.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
"command": { "command": {
"type": "set_scene_units", "type": "edge_lines_visible",
"unit": "mm" "hidden": false
} }
}, },
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
"command": { "command": {
"type": "set_scene_units", "type": "object_visible",
"unit": "mm" "object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
} }
}, },
{ {
@ -83,131 +93,6 @@ description: Artifact commands assembly_non_default_units.kcl
"type": "start_path" "type": "start_path"
} }
}, },
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": 1.0,
"y": 2.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "arc",
"center": {
"x": 0.0,
"y": 2.0
},
"radius": 1.0,
"start": {
"unit": "degrees",
"value": 0.0
},
"end": {
"unit": "degrees",
"value": 360.0
},
"relative": false
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "close_path",
"path_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "in"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "make_plane",
"origin": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"x_axis": {
"x": 1.0,
"y": 0.0,
"z": 0.0
},
"y_axis": {
"x": 0.0,
"y": 0.0,
"z": 1.0
},
"size": 60.0,
"clobber": false,
"hide": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": {
"x": 0.0,
"y": -1.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "start_path"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
@ -261,40 +146,6 @@ description: Artifact commands assembly_non_default_units.kcl
"path_id": "[uuid]" "path_id": "[uuid]"
} }
}, },
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "edge_lines_visible",
"hidden": false
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
@ -302,5 +153,106 @@ description: Artifact commands assembly_non_default_units.kcl
"type": "set_scene_units", "type": "set_scene_units",
"unit": "in" "unit": "in"
} }
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "make_plane",
"origin": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"x_axis": {
"x": 1.0,
"y": 0.0,
"z": 0.0
},
"y_axis": {
"x": 0.0,
"y": 0.0,
"z": 1.0
},
"size": 60.0,
"clobber": false,
"hide": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": {
"x": 0.0,
"y": -1.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "start_path"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": 1.0,
"y": 2.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "arc",
"center": {
"x": 0.0,
"y": 2.0
},
"radius": 1.0,
"start": {
"unit": "degrees",
"value": 0.0
},
"end": {
"unit": "degrees",
"value": 360.0
},
"relative": false
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "close_path",
"path_id": "[uuid]"
}
} }
] ]

View File

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

View File

@ -12,6 +12,21 @@ description: Operations executed assembly_non_default_units.kcl
}, },
"sourceRange": [] "sourceRange": []
}, },
{
"labeledArgs": {
"data": {
"value": {
"type": "String",
"value": "XZ"
},
"sourceRange": []
}
},
"name": "startSketchOn",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": null
},
{ {
"type": "GroupEnd" "type": "GroupEnd"
}, },
@ -20,10 +35,25 @@ description: Operations executed assembly_non_default_units.kcl
"group": { "group": {
"type": "ModuleInstance", "type": "ModuleInstance",
"name": "other2", "name": "other2",
"moduleId": 7 "moduleId": 6
}, },
"sourceRange": [] "sourceRange": []
}, },
{
"labeledArgs": {
"data": {
"value": {
"type": "String",
"value": "XZ"
},
"sourceRange": []
}
},
"name": "startSketchOn",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": null
},
{ {
"type": "GroupEnd" "type": "GroupEnd"
} }

View File

@ -9,6 +9,6 @@ description: Variables in memory after executing assembly_non_default_units.kcl
}, },
"other2": { "other2": {
"type": "Module", "type": "Module",
"value": 7 "value": 6
} }
} }

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands bad_units_in_annotation.kcl description: Artifact commands bad_units_in_annotation.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands basic_fillet_cube_close_opposite.kcl description: Artifact commands basic_fillet_cube_close_opposite.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands basic_fillet_cube_end.kcl description: Artifact commands basic_fillet_cube_end.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands basic_fillet_cube_next_adjacent.kcl description: Artifact commands basic_fillet_cube_next_adjacent.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands basic_fillet_cube_previous_adjacent.kcl description: Artifact commands basic_fillet_cube_previous_adjacent.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands basic_fillet_cube_start.kcl description: Artifact commands basic_fillet_cube_start.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands big_number_angle_to_match_length_x.kcl description: Artifact commands big_number_angle_to_match_length_x.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands big_number_angle_to_match_length_y.kcl description: Artifact commands big_number_angle_to_match_length_y.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands boolean_logical_and.kcl description: Artifact commands boolean_logical_and.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands boolean_logical_multiple.kcl description: Artifact commands boolean_logical_multiple.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands boolean_logical_or.kcl description: Artifact commands boolean_logical_or.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands circle_three_point.kcl description: Artifact commands circle_three_point.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands circular_pattern3d_a_pattern.kcl description: Artifact commands circular_pattern3d_a_pattern.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands comparisons.kcl description: Artifact commands comparisons.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands comparisons_multiple.kcl description: Artifact commands comparisons_multiple.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands computed_var.kcl description: Artifact commands computed_var.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands crazy_multi_profile.kcl description: Artifact commands crazy_multi_profile.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands cube.kcl description: Artifact commands cube.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands cube_with_error.kcl description: Artifact commands cube_with_error.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands double_map_fn.kcl description: Artifact commands double_map_fn.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands fillet-and-shell.kcl description: Artifact commands fillet-and-shell.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands flush_batch_on_end.kcl description: Artifact commands flush_batch_on_end.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands function_sketch.kcl description: Artifact commands function_sketch.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands function_sketch_with_position.kcl description: Artifact commands function_sketch_with_position.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands helix_ccw.kcl description: Artifact commands helix_ccw.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands helix_simple.kcl description: Artifact commands helix_simple.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands i_shape.kcl description: Artifact commands i_shape.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands if_else.kcl description: Artifact commands if_else.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands import_constant.kcl description: Artifact commands import_constant.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands import_export.kcl description: Artifact commands import_export.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -2,4 +2,31 @@
source: kcl-lib/src/simulation_tests.rs source: kcl-lib/src/simulation_tests.rs
description: Artifact commands import_file_not_exist_error.kcl description: Artifact commands import_file_not_exist_error.kcl
--- ---
[] [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "edge_lines_visible",
"hidden": false
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
}
]

View File

@ -1,5 +1,5 @@
--- ---
source: kcl-lib/src/simulation_tests.rs source: kcl/src/simulation_tests.rs
description: Error from executing import_file_not_exist_error.kcl description: Error from executing import_file_not_exist_error.kcl
--- ---
KCL I/O error KCL I/O error
@ -8,6 +8,6 @@ KCL I/O error
│ exist.kcl`: No such file or directory (os error 2) │ exist.kcl`: No such file or directory (os error 2)
╭──── ╭────
1 │ import hotdog from "not-exist.kcl" 1 │ import hotdog from "not-exist.kcl"
· · ─────────────────┬────────────────
· ╰── main · ╰── tests/import_file_not_exist_error/input.kcl
╰──── ╰────

View File

@ -2,4 +2,31 @@
source: kcl-lib/src/simulation_tests.rs source: kcl-lib/src/simulation_tests.rs
description: Artifact commands import_file_parse_error.kcl description: Artifact commands import_file_parse_error.kcl
--- ---
[] [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "edge_lines_visible",
"hidden": false
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
}
]

View File

@ -1,12 +1,13 @@
--- ---
source: kcl-lib/src/simulation_tests.rs source: kcl/src/simulation_tests.rs
description: Error from executing import_file_parse_error.kcl description: Error from executing import_file_parse_error.kcl
--- ---
KCL Syntax error KCL Syntax error
× syntax: Unexpected token: } × syntax: Unexpected token: }
╭──── ╭─[3:1]
1import hotdog from "parse-failure.kcl" 2 return
· ┬ 3 │ }
· ╰── main ·
· ╰── tests/import_file_parse_error/parse-failure.kcl
╰──── ╰────

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands import_foreign.kcl description: Artifact commands import_foreign.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,426 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands import_function_not_sketch.kcl description: Artifact commands import_function_not_sketch.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "make_plane",
"origin": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"x_axis": {
"x": 1.0,
"y": 0.0,
"z": 0.0
},
"y_axis": {
"x": 0.0,
"y": 1.0,
"z": 0.0
},
"size": 60.0,
"clobber": false,
"hide": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": {
"x": 0.0,
"y": 0.0,
"z": 1.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "start_path"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": 4.0,
"y": 12.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 2.0,
"y": 0.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 0.0,
"y": -6.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 4.0,
"y": -6.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 0.0,
"y": -6.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": -3.75,
"y": -4.5,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": 0.0,
"y": -5.5,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "line",
"end": {
"x": -2.0,
"y": 0.0,
"z": 0.0
},
"relative": true
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "close_path",
"path_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "revolve",
"target": "[uuid]",
"origin": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"axis": {
"x": 0.0,
"y": 1.0,
"z": 0.0
},
"axis_is_2d": true,
"angle": {
"unit": "degrees",
"value": 360.0
},
"tolerance": 0.0000001
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_bring_to_front",
"object_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_extrusion_face_info",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_next_adjacent_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -1,5 +1,6 @@
--- ---
source: kcl-lib/src/simulation_tests.rs source: kcl/src/simulation_tests.rs
assertion_line: 189
description: Artifact graph flowchart import_function_not_sketch.kcl description: Artifact graph flowchart import_function_not_sketch.kcl
extension: md extension: md
snapshot_kind: binary snapshot_kind: binary

View File

@ -1,82 +1,3 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path]
2["Path<br>[75, 101, 5]"]
3["Segment<br>[107, 125, 5]"]
4["Segment<br>[131, 150, 5]"]
5["Segment<br>[156, 175, 5]"]
6["Segment<br>[181, 200, 5]"]
7["Segment<br>[206, 231, 5]"]
8["Segment<br>[237, 258, 5]"]
9["Segment<br>[264, 283, 5]"]
10["Segment<br>[289, 296, 5]"]
11[Solid2d]
end
1["Plane<br>[52, 69, 5]"]
12["Sweep Revolve<br>[302, 319, 5]"]
13[Wall]
14[Wall]
15[Wall]
16[Wall]
17[Wall]
18[Wall]
19[Wall]
20[Wall]
21["SweepEdge Adjacent"]
22["SweepEdge Adjacent"]
23["SweepEdge Adjacent"]
24["SweepEdge Adjacent"]
25["SweepEdge Adjacent"]
26["SweepEdge Adjacent"]
27["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 --- 4
2 --- 5
2 --- 6
2 --- 7
2 --- 8
2 --- 9
2 --- 10
2 ---- 12
2 --- 11
3 --- 13
3 x--> 21
4 --- 14
4 --- 21
5 --- 15
5 --- 22
6 --- 16
6 --- 23
7 --- 17
7 --- 24
8 --- 18
8 --- 25
9 --- 19
9 --- 26
10 --- 20
10 --- 27
12 --- 13
12 --- 14
12 --- 15
12 --- 16
12 --- 17
12 --- 18
12 --- 19
12 --- 20
12 <--x 3
12 --- 21
12 <--x 4
12 <--x 5
12 --- 22
12 <--x 6
12 --- 23
12 <--x 7
12 --- 24
12 <--x 8
12 --- 25
12 <--x 9
12 --- 26
12 <--x 10
12 --- 27
``` ```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands import_glob.kcl description: Artifact commands import_glob.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,123 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands import_side_effect.kcl description: Artifact commands import_side_effect.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "make_plane",
"origin": {
"x": 0.0,
"y": 0.0,
"z": 0.0
},
"x_axis": {
"x": 1.0,
"y": 0.0,
"z": 0.0
},
"y_axis": {
"x": 0.0,
"y": 1.0,
"z": 0.0
},
"size": 60.0,
"clobber": false,
"hide": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "enable_sketch_mode",
"entity_id": "[uuid]",
"ortho": false,
"animated": false,
"adjust_camera": false,
"planar_normal": {
"x": 0.0,
"y": 0.0,
"z": 1.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "start_path"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "move_path_pen",
"path": "[uuid]",
"to": {
"x": 10.0,
"y": 0.0,
"z": 0.0
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "sketch_mode_disable"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "extend_path",
"path": "[uuid]",
"segment": {
"type": "arc",
"center": {
"x": 0.0,
"y": 0.0
},
"radius": 10.0,
"start": {
"unit": "degrees",
"value": 0.0
},
"end": {
"unit": "degrees",
"value": 360.0
},
"relative": false
}
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "close_path",
"path_id": "[uuid]"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -1,5 +1,6 @@
--- ---
source: kcl-lib/src/simulation_tests.rs source: kcl/src/simulation_tests.rs
assertion_line: 189
description: Artifact graph flowchart import_side_effect.kcl description: Artifact graph flowchart import_side_effect.kcl
extension: md extension: md
snapshot_kind: binary snapshot_kind: binary

View File

@ -1,12 +1,3 @@
```mermaid ```mermaid
flowchart LR flowchart LR
subgraph path2 [Path]
2["Path<br>[102, 138, 5]"]
3["Segment<br>[102, 138, 5]"]
4[Solid2d]
end
1["Plane<br>[77, 96, 5]"]
1 --- 2
2 --- 3
2 --- 4
``` ```

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands import_transform.kcl description: Artifact commands import_transform.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -7,8 +7,26 @@ description: Artifact commands import_whole.kcl
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],
"command": { "command": {
"type": "set_scene_units", "type": "edge_lines_visible",
"unit": "mm" "hidden": false
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
} }
}, },
{ {
@ -206,40 +224,6 @@ description: Artifact commands import_whole.kcl
"unit": "mm" "unit": "mm"
} }
}, },
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "edge_lines_visible",
"hidden": false
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "object_visible",
"object_id": "[uuid]",
"hidden": true
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -12,6 +12,53 @@ description: Operations executed import_whole.kcl
}, },
"sourceRange": [] "sourceRange": []
}, },
{
"labeledArgs": {
"data": {
"value": {
"type": "Plane",
"artifact_id": "[uuid]"
},
"sourceRange": []
}
},
"name": "startSketchOn",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": null
},
{
"labeledArgs": {
"length": {
"value": {
"type": "Number",
"value": 10.0,
"ty": {
"type": "Default",
"len": {
"type": "Inches"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
}
},
"name": "extrude",
"sourceRange": [],
"type": "StdLibCall",
"unlabeledArg": {
"value": {
"type": "Sketch",
"value": {
"artifactId": "[uuid]"
}
},
"sourceRange": []
}
},
{ {
"type": "GroupEnd" "type": "GroupEnd"
}, },

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands index_of_array.kcl description: Artifact commands index_of_array.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands intersect_cubes.kcl description: Artifact commands intersect_cubes.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands invalid_index_fractional.kcl description: Artifact commands invalid_index_fractional.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands invalid_index_negative.kcl description: Artifact commands invalid_index_negative.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands invalid_index_str.kcl description: Artifact commands invalid_index_str.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands invalid_member_object.kcl description: Artifact commands invalid_member_object.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands invalid_member_object_prop.kcl description: Artifact commands invalid_member_object_prop.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands 80-20-rail.kcl description: Artifact commands 80-20-rail.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands ball-bearing.kcl description: Artifact commands ball-bearing.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,30 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands bench.kcl description: Artifact commands bench.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands bracket.kcl description: Artifact commands bracket.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

File diff suppressed because it is too large Load Diff

View File

@ -31,7 +31,7 @@ description: Variables in memory after executing car-wheel-assembly.kcl
}, },
"brakeCaliper": { "brakeCaliper": {
"type": "Module", "type": "Module",
"value": 8 "value": 7
}, },
"c1": { "c1": {
"type": "TagIdentifier", "type": "TagIdentifier",
@ -105,11 +105,11 @@ description: Variables in memory after executing car-wheel-assembly.kcl
}, },
"carRotor": { "carRotor": {
"type": "Module", "type": "Module",
"value": 7 "value": 6
}, },
"carTire": { "carTire": {
"type": "Module", "type": "Module",
"value": 10 "value": 9
}, },
"carWheel": { "carWheel": {
"type": "Module", "type": "Module",
@ -177,7 +177,7 @@ description: Variables in memory after executing car-wheel-assembly.kcl
}, },
"lugNut": { "lugNut": {
"type": "Module", "type": "Module",
"value": 9 "value": 8
}, },
"lugSpacing": { "lugSpacing": {
"type": "Number", "type": "Number",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 216 KiB

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands color-cube.kcl description: Artifact commands color-cube.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands cycloidal-gear.kcl description: Artifact commands cycloidal-gear.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands dodecahedron.kcl description: Artifact commands dodecahedron.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands dual-basin-utility-sink.kcl description: Artifact commands dual-basin-utility-sink.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands enclosure.kcl description: Artifact commands enclosure.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands exhaust-manifold.kcl description: Artifact commands exhaust-manifold.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands flange.kcl description: Artifact commands flange.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands focusrite-scarlett-mounting-bracket.kcl description: Artifact commands focusrite-scarlett-mounting-bracket.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

View File

@ -3,22 +3,6 @@ source: kcl-lib/src/simulation_tests.rs
description: Artifact commands food-service-spatula.kcl description: Artifact commands food-service-spatula.kcl
--- ---
[ [
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "set_scene_units",
"unit": "mm"
}
},
{ {
"cmdId": "[uuid]", "cmdId": "[uuid]",
"range": [], "range": [],

Some files were not shown because too many files have changed in this diff Show More