Parallelize the artifact graph only time suck (#6482)

* parallelize the artifact only time suck

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

make wasm safe

Signed-off-by: Jess Frazelle <github@jessfraz.com>

updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* artifact graph things

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
Jess Frazelle
2025-04-26 21:21:26 -07:00
committed by GitHub
parent d0b0365f75
commit 24465cf463
253 changed files with 73547 additions and 55353 deletions

View File

@ -15,8 +15,12 @@ name: cargo test
jobs:
cargotest:
name: cargo test
runs-on: ubuntu-latest-8-cores
runs-on:
- runs-on=${{ github.run_id }}
- runner=32cpu-linux-x64
- extras=s3-cache
steps:
- uses: runs-on/action@v1
- uses: actions/create-github-app-token@v1
id: app-token
with:
@ -81,7 +85,7 @@ jobs:
run: |
set -euo pipefail
cd rust
cargo nextest run --workspace --retries=2 --no-fail-fast --profile ci simulation_tests::kcl_samples 2>&1 | tee /tmp/github-actions.log
cargo nextest run --workspace --features artifact-graph --retries=2 --no-fail-fast --profile ci simulation_tests::kcl_samples 2>&1 | tee /tmp/github-actions.log
env:
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN}}
RUST_BACKTRACE: full
@ -124,7 +128,7 @@ jobs:
shell: bash
run: |-
cd rust
cargo llvm-cov nextest --workspace --lcov --output-path lcov.info --retries=2 --no-fail-fast -P ci 2>&1 | tee /tmp/github-actions.log
cargo llvm-cov nextest --workspace --features artifact-graph --lcov --output-path lcov.info --retries=2 --no-fail-fast -P ci 2>&1 | tee /tmp/github-actions.log
env:
KITTYCAD_API_TOKEN: ${{secrets.KITTYCAD_API_TOKEN}}
RUST_MIN_STACK: 10485760000

View File

@ -289,7 +289,7 @@ unit of measurement is millimeters. Alternatively you may specify the unit
by using an attribute. Likewise, you can also specify a coordinate system. E.g.,
```kcl
@(unitLength = ft, coords = opengl)
@(lengthUnit = ft, coords = opengl)
import "tests/inputs/cube.obj"
```

View File

@ -6,7 +6,7 @@ layout: manual
Start a new 2-dimensional sketch on a specific plane or face.
### Sketch on Face Behavior
## Sketch on Face Behavior
There are some important behaviors to understand when sketching on a face:

View File

@ -292719,7 +292719,7 @@
{
"name": "startSketchOn",
"summary": "Start a new 2-dimensional sketch on a specific plane or face.",
"description": "### Sketch on Face Behavior\n\nThere are some important behaviors to understand when sketching on a face:\n\nThe resulting sketch will _include_ the face and thus Solid that was sketched on. So say you were to export the resulting Sketch / Solid from a sketch on a face, you would get both the artifact of the sketch on the face and the parent face / Solid itself.\n\nThis is important to understand because if you were to then sketch on the resulting Solid, it would again include the face and parent Solid that was sketched on. This could go on indefinitely.\n\nThe point is if you want to export the result of a sketch on a face, you only need to export the final Solid that was created from the sketch on the face, since it will include all the parent faces and Solids.",
"description": "## Sketch on Face Behavior\n\nThere are some important behaviors to understand when sketching on a face:\n\nThe resulting sketch will _include_ the face and thus Solid that was sketched on. So say you were to export the resulting Sketch / Solid from a sketch on a face, you would get both the artifact of the sketch on the face and the parent face / Solid itself.\n\nThis is important to understand because if you were to then sketch on the resulting Solid, it would again include the face and parent Solid that was sketched on. This could go on indefinitely.\n\nThe point is if you want to export the result of a sketch on a face, you only need to export the final Solid that was created from the sketch on the face, since it will include all the parent faces and Solids.",
"tags": [],
"keywordArguments": true,
"args": [

View File

@ -20,6 +20,12 @@
targets = ["wasm32-unknown-unknown"];
extensions = ["rustfmt" "llvm-tools-preview" "rust-src"];
};
# stand-alone nightly formatter so we get the fancy unstable flags
nightlyRustfmt = super.rust-bin.selectLatestNightlyWith (toolchain:
toolchain.default.override {
extensions = ["rustfmt"]; # just the formatter
});
})
];
@ -44,6 +50,7 @@
packages =
(with pkgs; [
rustToolchain
nightlyRustfmt
cargo-criterion
cargo-nextest
cargo-sort
@ -69,7 +76,7 @@
PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH = "${pkgs.playwright-driver.browsers}/chromium-1091/chrome-linux/chrome";
PLAYWRIGHT_BROWSERS_PATH = "${pkgs.playwright-driver.browsers}";
NODE_ENV = "development";
RUSTFMT = "${pkgs.rust-bin.stable.latest.rustfmt}/bin/rustfmt";
RUSTFMT = "${pkgs.nightlyRustfmt}/bin/rustfmt";
};
});

View File

@ -9,7 +9,7 @@ after-engine = { max-threads = 12 }
slow-timeout = { period = "180s", terminate-after = 1 }
[profile.ci]
slow-timeout = { period = "50s", terminate-after = 5 }
slow-timeout = { period = "280s", terminate-after = 5 }
[[profile.default.overrides]]
# If a test starts with kcl_test_, then it uses the engine. So, limit its parallelism.

View File

@ -1,21 +1,24 @@
cnr := "cargo nextest run"
cita := "cargo insta test --accept"
kcl_lib_flags := "-p kcl-lib --feature artifact-graph --no-fail-fast"
# Run the same lint checks we run in CI.
lint:
cargo clippy --workspace --all-targets --tests --all-features --examples --benches -- -D warnings
# Ensure we can build without extra feature flags.
cargo clippy -p kcl-lib --tests --examples --benches -- -D warnings
# Run the stdlib docs generation
redo-kcl-stdlib-docs-no-imgs:
EXPECTORATE=overwrite {{cnr}} -p kcl-lib docs::gen_std_tests::test_generate_stdlib
EXPECTORATE=overwrite {{cnr}} {{kcl_lib_flags}} docs::gen_std_tests::test_generate_stdlib
# Generate the stdlib image artifacts
# Then run the stdlib docs generation
redo-kcl-stdlib-docs:
TWENTY_TWENTY=overwrite {{cnr}} -p kcl-lib --no-fail-fast -- kcl_test_example
TWENTY_TWENTY=overwrite {{cnr}} --workspace --no-fail-fast docs::kcl_doc::test::kcl_test_examples
EXPECTORATE=overwrite {{cnr}} -p kcl-lib --no-fail-fast -- docs::gen_std_tests::test_generate_stdlib
EXPECTORATE=overwrite {{cnr}} -p kcl-lib --no-fail-fast -- generate_settings_docs
TWENTY_TWENTY=overwrite {{cnr}} {{kcl_lib_flags}} -- kcl_test_example
TWENTY_TWENTY=overwrite {{cnr}} {{kcl_lib_flags}} docs::kcl_doc::test::kcl_test_examples
EXPECTORATE=overwrite {{cnr}} {{kcl_lib_flags}} -- docs::gen_std_tests::test_generate_stdlib
EXPECTORATE=overwrite {{cnr}} {{kcl_lib_flags}} -- generate_settings_docs
# Copy a test KCL file from executor tests into a new simulation test.
copy-exec-test-into-sim-test test_name:
@ -33,23 +36,23 @@ new-sim-test test_name render_to_png="true":
# Run a KCL deterministic simulation test case and accept output.
overwrite-sim-test-sample test_name:
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} -p kcl-lib --no-quiet -- simulation_tests::kcl_samples::parse_{{test_name}}
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} -p kcl-lib --no-quiet -- simulation_tests::kcl_samples::unparse_{{test_name}}
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} -p kcl-lib --no-quiet -- simulation_tests::kcl_samples::kcl_test_execute_{{test_name}}
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} -p kcl-lib --no-quiet -- simulation_tests::kcl_samples::test_after_engine_generate_manifest
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} {{kcl_lib_flags}} --no-quiet -- simulation_tests::kcl_samples::parse_{{test_name}}
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} {{kcl_lib_flags}} --no-quiet -- simulation_tests::kcl_samples::unparse_{{test_name}}
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} {{kcl_lib_flags}} --no-quiet -- simulation_tests::kcl_samples::kcl_test_execute_{{test_name}}
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} {{kcl_lib_flags}} --no-quiet -- simulation_tests::kcl_samples::test_after_engine_generate_manifest
overwrite-sim-test test_name:
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} -p kcl-lib --no-quiet -- simulation_tests::{{test_name}}::parse
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} -p kcl-lib --no-quiet -- simulation_tests::{{test_name}}::unparse
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} -p kcl-lib --no-quiet -- simulation_tests::{{test_name}}::kcl_test_execute
[ {{test_name}} != "kcl_samples" ] || EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} -p kcl-lib --no-quiet -- simulation_tests::{{test_name}}::test_after_engine_generate_manifest
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} {{kcl_lib_flags}} --no-quiet -- simulation_tests::{{test_name}}::parse
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} {{kcl_lib_flags}} --no-quiet -- simulation_tests::{{test_name}}::unparse
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} {{kcl_lib_flags}} --no-quiet -- simulation_tests::{{test_name}}::kcl_test_execute
[ {{test_name}} != "kcl_samples" ] || EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} {{kcl_lib_flags}} --no-quiet -- simulation_tests::{{test_name}}::test_after_engine_generate_manifest
# Regenerate all the simulation test output.
redo-sim-tests:
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} -p kcl-lib --no-quiet -- simulation_tests
EXPECTORATE=overwrite TWENTY_TWENTY=overwrite {{cita}} {{kcl_lib_flags}} --no-quiet -- simulation_tests
test:
export RUST_BRACKTRACE="full" && {{cnr}} --workspace --no-fail-fast
export RUST_BRACKTRACE="full" && {{cnr}} --workspace --features artifact-graph --no-fail-fast
bump-kcl-crate-versions bump='patch':
# First build the kcl-bumper tool.

View File

@ -108,6 +108,7 @@ tower-lsp = { workspace = true, features = ["proposed", "default"] }
[features]
default = ["cli", "engine"]
artifact-graph = []
benchmark-execution = []
cli = ["dep:clap", "kittycad/clap"]
dhat-heap = ["dep:dhat"]

View File

@ -251,6 +251,7 @@ extrude(profile001, length = 100)"#
result.last().unwrap();
}
#[cfg(feature = "artifact-graph")]
#[tokio::test(flavor = "multi_thread")]
async fn kcl_test_cache_add_line_preserves_artifact_commands() {
let code = r#"sketch001 = startSketchOn('XY')

View File

@ -0,0 +1,9 @@
#[cfg(not(target_arch = "wasm32"))]
pub mod tasks;
#[cfg(target_arch = "wasm32")]
pub mod tasks_wasm;
#[cfg(not(target_arch = "wasm32"))]
pub use tasks::AsyncTasks;
#[cfg(target_arch = "wasm32")]
pub use tasks_wasm::AsyncTasks;

View File

@ -0,0 +1,51 @@
//! This module contains the `AsyncTasks` struct, which is used to manage a set of asynchronous
//! tasks.
use std::sync::Arc;
use tokio::sync::RwLock;
use crate::errors::KclError;
#[derive(Debug, Clone)]
pub struct AsyncTasks {
pub tasks: Arc<RwLock<tokio::task::JoinSet<anyhow::Result<(), KclError>>>>,
}
impl AsyncTasks {
pub fn new() -> Self {
Self {
tasks: Arc::new(RwLock::new(tokio::task::JoinSet::new())),
}
}
pub async fn spawn<F>(&mut self, task: F)
where
F: std::future::Future<Output = anyhow::Result<(), KclError>>,
F: Send + 'static,
{
self.tasks.write().await.spawn(task);
}
// Wait for all tasks to finish.
// Return an error if any of them failed.
pub async fn join_all(&mut self) -> anyhow::Result<(), KclError> {
let tasks = std::mem::take(&mut *self.tasks.write().await);
let results = tasks.join_all().await;
for result in results {
result?;
}
Ok(())
}
pub async fn clear(&mut self) {
*self.tasks.write().await = tokio::task::JoinSet::new();
}
}
impl Default for AsyncTasks {
fn default() -> Self {
Self::new()
}
}

View File

@ -0,0 +1,89 @@
//! This module contains the `AsyncTasks` struct, which is used to manage a set of asynchronous
//! tasks.
use std::{ops::AddAssign, sync::Arc};
use tokio::sync::RwLock;
use crate::errors::KclError;
#[derive(Debug, Clone)]
pub struct AsyncTasks {
pub sender: Arc<RwLock<tokio::sync::mpsc::Sender<Result<(), KclError>>>>,
pub receiver: Arc<RwLock<tokio::sync::mpsc::Receiver<Result<(), KclError>>>>,
pub sent: Arc<RwLock<usize>>,
}
impl AsyncTasks {
pub fn new() -> Self {
let (results_tx, results_rx) = tokio::sync::mpsc::channel(1);
Self {
sender: Arc::new(RwLock::new(results_tx)),
receiver: Arc::new(RwLock::new(results_rx)),
sent: Arc::new(RwLock::new(0)),
}
}
pub async fn spawn<F>(&mut self, task: F)
where
F: std::future::Future<Output = anyhow::Result<(), KclError>>,
F: Send + 'static,
{
// Add one to the sent counter.
self.sent.write().await.add_assign(1);
// Spawn the task and send the result to the channel.
let sender_clone = self.sender.clone();
wasm_bindgen_futures::spawn_local(async move {
let result = task.await;
let sender = sender_clone.read().await;
if let Err(_) = sender.send(result).await {
web_sys::console::error_1(&"Failed to send result".into());
}
});
}
// Wait for all tasks to finish.
// Return an error if any of them failed.
pub async fn join_all(&mut self) -> anyhow::Result<(), KclError> {
if *self.sent.read().await == 0 {
return Ok(());
}
let mut results = Vec::new();
let mut receiver = self.receiver.write().await;
// Wait for all tasks to finish.
while let Some(result) = receiver.recv().await {
results.push(result);
// Check if all tasks have finished.
if results.len() == *self.sent.read().await {
break;
}
}
// Check if any of the tasks failed.
for result in results {
result?;
}
Ok(())
}
pub async fn clear(&mut self) {
// Clear the sent counter.
*self.sent.write().await = 0;
// Clear the channel.
let (results_tx, results_rx) = tokio::sync::mpsc::channel(1);
*self.sender.write().await = results_tx;
*self.receiver.write().await = results_rx;
}
}
impl Default for AsyncTasks {
fn default() -> Self {
Self::new()
}
}

View File

@ -18,11 +18,12 @@ use tokio::sync::{mpsc, oneshot, RwLock};
use tokio_tungstenite::tungstenite::Message as WsMsg;
use uuid::Uuid;
use super::EngineStats;
#[cfg(feature = "artifact-graph")]
use crate::execution::ArtifactCommand;
use crate::{
engine::EngineManager,
engine::{AsyncTasks, EngineManager, EngineStats},
errors::{KclError, KclErrorDetails},
execution::{ArtifactCommand, DefaultPlanes, IdGenerator},
execution::{DefaultPlanes, IdGenerator},
SourceRange,
};
@ -37,13 +38,14 @@ type WebSocketTcpWrite = futures::stream::SplitSink<tokio_tungstenite::WebSocket
pub struct EngineConnection {
engine_req_tx: mpsc::Sender<ToEngineReq>,
shutdown_tx: mpsc::Sender<()>,
responses: Arc<RwLock<IndexMap<uuid::Uuid, WebSocketResponse>>>,
responses: ResponseInformation,
pending_errors: Arc<RwLock<Vec<String>>>,
#[allow(dead_code)]
tcp_read_handle: Arc<TcpReadHandle>,
socket_health: Arc<RwLock<SocketHealth>>,
batch: Arc<RwLock<Vec<(WebSocketRequest, SourceRange)>>>,
batch_end: Arc<RwLock<IndexMap<uuid::Uuid, (WebSocketRequest, SourceRange)>>>,
#[cfg(feature = "artifact-graph")]
artifact_commands: Arc<RwLock<Vec<ArtifactCommand>>>,
ids_of_async_commands: Arc<RwLock<IndexMap<Uuid, SourceRange>>>,
@ -53,6 +55,8 @@ pub struct EngineConnection {
session_data: Arc<RwLock<Option<ModelingSessionData>>>,
stats: EngineStats,
async_tasks: AsyncTasks,
}
pub struct TcpRead {
@ -116,12 +120,14 @@ impl Drop for TcpReadHandle {
}
}
struct ResponsesInformation {
/// Information about the responses from the engine.
#[derive(Clone, Debug)]
struct ResponseInformation {
/// The responses from the engine.
responses: Arc<RwLock<IndexMap<uuid::Uuid, WebSocketResponse>>>,
}
impl ResponsesInformation {
impl ResponseInformation {
pub async fn add(&self, id: Uuid, response: WebSocketResponse) {
self.responses.write().await.insert(id, response);
}
@ -238,14 +244,14 @@ impl EngineConnection {
let session_data: Arc<RwLock<Option<ModelingSessionData>>> = Arc::new(RwLock::new(None));
let session_data2 = session_data.clone();
let responses: Arc<RwLock<IndexMap<uuid::Uuid, WebSocketResponse>>> = Arc::new(RwLock::new(IndexMap::new()));
let ids_of_async_commands: Arc<RwLock<IndexMap<Uuid, SourceRange>>> = Arc::new(RwLock::new(IndexMap::new()));
let socket_health = Arc::new(RwLock::new(SocketHealth::Active));
let pending_errors = Arc::new(RwLock::new(Vec::new()));
let pending_errors_clone = pending_errors.clone();
let responses_information = ResponsesInformation {
responses: responses.clone(),
let response_information = ResponseInformation {
responses: Arc::new(RwLock::new(IndexMap::new())),
};
let response_information_cloned = response_information.clone();
let socket_health_tcp_read = socket_health.clone();
let tcp_read_handle = tokio::spawn(async move {
@ -270,7 +276,7 @@ impl EngineConnection {
BatchResponse::Success { response } => {
// If the id is in our ids of async commands, remove
// it.
responses_information
response_information_cloned
.add(
id,
WebSocketResponse::Success(SuccessWebSocketResponse {
@ -284,7 +290,7 @@ impl EngineConnection {
.await;
}
BatchResponse::Failure { errors } => {
responses_information
response_information_cloned
.add(
id,
WebSocketResponse::Failure(FailureWebSocketResponse {
@ -311,7 +317,7 @@ impl EngineConnection {
errors,
}) => {
if let Some(id) = request_id {
responses_information
response_information_cloned
.add(
*id,
WebSocketResponse::Failure(FailureWebSocketResponse {
@ -336,7 +342,7 @@ impl EngineConnection {
}
if let Some(id) = id {
responses_information.add(id, ws_resp.clone()).await;
response_information_cloned.add(id, ws_resp.clone()).await;
}
}
Err(e) => {
@ -357,16 +363,18 @@ impl EngineConnection {
tcp_read_handle: Arc::new(TcpReadHandle {
handle: Arc::new(tcp_read_handle),
}),
responses,
responses: response_information,
pending_errors,
socket_health,
batch: Arc::new(RwLock::new(Vec::new())),
batch_end: Arc::new(RwLock::new(IndexMap::new())),
#[cfg(feature = "artifact-graph")]
artifact_commands: Arc::new(RwLock::new(Vec::new())),
ids_of_async_commands,
default_planes: Default::default(),
session_data,
stats: Default::default(),
async_tasks: AsyncTasks::new(),
})
}
}
@ -382,9 +390,10 @@ impl EngineManager for EngineConnection {
}
fn responses(&self) -> Arc<RwLock<IndexMap<Uuid, WebSocketResponse>>> {
self.responses.clone()
self.responses.responses.clone()
}
#[cfg(feature = "artifact-graph")]
fn artifact_commands(&self) -> Arc<RwLock<Vec<ArtifactCommand>>> {
self.artifact_commands.clone()
}
@ -393,6 +402,10 @@ impl EngineManager for EngineConnection {
self.ids_of_async_commands.clone()
}
fn async_tasks(&self) -> AsyncTasks {
self.async_tasks.clone()
}
fn stats(&self) -> &EngineStats {
&self.stats
}
@ -483,9 +496,19 @@ impl EngineManager for EngineConnection {
}));
}
}
// We pop off the responses to cleanup our mappings.
if let Some(resp) = self.responses.write().await.shift_remove(&id) {
return Ok(resp);
#[cfg(feature = "artifact-graph")]
{
// We cannot pop here or it will break the artifact graph.
if let Some(resp) = self.responses.responses.read().await.get(&id) {
return Ok(resp.clone());
}
}
#[cfg(not(feature = "artifact-graph"))]
{
if let Some(resp) = self.responses.responses.write().await.shift_remove(&id) {
return Ok(resp);
}
}
}

View File

@ -16,11 +16,13 @@ use kittycad_modeling_cmds::{self as kcmc, websocket::ModelingCmdReq, ImportFile
use tokio::sync::RwLock;
use uuid::Uuid;
use super::EngineStats;
#[cfg(feature = "artifact-graph")]
use crate::execution::ArtifactCommand;
use crate::{
engine::{AsyncTasks, EngineStats},
errors::KclError,
exec::DefaultPlanes,
execution::{ArtifactCommand, IdGenerator},
execution::IdGenerator,
SourceRange,
};
@ -28,12 +30,14 @@ use crate::{
pub struct EngineConnection {
batch: Arc<RwLock<Vec<(WebSocketRequest, SourceRange)>>>,
batch_end: Arc<RwLock<IndexMap<uuid::Uuid, (WebSocketRequest, SourceRange)>>>,
#[cfg(feature = "artifact-graph")]
artifact_commands: Arc<RwLock<Vec<ArtifactCommand>>>,
ids_of_async_commands: Arc<RwLock<IndexMap<Uuid, SourceRange>>>,
responses: Arc<RwLock<IndexMap<Uuid, WebSocketResponse>>>,
/// The default planes for the scene.
default_planes: Arc<RwLock<Option<DefaultPlanes>>>,
stats: EngineStats,
async_tasks: AsyncTasks,
}
impl EngineConnection {
@ -41,11 +45,13 @@ impl EngineConnection {
Ok(EngineConnection {
batch: Arc::new(RwLock::new(Vec::new())),
batch_end: Arc::new(RwLock::new(IndexMap::new())),
#[cfg(feature = "artifact-graph")]
artifact_commands: Arc::new(RwLock::new(Vec::new())),
ids_of_async_commands: Arc::new(RwLock::new(IndexMap::new())),
responses: Arc::new(RwLock::new(IndexMap::new())),
default_planes: Default::default(),
stats: Default::default(),
async_tasks: AsyncTasks::new(),
})
}
}
@ -68,6 +74,7 @@ impl crate::engine::EngineManager for EngineConnection {
&self.stats
}
#[cfg(feature = "artifact-graph")]
fn artifact_commands(&self) -> Arc<RwLock<Vec<ArtifactCommand>>> {
self.artifact_commands.clone()
}
@ -76,6 +83,10 @@ impl crate::engine::EngineManager for EngineConnection {
self.ids_of_async_commands.clone()
}
fn async_tasks(&self) -> AsyncTasks {
self.async_tasks.clone()
}
fn get_default_planes(&self) -> Arc<RwLock<Option<DefaultPlanes>>> {
self.default_planes.clone()
}

View File

@ -11,7 +11,7 @@ use uuid::Uuid;
use wasm_bindgen::prelude::*;
use crate::{
engine::EngineStats,
engine::{AsyncTasks, EngineStats},
errors::{KclError, KclErrorDetails},
execution::{ArtifactCommand, DefaultPlanes, IdGenerator},
SourceRange,
@ -55,6 +55,7 @@ pub struct EngineConnection {
/// The default planes for the scene.
default_planes: Arc<RwLock<Option<DefaultPlanes>>>,
stats: EngineStats,
async_tasks: AsyncTasks,
}
#[wasm_bindgen]
@ -128,6 +129,7 @@ impl EngineConnection {
ids_of_async_commands: Arc::new(RwLock::new(IndexMap::new())),
default_planes: Default::default(),
stats: Default::default(),
async_tasks: AsyncTasks::new(),
})
}
@ -270,6 +272,10 @@ impl crate::engine::EngineManager for EngineConnection {
self.ids_of_async_commands.clone()
}
fn async_tasks(&self) -> AsyncTasks {
self.async_tasks.clone()
}
fn get_default_planes(&self) -> Arc<RwLock<Option<DefaultPlanes>>> {
self.default_planes.clone()
}

View File

@ -1,5 +1,6 @@
//! Functions for managing engine communications.
pub mod async_tasks;
#[cfg(not(target_arch = "wasm32"))]
#[cfg(feature = "engine")]
pub mod conn;
@ -16,10 +17,12 @@ use std::{
},
};
pub use async_tasks::AsyncTasks;
use indexmap::IndexMap;
#[cfg(feature = "artifact-graph")]
use kcmc::id::ModelingCmdId;
use kcmc::{
each_cmd as mcmd,
id::ModelingCmdId,
length_unit::LengthUnit,
ok_response::OkModelingCmdResponse,
shared::Color,
@ -35,9 +38,11 @@ use serde::{Deserialize, Serialize};
use tokio::sync::RwLock;
use uuid::Uuid;
#[cfg(feature = "artifact-graph")]
use crate::execution::ArtifactCommand;
use crate::{
errors::{KclError, KclErrorDetails},
execution::{types::UnitLen, ArtifactCommand, DefaultPlanes, IdGenerator, Point3d},
execution::{types::UnitLen, DefaultPlanes, IdGenerator, Point3d},
SourceRange,
};
@ -74,11 +79,15 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
fn responses(&self) -> Arc<RwLock<IndexMap<Uuid, WebSocketResponse>>>;
/// Get the artifact commands that have accumulated so far.
#[cfg(feature = "artifact-graph")]
fn artifact_commands(&self) -> Arc<RwLock<Vec<ArtifactCommand>>>;
/// Get the ids of the async commands we are waiting for.
fn ids_of_async_commands(&self) -> Arc<RwLock<IndexMap<Uuid, SourceRange>>>;
/// Get the async tasks we are waiting for.
fn async_tasks(&self) -> AsyncTasks;
/// Take the batch of commands that have accumulated so far and clear them.
async fn take_batch(&self) -> Vec<(WebSocketRequest, SourceRange)> {
std::mem::take(&mut *self.batch().write().await)
@ -90,11 +99,13 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
}
/// Clear all artifact commands that have accumulated so far.
#[cfg(feature = "artifact-graph")]
async fn clear_artifact_commands(&self) {
self.artifact_commands().write().await.clear();
}
/// Take the artifact commands that have accumulated so far and clear them.
#[cfg(feature = "artifact-graph")]
async fn take_artifact_commands(&self) -> Vec<ArtifactCommand> {
std::mem::take(&mut *self.artifact_commands().write().await)
}
@ -145,6 +156,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
self.batch().write().await.clear();
self.batch_end().write().await.clear();
self.ids_of_async_commands().write().await.clear();
self.async_tasks().clear().await;
}
/// Send a modeling command and do not wait for the response message.
@ -186,6 +198,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
// Ensure artifact commands are cleared so that we don't accumulate them
// across runs.
#[cfg(feature = "artifact-graph")]
self.clear_artifact_commands().await;
// Do the after clear scene hook.
@ -253,6 +266,18 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
self.ensure_async_command_completed(id, Some(source_range)).await?;
}
// Make sure we check for all async tasks as well.
// The reason why we ignore the error here is that, if a model fillets an edge
// we previously called something on, it might no longer exist. In which case,
// the artifact graph won't care either if its gone since you can't select it
// anymore anyways.
if let Err(err) = self.async_tasks().join_all().await {
crate::log::logln!("Error waiting for async tasks (this is typically fine and just means that an edge became something else): {:?}", err);
}
// Flush the batch to make sure nothing remains.
self.flush_batch(true, SourceRange::default()).await?;
Ok(())
}
@ -273,6 +298,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
Ok(())
}
#[cfg(feature = "artifact-graph")]
async fn handle_artifact_command(
&self,
cmd: &ModelingCmd,
@ -413,6 +439,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
self.ids_of_async_commands().write().await.insert(id, source_range);
// Add to artifact commands.
#[cfg(feature = "artifact-graph")]
self.handle_artifact_command(cmd, id.into(), &HashMap::from([(id, source_range)]))
.await?;
@ -486,6 +513,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static {
}
// Do the artifact commands.
#[cfg(feature = "artifact-graph")]
for (req, _) in orig_requests.iter() {
match &req {
WebSocketRequest::ModelingCmdBatchReq(ModelingBatch { requests, .. }) => {

View File

@ -3,8 +3,10 @@ use serde::{Deserialize, Serialize};
use thiserror::Error;
use tower_lsp::lsp_types::{Diagnostic, DiagnosticSeverity};
#[cfg(feature = "artifact-graph")]
use crate::execution::{ArtifactCommand, ArtifactGraph, Operation};
use crate::{
execution::{ArtifactCommand, ArtifactGraph, DefaultPlanes, Operation},
execution::DefaultPlanes,
lsp::IntoDiagnostic,
modules::{ModulePath, ModuleSource},
source_range::SourceRange,
@ -126,8 +128,11 @@ impl From<KclErrorWithOutputs> for KclError {
#[serde(rename_all = "camelCase")]
pub struct KclErrorWithOutputs {
pub error: KclError,
#[cfg(feature = "artifact-graph")]
pub operations: Vec<Operation>,
#[cfg(feature = "artifact-graph")]
pub artifact_commands: Vec<ArtifactCommand>,
#[cfg(feature = "artifact-graph")]
pub artifact_graph: ArtifactGraph,
pub filenames: IndexMap<ModuleId, ModulePath>,
pub source_files: IndexMap<ModuleId, ModuleSource>,
@ -137,17 +142,20 @@ pub struct KclErrorWithOutputs {
impl KclErrorWithOutputs {
pub fn new(
error: KclError,
operations: Vec<Operation>,
artifact_commands: Vec<ArtifactCommand>,
artifact_graph: ArtifactGraph,
#[cfg(feature = "artifact-graph")] operations: Vec<Operation>,
#[cfg(feature = "artifact-graph")] artifact_commands: Vec<ArtifactCommand>,
#[cfg(feature = "artifact-graph")] artifact_graph: ArtifactGraph,
filenames: IndexMap<ModuleId, ModulePath>,
source_files: IndexMap<ModuleId, ModuleSource>,
default_planes: Option<DefaultPlanes>,
) -> Self {
Self {
error,
#[cfg(feature = "artifact-graph")]
operations,
#[cfg(feature = "artifact-graph")]
artifact_commands,
#[cfg(feature = "artifact-graph")]
artifact_graph,
filenames,
source_files,
@ -157,8 +165,11 @@ impl KclErrorWithOutputs {
pub fn no_outputs(error: KclError) -> Self {
Self {
error,
#[cfg(feature = "artifact-graph")]
operations: Default::default(),
#[cfg(feature = "artifact-graph")]
artifact_commands: Default::default(),
#[cfg(feature = "artifact-graph")]
artifact_graph: Default::default(),
filenames: Default::default(),
source_files: Default::default(),

View File

@ -3,23 +3,21 @@ use std::collections::HashMap;
use async_recursion::async_recursion;
use indexmap::IndexMap;
use super::{cad_op::Group, kcl_value::TypeDef, types::PrimitiveType};
use crate::{
errors::{KclError, KclErrorDetails},
execution::{
annotations,
cad_op::{OpArg, OpKclValue, Operation},
kcl_value::FunctionSource,
kcl_value::{FunctionSource, TypeDef},
memory,
state::ModuleState,
types::{NumericType, RuntimeType},
types::{NumericType, PrimitiveType, RuntimeType},
BodyType, EnvironmentRef, ExecState, ExecutorContext, KclValue, Metadata, PlaneType, TagEngineInfo,
TagIdentifier,
},
modules::{ModuleId, ModulePath, ModuleRepr},
parsing::ast::types::{
Annotation, ArrayExpression, ArrayRangeExpression, BinaryExpression, BinaryOperator, BinaryPart, BodyItem,
BoxNode, CallExpression, CallExpressionKw, Expr, FunctionExpression, IfExpression, ImportPath, ImportSelector,
CallExpression, CallExpressionKw, Expr, FunctionExpression, IfExpression, ImportPath, ImportSelector,
ItemVisibility, LiteralIdentifier, LiteralValue, MemberExpression, MemberObject, Name, Node, NodeRef,
ObjectExpression, PipeExpression, Program, TagDeclarator, Type, UnaryExpression, UnaryOperator,
},
@ -30,6 +28,11 @@ use crate::{
},
CompilationError,
};
#[cfg(feature = "artifact-graph")]
use crate::{
execution::cad_op::{Group, OpArg, OpKclValue, Operation},
parsing::ast::types::BoxNode,
};
enum StatementKind<'a> {
Declaration { name: &'a str },
@ -516,10 +519,11 @@ impl ExecutorContext {
async fn exec_module_for_result(
&self,
module_id: ModuleId,
module_name: &BoxNode<Name>,
#[cfg(feature = "artifact-graph")] module_name: &BoxNode<Name>,
exec_state: &mut ExecState,
source_range: SourceRange,
) -> Result<Option<KclValue>, KclError> {
#[cfg(feature = "artifact-graph")]
exec_state.global.operations.push(Operation::GroupBegin {
group: Group::ModuleInstance {
name: module_name.to_string(),
@ -566,6 +570,7 @@ impl ExecutorContext {
exec_state.global.module_infos[&module_id].restore_repr(repr);
#[cfg(feature = "artifact-graph")]
exec_state.global.operations.push(Operation::GroupEnd);
result
@ -619,8 +624,12 @@ impl ExecutorContext {
Expr::Name(name) => {
let value = name.get_result(exec_state, self).await?.clone();
if let KclValue::Module { value: module_id, meta } = value {
self.exec_module_for_result(module_id, name, exec_state, metadata.source_range)
.await?
self.exec_module_for_result(
module_id,
#[cfg(feature = "artifact-graph")] name,
exec_state,
metadata.source_range
).await?
.unwrap_or_else(|| {
exec_state.warn(CompilationError::err(
metadata.source_range,
@ -1340,6 +1349,7 @@ impl Node<CallExpressionKw> {
));
}
#[cfg(feature = "artifact-graph")]
let op = if func.feature_tree_operation() {
let op_labeled_args = args
.kw_args
@ -1389,6 +1399,7 @@ impl Node<CallExpressionKw> {
let result = func.std_lib_fn()(exec_state, args).await;
exec_state.mut_stack().pop_env();
#[cfg(feature = "artifact-graph")]
if let Some(mut op) = op {
op.set_std_lib_call_is_error(result.is_err());
// Track call operation. We do this after the call
@ -1398,6 +1409,7 @@ impl Node<CallExpressionKw> {
// so we need to build the op before the call.
exec_state.global.operations.push(op);
}
result
}?;
@ -1426,6 +1438,7 @@ impl Node<CallExpressionKw> {
e.add_source_ranges(vec![callsite])
})?;
#[cfg(feature = "artifact-graph")]
if matches!(fn_src, FunctionSource::User { .. }) {
// Track return operation.
exec_state.global.operations.push(Operation::GroupEnd);
@ -1478,6 +1491,7 @@ impl Node<CallExpression> {
));
}
#[cfg(feature = "artifact-graph")]
let op = if func.feature_tree_operation() {
let op_labeled_args = func
.args(false)
@ -1514,6 +1528,7 @@ impl Node<CallExpression> {
let result = func.std_lib_fn()(exec_state, args).await;
exec_state.mut_stack().pop_env();
#[cfg(feature = "artifact-graph")]
if let Some(mut op) = op {
op.set_std_lib_call_is_error(result.is_err());
// Track call operation. We do this after the call
@ -1537,6 +1552,7 @@ impl Node<CallExpression> {
let func = fn_name.get_result(exec_state, ctx).await?.clone();
// Track call operation.
#[cfg(feature = "artifact-graph")]
exec_state.global.operations.push(Operation::GroupBegin {
group: Group::FunctionCall {
name: Some(fn_name.to_string()),
@ -1576,6 +1592,7 @@ impl Node<CallExpression> {
})?;
// Track return operation.
#[cfg(feature = "artifact-graph")]
exec_state.global.operations.push(Operation::GroupEnd);
Ok(result)
@ -1671,7 +1688,7 @@ fn update_memory_for_tags_of_geometry(result: &mut KclValue, exec_state: &mut Ex
let sketches_to_update: Vec<_> = exec_state
.stack()
.find_keys_in_current_env(|v| match v {
KclValue::Sketch { value: sk } => sk.artifact_id == value.sketch.artifact_id,
KclValue::Sketch { value: sk } => sk.original_id == value.sketch.original_id,
_ => false,
})
.cloned()
@ -2391,6 +2408,7 @@ impl FunctionSource {
}
}
#[cfg(feature = "artifact-graph")]
let op = if props.include_in_feature_tree {
let op_labeled_args = args
.kw_args
@ -2418,6 +2436,7 @@ impl FunctionSource {
let result = func(exec_state, args).await;
exec_state.mut_stack().pop_env();
#[cfg(feature = "artifact-graph")]
if let Some(mut op) = op {
op.set_std_lib_call_is_error(result.is_err());
// Track call operation. We do this after the call
@ -2436,25 +2455,28 @@ impl FunctionSource {
}
FunctionSource::User { ast, memory, .. } => {
// Track call operation.
let op_labeled_args = args
.kw_args
.labeled
.iter()
.map(|(k, arg)| (k.clone(), OpArg::new(OpKclValue::from(&arg.value), arg.source_range)))
.collect();
exec_state.global.operations.push(Operation::GroupBegin {
group: Group::FunctionCall {
name: fn_name.clone(),
function_source_range: ast.as_source_range(),
unlabeled_arg: args
.kw_args
.unlabeled
.as_ref()
.map(|arg| OpArg::new(OpKclValue::from(&arg.value), arg.source_range)),
labeled_args: op_labeled_args,
},
source_range: callsite,
});
#[cfg(feature = "artifact-graph")]
{
let op_labeled_args = args
.kw_args
.labeled
.iter()
.map(|(k, arg)| (k.clone(), OpArg::new(OpKclValue::from(&arg.value), arg.source_range)))
.collect();
exec_state.global.operations.push(Operation::GroupBegin {
group: Group::FunctionCall {
name: fn_name.clone(),
function_source_range: ast.as_source_range(),
unlabeled_arg: args
.kw_args
.unlabeled
.as_ref()
.map(|arg| OpArg::new(OpKclValue::from(&arg.value), arg.source_range)),
labeled_args: op_labeled_args,
},
source_range: callsite,
});
}
call_user_defined_function_kw(fn_name.as_deref(), args.kw_args, *memory, ast, exec_state, ctx).await
}

View File

@ -8,11 +8,11 @@ use parse_display::{Display, FromStr};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[cfg(feature = "artifact-graph")]
use crate::execution::ArtifactId;
use crate::{
errors::KclError,
execution::{
types::NumericType, ArtifactId, ExecState, ExecutorContext, Metadata, TagEngineInfo, TagIdentifier, UnitLen,
},
execution::{types::NumericType, ExecState, ExecutorContext, Metadata, TagEngineInfo, TagIdentifier, UnitLen},
parsing::ast::types::{Node, NodeRef, TagDeclarator, TagNode},
std::{args::TyF64, sketch::PlaneData},
};
@ -255,6 +255,7 @@ pub struct Helix {
/// The id of the helix.
pub value: uuid::Uuid,
/// The artifact ID.
#[cfg(feature = "artifact-graph")]
pub artifact_id: ArtifactId,
/// Number of revolutions.
pub revolutions: f64,
@ -276,6 +277,7 @@ pub struct Plane {
/// The id of the plane.
pub id: uuid::Uuid,
/// The artifact ID.
#[cfg(feature = "artifact-graph")]
pub artifact_id: ArtifactId,
// The code for the plane either a string or custom.
pub value: PlaneType,
@ -455,6 +457,7 @@ impl Plane {
match value {
PlaneData::XY => Plane {
id,
#[cfg(feature = "artifact-graph")]
artifact_id: id.into(),
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
x_axis: Point3d::new(1.0, 0.0, 0.0, UnitLen::Mm),
@ -464,6 +467,7 @@ impl Plane {
},
PlaneData::NegXY => Plane {
id,
#[cfg(feature = "artifact-graph")]
artifact_id: id.into(),
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
x_axis: Point3d::new(-1.0, 0.0, 0.0, UnitLen::Mm),
@ -473,6 +477,7 @@ impl Plane {
},
PlaneData::XZ => Plane {
id,
#[cfg(feature = "artifact-graph")]
artifact_id: id.into(),
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
x_axis: Point3d::new(1.0, 0.0, 0.0, UnitLen::Mm),
@ -482,6 +487,7 @@ impl Plane {
},
PlaneData::NegXZ => Plane {
id,
#[cfg(feature = "artifact-graph")]
artifact_id: id.into(),
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
x_axis: Point3d::new(-1.0, 0.0, 0.0, UnitLen::Mm),
@ -491,6 +497,7 @@ impl Plane {
},
PlaneData::YZ => Plane {
id,
#[cfg(feature = "artifact-graph")]
artifact_id: id.into(),
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
x_axis: Point3d::new(0.0, 1.0, 0.0, UnitLen::Mm),
@ -500,6 +507,7 @@ impl Plane {
},
PlaneData::NegYZ => Plane {
id,
#[cfg(feature = "artifact-graph")]
artifact_id: id.into(),
origin: Point3d::new(0.0, 0.0, 0.0, UnitLen::Mm),
x_axis: Point3d::new(0.0, -1.0, 0.0, UnitLen::Mm),
@ -511,6 +519,7 @@ impl Plane {
let id = exec_state.next_uuid();
Plane {
id,
#[cfg(feature = "artifact-graph")]
artifact_id: id.into(),
origin,
x_axis,
@ -536,6 +545,7 @@ pub struct Face {
/// The id of the face.
pub id: uuid::Uuid,
/// The artifact ID.
#[cfg(feature = "artifact-graph")]
pub artifact_id: ArtifactId,
/// The tag of the face.
pub value: String,
@ -589,6 +599,7 @@ pub struct Sketch {
pub tags: IndexMap<String, TagIdentifier>,
/// The original id of the sketch. This stays the same even if the sketch is
/// is sketched on face etc.
#[cfg(feature = "artifact-graph")]
pub artifact_id: ArtifactId,
#[ts(skip)]
pub original_id: uuid::Uuid,
@ -752,6 +763,7 @@ pub struct Solid {
/// The id of the solid.
pub id: uuid::Uuid,
/// The artifact ID of the solid. Unlike `id`, this doesn't change.
#[cfg(feature = "artifact-graph")]
pub artifact_id: ArtifactId,
/// The extrude surfaces.
pub value: Vec<ExtrudeSurface>,

View File

@ -262,6 +262,7 @@ impl KclValue {
}
}
#[cfg(feature = "artifact-graph")]
pub(crate) fn function_def_source_range(&self) -> Option<SourceRange> {
let KclValue::Function {
value: FunctionSource::User { ast, .. },

View File

@ -3,11 +3,13 @@
use std::{path::PathBuf, sync::Arc};
use anyhow::Result;
#[cfg(feature = "artifact-graph")]
pub use artifact::{
Artifact, ArtifactCommand, ArtifactGraph, ArtifactId, CodeRef, StartSketchOnFace, StartSketchOnPlane,
};
use cache::OldAstState;
pub use cache::{bust_cache, clear_mem_cache};
#[cfg(feature = "artifact-graph")]
pub use cad_op::Operation;
pub use geometry::*;
pub use id_generator::IdGenerator;
@ -26,11 +28,12 @@ use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
pub use state::{ExecState, MetaSettings};
#[cfg(feature = "artifact-graph")]
use crate::execution::artifact::build_artifact_graph;
use crate::{
engine::EngineManager,
errors::{KclError, KclErrorDetails},
execution::{
artifact::build_artifact_graph,
cache::{CacheInformation, CacheResult},
types::{UnitAngle, UnitLen},
},
@ -43,8 +46,10 @@ use crate::{
};
pub(crate) mod annotations;
#[cfg(feature = "artifact-graph")]
mod artifact;
pub(crate) mod cache;
#[cfg(feature = "artifact-graph")]
mod cad_op;
mod exec_ast;
mod geometry;
@ -64,10 +69,13 @@ pub struct ExecOutcome {
pub variables: IndexMap<String, KclValue>,
/// Operations that have been performed in execution order, for display in
/// the Feature Tree.
#[cfg(feature = "artifact-graph")]
pub operations: Vec<Operation>,
/// Output commands to allow building the artifact graph by the caller.
#[cfg(feature = "artifact-graph")]
pub artifact_commands: Vec<ArtifactCommand>,
/// Output artifact graph.
#[cfg(feature = "artifact-graph")]
pub artifact_graph: ArtifactGraph,
/// Non-fatal errors and warnings.
pub errors: Vec<CompilationError>,
@ -567,7 +575,7 @@ impl ExecutorContext {
let mut mem = exec_state.stack().clone();
let module_infos = exec_state.global.module_infos.clone();
let outcome = exec_state.to_mock_wasm_outcome(result.0).await;
let outcome = exec_state.to_mock_exec_outcome(result.0).await;
mem.squash_env(result.0);
cache::write_old_memory((mem, module_infos)).await;
@ -635,13 +643,13 @@ impl ExecutorContext {
})
.await;
let outcome = old_state.to_wasm_outcome(result_env).await;
let outcome = old_state.to_exec_outcome(result_env).await;
return Ok(outcome);
}
(true, program)
}
CacheResult::NoAction(false) => {
let outcome = old_state.to_wasm_outcome(result_env).await;
let outcome = old_state.to_exec_outcome(result_env).await;
return Ok(outcome);
}
};
@ -691,7 +699,7 @@ impl ExecutorContext {
})
.await;
let outcome = exec_state.to_wasm_outcome(result.0).await;
let outcome = exec_state.to_exec_outcome(result.0).await;
Ok(outcome)
}
@ -721,6 +729,12 @@ impl ExecutorContext {
exec_state: &mut ExecState,
) -> Result<(EnvironmentRef, Option<ModelingSessionData>), KclErrorWithOutputs> {
exec_state.add_root_module_contents(program);
#[cfg(test)]
{
exec_state.single_threaded = true;
}
self.eval_prelude(exec_state, SourceRange::synthetic())
.await
.map_err(KclErrorWithOutputs::no_outputs)?;
@ -760,6 +774,7 @@ impl ExecutorContext {
)
.await
.map_err(|err| {
println!("Error: {err:?}");
let module_id_to_module_path: IndexMap<ModuleId, ModulePath> = exec_state
.global
.path_to_source_id
@ -769,8 +784,11 @@ impl ExecutorContext {
KclErrorWithOutputs::new(
err,
#[cfg(feature = "artifact-graph")]
exec_state.global.operations.clone(),
#[cfg(feature = "artifact-graph")]
exec_state.global.artifact_commands.clone(),
#[cfg(feature = "artifact-graph")]
exec_state.global.artifact_graph.clone(),
module_id_to_module_path,
exec_state.global.id_to_source.clone(),
@ -789,8 +807,11 @@ impl ExecutorContext {
KclErrorWithOutputs::new(
err,
#[cfg(feature = "artifact-graph")]
exec_state.global.operations.clone(),
#[cfg(feature = "artifact-graph")]
exec_state.global.artifact_commands.clone(),
#[cfg(feature = "artifact-graph")]
exec_state.global.artifact_graph.clone(),
module_id_to_module_path,
exec_state.global.id_to_source.clone(),
@ -934,8 +955,11 @@ impl ExecutorContext {
return Err(KclErrorWithOutputs::new(
e,
#[cfg(feature = "artifact-graph")]
exec_state.global.operations.clone(),
#[cfg(feature = "artifact-graph")]
exec_state.global.artifact_commands.clone(),
#[cfg(feature = "artifact-graph")]
exec_state.global.artifact_graph.clone(),
module_id_to_module_path,
exec_state.global.id_to_source.clone(),
@ -986,8 +1010,11 @@ impl ExecutorContext {
KclErrorWithOutputs::new(
e,
#[cfg(feature = "artifact-graph")]
exec_state.global.operations.clone(),
#[cfg(feature = "artifact-graph")]
exec_state.global.artifact_commands.clone(),
#[cfg(feature = "artifact-graph")]
exec_state.global.artifact_graph.clone(),
module_id_to_module_path,
exec_state.global.id_to_source.clone(),
@ -1036,32 +1063,39 @@ impl ExecutorContext {
// and should be dropped.
self.engine.clear_queues().await;
// Move the artifact commands and responses to simplify cache management
// and error creation.
exec_state
.global
.artifact_commands
.extend(self.engine.take_artifact_commands().await);
exec_state
.global
.artifact_responses
.extend(self.engine.take_responses().await);
// Build the artifact graph.
match build_artifact_graph(
&exec_state.global.artifact_commands,
&exec_state.global.artifact_responses,
program,
&exec_state.global.artifacts,
) {
Ok(artifact_graph) => {
exec_state.global.artifact_graph = artifact_graph;
exec_result.map(|(_, env_ref, _)| env_ref)
}
Err(err) => {
// Prefer the exec error.
exec_result.and(Err(err))
#[cfg(feature = "artifact-graph")]
{
// Move the artifact commands and responses to simplify cache management
// and error creation.
exec_state
.global
.artifact_commands
.extend(self.engine.take_artifact_commands().await);
exec_state
.global
.artifact_responses
.extend(self.engine.take_responses().await);
// Build the artifact graph.
match build_artifact_graph(
&exec_state.global.artifact_commands,
&exec_state.global.artifact_responses,
program,
&exec_state.global.artifacts,
) {
Ok(artifact_graph) => {
exec_state.global.artifact_graph = artifact_graph;
exec_result.map(|(_, env_ref, _)| env_ref)
}
Err(err) => {
// Prefer the exec error.
exec_result.and(Err(err))
}
}
}
#[cfg(not(feature = "artifact-graph"))]
{
exec_result.map(|(_, env_ref, _)| env_ref)
}
}
/// 'Import' std::prelude as the outermost scope.

View File

@ -2,20 +2,23 @@ use std::sync::Arc;
use anyhow::Result;
use indexmap::IndexMap;
#[cfg(feature = "artifact-graph")]
use kittycad_modeling_cmds::websocket::WebSocketResponse;
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use uuid::Uuid;
use super::types::NumericType;
#[cfg(feature = "artifact-graph")]
use crate::execution::{Artifact, ArtifactCommand, ArtifactGraph, ArtifactId, Operation};
use crate::{
errors::{KclError, KclErrorDetails, Severity},
execution::{
annotations,
id_generator::IdGenerator,
memory::{ProgramMemory, Stack},
types, Artifact, ArtifactCommand, ArtifactGraph, ArtifactId, EnvironmentRef, ExecOutcome, ExecutorSettings,
KclValue, Operation, UnitAngle, UnitLen,
types,
types::NumericType,
EnvironmentRef, ExecOutcome, ExecutorSettings, KclValue, UnitAngle, UnitLen,
},
modules::{ModuleId, ModuleInfo, ModuleLoader, ModulePath, ModuleRepr, ModuleSource},
parsing::ast::types::Annotation,
@ -29,6 +32,9 @@ pub struct ExecState {
pub(super) global: GlobalState,
pub(super) mod_local: ModuleState,
pub(super) exec_context: Option<super::ExecutorContext>,
/// If we should not parallelize execution.
#[cfg(test)]
pub single_threaded: bool,
}
pub type ModuleInfoMap = IndexMap<ModuleId, ModuleInfo>;
@ -42,20 +48,25 @@ pub(super) struct GlobalState {
/// Map from module ID to module info.
pub module_infos: ModuleInfoMap,
/// Output map of UUIDs to artifacts.
#[cfg(feature = "artifact-graph")]
pub artifacts: IndexMap<ArtifactId, Artifact>,
/// Output commands to allow building the artifact graph by the caller.
/// These are accumulated in the [`ExecutorContext`] but moved here for
/// convenience of the execution cache.
#[cfg(feature = "artifact-graph")]
pub artifact_commands: Vec<ArtifactCommand>,
/// Responses from the engine for `artifact_commands`. We need to cache
/// this so that we can build the artifact graph. These are accumulated in
/// the [`ExecutorContext`] but moved here for convenience of the execution
/// cache.
#[cfg(feature = "artifact-graph")]
pub artifact_responses: IndexMap<Uuid, WebSocketResponse>,
/// Output artifact graph.
#[cfg(feature = "artifact-graph")]
pub artifact_graph: ArtifactGraph,
/// Operations that have been performed in execution order, for display in
/// the Feature Tree.
#[cfg(feature = "artifact-graph")]
pub operations: Vec<Operation>,
/// Module loader.
pub mod_loader: ModuleLoader,
@ -85,6 +96,8 @@ impl ExecState {
global: GlobalState::new(&exec_context.settings),
mod_local: ModuleState::new(None, ProgramMemory::new(), Default::default()),
exec_context: Some(exec_context.clone()),
#[cfg(test)]
single_threaded: false,
}
}
@ -95,6 +108,8 @@ impl ExecState {
global,
mod_local: ModuleState::new(None, ProgramMemory::new(), Default::default()),
exec_context: Some(exec_context.clone()),
#[cfg(test)]
single_threaded: false,
};
}
@ -116,7 +131,7 @@ impl ExecState {
/// Convert to execution outcome when running in WebAssembly. We want to
/// reduce the amount of data that crosses the WASM boundary as much as
/// possible.
pub async fn to_wasm_outcome(self, main_ref: EnvironmentRef) -> ExecOutcome {
pub async fn to_exec_outcome(self, main_ref: EnvironmentRef) -> ExecOutcome {
// Fields are opt-in so that we don't accidentally leak private internal
// state when we add more to ExecState.
ExecOutcome {
@ -125,8 +140,11 @@ impl ExecState {
.find_all_in_env(main_ref)
.map(|(k, v)| (k.clone(), v.clone()))
.collect(),
#[cfg(feature = "artifact-graph")]
operations: self.global.operations,
#[cfg(feature = "artifact-graph")]
artifact_commands: self.global.artifact_commands,
#[cfg(feature = "artifact-graph")]
artifact_graph: self.global.artifact_graph,
errors: self.global.errors,
filenames: self
@ -143,7 +161,7 @@ impl ExecState {
}
}
pub async fn to_mock_wasm_outcome(self, main_ref: EnvironmentRef) -> ExecOutcome {
pub async fn to_mock_exec_outcome(self, main_ref: EnvironmentRef) -> ExecOutcome {
// Fields are opt-in so that we don't accidentally leak private internal
// state when we add more to ExecState.
ExecOutcome {
@ -152,8 +170,11 @@ impl ExecState {
.find_all_in_env(main_ref)
.map(|(k, v)| (k.clone(), v.clone()))
.collect(),
#[cfg(feature = "artifact-graph")]
operations: Default::default(),
#[cfg(feature = "artifact-graph")]
artifact_commands: Default::default(),
#[cfg(feature = "artifact-graph")]
artifact_graph: Default::default(),
errors: self.global.errors,
filenames: Default::default(),
@ -181,6 +202,7 @@ impl ExecState {
&mut self.mod_local.id_generator
}
#[cfg(feature = "artifact-graph")]
pub(crate) fn add_artifact(&mut self, artifact: Artifact) {
let id = artifact.id();
self.global.artifacts.insert(id, artifact);
@ -271,10 +293,15 @@ impl GlobalState {
let mut global = GlobalState {
path_to_source_id: Default::default(),
module_infos: Default::default(),
#[cfg(feature = "artifact-graph")]
artifacts: Default::default(),
#[cfg(feature = "artifact-graph")]
artifact_commands: Default::default(),
#[cfg(feature = "artifact-graph")]
artifact_responses: Default::default(),
#[cfg(feature = "artifact-graph")]
artifact_graph: Default::default(),
#[cfg(feature = "artifact-graph")]
operations: Default::default(),
mod_loader: Default::default(),
errors: Default::default(),

View File

@ -1051,6 +1051,7 @@ impl KclValue {
let id = exec_state.mod_local.id_generator.next_uuid();
let plane = Plane {
id,
#[cfg(feature = "artifact-graph")]
artifact_id: id.into(),
origin,
x_axis,

View File

@ -81,7 +81,7 @@ pub mod walk;
mod wasm;
pub use coredump::CoreDump;
pub use engine::{EngineManager, EngineStats};
pub use engine::{AsyncTasks, EngineManager, EngineStats};
pub use errors::{
CompilationError, ConnectionError, ExecError, KclError, KclErrorWithOutputs, Report, ReportWithOutputs,
};
@ -102,7 +102,9 @@ pub use unparser::{recast_dir, walk_dir};
// Rather than make executor public and make lots of it pub(crate), just re-export into a new module.
// Ideally we wouldn't export these things at all, they should only be used for testing.
pub mod exec {
pub use crate::execution::{ArtifactCommand, DefaultPlanes, IdGenerator, KclValue, PlaneType, Sketch};
#[cfg(feature = "artifact-graph")]
pub use crate::execution::ArtifactCommand;
pub use crate::execution::{DefaultPlanes, IdGenerator, KclValue, PlaneType, Sketch};
}
#[cfg(target_arch = "wasm32")]

View File

@ -1,16 +1,17 @@
#[cfg(feature = "artifact-graph")]
use std::collections::HashMap;
use std::{
collections::HashMap,
panic::{catch_unwind, AssertUnwindSafe},
path::{Path, PathBuf},
};
use insta::rounded_redaction;
use crate::{errors::KclError, ModuleId};
#[cfg(feature = "artifact-graph")]
use crate::{
errors::KclError,
exec::ArtifactCommand,
execution::{ArtifactGraph, Operation},
ModuleId,
};
mod kcl_samples;
@ -156,9 +157,12 @@ async fn execute_test(test: &Test, render_to_png: bool, export_step: bool) {
let ast = crate::Program::parse_no_errs(&input).unwrap();
// Run the program.
let exec_res =
crate::test_server::execute_and_snapshot_ast(ast, Some(test.input_dir.join(&test.entry_point)), export_step)
.await;
let exec_res = crate::test_server::execute_and_snapshot_ast_single_threaded(
ast,
Some(test.input_dir.join(&test.entry_point)),
export_step,
)
.await;
match exec_res {
Ok((exec_state, env_ref, png, step)) => {
let fail_path = test.output_dir.join("execution_error.snap");
@ -178,7 +182,7 @@ async fn execute_test(test: &Test, render_to_png: bool, export_step: bool) {
panic!("Step data was empty");
}
}
let outcome = exec_state.to_wasm_outcome(env_ref).await;
let outcome = exec_state.to_exec_outcome(env_ref).await;
let mem_result = catch_unwind(AssertUnwindSafe(|| {
assert_snapshot(test, "Variables in memory after executing", || {
@ -196,6 +200,7 @@ async fn execute_test(test: &Test, render_to_png: bool, export_step: bool) {
})
}));
#[cfg(feature = "artifact-graph")]
assert_common_snapshots(
test,
outcome.operations,
@ -230,6 +235,7 @@ async fn execute_test(test: &Test, render_to_png: bool, export_step: bool) {
})
}));
#[cfg(feature = "artifact-graph")]
assert_common_snapshots(test, error.operations, error.artifact_commands, error.artifact_graph);
err_result.unwrap();
}
@ -246,6 +252,7 @@ async fn execute_test(test: &Test, render_to_png: bool, export_step: bool) {
/// Assert snapshots that should happen both when KCL execution succeeds and
/// when it results in an error.
#[cfg(feature = "artifact-graph")]
fn assert_common_snapshots(
test: &Test,
operations: Vec<Operation>,
@ -1560,6 +1567,7 @@ mod mike_stress_test {
/// Test that KCL is executed correctly.
#[tokio::test(flavor = "multi_thread")]
#[ignore = "when kurt made the artifact graph lots of commands, this became super slow and sometimes the engine will just die, turn this back on when we can parallelize the simulation tests with snapshots deterministically"]
async fn kcl_test_execute() {
super::execute(TEST_NAME, true).await
}

View File

@ -9,14 +9,13 @@ use rgba_simple::Hex;
use schemars::JsonSchema;
use serde::Serialize;
use super::args::TyF64;
use crate::{
errors::{KclError, KclErrorDetails},
execution::{types::RuntimeType, ExecState, KclValue, SolidOrImportedGeometry},
std::Args,
};
use super::args::TyF64;
lazy_static::lazy_static! {
static ref HEX_REGEX: Regex = Regex::new(r"^#[0-9a-fA-F]{6}$").unwrap();
}

View File

@ -3,14 +3,13 @@
use anyhow::Result;
use kcl_derive_docs::stdlib;
use super::args::TyF64;
use crate::{
errors::{KclError, KclErrorDetails},
execution::{ExecState, KclValue},
std::Args,
};
use super::args::TyF64;
async fn _assert(value: bool, message: &str, args: &Args) -> Result<(), KclError> {
if !value {
return Err(KclError::Type(KclErrorDetails {

View File

@ -1,8 +1,7 @@
//! Types for referencing an axis or edge.
use crate::std::fillet::EdgeReference;
use super::args::TyF64;
use crate::std::fillet::EdgeReference;
/// A 2D axis or tagged edge.
#[derive(Debug, Clone, PartialEq)]

View File

@ -5,6 +5,7 @@ use kcl_derive_docs::stdlib;
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::CutType, ModelingCmd};
use kittycad_modeling_cmds as kcmc;
use super::args::TyF64;
use crate::{
errors::{KclError, KclErrorDetails},
execution::{
@ -15,8 +16,6 @@ use crate::{
std::{fillet::EdgeReference, Args},
};
use super::args::TyF64;
pub(crate) const DEFAULT_TOLERANCE: f64 = 0.0000001;
/// Create chamfers on tagged paths.

View File

@ -293,14 +293,20 @@ async fn inner_clone(
let mut new_sketch = sketch.clone();
new_sketch.id = new_id;
new_sketch.original_id = new_id;
new_sketch.artifact_id = new_id.into();
#[cfg(feature = "artifact-graph")]
{
new_sketch.artifact_id = new_id.into();
}
GeometryWithImportedGeometry::Sketch(new_sketch)
}
GeometryWithImportedGeometry::Solid(solid) => {
let mut new_solid = solid.clone();
new_solid.id = new_id;
new_solid.sketch.original_id = new_id;
new_solid.artifact_id = new_id.into();
#[cfg(feature = "artifact-graph")]
{
new_solid.artifact_id = new_id.into();
}
GeometryWithImportedGeometry::Solid(new_solid)
}
};
@ -343,7 +349,10 @@ async fn fix_tags_and_references(
// Make the sketch id the new geometry id.
solid.sketch.id = new_geometry_id;
solid.sketch.original_id = new_geometry_id;
solid.sketch.artifact_id = new_geometry_id.into();
#[cfg(feature = "artifact-graph")]
{
solid.sketch.artifact_id = new_geometry_id.into();
}
fix_sketch_tags_and_references(&mut solid.sketch, &entity_id_map, exec_state).await?;
@ -368,6 +377,7 @@ async fn fix_tags_and_references(
// information.
let new_solid = do_post_extrude(
&solid.sketch,
#[cfg(feature = "artifact-graph")]
new_geometry_id.into(),
crate::std::args::TyF64::new(
solid.height,
@ -547,8 +557,10 @@ clonedCube = clone(cube)
assert_ne!(cube.id, cloned_cube.id);
assert_ne!(cube.original_id, cloned_cube.original_id);
#[cfg(feature = "artifact-graph")]
assert_ne!(cube.artifact_id, cloned_cube.artifact_id);
#[cfg(feature = "artifact-graph")]
assert_eq!(cloned_cube.artifact_id, cloned_cube.id.into());
assert_eq!(cloned_cube.original_id, cloned_cube.id);
@ -597,9 +609,12 @@ clonedCube = clone(cube)
assert_ne!(cube.id, cloned_cube.id);
assert_ne!(cube.sketch.id, cloned_cube.sketch.id);
assert_ne!(cube.sketch.original_id, cloned_cube.sketch.original_id);
#[cfg(feature = "artifact-graph")]
assert_ne!(cube.artifact_id, cloned_cube.artifact_id);
#[cfg(feature = "artifact-graph")]
assert_ne!(cube.sketch.artifact_id, cloned_cube.sketch.artifact_id);
#[cfg(feature = "artifact-graph")]
assert_eq!(cloned_cube.artifact_id, cloned_cube.id.into());
for (path, cloned_path) in cube.sketch.paths.iter().zip(cloned_cube.sketch.paths.iter()) {
@ -711,9 +726,12 @@ clonedCube = clone(cube)
assert_ne!(cube.id, cloned_cube.id);
assert_ne!(cube.sketch.id, cloned_cube.sketch.id);
assert_ne!(cube.sketch.original_id, cloned_cube.sketch.original_id);
#[cfg(feature = "artifact-graph")]
assert_ne!(cube.artifact_id, cloned_cube.artifact_id);
#[cfg(feature = "artifact-graph")]
assert_ne!(cube.sketch.artifact_id, cloned_cube.sketch.artifact_id);
#[cfg(feature = "artifact-graph")]
assert_eq!(cloned_cube.artifact_id, cloned_cube.id.into());
for (path, cloned_path) in cube.sketch.paths.iter().zip(cloned_cube.sketch.paths.iter()) {
@ -783,9 +801,12 @@ clonedCube = clone(cube)
assert_ne!(cube.id, cloned_cube.id);
assert_ne!(cube.sketch.id, cloned_cube.sketch.id);
assert_ne!(cube.sketch.original_id, cloned_cube.sketch.original_id);
#[cfg(feature = "artifact-graph")]
assert_ne!(cube.artifact_id, cloned_cube.artifact_id);
#[cfg(feature = "artifact-graph")]
assert_ne!(cube.sketch.artifact_id, cloned_cube.sketch.artifact_id);
#[cfg(feature = "artifact-graph")]
assert_eq!(cloned_cube.artifact_id, cloned_cube.id.into());
for (path, cloned_path) in cube.sketch.paths.iter().zip(cloned_cube.sketch.paths.iter()) {
@ -883,9 +904,12 @@ clonedCube = clone(cube)
assert_ne!(cube.id, cloned_cube.id);
assert_ne!(cube.sketch.id, cloned_cube.sketch.id);
assert_ne!(cube.sketch.original_id, cloned_cube.sketch.original_id);
#[cfg(feature = "artifact-graph")]
assert_ne!(cube.artifact_id, cloned_cube.artifact_id);
#[cfg(feature = "artifact-graph")]
assert_ne!(cube.sketch.artifact_id, cloned_cube.sketch.artifact_id);
#[cfg(feature = "artifact-graph")]
assert_eq!(cloned_cube.artifact_id, cloned_cube.id.into());
for (path, cloned_path) in cube.sketch.paths.iter().zip(cloned_cube.sketch.paths.iter()) {

View File

@ -10,14 +10,13 @@ use kittycad_modeling_cmds::{
websocket::OkWebSocketResponseData,
};
use super::{args::TyF64, DEFAULT_TOLERANCE};
use crate::{
errors::{KclError, KclErrorDetails},
execution::{types::RuntimeType, ExecState, KclValue, Solid},
std::Args,
};
use super::{args::TyF64, DEFAULT_TOLERANCE};
/// Union two or more solids into a single solid.
pub async fn union(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let solids: Vec<Solid> =

View File

@ -16,18 +16,16 @@ use kcmc::{
use kittycad_modeling_cmds::{self as kcmc};
use uuid::Uuid;
use super::args::TyF64;
#[cfg(feature = "artifact-graph")]
use crate::execution::ArtifactId;
use crate::{
errors::{KclError, KclErrorDetails},
execution::{
types::RuntimeType, ArtifactId, ExecState, ExtrudeSurface, GeoMeta, KclValue, Path, Sketch, SketchSurface,
Solid,
},
execution::{types::RuntimeType, ExecState, ExtrudeSurface, GeoMeta, KclValue, Path, Sketch, SketchSurface, Solid},
parsing::ast::types::TagNode,
std::Args,
};
use super::args::TyF64;
/// Extrudes by a given amount.
pub async fn extrude(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let sketches = args.get_unlabeled_kw_arg_typed("sketches", &RuntimeType::sketches(), exec_state)?;
@ -212,6 +210,7 @@ async fn inner_extrude(
solids.push(
do_post_extrude(
sketch,
#[cfg(feature = "artifact-graph")]
id.into(),
length.clone(),
false,
@ -237,7 +236,7 @@ pub(crate) struct NamedCapTags<'a> {
pub(crate) async fn do_post_extrude<'a>(
sketch: &Sketch,
solid_id: ArtifactId,
#[cfg(feature = "artifact-graph")] solid_id: ArtifactId,
length: TyF64,
sectional: bool,
named_cap_tags: &'a NamedCapTags<'a>,
@ -297,6 +296,7 @@ pub(crate) async fn do_post_extrude<'a>(
// are the ones that work with GetOppositeEdge and GetNextAdjacentEdge, aka the n sides in the sweep.
// So here we're figuring out that n number as yielded_sides_count here,
// making sure that circle() calls count but close() don't (no length)
#[cfg(feature = "artifact-graph")]
let count_of_first_set_of_faces_if_sectional = if sectional {
sketch
.paths
@ -311,6 +311,8 @@ pub(crate) async fn do_post_extrude<'a>(
usize::MAX
};
// Only do this if we need the artifact graph.
#[cfg(feature = "artifact-graph")]
for (curve_id, face_id) in face_infos
.iter()
.filter(|face_info| face_info.cap == ExtrusionFaceCapType::None)
@ -327,28 +329,21 @@ pub(crate) async fn do_post_extrude<'a>(
// So, there's no need to await them.
// Instead, the Typescript codebases (which handles WebSocket sends when compiled via Wasm)
// uses this to build the artifact graph, which the UI needs.
let opposite_edge_id = args
.send_modeling_cmd(
exec_state.next_uuid(),
ModelingCmd::from(mcmd::Solid3dGetOppositeEdge {
edge_id: curve_id,
object_id: sketch.id,
face_id,
}),
)
.await?;
let next_adjacent_edge_id = args
.send_modeling_cmd(
exec_state.next_uuid(),
ModelingCmd::from(mcmd::Solid3dGetNextAdjacentEdge {
edge_id: curve_id,
object_id: sketch.id,
face_id,
}),
)
.await?;
//
// Spawn this in the background, because we don't care about the result.
// Only the artifact graph needs at the end.
let args_cloned = args.clone();
let opposite_edge_uuid = exec_state.next_uuid();
let next_adjacent_edge_uuid = exec_state.next_uuid();
let get_all_edge_faces_opposite_uuid = exec_state.next_uuid();
let get_all_edge_faces_next_uuid = exec_state.next_uuid();
#[cfg(test)]
let single_threaded = exec_state.single_threaded;
#[cfg(not(test))]
let single_threaded = false;
// Get faces for original edge
// Since this one is batched we can just run it.
args.batch_modeling_cmd(
exec_state.next_uuid(),
ModelingCmd::from(mcmd::Solid3dGetAllEdgeFaces {
@ -358,36 +353,56 @@ pub(crate) async fn do_post_extrude<'a>(
)
.await?;
// Get faces for opposite edge
if let OkWebSocketResponseData::Modeling {
modeling_response: OkModelingCmdResponse::Solid3dGetOppositeEdge(opposite_edge),
} = opposite_edge_id
{
args.batch_modeling_cmd(
exec_state.next_uuid(),
ModelingCmd::from(mcmd::Solid3dGetAllEdgeFaces {
edge_id: opposite_edge.edge,
object_id: sketch.id,
}),
if !single_threaded {
args.ctx
.engine
.async_tasks()
.spawn(get_bg_edge_info_opposite(
args_cloned.clone(),
curve_id,
sketch.id,
face_id,
opposite_edge_uuid,
get_all_edge_faces_opposite_uuid,
single_threaded,
))
.await;
args.ctx
.engine
.async_tasks()
.spawn(get_bg_edge_info_next(
args_cloned,
curve_id,
sketch.id,
face_id,
next_adjacent_edge_uuid,
get_all_edge_faces_next_uuid,
single_threaded,
))
.await;
} else {
get_bg_edge_info_opposite(
args_cloned.clone(),
curve_id,
sketch.id,
face_id,
opposite_edge_uuid,
get_all_edge_faces_opposite_uuid,
single_threaded,
)
.await?;
}
// Get faces for next adjacent edge
if let OkWebSocketResponseData::Modeling {
modeling_response: OkModelingCmdResponse::Solid3dGetNextAdjacentEdge(next_adjacent_edge),
} = next_adjacent_edge_id
{
if let Some(edge_id) = next_adjacent_edge.edge {
args.batch_modeling_cmd(
exec_state.next_uuid(),
ModelingCmd::from(mcmd::Solid3dGetAllEdgeFaces {
edge_id,
object_id: sketch.id,
}),
)
.await?;
}
get_bg_edge_info_next(
args_cloned,
curve_id,
sketch.id,
face_id,
next_adjacent_edge_uuid,
get_all_edge_faces_next_uuid,
single_threaded,
)
.await?;
}
}
@ -509,6 +524,7 @@ pub(crate) async fn do_post_extrude<'a>(
// that we passed in to the function, but it's actually the id of the
// sketch.
id: sketch.id,
#[cfg(feature = "artifact-graph")]
artifact_id: solid_id,
value: new_value,
meta: sketch.meta.clone(),
@ -559,3 +575,101 @@ async fn analyze_faces(exec_state: &mut ExecState, args: &Args, face_infos: Vec<
}
faces
}
#[cfg(feature = "artifact-graph")]
async fn send_fn(args: &Args, id: uuid::Uuid, cmd: ModelingCmd, single_threaded: bool) -> Result<(), KclError> {
if single_threaded {
// In single threaded mode, we can safely batch the command.
args.batch_modeling_cmd(id, cmd).await
} else {
// We cannot batch this call, because otherwise it might batch after say
// a shell that makes this edge no longer relevant.
args.send_modeling_cmd(id, cmd).await.map(|_| ())
}
}
#[cfg(feature = "artifact-graph")]
#[allow(clippy::too_many_arguments)]
async fn get_bg_edge_info_next(
args: Args,
curve_id: uuid::Uuid,
sketch_id: uuid::Uuid,
face_id: uuid::Uuid,
edge_uuid: uuid::Uuid,
get_all_edge_faces_uuid: uuid::Uuid,
single_threaded: bool,
) -> Result<(), KclError> {
let next_adjacent_edge_id = args
.send_modeling_cmd(
edge_uuid,
ModelingCmd::from(mcmd::Solid3dGetNextAdjacentEdge {
edge_id: curve_id,
object_id: sketch_id,
face_id,
}),
)
.await?;
// Get faces for next adjacent edge
if let OkWebSocketResponseData::Modeling {
modeling_response: OkModelingCmdResponse::Solid3dGetNextAdjacentEdge(next_adjacent_edge),
} = next_adjacent_edge_id
{
if let Some(edge_id) = next_adjacent_edge.edge {
send_fn(
&args,
get_all_edge_faces_uuid,
ModelingCmd::from(mcmd::Solid3dGetAllEdgeFaces {
edge_id,
object_id: sketch_id,
}),
single_threaded,
)
.await?;
}
}
Ok(())
}
#[cfg(feature = "artifact-graph")]
#[allow(clippy::too_many_arguments)]
async fn get_bg_edge_info_opposite(
args: Args,
curve_id: uuid::Uuid,
sketch_id: uuid::Uuid,
face_id: uuid::Uuid,
edge_uuid: uuid::Uuid,
get_all_edge_faces_uuid: uuid::Uuid,
single_threaded: bool,
) -> Result<(), KclError> {
let opposite_edge_id = args
.send_modeling_cmd(
edge_uuid,
ModelingCmd::from(mcmd::Solid3dGetOppositeEdge {
edge_id: curve_id,
object_id: sketch_id,
face_id,
}),
)
.await?;
// Get faces for opposite edge
if let OkWebSocketResponseData::Modeling {
modeling_response: OkModelingCmdResponse::Solid3dGetOppositeEdge(opposite_edge),
} = opposite_edge_id
{
send_fn(
&args,
get_all_edge_faces_uuid,
ModelingCmd::from(mcmd::Solid3dGetAllEdgeFaces {
edge_id: opposite_edge.edge,
object_id: sketch_id,
}),
single_threaded,
)
.await?;
}
Ok(())
}

View File

@ -4,6 +4,7 @@ use anyhow::Result;
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, ModelingCmd};
use kittycad_modeling_cmds::{self as kcmc, shared::Point3d};
use super::args::TyF64;
use crate::{
errors::KclError,
execution::{
@ -13,8 +14,6 @@ use crate::{
std::{axis_or_reference::Axis3dOrEdgeReference, Args},
};
use super::args::TyF64;
/// Create a helix.
pub async fn helix(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let angle_start: TyF64 = args.get_kw_arg_typed("angleStart", &RuntimeType::degrees(), exec_state)?;
@ -111,6 +110,7 @@ async fn inner_helix(
let helix_result = Box::new(HelixValue {
value: id,
#[cfg(feature = "artifact-graph")]
artifact_id: id.into(),
revolutions,
angle_start,

View File

@ -176,6 +176,7 @@ async fn inner_loft(
Ok(Box::new(
do_post_extrude(
&sketch,
#[cfg(feature = "artifact-graph")]
id.into(),
TyF64::new(0.0, NumericType::mm()),
false,

View File

@ -175,6 +175,7 @@ async fn inner_revolve(
solids.push(
do_post_extrude(
sketch,
#[cfg(feature = "artifact-graph")]
id.into(),
TyF64::new(0.0, NumericType::mm()),
false,

View File

@ -5,14 +5,13 @@ use kcl_derive_docs::stdlib;
use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, ModelingCmd};
use kittycad_modeling_cmds as kcmc;
use super::args::TyF64;
use crate::{
errors::{KclError, KclErrorDetails},
execution::{types::RuntimeType, ExecState, KclValue, Solid},
std::{sketch::FaceTag, Args},
};
use super::args::TyF64;
/// Create a shell.
pub async fn shell(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let solids = args.get_unlabeled_kw_arg_typed("solids", &RuntimeType::solids(), exec_state)?;

View File

@ -12,21 +12,22 @@ use parse_display::{Display, FromStr};
use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use super::utils::{point_to_len_unit, point_to_mm, untype_point, untyped_point_to_mm};
use crate::execution::types::ArrayLen;
#[cfg(feature = "artifact-graph")]
use crate::execution::{Artifact, ArtifactId, CodeRef, StartSketchOnFace, StartSketchOnPlane};
use crate::{
errors::{KclError, KclErrorDetails},
execution::{
types::{NumericType, PrimitiveType, RuntimeType, UnitLen},
Artifact, ArtifactId, BasePath, CodeRef, ExecState, Face, GeoMeta, KclValue, Path, Plane, Point2d, Point3d,
Sketch, SketchSurface, Solid, StartSketchOnFace, StartSketchOnPlane, TagEngineInfo, TagIdentifier,
types::{ArrayLen, NumericType, PrimitiveType, RuntimeType, UnitLen},
BasePath, ExecState, Face, GeoMeta, KclValue, Path, Plane, Point2d, Point3d, Sketch, SketchSurface, Solid,
TagEngineInfo, TagIdentifier,
},
parsing::ast::types::TagNode,
std::{
args::{Args, TyF64},
utils::{
arc_center_and_end, get_tangential_arc_to_info, get_x_component, get_y_component,
intersection_with_parallel_line, TangentialArcInfoInput,
intersection_with_parallel_line, point_to_len_unit, point_to_mm, untype_point, untyped_point_to_mm,
TangentialArcInfoInput,
},
},
};
@ -981,7 +982,7 @@ pub async fn start_sketch_on(exec_state: &mut ExecState, args: Args) -> Result<K
/// Start a new 2-dimensional sketch on a specific plane or face.
///
/// ### Sketch on Face Behavior
/// ## Sketch on Face Behavior
///
/// There are some important behaviors to understand when sketching on a face:
///
@ -1180,12 +1181,15 @@ async fn inner_start_sketch_on(
Ok(SketchSurface::Plane(plane))
} else {
// Create artifact used only by the UI, not the engine.
let id = exec_state.next_uuid();
exec_state.add_artifact(Artifact::StartSketchOnPlane(StartSketchOnPlane {
id: ArtifactId::from(id),
plane_id: plane.artifact_id,
code_ref: CodeRef::placeholder(args.source_range),
}));
#[cfg(feature = "artifact-graph")]
{
let id = exec_state.next_uuid();
exec_state.add_artifact(Artifact::StartSketchOnPlane(StartSketchOnPlane {
id: ArtifactId::from(id),
plane_id: plane.artifact_id,
code_ref: CodeRef::placeholder(args.source_range),
}));
}
Ok(SketchSurface::Plane(plane))
}
@ -1199,13 +1203,16 @@ async fn inner_start_sketch_on(
};
let face = start_sketch_on_face(solid, tag, exec_state, args).await?;
// Create artifact used only by the UI, not the engine.
let id = exec_state.next_uuid();
exec_state.add_artifact(Artifact::StartSketchOnFace(StartSketchOnFace {
id: ArtifactId::from(id),
face_id: face.artifact_id,
code_ref: CodeRef::placeholder(args.source_range),
}));
#[cfg(feature = "artifact-graph")]
{
// Create artifact used only by the UI, not the engine.
let id = exec_state.next_uuid();
exec_state.add_artifact(Artifact::StartSketchOnFace(StartSketchOnFace {
id: ArtifactId::from(id),
face_id: face.artifact_id,
code_ref: CodeRef::placeholder(args.source_range),
}));
}
Ok(SketchSurface::Face(face))
}
@ -1222,6 +1229,7 @@ async fn start_sketch_on_face(
Ok(Box::new(Face {
id: extrude_plane_id,
#[cfg(feature = "artifact-graph")]
artifact_id: extrude_plane_id.into(),
value: tag.to_string(),
// TODO: get this from the extrude plane data.
@ -1401,6 +1409,7 @@ pub(crate) async fn inner_start_profile(
let sketch = Sketch {
id: path_id,
original_id: path_id,
#[cfg(feature = "artifact-graph")]
artifact_id: path_id.into(),
on: sketch_surface.clone(),
paths: vec![],

View File

@ -195,6 +195,7 @@ async fn inner_sweep(
solids.push(
do_post_extrude(
sketch,
#[cfg(feature = "artifact-graph")]
id.into(),
TyF64::new(0.0, NumericType::mm()),
sectional.unwrap_or(false),

View File

@ -11,14 +11,13 @@ use kcmc::{
};
use kittycad_modeling_cmds as kcmc;
use super::args::TyF64;
use crate::{
errors::{KclError, KclErrorDetails},
execution::{types::RuntimeType, ExecState, KclValue, SolidOrSketchOrImportedGeometry},
std::Args,
};
use super::args::TyF64;
/// Scale a solid or a sketch.
pub async fn scale(exec_state: &mut ExecState, args: Args) -> Result<KclValue, KclError> {
let objects = args.get_unlabeled_kw_arg_typed(

View File

@ -2,9 +2,8 @@ use std::f64::consts::PI;
use kittycad_modeling_cmds::shared::Angle;
use crate::execution::types::{NumericType, UnitLen};
use super::args::TyF64;
use crate::execution::types::{NumericType, UnitLen};
pub(crate) fn untype_point(p: [TyF64; 2]) -> ([f64; 2], NumericType) {
let (x, y, ty) = NumericType::combine_eq(p[0].clone(), p[1].clone());
@ -236,9 +235,10 @@ pub fn calculate_circle_from_3_points(points: [Coords2d; 3]) -> CircleParams {
#[cfg(test)]
mod tests {
// Here you can bring your functions into scope
use std::f64::consts::TAU;
use approx::assert_relative_eq;
use pretty_assertions::assert_eq;
use std::f64::consts::TAU;
use super::{calculate_circle_center, get_x_component, get_y_component, Angle};

View File

@ -21,7 +21,7 @@ pub struct RequestBody {
pub async fn execute_and_snapshot(code: &str, current_file: Option<PathBuf>) -> Result<image::DynamicImage, ExecError> {
let ctx = new_context(true, current_file).await?;
let program = Program::parse_no_errs(code).map_err(KclErrorWithOutputs::no_outputs)?;
let res = do_execute_and_snapshot(&ctx, program)
let res = do_execute_and_snapshot(&ctx, program, false)
.await
.map(|(_, _, snap)| snap)
.map_err(|err| err.error);
@ -31,13 +31,14 @@ pub async fn execute_and_snapshot(code: &str, current_file: Option<PathBuf>) ->
/// Executes a kcl program and takes a snapshot of the result.
/// This returns the bytes of the snapshot.
pub async fn execute_and_snapshot_ast(
#[cfg(test)]
pub async fn execute_and_snapshot_ast_single_threaded(
ast: Program,
current_file: Option<PathBuf>,
with_export_step: bool,
) -> Result<(ExecState, EnvironmentRef, image::DynamicImage, Option<Vec<u8>>), ExecErrorWithState> {
let ctx = new_context(true, current_file).await?;
let (exec_state, env, img) = match do_execute_and_snapshot(&ctx, ast).await {
let (exec_state, env, img) = match do_execute_and_snapshot(&ctx, ast, true).await {
Ok((exec_state, env_ref, img)) => (exec_state, env_ref, img),
Err(err) => {
// If there was an error executing the program, return it.
@ -72,7 +73,7 @@ pub async fn execute_and_snapshot_no_auth(
) -> Result<(image::DynamicImage, EnvironmentRef), ExecError> {
let ctx = new_context(false, current_file).await?;
let program = Program::parse_no_errs(code).map_err(KclErrorWithOutputs::no_outputs)?;
let res = do_execute_and_snapshot(&ctx, program)
let res = do_execute_and_snapshot(&ctx, program, false)
.await
.map(|(_, env_ref, snap)| (snap, env_ref))
.map_err(|err| err.error);
@ -83,12 +84,15 @@ pub async fn execute_and_snapshot_no_auth(
async fn do_execute_and_snapshot(
ctx: &ExecutorContext,
program: Program,
single_threaded: bool,
) -> Result<(ExecState, EnvironmentRef, image::DynamicImage), ExecErrorWithState> {
let mut exec_state = ExecState::new(ctx);
let result = ctx
.run_single_threaded(&program, &mut exec_state)
.await
.map_err(|err| ExecErrorWithState::new(err.into(), exec_state.clone()))?;
let result = if single_threaded {
ctx.run_single_threaded(&program, &mut exec_state).await
} else {
ctx.run(&program, &mut exec_state).await
}
.map_err(|err| ExecErrorWithState::new(err.into(), exec_state.clone()))?;
for e in exec_state.errors() {
if e.severity.is_err() {
return Err(ExecErrorWithState::new(

View File

@ -188,8 +188,10 @@ pub(crate) async fn import_universe(
continue;
}
let source_range = SourceRange::from(import_stmt.clone());
let attrs = &import_stmt.outer_attrs;
let module_id = ctx
.open_module(&import_stmt.path, &[], exec_state, Default::default())
.open_module(&import_stmt.path, attrs, exec_state, source_range)
.await?;
let repr = {

View File

@ -241,6 +241,15 @@ description: Artifact commands angled_line.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -251,6 +260,15 @@ description: Artifact commands angled_line.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -283,19 +301,19 @@ description: Artifact commands angled_line.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -330,19 +348,19 @@ description: Artifact commands angled_line.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -377,19 +395,19 @@ description: Artifact commands angled_line.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -424,19 +442,19 @@ description: Artifact commands angled_line.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -467,15 +485,6 @@ description: Artifact commands angled_line.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -486,6 +495,15 @@ description: Artifact commands angled_line.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -496,24 +514,6 @@ description: Artifact commands angled_line.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -21,10 +21,17 @@ flowchart LR
17["Cap Start"]
18["Cap End"]
19["SweepEdge Opposite"]
20["SweepEdge Opposite"]
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
23["SweepEdge Opposite"]
24["SweepEdge Adjacent"]
25["SweepEdge Opposite"]
26["SweepEdge Adjacent"]
27["SweepEdge Opposite"]
28["SweepEdge Adjacent"]
29["SweepEdge Opposite"]
30["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 --- 4
@ -35,21 +42,28 @@ flowchart LR
2 ---- 10
2 --- 9
3 --- 16
3 --- 23
3 --- 29
3 --- 30
3 x--> 17
4 --- 15
4 --- 22
4 --- 27
4 --- 28
4 x--> 17
5 --- 14
5 --- 21
5 --- 25
5 --- 26
5 x--> 17
6 --- 13
6 --- 20
6 --- 23
6 --- 24
6 x--> 17
7 --- 12
7 --- 19
7 --- 21
7 --- 22
7 x--> 17
8 --- 11
8 --- 19
8 --- 20
8 x--> 17
10 --- 11
10 --- 12
@ -64,14 +78,35 @@ flowchart LR
10 --- 21
10 --- 22
10 --- 23
19 <--x 12
10 --- 24
10 --- 25
10 --- 26
10 --- 27
10 --- 28
10 --- 29
10 --- 30
19 <--x 11
19 <--x 18
20 <--x 13
20 <--x 18
21 <--x 14
20 <--x 11
20 <--x 16
21 <--x 12
21 <--x 18
22 <--x 15
22 <--x 18
23 <--x 16
22 <--x 11
22 <--x 12
23 <--x 13
23 <--x 18
24 <--x 12
24 <--x 13
25 <--x 14
25 <--x 18
26 <--x 13
26 <--x 14
27 <--x 15
27 <--x 18
28 <--x 14
28 <--x 15
29 <--x 16
29 <--x 18
30 <--x 15
30 <--x 16
```

View File

@ -224,6 +224,15 @@ description: Artifact commands artifact_graph_example_code1.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -234,6 +243,15 @@ description: Artifact commands artifact_graph_example_code1.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -266,19 +284,19 @@ description: Artifact commands artifact_graph_example_code1.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -313,19 +331,19 @@ description: Artifact commands artifact_graph_example_code1.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -356,15 +374,6 @@ description: Artifact commands artifact_graph_example_code1.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -375,6 +384,15 @@ description: Artifact commands artifact_graph_example_code1.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -394,24 +412,6 @@ description: Artifact commands artifact_graph_example_code1.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -569,6 +569,15 @@ description: Artifact commands artifact_graph_example_code1.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -579,6 +588,15 @@ description: Artifact commands artifact_graph_example_code1.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -611,19 +629,19 @@ description: Artifact commands artifact_graph_example_code1.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -654,15 +672,6 @@ description: Artifact commands artifact_graph_example_code1.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -673,6 +682,15 @@ description: Artifact commands artifact_graph_example_code1.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -683,24 +701,6 @@ description: Artifact commands artifact_graph_example_code1.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -9,13 +9,13 @@ flowchart LR
7["Segment<br>[239, 246, 0]"]
8[Solid2d]
end
subgraph path20 [Path]
20["Path<br>[390, 417, 0]"]
21["Segment<br>[423, 441, 0]"]
22["Segment<br>[447, 466, 0]"]
23["Segment<br>[472, 528, 0]"]
24["Segment<br>[534, 541, 0]"]
25[Solid2d]
subgraph path25 [Path]
25["Path<br>[390, 417, 0]"]
26["Segment<br>[423, 441, 0]"]
27["Segment<br>[447, 466, 0]"]
28["Segment<br>[472, 528, 0]"]
29["Segment<br>[534, 541, 0]"]
30[Solid2d]
end
1["Plane<br>[12, 31, 0]"]
9["Sweep Extrusion<br>[260, 292, 0]"]
@ -26,17 +26,26 @@ flowchart LR
14["Cap Start"]
15["Cap End"]
16["SweepEdge Opposite"]
17["SweepEdge Opposite"]
17["SweepEdge Adjacent"]
18["SweepEdge Opposite"]
19["EdgeCut Fillet<br>[298, 332, 0]"]
26["Sweep Extrusion<br>[555, 585, 0]"]
27[Wall]
28[Wall]
29[Wall]
30["Cap End"]
31["SweepEdge Opposite"]
32["SweepEdge Opposite"]
33["StartSketchOnFace<br>[345, 384, 0]"]
19["SweepEdge Adjacent"]
20["SweepEdge Opposite"]
21["SweepEdge Adjacent"]
22["SweepEdge Opposite"]
23["SweepEdge Adjacent"]
24["EdgeCut Fillet<br>[298, 332, 0]"]
31["Sweep Extrusion<br>[555, 585, 0]"]
32[Wall]
33[Wall]
34[Wall]
35["Cap End"]
36["SweepEdge Opposite"]
37["SweepEdge Adjacent"]
38["SweepEdge Opposite"]
39["SweepEdge Adjacent"]
40["SweepEdge Opposite"]
41["SweepEdge Adjacent"]
42["StartSketchOnFace<br>[345, 384, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -46,16 +55,21 @@ flowchart LR
2 ---- 9
2 --- 8
3 --- 13
3 --- 18
3 --- 22
3 --- 23
3 x--> 15
4 --- 12
4 --- 17
4 --- 19
4 --- 20
4 --- 21
4 --- 24
4 x--> 15
5 --- 11
5 --- 16
5 --- 18
5 --- 19
5 x--> 15
6 --- 10
6 --- 16
6 --- 17
6 x--> 15
9 --- 10
9 --- 11
@ -66,36 +80,67 @@ flowchart LR
9 --- 16
9 --- 17
9 --- 18
11 --- 20
16 <--x 11
9 --- 19
9 --- 20
9 --- 21
9 --- 22
9 --- 23
11 --- 25
16 <--x 10
16 <--x 14
17 <--x 12
17 <--x 14
18 <--x 13
17 <--x 10
17 <--x 13
18 <--x 11
18 <--x 14
20 --- 21
20 --- 22
20 --- 23
20 --- 24
20 ---- 26
20 --- 25
21 --- 29
21 --- 32
19 <--x 10
19 <--x 11
20 <--x 12
20 <--x 14
21 <--x 11
22 --- 28
22 --- 31
22 <--x 11
23 --- 27
23 <--x 11
26 --- 27
26 --- 28
26 --- 29
26 --- 30
26 --- 31
26 --- 32
31 <--x 28
31 <--x 30
32 <--x 29
32 <--x 30
11 <--x 33
21 <--x 12
22 <--x 13
22 <--x 14
23 <--x 12
23 <--x 13
25 --- 26
25 --- 27
25 --- 28
25 --- 29
25 ---- 31
25 --- 30
26 --- 34
26 --- 40
26 --- 41
26 <--x 11
27 --- 33
27 --- 38
27 --- 39
27 <--x 11
28 --- 32
28 --- 36
28 --- 37
28 <--x 11
31 --- 32
31 --- 33
31 --- 34
31 --- 35
31 --- 36
31 --- 37
31 --- 38
31 --- 39
31 --- 40
31 --- 41
36 <--x 32
36 <--x 35
37 <--x 32
37 <--x 34
38 <--x 33
38 <--x 35
39 <--x 32
39 <--x 33
40 <--x 34
40 <--x 35
41 <--x 33
41 <--x 34
11 <--x 42
```

View File

@ -207,6 +207,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -292,15 +310,6 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -311,6 +320,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -330,24 +348,6 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -493,6 +493,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -503,6 +512,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -535,19 +553,19 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -578,15 +596,6 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -597,6 +606,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -616,24 +634,6 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -779,6 +779,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -789,6 +798,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -821,19 +839,19 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -864,15 +882,6 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -883,6 +892,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -902,24 +920,6 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1065,6 +1065,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1075,6 +1084,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1107,19 +1125,19 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1150,15 +1168,6 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1169,6 +1178,15 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1179,24 +1197,6 @@ description: Artifact commands artifact_graph_sketch_on_face_etc.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -8,29 +8,29 @@ flowchart LR
6["Segment<br>[191, 198, 0]"]
7[Solid2d]
end
subgraph path16 [Path]
16["Path<br>[300, 330, 0]"]
17["Segment<br>[336, 354, 0]"]
18["Segment<br>[360, 379, 0]"]
19["Segment<br>[385, 441, 0]"]
20["Segment<br>[447, 454, 0]"]
21[Solid2d]
subgraph path20 [Path]
20["Path<br>[300, 330, 0]"]
21["Segment<br>[336, 354, 0]"]
22["Segment<br>[360, 379, 0]"]
23["Segment<br>[385, 441, 0]"]
24["Segment<br>[447, 454, 0]"]
25[Solid2d]
end
subgraph path29 [Path]
29["Path<br>[556, 583, 0]"]
30["Segment<br>[589, 623, 0]"]
31["Segment<br>[629, 648, 0]"]
32["Segment<br>[654, 710, 0]"]
33["Segment<br>[716, 723, 0]"]
34[Solid2d]
subgraph path37 [Path]
37["Path<br>[556, 583, 0]"]
38["Segment<br>[589, 623, 0]"]
39["Segment<br>[629, 648, 0]"]
40["Segment<br>[654, 710, 0]"]
41["Segment<br>[716, 723, 0]"]
42[Solid2d]
end
subgraph path42 [Path]
42["Path<br>[825, 852, 0]"]
43["Segment<br>[858, 878, 0]"]
44["Segment<br>[884, 905, 0]"]
45["Segment<br>[911, 967, 0]"]
46["Segment<br>[973, 980, 0]"]
47[Solid2d]
subgraph path54 [Path]
54["Path<br>[825, 852, 0]"]
55["Segment<br>[858, 878, 0]"]
56["Segment<br>[884, 905, 0]"]
57["Segment<br>[911, 967, 0]"]
58["Segment<br>[973, 980, 0]"]
59[Solid2d]
end
1["Plane<br>[12, 29, 0]"]
8["Sweep Extrusion<br>[212, 242, 0]"]
@ -40,31 +40,47 @@ flowchart LR
12["Cap Start"]
13["Cap End"]
14["SweepEdge Opposite"]
15["SweepEdge Opposite"]
22["Sweep Extrusion<br>[468, 498, 0]"]
23[Wall]
24[Wall]
25[Wall]
26["Cap End"]
27["SweepEdge Opposite"]
28["SweepEdge Opposite"]
35["Sweep Extrusion<br>[737, 767, 0]"]
36[Wall]
37[Wall]
38[Wall]
39["Cap End"]
40["SweepEdge Opposite"]
41["SweepEdge Opposite"]
48["Sweep Extrusion<br>[994, 1024, 0]"]
49[Wall]
50[Wall]
51[Wall]
52["Cap End"]
53["SweepEdge Opposite"]
54["SweepEdge Opposite"]
55["StartSketchOnFace<br>[255, 294, 0]"]
56["StartSketchOnFace<br>[511, 550, 0]"]
57["StartSketchOnFace<br>[780, 819, 0]"]
15["SweepEdge Adjacent"]
16["SweepEdge Opposite"]
17["SweepEdge Adjacent"]
18["SweepEdge Opposite"]
19["SweepEdge Adjacent"]
26["Sweep Extrusion<br>[468, 498, 0]"]
27[Wall]
28[Wall]
29[Wall]
30["Cap End"]
31["SweepEdge Opposite"]
32["SweepEdge Adjacent"]
33["SweepEdge Opposite"]
34["SweepEdge Adjacent"]
35["SweepEdge Opposite"]
36["SweepEdge Adjacent"]
43["Sweep Extrusion<br>[737, 767, 0]"]
44[Wall]
45[Wall]
46[Wall]
47["Cap End"]
48["SweepEdge Opposite"]
49["SweepEdge Adjacent"]
50["SweepEdge Opposite"]
51["SweepEdge Adjacent"]
52["SweepEdge Opposite"]
53["SweepEdge Adjacent"]
60["Sweep Extrusion<br>[994, 1024, 0]"]
61[Wall]
62[Wall]
63[Wall]
64["Cap End"]
65["SweepEdge Opposite"]
66["SweepEdge Adjacent"]
67["SweepEdge Opposite"]
68["SweepEdge Adjacent"]
69["SweepEdge Opposite"]
70["SweepEdge Adjacent"]
71["StartSketchOnFace<br>[255, 294, 0]"]
72["StartSketchOnFace<br>[511, 550, 0]"]
73["StartSketchOnFace<br>[780, 819, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -73,12 +89,16 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 11
3 --- 15
3 --- 18
3 --- 19
3 x--> 12
4 --- 10
4 --- 14
4 --- 16
4 --- 17
4 x--> 12
5 --- 9
5 --- 14
5 --- 15
5 x--> 12
8 --- 9
8 --- 10
@ -87,86 +107,146 @@ flowchart LR
8 --- 13
8 --- 14
8 --- 15
10 --- 16
14 <--x 10
8 --- 16
8 --- 17
8 --- 18
8 --- 19
10 --- 20
14 <--x 9
14 <--x 13
15 <--x 9
15 <--x 11
15 <--x 13
16 --- 17
16 --- 18
16 --- 19
16 --- 20
16 ---- 22
16 --- 21
17 --- 25
17 --- 28
16 <--x 10
16 <--x 13
17 <--x 9
17 <--x 10
18 --- 24
18 --- 27
18 <--x 10
19 --- 23
18 <--x 11
18 <--x 13
19 <--x 10
22 --- 23
22 --- 24
22 --- 25
22 --- 26
22 --- 27
19 <--x 11
20 --- 21
20 --- 22
20 --- 23
20 --- 24
20 ---- 26
20 --- 25
21 --- 29
21 --- 35
21 --- 36
21 <--x 10
22 --- 28
22 --- 33
22 --- 34
22 <--x 10
23 --- 27
23 --- 31
23 --- 32
23 <--x 10
26 --- 27
26 --- 28
26 --- 29
27 <--x 24
27 <--x 26
28 <--x 25
28 <--x 26
29 --- 30
29 --- 31
29 --- 32
29 --- 33
29 ---- 35
29 --- 34
30 --- 38
30 --- 41
30 <--x 26
31 --- 37
31 --- 40
31 <--x 26
32 --- 36
32 <--x 26
35 --- 36
35 --- 37
35 --- 38
35 --- 39
35 --- 40
35 --- 41
38 --- 42
40 <--x 37
40 <--x 39
41 <--x 38
41 <--x 39
42 --- 43
42 --- 44
42 --- 45
42 --- 46
42 ---- 48
42 --- 47
26 --- 30
26 --- 31
26 --- 32
26 --- 33
26 --- 34
26 --- 35
26 --- 36
30 --- 37
31 <--x 27
31 <--x 30
32 <--x 27
32 <--x 29
33 <--x 28
33 <--x 30
34 <--x 27
34 <--x 28
35 <--x 29
35 <--x 30
36 <--x 28
36 <--x 29
37 --- 38
37 --- 39
37 --- 40
37 --- 41
37 ---- 43
37 --- 42
38 --- 46
38 --- 52
38 --- 53
38 <--x 30
39 --- 45
39 --- 50
39 --- 51
39 <--x 30
40 --- 44
40 --- 48
40 --- 49
40 <--x 30
43 --- 44
43 --- 45
43 --- 46
43 --- 47
43 --- 48
43 --- 49
43 --- 50
43 --- 51
43 --- 54
43 <--x 38
44 --- 50
44 --- 53
44 <--x 38
45 --- 49
45 <--x 38
48 --- 49
48 --- 50
48 --- 51
48 --- 52
48 --- 53
48 --- 54
53 <--x 50
53 <--x 52
54 <--x 51
54 <--x 52
10 <--x 55
26 <--x 56
38 <--x 57
43 --- 52
43 --- 53
46 --- 54
48 <--x 44
48 <--x 47
49 <--x 44
49 <--x 46
50 <--x 45
50 <--x 47
51 <--x 44
51 <--x 45
52 <--x 46
52 <--x 47
53 <--x 45
53 <--x 46
54 --- 55
54 --- 56
54 --- 57
54 --- 58
54 ---- 60
54 --- 59
55 --- 63
55 --- 69
55 --- 70
55 <--x 46
56 --- 62
56 --- 67
56 --- 68
56 <--x 46
57 --- 61
57 --- 65
57 --- 66
57 <--x 46
60 --- 61
60 --- 62
60 --- 63
60 --- 64
60 --- 65
60 --- 66
60 --- 67
60 --- 68
60 --- 69
60 --- 70
65 <--x 61
65 <--x 64
66 <--x 61
66 <--x 63
67 <--x 62
67 <--x 64
68 <--x 61
68 <--x 62
69 <--x 63
69 <--x 64
70 <--x 62
70 <--x 63
10 <--x 71
30 <--x 72
46 <--x 73
```

View File

@ -224,6 +224,15 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -234,6 +243,15 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -266,19 +284,19 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -313,19 +331,19 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -356,15 +374,6 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -375,6 +384,15 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -394,24 +412,6 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -607,6 +607,15 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -617,6 +626,15 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -649,19 +667,19 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -696,19 +714,19 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -739,15 +757,6 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -758,6 +767,15 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -768,24 +786,6 @@ description: Artifact commands assembly_mixed_units_cubes.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -9,14 +9,14 @@ flowchart LR
7["Segment<br>[255, 262, 6]"]
8[Solid2d]
end
subgraph path20 [Path]
20["Path<br>[76, 114, 7]"]
21["Segment<br>[120, 137, 7]"]
22["Segment<br>[143, 161, 7]"]
23["Segment<br>[167, 185, 7]"]
24["Segment<br>[191, 247, 7]"]
25["Segment<br>[253, 260, 7]"]
26[Solid2d]
subgraph path25 [Path]
25["Path<br>[76, 114, 7]"]
26["Segment<br>[120, 137, 7]"]
27["Segment<br>[143, 161, 7]"]
28["Segment<br>[167, 185, 7]"]
29["Segment<br>[191, 247, 7]"]
30["Segment<br>[253, 260, 7]"]
31[Solid2d]
end
1["Plane<br>[47, 66, 6]"]
9["Sweep Extrusion<br>[268, 290, 6]"]
@ -27,19 +27,29 @@ flowchart LR
14["Cap Start"]
15["Cap End"]
16["SweepEdge Opposite"]
17["SweepEdge Opposite"]
17["SweepEdge Adjacent"]
18["SweepEdge Opposite"]
19["Plane<br>[47, 66, 7]"]
27["Sweep Extrusion<br>[266, 288, 7]"]
28[Wall]
29[Wall]
30[Wall]
31[Wall]
32["Cap Start"]
33["Cap End"]
34["SweepEdge Opposite"]
35["SweepEdge Opposite"]
36["SweepEdge Opposite"]
19["SweepEdge Adjacent"]
20["SweepEdge Opposite"]
21["SweepEdge Adjacent"]
22["SweepEdge Opposite"]
23["SweepEdge Adjacent"]
24["Plane<br>[47, 66, 7]"]
32["Sweep Extrusion<br>[266, 288, 7]"]
33[Wall]
34[Wall]
35[Wall]
36[Wall]
37["Cap Start"]
38["Cap End"]
39["SweepEdge Opposite"]
40["SweepEdge Adjacent"]
41["SweepEdge Opposite"]
42["SweepEdge Adjacent"]
43["SweepEdge Opposite"]
44["SweepEdge Adjacent"]
45["SweepEdge Opposite"]
46["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 --- 4
@ -49,15 +59,20 @@ flowchart LR
2 ---- 9
2 --- 8
3 --- 13
3 --- 18
3 --- 22
3 --- 23
3 x--> 14
4 --- 12
4 --- 17
4 --- 20
4 --- 21
4 x--> 14
5 --- 11
5 --- 16
5 --- 18
5 --- 19
5 x--> 14
6 --- 10
6 --- 16
6 --- 17
6 x--> 14
9 --- 10
9 --- 11
@ -68,44 +83,79 @@ flowchart LR
9 --- 16
9 --- 17
9 --- 18
16 <--x 11
9 --- 19
9 --- 20
9 --- 21
9 --- 22
9 --- 23
16 <--x 10
16 <--x 15
17 <--x 12
17 <--x 15
18 <--x 13
17 <--x 10
17 <--x 13
18 <--x 11
18 <--x 15
19 --- 20
20 --- 21
20 --- 22
20 --- 23
20 --- 24
20 --- 25
20 ---- 27
20 --- 26
21 --- 31
21 --- 36
21 x--> 32
22 --- 30
22 --- 35
22 x--> 32
23 --- 29
23 --- 34
23 x--> 32
24 --- 28
24 x--> 32
27 --- 28
27 --- 29
27 --- 30
27 --- 31
27 --- 32
27 --- 33
27 --- 34
19 <--x 10
19 <--x 11
20 <--x 12
20 <--x 15
21 <--x 11
21 <--x 12
22 <--x 13
22 <--x 15
23 <--x 12
23 <--x 13
24 --- 25
25 --- 26
25 --- 27
25 --- 28
25 --- 29
25 --- 30
25 ---- 32
25 --- 31
26 --- 36
26 --- 45
26 --- 46
26 x--> 37
27 --- 35
27 --- 36
34 <--x 29
34 <--x 33
35 <--x 30
35 <--x 33
36 <--x 31
36 <--x 33
27 --- 43
27 --- 44
27 x--> 37
28 --- 34
28 --- 41
28 --- 42
28 x--> 37
29 --- 33
29 --- 39
29 --- 40
29 x--> 37
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
39 <--x 33
39 <--x 38
40 <--x 33
40 <--x 36
41 <--x 34
41 <--x 38
42 <--x 33
42 <--x 34
43 <--x 35
43 <--x 38
44 <--x 34
44 <--x 35
45 <--x 36
45 <--x 38
46 <--x 35
46 <--x 36
```

View File

@ -207,6 +207,15 @@ description: Artifact commands basic_fillet_cube_close_opposite.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands basic_fillet_cube_close_opposite.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands basic_fillet_cube_close_opposite.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -296,19 +314,19 @@ description: Artifact commands basic_fillet_cube_close_opposite.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -339,15 +357,6 @@ description: Artifact commands basic_fillet_cube_close_opposite.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -358,6 +367,15 @@ description: Artifact commands basic_fillet_cube_close_opposite.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -377,24 +395,6 @@ description: Artifact commands basic_fillet_cube_close_opposite.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -17,11 +17,15 @@ flowchart LR
13["Cap Start"]
14["Cap End"]
15["SweepEdge Opposite"]
16["SweepEdge Opposite"]
16["SweepEdge Adjacent"]
17["SweepEdge Opposite"]
18["SweepEdge Opposite"]
19["EdgeCut Fillet<br>[223, 283, 0]"]
20["EdgeCut Fillet<br>[223, 283, 0]"]
18["SweepEdge Adjacent"]
19["SweepEdge Opposite"]
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
23["EdgeCut Fillet<br>[223, 283, 0]"]
24["EdgeCut Fillet<br>[223, 283, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -30,17 +34,21 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 12
3 --- 17
3 --- 21
3 --- 22
3 x--> 13
4 --- 11
4 --- 16
4 --- 19
4 --- 20
4 x--> 13
5 --- 10
5 --- 15
5 --- 17
5 --- 18
5 x--> 13
6 --- 9
6 --- 18
6 --- 19
6 --- 15
6 --- 16
6 --- 23
6 x--> 13
8 --- 9
8 --- 10
@ -52,11 +60,23 @@ flowchart LR
8 --- 16
8 --- 17
8 --- 18
15 <--x 10
15 <--x 14
16 <--x 11
16 <--x 14
17 <--x 12
8 --- 19
8 --- 20
8 --- 21
8 --- 22
16 <--x 9
16 <--x 12
17 <--x 10
17 <--x 14
18 <--x 20
18 <--x 9
18 <--x 10
19 <--x 11
19 <--x 14
20 <--x 10
20 <--x 11
21 <--x 12
21 <--x 14
22 <--x 11
22 <--x 12
15 <--x 24
```

View File

@ -207,6 +207,15 @@ description: Artifact commands basic_fillet_cube_end.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands basic_fillet_cube_end.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands basic_fillet_cube_end.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -296,19 +314,19 @@ description: Artifact commands basic_fillet_cube_end.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -339,15 +357,6 @@ description: Artifact commands basic_fillet_cube_end.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -358,6 +367,15 @@ description: Artifact commands basic_fillet_cube_end.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -377,24 +395,6 @@ description: Artifact commands basic_fillet_cube_end.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -17,10 +17,15 @@ flowchart LR
13["Cap Start"]
14["Cap End"]
15["SweepEdge Opposite"]
16["SweepEdge Opposite"]
16["SweepEdge Adjacent"]
17["SweepEdge Opposite"]
18["EdgeCut Fillet<br>[211, 269, 0]"]
19["EdgeCut Fillet<br>[211, 269, 0]"]
18["SweepEdge Adjacent"]
19["SweepEdge Opposite"]
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
23["EdgeCut Fillet<br>[211, 269, 0]"]
24["EdgeCut Fillet<br>[211, 269, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -29,16 +34,21 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 12
3 --- 17
3 --- 18
3 --- 21
3 --- 22
3 --- 23
3 x--> 13
4 --- 11
4 --- 16
4 --- 19
4 --- 20
4 x--> 13
5 --- 10
5 --- 15
5 --- 17
5 --- 18
5 x--> 13
6 --- 9
6 --- 15
6 --- 16
6 x--> 13
8 --- 9
8 --- 10
@ -49,9 +59,24 @@ flowchart LR
8 --- 15
8 --- 16
8 --- 17
15 <--x 10
8 --- 18
8 --- 19
8 --- 20
8 --- 21
8 --- 22
15 <--x 9
15 <--x 14
16 <--x 11
16 <--x 14
17 <--x 19
16 <--x 9
16 <--x 12
17 <--x 10
17 <--x 14
18 <--x 9
18 <--x 10
19 <--x 11
19 <--x 14
20 <--x 10
20 <--x 11
22 <--x 11
22 <--x 12
21 <--x 24
```

View File

@ -207,6 +207,15 @@ description: Artifact commands basic_fillet_cube_next_adjacent.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands basic_fillet_cube_next_adjacent.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands basic_fillet_cube_next_adjacent.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -296,19 +314,19 @@ description: Artifact commands basic_fillet_cube_next_adjacent.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -339,15 +357,6 @@ description: Artifact commands basic_fillet_cube_next_adjacent.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -358,6 +367,15 @@ description: Artifact commands basic_fillet_cube_next_adjacent.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -377,24 +395,6 @@ description: Artifact commands basic_fillet_cube_next_adjacent.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -17,9 +17,14 @@ flowchart LR
13["Cap Start"]
14["Cap End"]
15["SweepEdge Opposite"]
16["SweepEdge Opposite"]
16["SweepEdge Adjacent"]
17["SweepEdge Opposite"]
18["SweepEdge Adjacent"]
19["SweepEdge Opposite"]
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
23["EdgeCut Fillet<br>[238, 294, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -28,16 +33,20 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 12
3 --- 17
3 --- 21
3 --- 22
3 x--> 13
4 --- 11
4 --- 16
4 --- 19
4 --- 20
4 x--> 13
5 --- 10
5 --- 15
5 --- 17
5 --- 18
5 x--> 13
6 --- 9
6 --- 18
6 --- 15
6 --- 16
6 x--> 13
8 --- 9
8 --- 10
@ -49,10 +58,23 @@ flowchart LR
8 --- 16
8 --- 17
8 --- 18
15 <--x 10
8 --- 19
8 --- 20
8 --- 21
8 --- 22
15 <--x 9
15 <--x 14
16 <--x 11
16 <--x 14
17 <--x 12
17 <--x 10
17 <--x 14
18 <--x 9
18 <--x 10
19 <--x 11
19 <--x 14
20 <--x 10
20 <--x 11
21 <--x 12
21 <--x 14
22 <--x 11
22 <--x 12
16 <--x 23
```

View File

@ -207,6 +207,15 @@ description: Artifact commands basic_fillet_cube_previous_adjacent.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands basic_fillet_cube_previous_adjacent.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands basic_fillet_cube_previous_adjacent.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -296,19 +314,19 @@ description: Artifact commands basic_fillet_cube_previous_adjacent.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -339,15 +357,6 @@ description: Artifact commands basic_fillet_cube_previous_adjacent.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -358,6 +367,15 @@ description: Artifact commands basic_fillet_cube_previous_adjacent.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -377,24 +395,6 @@ description: Artifact commands basic_fillet_cube_previous_adjacent.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -17,8 +17,14 @@ flowchart LR
13["Cap Start"]
14["Cap End"]
15["SweepEdge Opposite"]
16["SweepEdge Opposite"]
16["SweepEdge Adjacent"]
17["SweepEdge Opposite"]
18["SweepEdge Adjacent"]
19["SweepEdge Opposite"]
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
23["EdgeCut Fillet<br>[238, 298, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -27,15 +33,20 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 12
3 --- 17
3 --- 21
3 --- 22
3 x--> 13
4 --- 11
4 --- 16
4 --- 19
4 --- 20
4 x--> 13
5 --- 10
5 --- 15
5 --- 17
5 --- 18
5 x--> 13
6 --- 9
6 --- 15
6 --- 16
6 x--> 13
8 --- 9
8 --- 10
@ -46,10 +57,26 @@ flowchart LR
8 --- 15
8 --- 16
8 --- 17
15 <--x 10
8 --- 18
8 --- 19
8 --- 20
8 --- 21
8 --- 22
15 <--x 9
15 <--x 14
16 <--x 11
16 <--x 14
17 <--x 12
16 <--x 9
16 <--x 12
17 <--x 10
17 <--x 14
18 <--x 9
18 <--x 10
19 <--x 11
19 <--x 14
20 <--x 10
20 <--x 11
21 <--x 12
21 <--x 14
22 <--x 11
22 <--x 12
18 <--x 23
```

View File

@ -207,6 +207,15 @@ description: Artifact commands basic_fillet_cube_start.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands basic_fillet_cube_start.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands basic_fillet_cube_start.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -296,19 +314,19 @@ description: Artifact commands basic_fillet_cube_start.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -339,15 +357,6 @@ description: Artifact commands basic_fillet_cube_start.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -358,6 +367,15 @@ description: Artifact commands basic_fillet_cube_start.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -377,24 +395,6 @@ description: Artifact commands basic_fillet_cube_start.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -17,10 +17,15 @@ flowchart LR
13["Cap Start"]
14["Cap End"]
15["SweepEdge Opposite"]
16["SweepEdge Opposite"]
16["SweepEdge Adjacent"]
17["SweepEdge Opposite"]
18["EdgeCut Fillet<br>[211, 253, 0]"]
19["EdgeCut Fillet<br>[211, 253, 0]"]
18["SweepEdge Adjacent"]
19["SweepEdge Opposite"]
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
23["EdgeCut Fillet<br>[211, 253, 0]"]
24["EdgeCut Fillet<br>[211, 253, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -29,17 +34,22 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 12
3 --- 17
3 --- 18
3 --- 21
3 --- 22
3 --- 23
3 x--> 13
4 --- 11
4 --- 16
4 --- 19
4 --- 20
4 x--> 13
5 --- 10
5 --- 15
5 --- 19
5 --- 17
5 --- 18
5 --- 24
5 x--> 13
6 --- 9
6 --- 15
6 --- 16
6 x--> 13
8 --- 9
8 --- 10
@ -50,10 +60,25 @@ flowchart LR
8 --- 15
8 --- 16
8 --- 17
15 <--x 10
8 --- 18
8 --- 19
8 --- 20
8 --- 21
8 --- 22
15 <--x 9
15 <--x 14
16 <--x 11
16 <--x 14
17 <--x 12
16 <--x 9
16 <--x 12
17 <--x 10
17 <--x 14
18 <--x 9
18 <--x 10
19 <--x 11
19 <--x 14
20 <--x 10
20 <--x 11
21 <--x 12
21 <--x 14
22 <--x 11
22 <--x 12
```

View File

@ -181,6 +181,15 @@ description: Artifact commands circle_three_point.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -191,6 +200,15 @@ description: Artifact commands circle_three_point.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -201,24 +219,6 @@ description: Artifact commands circle_three_point.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -10,13 +10,22 @@ flowchart LR
6[Wall]
7["Cap Start"]
8["Cap End"]
9["SweepEdge Opposite"]
10["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 ---- 5
2 --- 4
3 --- 6
3 --- 9
3 --- 10
3 x--> 7
5 --- 6
5 --- 7
5 --- 8
5 --- 9
5 --- 10
9 <--x 6
9 <--x 8
10 <--x 6
```

View File

@ -207,6 +207,15 @@ description: Artifact commands circular_pattern3d_a_pattern.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands circular_pattern3d_a_pattern.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands circular_pattern3d_a_pattern.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -296,19 +314,19 @@ description: Artifact commands circular_pattern3d_a_pattern.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -339,15 +357,6 @@ description: Artifact commands circular_pattern3d_a_pattern.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -358,6 +367,15 @@ description: Artifact commands circular_pattern3d_a_pattern.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -377,24 +395,6 @@ description: Artifact commands circular_pattern3d_a_pattern.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -17,8 +17,13 @@ flowchart LR
13["Cap Start"]
14["Cap End"]
15["SweepEdge Opposite"]
16["SweepEdge Opposite"]
16["SweepEdge Adjacent"]
17["SweepEdge Opposite"]
18["SweepEdge Adjacent"]
19["SweepEdge Opposite"]
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 --- 4
@ -27,15 +32,20 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 12
3 --- 17
3 --- 21
3 --- 22
3 x--> 13
4 --- 11
4 --- 16
4 --- 19
4 --- 20
4 x--> 13
5 --- 10
5 --- 15
5 --- 17
5 --- 18
5 x--> 13
6 --- 9
6 --- 15
6 --- 16
6 x--> 13
8 --- 9
8 --- 10
@ -46,10 +56,25 @@ flowchart LR
8 --- 15
8 --- 16
8 --- 17
15 <--x 10
8 --- 18
8 --- 19
8 --- 20
8 --- 21
8 --- 22
15 <--x 9
15 <--x 14
16 <--x 11
16 <--x 14
17 <--x 12
16 <--x 9
16 <--x 12
17 <--x 10
17 <--x 14
18 <--x 9
18 <--x 10
19 <--x 11
19 <--x 14
20 <--x 10
20 <--x 11
21 <--x 12
21 <--x 14
22 <--x 11
22 <--x 12
```

View File

@ -207,6 +207,15 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -292,15 +310,6 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -311,6 +320,15 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -330,24 +348,6 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -846,6 +846,15 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -856,6 +865,15 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -888,19 +906,19 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -931,15 +949,6 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -950,6 +959,15 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -969,24 +987,6 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1034,6 +1034,15 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1044,6 +1053,15 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1076,19 +1094,19 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1119,15 +1137,6 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1138,6 +1147,15 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1157,24 +1175,6 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1727,6 +1727,15 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1737,6 +1746,15 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1769,19 +1787,19 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1816,19 +1834,19 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1859,15 +1877,6 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1878,6 +1887,15 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1897,24 +1915,6 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1947,6 +1947,15 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1957,6 +1966,15 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1989,19 +2007,19 @@ description: Artifact commands crazy_multi_profile.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -2032,15 +2050,6 @@ description: Artifact commands crazy_multi_profile.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -2051,6 +2060,15 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -2061,24 +2079,6 @@ description: Artifact commands crazy_multi_profile.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -8,76 +8,76 @@ flowchart LR
6["Segment<br>[243, 250, 0]"]
7[Solid2d]
end
subgraph path16 [Path]
16["Path<br>[362, 405, 0]"]
17["Segment<br>[411, 435, 0]"]
18["Segment<br>[441, 466, 0]"]
subgraph path20 [Path]
20["Path<br>[362, 405, 0]"]
21["Segment<br>[411, 435, 0]"]
22["Segment<br>[441, 466, 0]"]
end
subgraph path19 [Path]
19["Path<br>[480, 522, 0]"]
20["Segment<br>[528, 593, 0]"]
21["Segment<br>[599, 667, 0]"]
22["Segment<br>[673, 761, 0]"]
23["Segment<br>[767, 823, 0]"]
24["Segment<br>[829, 836, 0]"]
25[Solid2d]
subgraph path23 [Path]
23["Path<br>[480, 522, 0]"]
24["Segment<br>[528, 593, 0]"]
25["Segment<br>[599, 667, 0]"]
26["Segment<br>[673, 761, 0]"]
27["Segment<br>[767, 823, 0]"]
28["Segment<br>[829, 836, 0]"]
29[Solid2d]
end
subgraph path26 [Path]
26["Path<br>[850, 892, 0]"]
27["Segment<br>[898, 918, 0]"]
28["Segment<br>[924, 950, 0]"]
29["Segment<br>[956, 1012, 0]"]
30["Segment<br>[1018, 1025, 0]"]
31[Solid2d]
subgraph path30 [Path]
30["Path<br>[850, 892, 0]"]
31["Segment<br>[898, 918, 0]"]
32["Segment<br>[924, 950, 0]"]
33["Segment<br>[956, 1012, 0]"]
34["Segment<br>[1018, 1025, 0]"]
35[Solid2d]
end
subgraph path32 [Path]
32["Path<br>[1039, 1094, 0]"]
33["Segment<br>[1039, 1094, 0]"]
34[Solid2d]
subgraph path36 [Path]
36["Path<br>[1039, 1094, 0]"]
37["Segment<br>[1039, 1094, 0]"]
38[Solid2d]
end
subgraph path35 [Path]
35["Path<br>[1108, 1150, 0]"]
36["Segment<br>[1156, 1180, 0]"]
37["Segment<br>[1186, 1211, 0]"]
38["Segment<br>[1217, 1273, 0]"]
39["Segment<br>[1279, 1286, 0]"]
40[Solid2d]
subgraph path39 [Path]
39["Path<br>[1108, 1150, 0]"]
40["Segment<br>[1156, 1180, 0]"]
41["Segment<br>[1186, 1211, 0]"]
42["Segment<br>[1217, 1273, 0]"]
43["Segment<br>[1279, 1286, 0]"]
44[Solid2d]
end
subgraph path52 [Path]
52["Path<br>[1456, 1497, 0]"]
53["Segment<br>[1503, 1527, 0]"]
54["Segment<br>[1533, 1558, 0]"]
subgraph path59 [Path]
59["Path<br>[1456, 1497, 0]"]
60["Segment<br>[1503, 1527, 0]"]
61["Segment<br>[1533, 1558, 0]"]
end
subgraph path55 [Path]
55["Path<br>[1572, 1614, 0]"]
56["Segment<br>[1620, 1644, 0]"]
57["Segment<br>[1650, 1675, 0]"]
58["Segment<br>[1681, 1737, 0]"]
59["Segment<br>[1743, 1750, 0]"]
60[Solid2d]
subgraph path62 [Path]
62["Path<br>[1572, 1614, 0]"]
63["Segment<br>[1620, 1644, 0]"]
64["Segment<br>[1650, 1675, 0]"]
65["Segment<br>[1681, 1737, 0]"]
66["Segment<br>[1743, 1750, 0]"]
67[Solid2d]
end
subgraph path61 [Path]
61["Path<br>[1764, 1806, 0]"]
62["Segment<br>[1812, 1835, 0]"]
63["Segment<br>[1841, 1866, 0]"]
64["Segment<br>[1872, 1928, 0]"]
65["Segment<br>[1934, 1941, 0]"]
66[Solid2d]
subgraph path68 [Path]
68["Path<br>[1764, 1806, 0]"]
69["Segment<br>[1812, 1835, 0]"]
70["Segment<br>[1841, 1866, 0]"]
71["Segment<br>[1872, 1928, 0]"]
72["Segment<br>[1934, 1941, 0]"]
73[Solid2d]
end
subgraph path67 [Path]
67["Path<br>[1955, 2011, 0]"]
68["Segment<br>[1955, 2011, 0]"]
69[Solid2d]
end
subgraph path70 [Path]
70["Path<br>[2025, 2068, 0]"]
71["Segment<br>[2074, 2139, 0]"]
72["Segment<br>[2145, 2213, 0]"]
73["Segment<br>[2219, 2307, 0]"]
74["Segment<br>[2313, 2369, 0]"]
75["Segment<br>[2375, 2382, 0]"]
subgraph path74 [Path]
74["Path<br>[1955, 2011, 0]"]
75["Segment<br>[1955, 2011, 0]"]
76[Solid2d]
end
subgraph path77 [Path]
77["Path<br>[2025, 2068, 0]"]
78["Segment<br>[2074, 2139, 0]"]
79["Segment<br>[2145, 2213, 0]"]
80["Segment<br>[2219, 2307, 0]"]
81["Segment<br>[2313, 2369, 0]"]
82["Segment<br>[2375, 2382, 0]"]
83[Solid2d]
end
1["Plane<br>[12, 29, 0]"]
8["Sweep Extrusion<br>[264, 296, 0]"]
9[Wall]
@ -86,37 +86,53 @@ flowchart LR
12["Cap Start"]
13["Cap End"]
14["SweepEdge Opposite"]
15["SweepEdge Opposite"]
41["SweepEdge Adjacent"]
42["Sweep RevolveAboutEdge<br>[1300, 1366, 0]"]
43["Sweep Extrusion<br>[1380, 1411, 0]"]
44[Wall]
45[Wall]
46[Wall]
47["Cap Start"]
48["Cap End"]
49["SweepEdge Opposite"]
50["SweepEdge Opposite"]
51["Plane<br>[1424, 1442, 0]"]
77["Sweep Extrusion<br>[2396, 2429, 0]"]
78[Wall]
79[Wall]
80[Wall]
81[Wall]
82["Cap Start"]
83["Cap End"]
84["SweepEdge Opposite"]
85["SweepEdge Opposite"]
86["SweepEdge Opposite"]
87["Sweep RevolveAboutEdge<br>[2443, 2488, 0]"]
15["SweepEdge Adjacent"]
16["SweepEdge Opposite"]
17["SweepEdge Adjacent"]
18["SweepEdge Opposite"]
19["SweepEdge Adjacent"]
45["Sweep RevolveAboutEdge<br>[1300, 1366, 0]"]
46["Sweep Extrusion<br>[1380, 1411, 0]"]
47[Wall]
48[Wall]
49[Wall]
50["Cap Start"]
51["Cap End"]
52["SweepEdge Opposite"]
53["SweepEdge Adjacent"]
54["SweepEdge Opposite"]
55["SweepEdge Adjacent"]
56["SweepEdge Opposite"]
57["SweepEdge Adjacent"]
58["Plane<br>[1424, 1442, 0]"]
84["Sweep Extrusion<br>[2396, 2429, 0]"]
85[Wall]
86[Wall]
87[Wall]
88[Wall]
89[Wall]
90[Wall]
91["Cap Start"]
92["Cap End"]
89["Cap Start"]
90["Cap End"]
91["SweepEdge Opposite"]
92["SweepEdge Adjacent"]
93["SweepEdge Opposite"]
94["SweepEdge Opposite"]
95["StartSketchOnFace<br>[309, 348, 0]"]
94["SweepEdge Adjacent"]
95["SweepEdge Opposite"]
96["SweepEdge Adjacent"]
97["SweepEdge Opposite"]
98["SweepEdge Adjacent"]
99["Sweep RevolveAboutEdge<br>[2443, 2488, 0]"]
100[Wall]
101[Wall]
102[Wall]
103["Cap Start"]
104["Cap End"]
105["SweepEdge Opposite"]
106["SweepEdge Adjacent"]
107["SweepEdge Opposite"]
108["SweepEdge Adjacent"]
109["SweepEdge Opposite"]
110["SweepEdge Adjacent"]
111["StartSketchOnFace<br>[309, 348, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -125,13 +141,16 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 11
3 --- 15
3 --- 18
3 --- 19
3 x--> 12
4 --- 10
4 --- 14
4 --- 41
4 --- 16
4 --- 17
4 x--> 12
5 --- 9
5 --- 14
5 --- 15
5 x--> 12
8 --- 9
8 --- 10
@ -140,130 +159,191 @@ flowchart LR
8 --- 13
8 --- 14
8 --- 15
8 --- 41
10 --- 16
10 --- 19
10 --- 26
10 --- 32
10 --- 35
14 <--x 10
8 --- 16
8 --- 17
8 --- 18
8 --- 19
10 --- 20
10 --- 23
10 --- 30
10 --- 36
10 --- 39
14 <--x 9
14 <--x 13
15 <--x 9
15 <--x 11
15 <--x 13
16 --- 17
16 --- 18
19 --- 20
19 --- 21
19 --- 22
19 --- 23
19 --- 24
19 --- 25
26 --- 27
26 --- 28
26 --- 29
26 --- 30
26 ---- 42
26 --- 31
32 --- 33
32 --- 34
35 --- 36
35 --- 37
35 --- 38
35 --- 39
35 ---- 43
35 --- 40
36 --- 46
36 --- 50
36 x--> 47
37 --- 45
37 --- 49
37 x--> 47
38 --- 44
38 x--> 47
41 <--x 9
41 <--x 10
43 --- 44
43 --- 45
43 --- 46
43 --- 47
43 --- 48
43 --- 49
43 --- 50
49 <--x 45
49 <--x 48
50 <--x 46
50 <--x 48
51 --- 52
51 --- 55
51 --- 61
51 --- 67
51 --- 70
52 --- 53
52 --- 54
55 --- 56
55 --- 57
55 --- 58
55 --- 59
55 ---- 87
55 --- 60
56 --- 88
56 x--> 91
57 --- 89
57 --- 93
57 x--> 91
58 --- 90
58 --- 94
58 x--> 91
61 --- 62
61 --- 63
61 --- 64
61 --- 65
61 --- 66
67 --- 68
67 --- 69
70 --- 71
70 --- 72
70 --- 73
70 --- 74
70 --- 75
70 ---- 77
70 --- 76
71 --- 81
71 --- 86
71 x--> 82
72 --- 80
72 --- 85
72 x--> 82
73 --- 79
73 --- 84
73 x--> 82
74 --- 78
74 x--> 82
16 <--x 10
16 <--x 13
17 <--x 9
17 <--x 10
18 <--x 11
18 <--x 13
19 <--x 10
19 <--x 11
20 --- 21
20 --- 22
23 --- 24
23 --- 25
23 --- 26
23 --- 27
23 --- 28
23 --- 29
30 --- 31
30 --- 32
30 --- 33
30 --- 34
30 ---- 45
30 --- 35
36 --- 37
36 --- 38
39 --- 40
39 --- 41
39 --- 42
39 --- 43
39 ---- 46
39 --- 44
40 --- 49
40 --- 56
40 --- 57
40 x--> 50
41 --- 48
41 --- 54
41 --- 55
41 x--> 50
42 --- 47
42 --- 52
42 --- 53
42 x--> 50
46 --- 47
46 --- 48
46 --- 49
46 --- 50
46 --- 51
46 --- 52
46 --- 53
46 --- 54
46 --- 55
46 --- 56
46 --- 57
52 <--x 47
52 <--x 51
53 <--x 47
53 <--x 49
54 <--x 48
54 <--x 51
55 <--x 47
55 <--x 48
56 <--x 49
56 <--x 51
57 <--x 48
57 <--x 49
58 --- 59
58 --- 62
58 --- 68
58 --- 74
58 --- 77
59 --- 60
59 --- 61
62 --- 63
62 --- 64
62 --- 65
62 --- 66
62 ---- 99
62 --- 67
63 --- 100
63 --- 105
63 --- 106
63 x--> 103
64 --- 101
64 --- 107
64 --- 108
64 x--> 103
65 --- 102
65 --- 109
65 --- 110
65 x--> 103
68 --- 69
68 --- 70
68 --- 71
68 --- 72
68 --- 73
74 --- 75
74 --- 76
77 --- 78
77 --- 79
77 --- 80
77 --- 81
77 --- 82
77 ---- 84
77 --- 83
77 --- 84
77 --- 85
77 --- 86
84 <--x 79
84 <--x 83
85 <--x 80
85 <--x 83
86 <--x 81
86 <--x 83
87 --- 88
87 --- 89
87 --- 90
87 --- 91
87 --- 92
87 --- 93
87 --- 94
93 <--x 89
93 <--x 92
94 <--x 90
94 <--x 92
10 <--x 95
78 --- 88
78 --- 97
78 --- 98
78 x--> 89
79 --- 87
79 --- 95
79 --- 96
79 x--> 89
80 --- 86
80 --- 93
80 --- 94
80 x--> 89
81 --- 85
81 --- 91
81 --- 92
81 x--> 89
84 --- 85
84 --- 86
84 --- 87
84 --- 88
84 --- 89
84 --- 90
84 --- 91
84 --- 92
84 --- 93
84 --- 94
84 --- 95
84 --- 96
84 --- 97
84 --- 98
91 <--x 85
91 <--x 90
92 <--x 85
92 <--x 88
93 <--x 86
93 <--x 90
94 <--x 85
94 <--x 86
95 <--x 87
95 <--x 90
96 <--x 86
96 <--x 87
97 <--x 88
97 <--x 90
98 <--x 87
98 <--x 88
99 --- 100
99 --- 101
99 --- 102
99 --- 103
99 --- 104
99 --- 105
99 --- 106
99 --- 107
99 --- 108
99 --- 109
99 --- 110
105 <--x 100
105 <--x 104
106 <--x 100
106 <--x 101
107 <--x 101
107 <--x 104
108 <--x 101
108 <--x 102
109 <--x 102
109 <--x 104
110 <--x 102
110 <--x 100
10 <--x 111
```

View File

@ -224,6 +224,15 @@ description: Artifact commands cube.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -234,6 +243,15 @@ description: Artifact commands cube.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -266,19 +284,19 @@ description: Artifact commands cube.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -313,19 +331,19 @@ description: Artifact commands cube.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -356,15 +374,6 @@ description: Artifact commands cube.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -375,6 +384,15 @@ description: Artifact commands cube.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -385,24 +403,6 @@ description: Artifact commands cube.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -18,8 +18,13 @@ flowchart LR
14["Cap Start"]
15["Cap End"]
16["SweepEdge Opposite"]
17["SweepEdge Opposite"]
17["SweepEdge Adjacent"]
18["SweepEdge Opposite"]
19["SweepEdge Adjacent"]
20["SweepEdge Opposite"]
21["SweepEdge Adjacent"]
22["SweepEdge Opposite"]
23["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 --- 4
@ -29,15 +34,20 @@ flowchart LR
2 ---- 9
2 --- 8
3 --- 13
3 --- 18
3 --- 22
3 --- 23
3 x--> 14
4 --- 12
4 --- 17
4 --- 20
4 --- 21
4 x--> 14
5 --- 11
5 --- 16
5 --- 18
5 --- 19
5 x--> 14
6 --- 10
6 --- 16
6 --- 17
6 x--> 14
9 --- 10
9 --- 11
@ -48,10 +58,25 @@ flowchart LR
9 --- 16
9 --- 17
9 --- 18
16 <--x 11
9 --- 19
9 --- 20
9 --- 21
9 --- 22
9 --- 23
16 <--x 10
16 <--x 15
17 <--x 12
17 <--x 15
18 <--x 13
17 <--x 10
17 <--x 13
18 <--x 11
18 <--x 15
19 <--x 10
19 <--x 11
20 <--x 12
20 <--x 15
21 <--x 11
21 <--x 12
22 <--x 13
22 <--x 15
23 <--x 12
23 <--x 13
```

View File

@ -224,6 +224,15 @@ description: Artifact commands cube_with_error.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -234,6 +243,15 @@ description: Artifact commands cube_with_error.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -266,19 +284,19 @@ description: Artifact commands cube_with_error.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -313,19 +331,19 @@ description: Artifact commands cube_with_error.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -356,15 +374,6 @@ description: Artifact commands cube_with_error.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -375,6 +384,15 @@ description: Artifact commands cube_with_error.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -384,5 +402,14 @@ description: Artifact commands cube_with_error.kcl
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
}
]

View File

@ -18,8 +18,13 @@ flowchart LR
14["Cap Start"]
15["Cap End"]
16["SweepEdge Opposite"]
17["SweepEdge Opposite"]
17["SweepEdge Adjacent"]
18["SweepEdge Opposite"]
19["SweepEdge Adjacent"]
20["SweepEdge Opposite"]
21["SweepEdge Adjacent"]
22["SweepEdge Opposite"]
23["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 --- 4
@ -29,14 +34,20 @@ flowchart LR
2 ---- 9
2 --- 8
3 --- 13
3 --- 18
3 --- 22
3 --- 23
3 x--> 14
4 --- 12
4 --- 17
4 --- 20
4 --- 21
4 x--> 14
5 --- 11
5 --- 16
5 --- 18
5 --- 19
5 x--> 14
6 --- 10
6 --- 16
6 --- 17
6 x--> 14
9 --- 10
9 --- 11
@ -47,8 +58,25 @@ flowchart LR
9 --- 16
9 --- 17
9 --- 18
16 <--x 11
9 --- 19
9 --- 20
9 --- 21
9 --- 22
9 --- 23
16 <--x 10
16 <--x 15
17 <--x 12
17 <--x 15
17 <--x 10
17 <--x 13
18 <--x 11
18 <--x 15
19 <--x 10
19 <--x 11
20 <--x 12
20 <--x 15
21 <--x 11
21 <--x 12
22 <--x 13
22 <--x 15
23 <--x 12
23 <--x 13
```

View File

@ -334,6 +334,15 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -344,6 +353,15 @@ description: Artifact commands fillet-and-shell.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -376,19 +394,19 @@ description: Artifact commands fillet-and-shell.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -423,19 +441,19 @@ description: Artifact commands fillet-and-shell.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -466,15 +484,6 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -485,6 +494,15 @@ description: Artifact commands fillet-and-shell.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -504,24 +522,6 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -851,6 +851,15 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -861,6 +870,15 @@ description: Artifact commands fillet-and-shell.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -889,15 +907,6 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -908,6 +917,15 @@ description: Artifact commands fillet-and-shell.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -927,24 +945,6 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1234,6 +1234,15 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1244,6 +1253,15 @@ description: Artifact commands fillet-and-shell.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1272,15 +1290,6 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1291,6 +1300,15 @@ description: Artifact commands fillet-and-shell.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1310,24 +1328,6 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1617,6 +1617,15 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1627,6 +1636,15 @@ description: Artifact commands fillet-and-shell.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1655,15 +1673,6 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1674,6 +1683,15 @@ description: Artifact commands fillet-and-shell.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1693,24 +1711,6 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -2000,6 +2000,15 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -2010,6 +2019,15 @@ description: Artifact commands fillet-and-shell.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -2038,15 +2056,6 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -2057,6 +2066,15 @@ description: Artifact commands fillet-and-shell.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -2076,24 +2094,6 @@ description: Artifact commands fillet-and-shell.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -16,57 +16,57 @@ flowchart LR
13["Segment<br>[1011, 1030, 0]"]
14[Solid2d]
end
subgraph path27 [Path]
27["Path<br>[1343, 1368, 0]"]
end
subgraph path28 [Path]
28["Path<br>[1376, 1413, 0]"]
29["Segment<br>[1376, 1413, 0]"]
30[Solid2d]
end
subgraph path31 [Path]
31["Path<br>[1439, 1477, 0]"]
32["Segment<br>[1439, 1477, 0]"]
33[Solid2d]
31["Path<br>[1343, 1368, 0]"]
end
subgraph path39 [Path]
39["Path<br>[1343, 1368, 0]"]
subgraph path32 [Path]
32["Path<br>[1376, 1413, 0]"]
33["Segment<br>[1376, 1413, 0]"]
34[Solid2d]
end
subgraph path40 [Path]
40["Path<br>[1376, 1413, 0]"]
41["Segment<br>[1376, 1413, 0]"]
42[Solid2d]
subgraph path35 [Path]
35["Path<br>[1439, 1477, 0]"]
36["Segment<br>[1439, 1477, 0]"]
37[Solid2d]
end
subgraph path43 [Path]
43["Path<br>[1439, 1477, 0]"]
44["Segment<br>[1439, 1477, 0]"]
45[Solid2d]
subgraph path45 [Path]
45["Path<br>[1343, 1368, 0]"]
end
subgraph path51 [Path]
51["Path<br>[1343, 1368, 0]"]
subgraph path46 [Path]
46["Path<br>[1376, 1413, 0]"]
47["Segment<br>[1376, 1413, 0]"]
48[Solid2d]
end
subgraph path52 [Path]
52["Path<br>[1376, 1413, 0]"]
53["Segment<br>[1376, 1413, 0]"]
54[Solid2d]
subgraph path49 [Path]
49["Path<br>[1439, 1477, 0]"]
50["Segment<br>[1439, 1477, 0]"]
51[Solid2d]
end
subgraph path55 [Path]
55["Path<br>[1439, 1477, 0]"]
56["Segment<br>[1439, 1477, 0]"]
57[Solid2d]
subgraph path59 [Path]
59["Path<br>[1343, 1368, 0]"]
end
subgraph path60 [Path]
60["Path<br>[1376, 1413, 0]"]
61["Segment<br>[1376, 1413, 0]"]
62[Solid2d]
end
subgraph path63 [Path]
63["Path<br>[1343, 1368, 0]"]
63["Path<br>[1439, 1477, 0]"]
64["Segment<br>[1439, 1477, 0]"]
65[Solid2d]
end
subgraph path64 [Path]
64["Path<br>[1376, 1413, 0]"]
65["Segment<br>[1376, 1413, 0]"]
66[Solid2d]
subgraph path73 [Path]
73["Path<br>[1343, 1368, 0]"]
end
subgraph path67 [Path]
67["Path<br>[1439, 1477, 0]"]
68["Segment<br>[1439, 1477, 0]"]
69[Solid2d]
subgraph path74 [Path]
74["Path<br>[1376, 1413, 0]"]
75["Segment<br>[1376, 1413, 0]"]
76[Solid2d]
end
subgraph path77 [Path]
77["Path<br>[1439, 1477, 0]"]
78["Segment<br>[1439, 1477, 0]"]
79[Solid2d]
end
1["Plane<br>[373, 390, 0]"]
8["Plane<br>[783, 802, 0]"]
@ -78,33 +78,45 @@ flowchart LR
20["Cap Start"]
21["Cap End"]
22["SweepEdge Opposite"]
23["SweepEdge Opposite"]
23["SweepEdge Adjacent"]
24["SweepEdge Opposite"]
25["SweepEdge Adjacent"]
26["Plane<br>[1316, 1335, 0]"]
34["Sweep Extrusion<br>[1486, 1510, 0]"]
35[Wall]
36["Cap Start"]
37["Cap End"]
38["Plane<br>[1316, 1335, 0]"]
46["Sweep Extrusion<br>[1486, 1510, 0]"]
47[Wall]
48["Cap Start"]
49["Cap End"]
50["Plane<br>[1316, 1335, 0]"]
58["Sweep Extrusion<br>[1486, 1510, 0]"]
59[Wall]
60["Cap Start"]
61["Cap End"]
62["Plane<br>[1316, 1335, 0]"]
70["Sweep Extrusion<br>[1486, 1510, 0]"]
71[Wall]
72["Cap Start"]
73["Cap End"]
74["EdgeCut Fillet<br>[1070, 1276, 0]"]
75["EdgeCut Fillet<br>[1070, 1276, 0]"]
76["EdgeCut Fillet<br>[1070, 1276, 0]"]
77["EdgeCut Fillet<br>[1070, 1276, 0]"]
26["SweepEdge Opposite"]
27["SweepEdge Adjacent"]
28["SweepEdge Opposite"]
29["SweepEdge Adjacent"]
30["Plane<br>[1316, 1335, 0]"]
38["Sweep Extrusion<br>[1486, 1510, 0]"]
39[Wall]
40["Cap Start"]
41["Cap End"]
42["SweepEdge Opposite"]
43["SweepEdge Adjacent"]
44["Plane<br>[1316, 1335, 0]"]
52["Sweep Extrusion<br>[1486, 1510, 0]"]
53[Wall]
54["Cap Start"]
55["Cap End"]
56["SweepEdge Opposite"]
57["SweepEdge Adjacent"]
58["Plane<br>[1316, 1335, 0]"]
66["Sweep Extrusion<br>[1486, 1510, 0]"]
67[Wall]
68["Cap Start"]
69["Cap End"]
70["SweepEdge Opposite"]
71["SweepEdge Adjacent"]
72["Plane<br>[1316, 1335, 0]"]
80["Sweep Extrusion<br>[1486, 1510, 0]"]
81[Wall]
82["Cap Start"]
83["Cap End"]
84["SweepEdge Opposite"]
85["SweepEdge Adjacent"]
86["EdgeCut Fillet<br>[1070, 1276, 0]"]
87["EdgeCut Fillet<br>[1070, 1276, 0]"]
88["EdgeCut Fillet<br>[1070, 1276, 0]"]
89["EdgeCut Fillet<br>[1070, 1276, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -119,16 +131,20 @@ flowchart LR
9 ---- 15
9 --- 14
10 --- 16
10 --- 25
10 --- 22
10 --- 23
10 x--> 20
11 --- 17
11 --- 22
11 --- 24
11 --- 25
11 x--> 20
12 --- 18
12 --- 23
12 --- 26
12 --- 27
12 x--> 20
13 --- 19
13 --- 24
13 --- 28
13 --- 29
13 x--> 20
15 --- 16
15 --- 17
@ -140,63 +156,100 @@ flowchart LR
15 --- 23
15 --- 24
15 --- 25
22 <--x 17
15 --- 26
15 --- 27
15 --- 28
15 --- 29
22 <--x 16
22 <--x 21
23 <--x 18
23 <--x 21
24 <--x 19
24 <--x 17
24 <--x 21
26 --- 27
26 --- 28
26 --- 31
28 --- 29
28 ---- 34
28 --- 30
29 --- 35
29 x--> 36
31 --- 32
31 --- 33
34 --- 35
34 --- 36
34 --- 37
26 <--x 18
26 <--x 21
28 <--x 19
28 <--x 21
30 --- 31
30 --- 32
30 --- 35
32 --- 33
32 ---- 38
32 --- 34
33 --- 39
33 --- 42
33 --- 43
33 x--> 40
35 --- 36
35 --- 37
38 --- 39
38 --- 40
38 --- 41
38 --- 42
38 --- 43
40 --- 41
40 ---- 46
40 --- 42
41 --- 47
41 x--> 48
43 --- 44
43 --- 45
42 <--x 39
42 <--x 41
43 <--x 39
44 --- 45
44 --- 46
44 --- 49
46 --- 47
46 ---- 52
46 --- 48
46 --- 49
50 --- 51
50 --- 52
50 --- 55
47 --- 53
47 --- 56
47 --- 57
47 x--> 54
49 --- 50
49 --- 51
52 --- 53
52 ---- 58
52 --- 54
53 --- 59
53 x--> 60
55 --- 56
55 --- 57
52 --- 55
52 --- 56
52 --- 57
56 <--x 53
56 <--x 55
57 <--x 53
58 --- 59
58 --- 60
58 --- 61
62 --- 63
62 --- 64
62 --- 67
64 --- 65
64 ---- 70
64 --- 66
65 --- 71
65 x--> 72
67 --- 68
67 --- 69
70 --- 71
70 --- 72
70 --- 73
25 <--x 74
58 --- 63
60 --- 61
60 ---- 66
60 --- 62
61 --- 67
61 --- 70
61 --- 71
61 x--> 68
63 --- 64
63 --- 65
66 --- 67
66 --- 68
66 --- 69
66 --- 70
66 --- 71
70 <--x 67
70 <--x 69
71 <--x 67
72 --- 73
72 --- 74
72 --- 77
74 --- 75
74 ---- 80
74 --- 76
75 --- 81
75 --- 84
75 --- 85
75 x--> 82
77 --- 78
77 --- 79
80 --- 81
80 --- 82
80 --- 83
80 --- 84
80 --- 85
84 <--x 81
84 <--x 83
85 <--x 81
23 <--x 86
25 <--x 87
27 <--x 88
29 <--x 89
```

View File

@ -275,6 +275,15 @@ description: Artifact commands flush_batch_on_end.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -285,6 +294,15 @@ description: Artifact commands flush_batch_on_end.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -313,15 +331,6 @@ description: Artifact commands flush_batch_on_end.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -332,6 +341,15 @@ description: Artifact commands flush_batch_on_end.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -342,24 +360,6 @@ description: Artifact commands flush_batch_on_end.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -15,16 +15,25 @@ flowchart LR
9[Wall]
10["Cap Start"]
11["Cap End"]
12["SweepEdge Opposite"]
13["SweepEdge Adjacent"]
1 --- 2
1 --- 5
2 --- 3
2 ---- 8
2 --- 4
3 --- 9
3 --- 12
3 --- 13
3 x--> 10
5 --- 6
5 --- 7
8 --- 9
8 --- 10
8 --- 11
8 --- 12
8 --- 13
12 <--x 9
12 <--x 11
13 <--x 9
```

View File

@ -207,6 +207,15 @@ description: Artifact commands function_sketch.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands function_sketch.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands function_sketch.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -296,19 +314,19 @@ description: Artifact commands function_sketch.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -339,15 +357,6 @@ description: Artifact commands function_sketch.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -358,6 +367,15 @@ description: Artifact commands function_sketch.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -368,24 +386,6 @@ description: Artifact commands function_sketch.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -17,8 +17,13 @@ flowchart LR
13["Cap Start"]
14["Cap End"]
15["SweepEdge Opposite"]
16["SweepEdge Opposite"]
16["SweepEdge Adjacent"]
17["SweepEdge Opposite"]
18["SweepEdge Adjacent"]
19["SweepEdge Opposite"]
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 --- 4
@ -27,15 +32,20 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 12
3 --- 17
3 --- 21
3 --- 22
3 x--> 13
4 --- 11
4 --- 16
4 --- 19
4 --- 20
4 x--> 13
5 --- 10
5 --- 15
5 --- 17
5 --- 18
5 x--> 13
6 --- 9
6 --- 15
6 --- 16
6 x--> 13
8 --- 9
8 --- 10
@ -46,10 +56,25 @@ flowchart LR
8 --- 15
8 --- 16
8 --- 17
15 <--x 10
8 --- 18
8 --- 19
8 --- 20
8 --- 21
8 --- 22
15 <--x 9
15 <--x 14
16 <--x 11
16 <--x 14
17 <--x 12
16 <--x 9
16 <--x 12
17 <--x 10
17 <--x 14
18 <--x 9
18 <--x 10
19 <--x 11
19 <--x 14
20 <--x 10
20 <--x 11
21 <--x 12
21 <--x 14
22 <--x 11
22 <--x 12
```

View File

@ -207,6 +207,15 @@ description: Artifact commands function_sketch_with_position.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands function_sketch_with_position.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands function_sketch_with_position.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -296,19 +314,19 @@ description: Artifact commands function_sketch_with_position.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -339,15 +357,6 @@ description: Artifact commands function_sketch_with_position.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -358,6 +367,15 @@ description: Artifact commands function_sketch_with_position.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -368,24 +386,6 @@ description: Artifact commands function_sketch_with_position.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -17,8 +17,13 @@ flowchart LR
13["Cap Start"]
14["Cap End"]
15["SweepEdge Opposite"]
16["SweepEdge Opposite"]
16["SweepEdge Adjacent"]
17["SweepEdge Opposite"]
18["SweepEdge Adjacent"]
19["SweepEdge Opposite"]
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 --- 4
@ -27,15 +32,20 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 12
3 --- 17
3 --- 21
3 --- 22
3 x--> 13
4 --- 11
4 --- 16
4 --- 19
4 --- 20
4 x--> 13
5 --- 10
5 --- 15
5 --- 17
5 --- 18
5 x--> 13
6 --- 9
6 --- 15
6 --- 16
6 x--> 13
8 --- 9
8 --- 10
@ -46,10 +56,25 @@ flowchart LR
8 --- 15
8 --- 16
8 --- 17
15 <--x 10
8 --- 18
8 --- 19
8 --- 20
8 --- 21
8 --- 22
15 <--x 9
15 <--x 14
16 <--x 11
16 <--x 14
17 <--x 12
16 <--x 9
16 <--x 12
17 <--x 10
17 <--x 14
18 <--x 9
18 <--x 10
19 <--x 11
19 <--x 14
20 <--x 10
20 <--x 11
21 <--x 12
21 <--x 14
22 <--x 11
22 <--x 12
```

View File

@ -181,6 +181,15 @@ description: Artifact commands helix_ccw.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -191,6 +200,15 @@ description: Artifact commands helix_ccw.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -210,24 +228,6 @@ description: Artifact commands helix_ccw.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -10,13 +10,22 @@ flowchart LR
6[Wall]
7["Cap Start"]
8["Cap End"]
9["SweepEdge Opposite"]
10["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 ---- 5
2 --- 4
3 --- 6
3 --- 9
3 --- 10
3 x--> 7
5 --- 6
5 --- 7
5 --- 8
5 --- 9
5 --- 10
9 <--x 6
9 <--x 8
10 <--x 6
```

View File

@ -794,6 +794,15 @@ description: Artifact commands i_shape.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -804,6 +813,15 @@ description: Artifact commands i_shape.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -836,19 +854,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -883,19 +901,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -930,19 +948,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -977,19 +995,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1024,19 +1042,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1071,19 +1089,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1118,19 +1136,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1165,19 +1183,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1212,19 +1230,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1259,19 +1277,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1306,19 +1324,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1353,19 +1371,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1400,19 +1418,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1447,19 +1465,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1494,19 +1512,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1541,19 +1559,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1588,19 +1606,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1635,19 +1653,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1682,19 +1700,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1729,19 +1747,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1776,19 +1794,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1823,19 +1841,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1870,19 +1888,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1917,19 +1935,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -1964,19 +1982,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -2011,19 +2029,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -2058,19 +2076,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -2105,19 +2123,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -2152,19 +2170,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -2199,19 +2217,19 @@ description: Artifact commands i_shape.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -2242,15 +2260,6 @@ description: Artifact commands i_shape.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -2261,6 +2270,15 @@ description: Artifact commands i_shape.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -2271,24 +2289,6 @@ description: Artifact commands i_shape.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -72,28 +72,53 @@ flowchart LR
66["Cap Start"]
67["Cap End"]
68["SweepEdge Opposite"]
69["SweepEdge Opposite"]
69["SweepEdge Adjacent"]
70["SweepEdge Opposite"]
71["SweepEdge Opposite"]
71["SweepEdge Adjacent"]
72["SweepEdge Opposite"]
73["SweepEdge Opposite"]
73["SweepEdge Adjacent"]
74["SweepEdge Opposite"]
75["SweepEdge Opposite"]
75["SweepEdge Adjacent"]
76["SweepEdge Opposite"]
77["SweepEdge Opposite"]
77["SweepEdge Adjacent"]
78["SweepEdge Opposite"]
79["SweepEdge Opposite"]
79["SweepEdge Adjacent"]
80["SweepEdge Opposite"]
81["SweepEdge Opposite"]
81["SweepEdge Adjacent"]
82["SweepEdge Opposite"]
83["SweepEdge Opposite"]
83["SweepEdge Adjacent"]
84["SweepEdge Opposite"]
85["SweepEdge Opposite"]
85["SweepEdge Adjacent"]
86["SweepEdge Opposite"]
87["SweepEdge Opposite"]
87["SweepEdge Adjacent"]
88["SweepEdge Opposite"]
89["SweepEdge Opposite"]
89["SweepEdge Adjacent"]
90["SweepEdge Opposite"]
91["SweepEdge Adjacent"]
92["SweepEdge Opposite"]
93["SweepEdge Adjacent"]
94["SweepEdge Opposite"]
95["SweepEdge Adjacent"]
96["SweepEdge Opposite"]
97["SweepEdge Adjacent"]
98["SweepEdge Opposite"]
99["SweepEdge Adjacent"]
100["SweepEdge Opposite"]
101["SweepEdge Adjacent"]
102["SweepEdge Opposite"]
103["SweepEdge Adjacent"]
104["SweepEdge Opposite"]
105["SweepEdge Adjacent"]
106["SweepEdge Opposite"]
107["SweepEdge Adjacent"]
108["SweepEdge Opposite"]
109["SweepEdge Adjacent"]
110["SweepEdge Opposite"]
111["SweepEdge Adjacent"]
112["SweepEdge Opposite"]
113["SweepEdge Adjacent"]
114["SweepEdge Opposite"]
115["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 --- 4
@ -123,75 +148,100 @@ flowchart LR
2 ---- 41
2 --- 28
3 --- 42
3 --- 68
3 --- 69
3 x--> 66
4 --- 43
4 --- 68
4 --- 70
4 --- 71
4 x--> 66
5 --- 44
5 --- 69
5 --- 72
5 --- 73
5 x--> 66
6 --- 45
6 --- 70
6 --- 74
6 --- 75
6 x--> 66
7 --- 46
7 --- 71
7 --- 76
7 --- 77
7 x--> 66
8 --- 47
8 --- 72
8 --- 78
8 --- 79
8 x--> 66
9 --- 48
9 --- 73
9 --- 80
9 --- 81
9 x--> 66
10 --- 49
10 --- 74
10 --- 82
10 --- 83
10 x--> 66
11 --- 50
11 --- 75
11 --- 84
11 --- 85
11 x--> 66
12 --- 51
12 --- 76
12 --- 86
12 --- 87
12 x--> 66
13 --- 52
13 --- 77
13 --- 88
13 --- 89
13 x--> 66
14 --- 53
14 --- 78
14 --- 90
14 --- 91
14 x--> 66
15 --- 54
15 --- 79
15 --- 92
15 --- 93
15 x--> 66
16 --- 55
16 --- 80
16 --- 94
16 --- 95
16 x--> 66
17 --- 56
17 --- 81
17 --- 96
17 --- 97
17 x--> 66
18 --- 57
18 --- 82
18 --- 98
18 --- 99
18 x--> 66
19 --- 58
19 --- 83
19 --- 100
19 --- 101
19 x--> 66
20 --- 59
20 --- 84
20 --- 102
20 --- 103
20 x--> 66
21 --- 60
21 --- 85
21 --- 104
21 --- 105
21 x--> 66
22 --- 61
22 --- 86
22 --- 106
22 --- 107
22 x--> 66
23 --- 62
23 --- 87
23 --- 108
23 --- 109
23 x--> 66
24 --- 63
24 --- 88
24 --- 110
24 --- 111
24 x--> 66
25 --- 64
25 --- 89
25 --- 112
25 --- 113
25 x--> 66
26 --- 65
26 --- 90
26 --- 114
26 --- 115
26 x--> 66
29 --- 30
30 --- 31
@ -253,50 +303,125 @@ flowchart LR
41 --- 88
41 --- 89
41 --- 90
68 <--x 43
41 --- 91
41 --- 92
41 --- 93
41 --- 94
41 --- 95
41 --- 96
41 --- 97
41 --- 98
41 --- 99
41 --- 100
41 --- 101
41 --- 102
41 --- 103
41 --- 104
41 --- 105
41 --- 106
41 --- 107
41 --- 108
41 --- 109
41 --- 110
41 --- 111
41 --- 112
41 --- 113
41 --- 114
41 --- 115
68 <--x 42
68 <--x 67
69 <--x 44
69 <--x 67
70 <--x 45
69 <--x 42
69 <--x 43
70 <--x 43
70 <--x 67
71 <--x 46
71 <--x 67
72 <--x 47
71 <--x 43
71 <--x 44
72 <--x 44
72 <--x 67
73 <--x 48
73 <--x 67
74 <--x 49
73 <--x 44
73 <--x 45
74 <--x 45
74 <--x 67
75 <--x 50
75 <--x 67
76 <--x 51
75 <--x 45
75 <--x 46
76 <--x 46
76 <--x 67
77 <--x 52
77 <--x 67
78 <--x 53
77 <--x 46
77 <--x 47
78 <--x 47
78 <--x 67
79 <--x 54
79 <--x 67
80 <--x 55
79 <--x 47
79 <--x 48
80 <--x 48
80 <--x 67
81 <--x 56
81 <--x 67
82 <--x 57
81 <--x 48
81 <--x 49
82 <--x 49
82 <--x 67
83 <--x 58
83 <--x 67
84 <--x 59
83 <--x 49
83 <--x 50
84 <--x 50
84 <--x 67
85 <--x 60
85 <--x 67
86 <--x 61
85 <--x 50
85 <--x 51
86 <--x 51
86 <--x 67
87 <--x 62
87 <--x 67
88 <--x 63
87 <--x 51
87 <--x 52
88 <--x 52
88 <--x 67
89 <--x 64
89 <--x 67
90 <--x 65
89 <--x 52
89 <--x 53
90 <--x 53
90 <--x 67
91 <--x 53
91 <--x 54
92 <--x 54
92 <--x 67
93 <--x 54
93 <--x 55
94 <--x 55
94 <--x 67
95 <--x 55
95 <--x 56
96 <--x 56
96 <--x 67
97 <--x 56
97 <--x 57
98 <--x 57
98 <--x 67
99 <--x 57
99 <--x 58
100 <--x 58
100 <--x 67
101 <--x 58
101 <--x 59
102 <--x 59
102 <--x 67
103 <--x 59
103 <--x 60
104 <--x 60
104 <--x 67
105 <--x 60
105 <--x 61
106 <--x 61
106 <--x 67
107 <--x 61
107 <--x 62
108 <--x 62
108 <--x 67
109 <--x 62
109 <--x 63
110 <--x 63
110 <--x 67
111 <--x 63
111 <--x 64
112 <--x 64
112 <--x 67
113 <--x 64
113 <--x 65
114 <--x 65
114 <--x 67
115 <--x 42
115 <--x 65
```

View File

@ -5571268,6 +5571268,15 @@ description: Artifact commands import_async.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -5571278,6 +5571287,15 @@ description: Artifact commands import_async.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -5571297,24 +5571315,6 @@ description: Artifact commands import_async.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -5575117,6 +5575117,15 @@ description: Artifact commands import_async.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -5575127,6 +5575136,15 @@ description: Artifact commands import_async.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -5575159,19 +5575177,19 @@ description: Artifact commands import_async.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -5575206,19 +5575224,19 @@ description: Artifact commands import_async.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -5575249,15 +5575267,6 @@ description: Artifact commands import_async.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -5575268,6 +5575277,15 @@ description: Artifact commands import_async.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -5575287,24 +5575305,6 @@ description: Artifact commands import_async.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -5,10 +5,8 @@ flowchart LR
4["Segment<br>[1081, 1131, 0]"]
5[Solid2d]
end
subgraph path11 [Path]
11["Path<br>[1608, 1645, 0]"]
12["Segment<br>[1296, 1334, 0]"]
13["Segment<br>[1296, 1334, 0]"]
subgraph path13 [Path]
13["Path<br>[1608, 1645, 0]"]
14["Segment<br>[1296, 1334, 0]"]
15["Segment<br>[1296, 1334, 0]"]
16["Segment<br>[1296, 1334, 0]"]
@ -108,9 +106,9 @@ flowchart LR
110["Segment<br>[1296, 1334, 0]"]
111["Segment<br>[1296, 1334, 0]"]
112["Segment<br>[1296, 1334, 0]"]
113["Segment<br>[1711, 1809, 0]"]
114["Segment<br>[1524, 1554, 0]"]
115["Segment<br>[1524, 1554, 0]"]
113["Segment<br>[1296, 1334, 0]"]
114["Segment<br>[1296, 1334, 0]"]
115["Segment<br>[1711, 1809, 0]"]
116["Segment<br>[1524, 1554, 0]"]
117["Segment<br>[1524, 1554, 0]"]
118["Segment<br>[1524, 1554, 0]"]
@ -210,18 +208,20 @@ flowchart LR
212["Segment<br>[1524, 1554, 0]"]
213["Segment<br>[1524, 1554, 0]"]
214["Segment<br>[1524, 1554, 0]"]
215["Segment<br>[1869, 1876, 0]"]
216[Solid2d]
215["Segment<br>[1524, 1554, 0]"]
216["Segment<br>[1524, 1554, 0]"]
217["Segment<br>[1869, 1876, 0]"]
218[Solid2d]
end
subgraph path218 [Path]
218["Path<br>[2357, 2436, 0]"]
219["Segment<br>[2442, 2469, 0]"]
220["Segment<br>[2475, 2503, 0]"]
221["Segment<br>[2509, 2537, 0]"]
222["Segment<br>[2543, 2659, 0]"]
223["Segment<br>[2665, 2770, 0]"]
224["Segment<br>[2776, 2783, 0]"]
225[Solid2d]
subgraph path220 [Path]
220["Path<br>[2357, 2436, 0]"]
221["Segment<br>[2442, 2469, 0]"]
222["Segment<br>[2475, 2503, 0]"]
223["Segment<br>[2509, 2537, 0]"]
224["Segment<br>[2543, 2659, 0]"]
225["Segment<br>[2665, 2770, 0]"]
226["Segment<br>[2776, 2783, 0]"]
227[Solid2d]
end
1["Plane<br>[168, 185, 0]"]
2["Plane<br>[1058, 1075, 0]"]
@ -229,265 +229,299 @@ flowchart LR
7[Wall]
8["Cap Start"]
9["Cap End"]
10["Plane<br>[1585, 1602, 0]"]
217["Sweep Extrusion<br>[1882, 1910, 0]"]
226["Sweep Extrusion<br>[2789, 2818, 0]"]
227[Wall]
228[Wall]
10["SweepEdge Opposite"]
11["SweepEdge Adjacent"]
12["Plane<br>[1585, 1602, 0]"]
219["Sweep Extrusion<br>[1882, 1910, 0]"]
228["Sweep Extrusion<br>[2789, 2818, 0]"]
229[Wall]
230[Wall]
231["SweepEdge Opposite"]
232["SweepEdge Opposite"]
231[Wall]
232[Wall]
233["SweepEdge Opposite"]
234["StartSketchOnFace<br>[2320, 2351, 0]"]
234["SweepEdge Adjacent"]
235["SweepEdge Opposite"]
236["SweepEdge Adjacent"]
237["SweepEdge Opposite"]
238["SweepEdge Adjacent"]
239["SweepEdge Opposite"]
240["SweepEdge Adjacent"]
241["StartSketchOnFace<br>[2320, 2351, 0]"]
2 --- 3
3 --- 4
3 ---- 6
3 --- 5
4 --- 7
4 --- 10
4 --- 11
4 x--> 8
6 --- 7
6 --- 8
6 --- 9
9 --- 218
10 --- 11
11 --- 12
11 --- 13
11 --- 14
11 --- 15
11 --- 16
11 --- 17
11 --- 18
11 --- 19
11 --- 20
11 --- 21
11 --- 22
11 --- 23
11 --- 24
11 --- 25
11 --- 26
11 --- 27
11 --- 28
11 --- 29
11 --- 30
11 --- 31
11 --- 32
11 --- 33
11 --- 34
11 --- 35
11 --- 36
11 --- 37
11 --- 38
11 --- 39
11 --- 40
11 --- 41
11 --- 42
11 --- 43
11 --- 44
11 --- 45
11 --- 46
11 --- 47
11 --- 48
11 --- 49
11 --- 50
11 --- 51
11 --- 52
11 --- 53
11 --- 54
11 --- 55
11 --- 56
11 --- 57
11 --- 58
11 --- 59
11 --- 60
11 --- 61
11 --- 62
11 --- 63
11 --- 64
11 --- 65
11 --- 66
11 --- 67
11 --- 68
11 --- 69
11 --- 70
11 --- 71
11 --- 72
11 --- 73
11 --- 74
11 --- 75
11 --- 76
11 --- 77
11 --- 78
11 --- 79
11 --- 80
11 --- 81
11 --- 82
11 --- 83
11 --- 84
11 --- 85
11 --- 86
11 --- 87
11 --- 88
11 --- 89
11 --- 90
11 --- 91
11 --- 92
11 --- 93
11 --- 94
11 --- 95
11 --- 96
11 --- 97
11 --- 98
11 --- 99
11 --- 100
11 --- 101
11 --- 102
11 --- 103
11 --- 104
11 --- 105
11 --- 106
11 --- 107
11 --- 108
11 --- 109
11 --- 110
11 --- 111
11 --- 112
11 --- 113
11 --- 114
11 --- 115
11 --- 116
11 --- 117
11 --- 118
11 --- 119
11 --- 120
11 --- 121
11 --- 122
11 --- 123
11 --- 124
11 --- 125
11 --- 126
11 --- 127
11 --- 128
11 --- 129
11 --- 130
11 --- 131
11 --- 132
11 --- 133
11 --- 134
11 --- 135
11 --- 136
11 --- 137
11 --- 138
11 --- 139
11 --- 140
11 --- 141
11 --- 142
11 --- 143
11 --- 144
11 --- 145
11 --- 146
11 --- 147
11 --- 148
11 --- 149
11 --- 150
11 --- 151
11 --- 152
11 --- 153
11 --- 154
11 --- 155
11 --- 156
11 --- 157
11 --- 158
11 --- 159
11 --- 160
11 --- 161
11 --- 162
11 --- 163
11 --- 164
11 --- 165
11 --- 166
11 --- 167
11 --- 168
11 --- 169
11 --- 170
11 --- 171
11 --- 172
11 --- 173
11 --- 174
11 --- 175
11 --- 176
11 --- 177
11 --- 178
11 --- 179
11 --- 180
11 --- 181
11 --- 182
11 --- 183
11 --- 184
11 --- 185
11 --- 186
11 --- 187
11 --- 188
11 --- 189
11 --- 190
11 --- 191
11 --- 192
11 --- 193
11 --- 194
11 --- 195
11 --- 196
11 --- 197
11 --- 198
11 --- 199
11 --- 200
11 --- 201
11 --- 202
11 --- 203
11 --- 204
11 --- 205
11 --- 206
11 --- 207
11 --- 208
11 --- 209
11 --- 210
11 --- 211
11 --- 212
11 --- 213
11 --- 214
11 --- 215
11 ---- 217
11 --- 216
218 --- 219
218 --- 220
218 --- 221
218 --- 222
218 --- 223
218 --- 224
218 ---- 226
218 --- 225
219 --- 230
219 --- 233
219 <--x 9
220 --- 229
220 --- 232
220 <--x 9
221 --- 228
221 --- 231
6 --- 10
6 --- 11
9 --- 220
10 <--x 7
10 <--x 9
11 <--x 7
12 --- 13
13 --- 14
13 --- 15
13 --- 16
13 --- 17
13 --- 18
13 --- 19
13 --- 20
13 --- 21
13 --- 22
13 --- 23
13 --- 24
13 --- 25
13 --- 26
13 --- 27
13 --- 28
13 --- 29
13 --- 30
13 --- 31
13 --- 32
13 --- 33
13 --- 34
13 --- 35
13 --- 36
13 --- 37
13 --- 38
13 --- 39
13 --- 40
13 --- 41
13 --- 42
13 --- 43
13 --- 44
13 --- 45
13 --- 46
13 --- 47
13 --- 48
13 --- 49
13 --- 50
13 --- 51
13 --- 52
13 --- 53
13 --- 54
13 --- 55
13 --- 56
13 --- 57
13 --- 58
13 --- 59
13 --- 60
13 --- 61
13 --- 62
13 --- 63
13 --- 64
13 --- 65
13 --- 66
13 --- 67
13 --- 68
13 --- 69
13 --- 70
13 --- 71
13 --- 72
13 --- 73
13 --- 74
13 --- 75
13 --- 76
13 --- 77
13 --- 78
13 --- 79
13 --- 80
13 --- 81
13 --- 82
13 --- 83
13 --- 84
13 --- 85
13 --- 86
13 --- 87
13 --- 88
13 --- 89
13 --- 90
13 --- 91
13 --- 92
13 --- 93
13 --- 94
13 --- 95
13 --- 96
13 --- 97
13 --- 98
13 --- 99
13 --- 100
13 --- 101
13 --- 102
13 --- 103
13 --- 104
13 --- 105
13 --- 106
13 --- 107
13 --- 108
13 --- 109
13 --- 110
13 --- 111
13 --- 112
13 --- 113
13 --- 114
13 --- 115
13 --- 116
13 --- 117
13 --- 118
13 --- 119
13 --- 120
13 --- 121
13 --- 122
13 --- 123
13 --- 124
13 --- 125
13 --- 126
13 --- 127
13 --- 128
13 --- 129
13 --- 130
13 --- 131
13 --- 132
13 --- 133
13 --- 134
13 --- 135
13 --- 136
13 --- 137
13 --- 138
13 --- 139
13 --- 140
13 --- 141
13 --- 142
13 --- 143
13 --- 144
13 --- 145
13 --- 146
13 --- 147
13 --- 148
13 --- 149
13 --- 150
13 --- 151
13 --- 152
13 --- 153
13 --- 154
13 --- 155
13 --- 156
13 --- 157
13 --- 158
13 --- 159
13 --- 160
13 --- 161
13 --- 162
13 --- 163
13 --- 164
13 --- 165
13 --- 166
13 --- 167
13 --- 168
13 --- 169
13 --- 170
13 --- 171
13 --- 172
13 --- 173
13 --- 174
13 --- 175
13 --- 176
13 --- 177
13 --- 178
13 --- 179
13 --- 180
13 --- 181
13 --- 182
13 --- 183
13 --- 184
13 --- 185
13 --- 186
13 --- 187
13 --- 188
13 --- 189
13 --- 190
13 --- 191
13 --- 192
13 --- 193
13 --- 194
13 --- 195
13 --- 196
13 --- 197
13 --- 198
13 --- 199
13 --- 200
13 --- 201
13 --- 202
13 --- 203
13 --- 204
13 --- 205
13 --- 206
13 --- 207
13 --- 208
13 --- 209
13 --- 210
13 --- 211
13 --- 212
13 --- 213
13 --- 214
13 --- 215
13 --- 216
13 --- 217
13 ---- 219
13 --- 218
220 --- 221
220 --- 222
220 --- 223
220 --- 224
220 --- 225
220 --- 226
220 ---- 228
220 --- 227
221 --- 232
221 --- 239
221 --- 240
221 <--x 9
223 --- 227
222 --- 231
222 --- 237
222 --- 238
222 <--x 9
223 --- 230
223 --- 235
223 --- 236
223 <--x 9
226 --- 227
226 --- 228
226 --- 229
226 --- 230
226 --- 231
226 --- 232
226 --- 233
231 <--x 228
231 <--x 8
232 <--x 229
232 <--x 8
233 <--x 230
225 --- 229
225 --- 233
225 --- 234
225 <--x 9
228 --- 229
228 --- 230
228 --- 231
228 --- 232
228 --- 233
228 --- 234
228 --- 235
228 --- 236
228 --- 237
228 --- 238
228 --- 239
228 --- 240
233 <--x 229
233 <--x 8
9 <--x 234
234 <--x 229
234 <--x 232
235 <--x 230
235 <--x 8
236 <--x 229
236 <--x 230
237 <--x 231
237 <--x 8
238 <--x 230
238 <--x 231
239 <--x 232
239 <--x 8
240 <--x 231
240 <--x 232
9 <--x 241
```

View File

@ -266,6 +266,15 @@ description: Artifact commands import_function_not_sketch.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -276,6 +285,15 @@ description: Artifact commands import_function_not_sketch.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -308,19 +326,19 @@ description: Artifact commands import_function_not_sketch.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -355,19 +373,19 @@ description: Artifact commands import_function_not_sketch.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -402,19 +420,19 @@ description: Artifact commands import_function_not_sketch.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -449,19 +467,19 @@ description: Artifact commands import_function_not_sketch.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -496,19 +514,19 @@ description: Artifact commands import_function_not_sketch.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -543,19 +561,19 @@ description: Artifact commands import_function_not_sketch.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -586,15 +604,6 @@ description: Artifact commands import_function_not_sketch.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -605,6 +614,15 @@ description: Artifact commands import_function_not_sketch.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -615,24 +633,6 @@ description: Artifact commands import_function_not_sketch.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -22,6 +22,13 @@ flowchart LR
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
@ -34,13 +41,21 @@ flowchart LR
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
@ -49,11 +64,33 @@ flowchart LR
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
21 <--x 13
21 <--x 14
22 <--x 15
22 <--x 16
23 <--x 16
23 <--x 17
24 <--x 17
24 <--x 18
25 <--x 18
25 <--x 19
26 <--x 19
26 <--x 20
27 <--x 20
27 <--x 13
```

View File

@ -205,6 +205,15 @@ description: Artifact commands import_whole.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -215,6 +224,15 @@ description: Artifact commands import_whole.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -225,24 +243,6 @@ description: Artifact commands import_whole.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -10,13 +10,22 @@ flowchart LR
6[Wall]
7["Cap Start"]
8["Cap End"]
9["SweepEdge Opposite"]
10["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 ---- 5
2 --- 4
3 --- 6
3 --- 9
3 --- 10
3 x--> 7
5 --- 6
5 --- 7
5 --- 8
5 --- 9
5 --- 10
9 <--x 6
9 <--x 8
10 <--x 6
```

View File

@ -207,6 +207,15 @@ description: Artifact commands intersect_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -217,6 +226,15 @@ description: Artifact commands intersect_cubes.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -249,19 +267,19 @@ description: Artifact commands intersect_cubes.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -296,19 +314,19 @@ description: Artifact commands intersect_cubes.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -339,15 +357,6 @@ description: Artifact commands intersect_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -358,6 +367,15 @@ description: Artifact commands intersect_cubes.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -377,24 +395,6 @@ description: Artifact commands intersect_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -573,6 +573,15 @@ description: Artifact commands intersect_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -583,6 +592,15 @@ description: Artifact commands intersect_cubes.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -615,19 +633,19 @@ description: Artifact commands intersect_cubes.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -662,19 +680,19 @@ description: Artifact commands intersect_cubes.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -705,15 +723,6 @@ description: Artifact commands intersect_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -724,6 +733,15 @@ description: Artifact commands intersect_cubes.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -743,24 +761,6 @@ description: Artifact commands intersect_cubes.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -8,13 +8,13 @@ flowchart LR
6["Segment<br>[313, 320, 0]"]
7[Solid2d]
end
subgraph path19 [Path]
19["Path<br>[58, 113, 0]"]
20["Segment<br>[121, 177, 0]"]
21["Segment<br>[185, 241, 0]"]
22["Segment<br>[249, 305, 0]"]
23["Segment<br>[313, 320, 0]"]
24[Solid2d]
subgraph path24 [Path]
24["Path<br>[58, 113, 0]"]
25["Segment<br>[121, 177, 0]"]
26["Segment<br>[185, 241, 0]"]
27["Segment<br>[249, 305, 0]"]
28["Segment<br>[313, 320, 0]"]
29[Solid2d]
end
1["Plane<br>[33, 50, 0]"]
8["Sweep Extrusion<br>[328, 354, 0]"]
@ -25,20 +25,30 @@ flowchart LR
13["Cap Start"]
14["Cap End"]
15["SweepEdge Opposite"]
16["SweepEdge Opposite"]
16["SweepEdge Adjacent"]
17["SweepEdge Opposite"]
18["Plane<br>[33, 50, 0]"]
25["Sweep Extrusion<br>[328, 354, 0]"]
26[Wall]
27[Wall]
28[Wall]
29[Wall]
30["Cap Start"]
31["Cap End"]
32["SweepEdge Opposite"]
33["SweepEdge Opposite"]
34["SweepEdge Opposite"]
35["CompositeSolid Intersect<br>[448, 477, 0]"]
18["SweepEdge Adjacent"]
19["SweepEdge Opposite"]
20["SweepEdge Adjacent"]
21["SweepEdge Opposite"]
22["SweepEdge Adjacent"]
23["Plane<br>[33, 50, 0]"]
30["Sweep Extrusion<br>[328, 354, 0]"]
31[Wall]
32[Wall]
33[Wall]
34[Wall]
35["Cap Start"]
36["Cap End"]
37["SweepEdge Opposite"]
38["SweepEdge Adjacent"]
39["SweepEdge Opposite"]
40["SweepEdge Adjacent"]
41["SweepEdge Opposite"]
42["SweepEdge Adjacent"]
43["SweepEdge Opposite"]
44["SweepEdge Adjacent"]
45["CompositeSolid Intersect<br>[448, 477, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -47,15 +57,20 @@ flowchart LR
2 ---- 8
2 --- 7
3 --- 9
3 --- 15
3 --- 16
3 x--> 13
4 --- 10
4 --- 15
4 --- 17
4 --- 18
4 x--> 13
5 --- 11
5 --- 16
5 --- 19
5 --- 20
5 x--> 13
6 --- 12
6 --- 17
6 --- 21
6 --- 22
6 x--> 13
8 --- 9
8 --- 10
@ -66,45 +81,80 @@ flowchart LR
8 --- 15
8 --- 16
8 --- 17
15 <--x 10
8 --- 18
8 --- 19
8 --- 20
8 --- 21
8 --- 22
15 <--x 9
15 <--x 14
16 <--x 11
16 <--x 14
17 <--x 12
16 <--x 9
16 <--x 10
17 <--x 10
17 <--x 14
18 --- 19
19 --- 20
19 --- 21
19 --- 22
19 --- 23
19 ---- 25
19 --- 24
20 --- 26
20 x--> 30
21 --- 27
21 --- 32
21 x--> 30
22 --- 28
22 --- 33
22 x--> 30
23 --- 29
23 --- 34
23 x--> 30
25 --- 26
25 --- 27
25 --- 28
25 --- 29
25 --- 30
18 <--x 10
18 <--x 11
19 <--x 11
19 <--x 14
20 <--x 11
20 <--x 12
21 <--x 12
21 <--x 14
22 <--x 9
22 <--x 12
23 --- 24
24 --- 25
24 --- 26
24 --- 27
24 --- 28
24 ---- 30
24 --- 29
25 --- 31
25 --- 32
25 --- 33
25 --- 34
32 <--x 27
32 <--x 31
33 <--x 28
33 <--x 31
34 <--x 29
34 <--x 31
2 <--x 35
19 <--x 35
25 --- 37
25 --- 38
25 x--> 35
26 --- 32
26 --- 39
26 --- 40
26 x--> 35
27 --- 33
27 --- 41
27 --- 42
27 x--> 35
28 --- 34
28 --- 43
28 --- 44
28 x--> 35
30 --- 31
30 --- 32
30 --- 33
30 --- 34
30 --- 35
30 --- 36
30 --- 37
30 --- 38
30 --- 39
30 --- 40
30 --- 41
30 --- 42
30 --- 43
30 --- 44
37 <--x 31
37 <--x 36
38 <--x 31
38 <--x 32
39 <--x 32
39 <--x 36
40 <--x 32
40 <--x 33
41 <--x 33
41 <--x 36
42 <--x 33
42 <--x 34
43 <--x 34
43 <--x 36
44 <--x 31
44 <--x 34
2 <--x 45
24 <--x 45
```

View File

@ -143,101 +143,165 @@ flowchart LR
137["Cap Start"]
138["Cap End"]
139["SweepEdge Opposite"]
140["SweepEdge Opposite"]
140["SweepEdge Adjacent"]
141["SweepEdge Opposite"]
142["SweepEdge Opposite"]
142["SweepEdge Adjacent"]
143["SweepEdge Opposite"]
144["SweepEdge Opposite"]
144["SweepEdge Adjacent"]
145["SweepEdge Opposite"]
146["SweepEdge Opposite"]
146["SweepEdge Adjacent"]
147["SweepEdge Opposite"]
148["SweepEdge Opposite"]
148["SweepEdge Adjacent"]
149["SweepEdge Opposite"]
150["SweepEdge Opposite"]
150["SweepEdge Adjacent"]
151["SweepEdge Opposite"]
152["SweepEdge Opposite"]
152["SweepEdge Adjacent"]
153["SweepEdge Opposite"]
154["SweepEdge Opposite"]
154["SweepEdge Adjacent"]
155["SweepEdge Opposite"]
156["SweepEdge Opposite"]
156["SweepEdge Adjacent"]
157["SweepEdge Opposite"]
158["SweepEdge Opposite"]
158["SweepEdge Adjacent"]
159["SweepEdge Opposite"]
160["SweepEdge Opposite"]
160["SweepEdge Adjacent"]
161["SweepEdge Opposite"]
162["SweepEdge Opposite"]
162["SweepEdge Adjacent"]
163["SweepEdge Opposite"]
164["SweepEdge Opposite"]
164["SweepEdge Adjacent"]
165["SweepEdge Opposite"]
166["SweepEdge Opposite"]
166["SweepEdge Adjacent"]
167["SweepEdge Opposite"]
168["SweepEdge Opposite"]
168["SweepEdge Adjacent"]
169["SweepEdge Opposite"]
170["SweepEdge Opposite"]
170["SweepEdge Adjacent"]
171["SweepEdge Opposite"]
172["SweepEdge Opposite"]
172["SweepEdge Adjacent"]
173["SweepEdge Opposite"]
174["SweepEdge Opposite"]
174["SweepEdge Adjacent"]
175["SweepEdge Opposite"]
176["SweepEdge Opposite"]
176["SweepEdge Adjacent"]
177["SweepEdge Opposite"]
178["SweepEdge Opposite"]
178["SweepEdge Adjacent"]
179["SweepEdge Opposite"]
180["SweepEdge Opposite"]
180["SweepEdge Adjacent"]
181["SweepEdge Opposite"]
182["SweepEdge Opposite"]
182["SweepEdge Adjacent"]
183["SweepEdge Opposite"]
184["SweepEdge Opposite"]
184["SweepEdge Adjacent"]
185["SweepEdge Opposite"]
186["SweepEdge Opposite"]
186["SweepEdge Adjacent"]
187["SweepEdge Opposite"]
188["SweepEdge Opposite"]
188["SweepEdge Adjacent"]
189["SweepEdge Opposite"]
190["SweepEdge Opposite"]
190["SweepEdge Adjacent"]
191["SweepEdge Opposite"]
192["SweepEdge Opposite"]
192["SweepEdge Adjacent"]
193["SweepEdge Opposite"]
194["SweepEdge Opposite"]
194["SweepEdge Adjacent"]
195["SweepEdge Opposite"]
196["SweepEdge Opposite"]
196["SweepEdge Adjacent"]
197["SweepEdge Opposite"]
198["SweepEdge Opposite"]
198["SweepEdge Adjacent"]
199["SweepEdge Opposite"]
200["SweepEdge Opposite"]
200["SweepEdge Adjacent"]
201["SweepEdge Opposite"]
202["SweepEdge Adjacent"]
203["EdgeCut Fillet<br>[5104, 5809, 0]"]
204["EdgeCut Fillet<br>[5104, 5809, 0]"]
205["EdgeCut Fillet<br>[5104, 5809, 0]"]
206["EdgeCut Fillet<br>[5104, 5809, 0]"]
207["EdgeCut Fillet<br>[5104, 5809, 0]"]
208["EdgeCut Fillet<br>[5104, 5809, 0]"]
209["EdgeCut Fillet<br>[5104, 5809, 0]"]
210["EdgeCut Fillet<br>[5104, 5809, 0]"]
211["EdgeCut Fillet<br>[5104, 5809, 0]"]
212["EdgeCut Fillet<br>[5104, 5809, 0]"]
213["EdgeCut Fillet<br>[5104, 5809, 0]"]
214["EdgeCut Fillet<br>[5104, 5809, 0]"]
215["EdgeCut Fillet<br>[5104, 5809, 0]"]
216["EdgeCut Fillet<br>[5104, 5809, 0]"]
217["EdgeCut Fillet<br>[5104, 5809, 0]"]
218["EdgeCut Fillet<br>[5104, 5809, 0]"]
219["EdgeCut Fillet<br>[5817, 6521, 0]"]
220["EdgeCut Fillet<br>[5817, 6521, 0]"]
221["EdgeCut Fillet<br>[5817, 6521, 0]"]
222["EdgeCut Fillet<br>[5817, 6521, 0]"]
223["EdgeCut Fillet<br>[5817, 6521, 0]"]
224["EdgeCut Fillet<br>[5817, 6521, 0]"]
225["EdgeCut Fillet<br>[5817, 6521, 0]"]
226["EdgeCut Fillet<br>[5817, 6521, 0]"]
227["EdgeCut Fillet<br>[5817, 6521, 0]"]
228["EdgeCut Fillet<br>[5817, 6521, 0]"]
229["EdgeCut Fillet<br>[5817, 6521, 0]"]
230["EdgeCut Fillet<br>[5817, 6521, 0]"]
231["EdgeCut Fillet<br>[5817, 6521, 0]"]
232["EdgeCut Fillet<br>[5817, 6521, 0]"]
233["EdgeCut Fillet<br>[5817, 6521, 0]"]
234["EdgeCut Fillet<br>[5817, 6521, 0]"]
203["SweepEdge Opposite"]
204["SweepEdge Adjacent"]
205["SweepEdge Opposite"]
206["SweepEdge Adjacent"]
207["SweepEdge Opposite"]
208["SweepEdge Adjacent"]
209["SweepEdge Opposite"]
210["SweepEdge Adjacent"]
211["SweepEdge Opposite"]
212["SweepEdge Adjacent"]
213["SweepEdge Opposite"]
214["SweepEdge Adjacent"]
215["SweepEdge Opposite"]
216["SweepEdge Adjacent"]
217["SweepEdge Opposite"]
218["SweepEdge Adjacent"]
219["SweepEdge Opposite"]
220["SweepEdge Adjacent"]
221["SweepEdge Opposite"]
222["SweepEdge Adjacent"]
223["SweepEdge Opposite"]
224["SweepEdge Adjacent"]
225["SweepEdge Opposite"]
226["SweepEdge Adjacent"]
227["SweepEdge Opposite"]
228["SweepEdge Adjacent"]
229["SweepEdge Opposite"]
230["SweepEdge Adjacent"]
231["SweepEdge Opposite"]
232["SweepEdge Adjacent"]
233["SweepEdge Opposite"]
234["SweepEdge Adjacent"]
235["SweepEdge Opposite"]
236["SweepEdge Adjacent"]
237["SweepEdge Opposite"]
238["SweepEdge Adjacent"]
239["SweepEdge Opposite"]
240["SweepEdge Adjacent"]
241["SweepEdge Opposite"]
242["SweepEdge Adjacent"]
243["SweepEdge Opposite"]
244["SweepEdge Adjacent"]
245["SweepEdge Opposite"]
246["SweepEdge Adjacent"]
247["SweepEdge Opposite"]
248["SweepEdge Adjacent"]
249["SweepEdge Opposite"]
250["SweepEdge Adjacent"]
251["SweepEdge Opposite"]
252["SweepEdge Adjacent"]
253["SweepEdge Opposite"]
254["SweepEdge Adjacent"]
255["SweepEdge Opposite"]
256["SweepEdge Adjacent"]
257["SweepEdge Opposite"]
258["SweepEdge Adjacent"]
259["SweepEdge Opposite"]
260["SweepEdge Adjacent"]
261["SweepEdge Opposite"]
262["SweepEdge Adjacent"]
263["SweepEdge Opposite"]
264["SweepEdge Adjacent"]
265["SweepEdge Opposite"]
266["SweepEdge Adjacent"]
267["EdgeCut Fillet<br>[5104, 5809, 0]"]
268["EdgeCut Fillet<br>[5104, 5809, 0]"]
269["EdgeCut Fillet<br>[5104, 5809, 0]"]
270["EdgeCut Fillet<br>[5104, 5809, 0]"]
271["EdgeCut Fillet<br>[5104, 5809, 0]"]
272["EdgeCut Fillet<br>[5104, 5809, 0]"]
273["EdgeCut Fillet<br>[5104, 5809, 0]"]
274["EdgeCut Fillet<br>[5104, 5809, 0]"]
275["EdgeCut Fillet<br>[5104, 5809, 0]"]
276["EdgeCut Fillet<br>[5104, 5809, 0]"]
277["EdgeCut Fillet<br>[5104, 5809, 0]"]
278["EdgeCut Fillet<br>[5104, 5809, 0]"]
279["EdgeCut Fillet<br>[5104, 5809, 0]"]
280["EdgeCut Fillet<br>[5104, 5809, 0]"]
281["EdgeCut Fillet<br>[5104, 5809, 0]"]
282["EdgeCut Fillet<br>[5104, 5809, 0]"]
283["EdgeCut Fillet<br>[5817, 6521, 0]"]
284["EdgeCut Fillet<br>[5817, 6521, 0]"]
285["EdgeCut Fillet<br>[5817, 6521, 0]"]
286["EdgeCut Fillet<br>[5817, 6521, 0]"]
287["EdgeCut Fillet<br>[5817, 6521, 0]"]
288["EdgeCut Fillet<br>[5817, 6521, 0]"]
289["EdgeCut Fillet<br>[5817, 6521, 0]"]
290["EdgeCut Fillet<br>[5817, 6521, 0]"]
291["EdgeCut Fillet<br>[5817, 6521, 0]"]
292["EdgeCut Fillet<br>[5817, 6521, 0]"]
293["EdgeCut Fillet<br>[5817, 6521, 0]"]
294["EdgeCut Fillet<br>[5817, 6521, 0]"]
295["EdgeCut Fillet<br>[5817, 6521, 0]"]
296["EdgeCut Fillet<br>[5817, 6521, 0]"]
297["EdgeCut Fillet<br>[5817, 6521, 0]"]
298["EdgeCut Fillet<br>[5817, 6521, 0]"]
1 --- 2
1 --- 69
2 --- 3
@ -308,196 +372,260 @@ flowchart LR
2 ---- 72
2 --- 68
3 --- 73
3 --- 139
3 --- 140
3 x--> 137
4 --- 74
4 --- 139
4 --- 141
4 --- 142
4 x--> 137
5 --- 75
5 --- 140
5 --- 143
5 --- 144
5 x--> 137
6 --- 76
6 --- 141
6 --- 145
6 --- 146
6 x--> 137
7 --- 77
7 --- 142
7 --- 147
7 --- 148
7 x--> 137
8 --- 78
8 --- 143
8 --- 149
8 --- 150
8 x--> 137
9 --- 79
9 --- 144
9 --- 202
9 --- 151
9 --- 152
9 x--> 137
10 --- 80
10 --- 145
10 --- 153
10 --- 154
10 x--> 137
11 --- 81
11 --- 146
11 --- 155
11 --- 156
11 x--> 137
12 --- 82
12 --- 147
12 --- 157
12 --- 158
12 x--> 137
13 --- 83
13 --- 148
13 --- 159
13 --- 160
13 x--> 137
14 --- 84
14 --- 149
14 --- 161
14 --- 162
14 x--> 137
15 --- 85
15 --- 150
15 --- 163
15 --- 164
15 x--> 137
16 --- 86
16 --- 151
16 --- 165
16 --- 166
16 x--> 137
17 --- 87
17 --- 152
17 --- 167
17 --- 168
17 x--> 137
18 --- 88
18 --- 153
18 --- 169
18 --- 170
18 x--> 137
19 --- 89
19 --- 154
19 --- 171
19 --- 172
19 x--> 137
20 --- 90
20 --- 155
20 --- 173
20 --- 174
20 x--> 137
21 --- 91
21 --- 156
21 --- 175
21 --- 176
21 x--> 137
22 --- 92
22 --- 157
22 --- 177
22 --- 178
22 x--> 137
23 --- 93
23 --- 158
23 --- 179
23 --- 180
23 x--> 137
24 --- 94
24 --- 159
24 --- 181
24 --- 182
24 x--> 137
25 --- 95
25 --- 160
25 --- 183
25 --- 184
25 x--> 137
26 --- 96
26 --- 161
26 --- 185
26 --- 186
26 x--> 137
27 --- 97
27 --- 162
27 --- 187
27 --- 188
27 x--> 137
28 --- 98
28 --- 163
28 --- 189
28 --- 190
28 x--> 137
29 --- 99
29 --- 164
29 --- 191
29 --- 192
29 x--> 137
30 --- 100
30 --- 165
30 --- 193
30 --- 194
30 x--> 137
31 --- 101
31 --- 166
31 --- 195
31 --- 196
31 x--> 137
32 --- 102
32 --- 167
32 --- 197
32 --- 198
32 x--> 137
33 --- 103
33 --- 168
33 --- 199
33 --- 200
33 x--> 137
34 --- 104
34 --- 169
34 --- 201
34 --- 202
34 x--> 137
35 --- 105
35 --- 170
35 --- 203
35 --- 204
35 x--> 137
36 --- 106
36 --- 171
36 --- 205
36 --- 206
36 x--> 137
37 --- 107
37 --- 172
37 --- 207
37 --- 208
37 x--> 137
38 --- 108
38 --- 173
38 --- 209
38 --- 210
38 x--> 137
39 --- 109
39 --- 174
39 --- 211
39 --- 212
39 x--> 137
40 --- 110
40 --- 175
40 --- 213
40 --- 214
40 x--> 137
41 --- 111
41 --- 176
41 --- 215
41 --- 216
41 x--> 137
42 --- 112
42 --- 177
42 --- 217
42 --- 218
42 x--> 137
43 --- 113
43 --- 178
43 --- 219
43 --- 220
43 x--> 137
44 --- 114
44 --- 179
44 --- 221
44 --- 222
44 x--> 137
45 --- 115
45 --- 180
45 --- 223
45 --- 224
45 x--> 137
46 --- 116
46 --- 181
46 --- 225
46 --- 226
46 x--> 137
47 --- 117
47 --- 182
47 --- 227
47 --- 228
47 x--> 137
48 --- 118
48 --- 183
48 --- 229
48 --- 230
48 x--> 137
49 --- 119
49 --- 184
49 --- 231
49 --- 232
49 x--> 137
50 --- 120
50 --- 185
50 --- 233
50 --- 234
50 x--> 137
51 --- 121
51 --- 186
51 --- 235
51 --- 236
51 x--> 137
52 --- 122
52 --- 187
52 --- 237
52 --- 238
52 x--> 137
53 --- 123
53 --- 188
53 --- 239
53 --- 240
53 x--> 137
54 --- 124
54 --- 189
54 --- 241
54 --- 242
54 x--> 137
55 --- 125
55 --- 190
55 --- 243
55 --- 244
55 x--> 137
56 --- 126
56 --- 191
56 --- 245
56 --- 246
56 x--> 137
57 --- 127
57 --- 192
57 --- 247
57 --- 248
57 x--> 137
58 --- 128
58 --- 193
58 --- 249
58 --- 250
58 x--> 137
59 --- 129
59 --- 194
59 --- 251
59 --- 252
59 x--> 137
60 --- 130
60 --- 195
60 --- 253
60 --- 254
60 x--> 137
61 --- 131
61 --- 196
61 --- 255
61 --- 256
61 x--> 137
62 --- 132
62 --- 197
62 --- 257
62 --- 258
62 x--> 137
63 --- 133
63 --- 198
63 --- 259
63 --- 260
63 x--> 137
64 --- 134
64 --- 199
64 --- 261
64 --- 262
64 x--> 137
65 --- 135
65 --- 200
65 --- 263
65 --- 264
65 x--> 137
66 --- 136
66 --- 201
66 --- 265
66 --- 266
66 x--> 137
69 --- 70
69 --- 71
@ -631,131 +759,292 @@ flowchart LR
72 --- 200
72 --- 201
72 --- 202
139 <--x 74
72 --- 203
72 --- 204
72 --- 205
72 --- 206
72 --- 207
72 --- 208
72 --- 209
72 --- 210
72 --- 211
72 --- 212
72 --- 213
72 --- 214
72 --- 215
72 --- 216
72 --- 217
72 --- 218
72 --- 219
72 --- 220
72 --- 221
72 --- 222
72 --- 223
72 --- 224
72 --- 225
72 --- 226
72 --- 227
72 --- 228
72 --- 229
72 --- 230
72 --- 231
72 --- 232
72 --- 233
72 --- 234
72 --- 235
72 --- 236
72 --- 237
72 --- 238
72 --- 239
72 --- 240
72 --- 241
72 --- 242
72 --- 243
72 --- 244
72 --- 245
72 --- 246
72 --- 247
72 --- 248
72 --- 249
72 --- 250
72 --- 251
72 --- 252
72 --- 253
72 --- 254
72 --- 255
72 --- 256
72 --- 257
72 --- 258
72 --- 259
72 --- 260
72 --- 261
72 --- 262
72 --- 263
72 --- 264
72 --- 265
72 --- 266
139 <--x 73
139 <--x 138
140 <--x 75
140 <--x 138
141 <--x 76
140 <--x 73
140 <--x 74
141 <--x 74
141 <--x 138
142 <--x 77
142 <--x 138
143 <--x 78
142 <--x 74
142 <--x 75
143 <--x 75
143 <--x 138
144 <--x 79
144 <--x 138
145 <--x 80
144 <--x 75
144 <--x 76
145 <--x 76
145 <--x 138
146 <--x 81
146 <--x 138
147 <--x 82
146 <--x 76
146 <--x 77
147 <--x 77
147 <--x 138
148 <--x 83
148 <--x 138
149 <--x 84
149 <--x 78
149 <--x 138
150 <--x 85
150 <--x 138
151 <--x 86
151 <--x 79
151 <--x 138
152 <--x 87
152 <--x 138
153 <--x 88
153 <--x 80
153 <--x 138
154 <--x 89
154 <--x 138
155 <--x 90
155 <--x 81
155 <--x 138
156 <--x 91
156 <--x 138
157 <--x 92
157 <--x 82
157 <--x 138
158 <--x 93
158 <--x 138
159 <--x 94
159 <--x 83
159 <--x 138
160 <--x 95
160 <--x 138
161 <--x 96
161 <--x 84
161 <--x 138
162 <--x 97
162 <--x 138
163 <--x 98
163 <--x 85
163 <--x 138
164 <--x 99
164 <--x 138
165 <--x 100
164 <--x 85
164 <--x 86
165 <--x 86
165 <--x 138
166 <--x 101
166 <--x 138
167 <--x 102
166 <--x 86
166 <--x 87
167 <--x 87
167 <--x 138
168 <--x 103
168 <--x 138
169 <--x 104
168 <--x 87
168 <--x 88
169 <--x 88
169 <--x 138
170 <--x 105
170 <--x 138
171 <--x 106
170 <--x 88
170 <--x 89
171 <--x 89
171 <--x 138
172 <--x 107
172 <--x 138
173 <--x 108
172 <--x 89
172 <--x 90
173 <--x 90
173 <--x 138
174 <--x 109
174 <--x 138
175 <--x 110
174 <--x 90
174 <--x 91
175 <--x 91
175 <--x 138
176 <--x 111
176 <--x 138
177 <--x 112
176 <--x 91
176 <--x 92
177 <--x 92
177 <--x 138
178 <--x 113
178 <--x 138
179 <--x 114
178 <--x 92
178 <--x 93
179 <--x 93
179 <--x 138
180 <--x 115
180 <--x 138
181 <--x 116
181 <--x 94
181 <--x 138
182 <--x 117
182 <--x 138
183 <--x 118
183 <--x 95
183 <--x 138
184 <--x 119
184 <--x 138
185 <--x 120
185 <--x 96
185 <--x 138
186 <--x 121
186 <--x 138
187 <--x 122
187 <--x 97
187 <--x 138
188 <--x 123
188 <--x 138
189 <--x 124
189 <--x 98
189 <--x 138
190 <--x 125
190 <--x 138
191 <--x 126
191 <--x 99
191 <--x 138
192 <--x 127
192 <--x 138
193 <--x 128
193 <--x 100
193 <--x 138
194 <--x 129
194 <--x 138
195 <--x 130
195 <--x 101
195 <--x 138
196 <--x 131
196 <--x 138
197 <--x 132
196 <--x 101
196 <--x 102
197 <--x 102
197 <--x 138
198 <--x 133
198 <--x 138
199 <--x 134
198 <--x 102
198 <--x 103
199 <--x 103
199 <--x 138
200 <--x 135
200 <--x 138
201 <--x 136
200 <--x 103
200 <--x 104
201 <--x 104
201 <--x 138
202 <--x 203
202 <--x 104
202 <--x 105
203 <--x 105
203 <--x 138
204 <--x 105
204 <--x 106
205 <--x 106
205 <--x 138
206 <--x 106
206 <--x 107
207 <--x 107
207 <--x 138
208 <--x 107
208 <--x 108
209 <--x 108
209 <--x 138
210 <--x 108
210 <--x 109
211 <--x 109
211 <--x 138
213 <--x 110
213 <--x 138
215 <--x 111
215 <--x 138
217 <--x 112
217 <--x 138
219 <--x 113
219 <--x 138
221 <--x 114
221 <--x 138
223 <--x 115
223 <--x 138
225 <--x 116
225 <--x 138
227 <--x 117
227 <--x 138
228 <--x 117
228 <--x 118
229 <--x 118
229 <--x 138
230 <--x 118
230 <--x 119
231 <--x 119
231 <--x 138
232 <--x 119
232 <--x 120
233 <--x 120
233 <--x 138
234 <--x 120
234 <--x 121
235 <--x 121
235 <--x 138
236 <--x 121
236 <--x 122
237 <--x 122
237 <--x 138
238 <--x 122
238 <--x 123
239 <--x 123
239 <--x 138
240 <--x 123
240 <--x 124
241 <--x 124
241 <--x 138
242 <--x 124
242 <--x 125
243 <--x 125
243 <--x 138
245 <--x 126
245 <--x 138
247 <--x 127
247 <--x 138
249 <--x 128
249 <--x 138
251 <--x 129
251 <--x 138
253 <--x 130
253 <--x 138
255 <--x 131
255 <--x 138
257 <--x 132
257 <--x 138
259 <--x 133
259 <--x 138
260 <--x 133
260 <--x 134
261 <--x 134
261 <--x 138
262 <--x 134
262 <--x 135
263 <--x 135
263 <--x 138
264 <--x 135
264 <--x 136
265 <--x 136
265 <--x 138
266 <--x 73
266 <--x 136
152 <--x 267
154 <--x 268
156 <--x 269
158 <--x 270
184 <--x 271
186 <--x 272
188 <--x 273
190 <--x 274
216 <--x 275
218 <--x 276
220 <--x 277
222 <--x 278
248 <--x 279
250 <--x 280
252 <--x 281
254 <--x 282
148 <--x 283
150 <--x 284
160 <--x 285
162 <--x 286
180 <--x 287
182 <--x 288
192 <--x 289
194 <--x 290
212 <--x 291
214 <--x 292
224 <--x 293
226 <--x 294
244 <--x 295
246 <--x 296
256 <--x 297
258 <--x 298
```

File diff suppressed because it is too large Load Diff

View File

@ -289,6 +289,15 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -299,6 +308,15 @@ description: Artifact commands ball-bearing.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -327,15 +345,6 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -346,6 +355,15 @@ description: Artifact commands ball-bearing.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -365,24 +383,6 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -526,6 +526,15 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -536,6 +545,15 @@ description: Artifact commands ball-bearing.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -564,15 +582,6 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -583,6 +592,15 @@ description: Artifact commands ball-bearing.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -602,24 +620,6 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -818,6 +818,15 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -828,6 +837,15 @@ description: Artifact commands ball-bearing.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -860,19 +878,19 @@ description: Artifact commands ball-bearing.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -907,19 +925,19 @@ description: Artifact commands ball-bearing.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -950,15 +968,6 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -969,6 +978,15 @@ description: Artifact commands ball-bearing.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -988,24 +1006,6 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1170,6 +1170,15 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1180,6 +1189,15 @@ description: Artifact commands ball-bearing.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1199,24 +1217,6 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1498,6 +1498,15 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1508,6 +1517,15 @@ description: Artifact commands ball-bearing.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1536,15 +1554,6 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1555,6 +1564,15 @@ description: Artifact commands ball-bearing.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -1574,24 +1592,6 @@ description: Artifact commands ball-bearing.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -10,123 +10,178 @@ flowchart LR
6["Segment<br>[750, 796, 0]"]
7[Solid2d]
end
subgraph path13 [Path]
13["Path<br>[980, 1036, 0]"]
14["Segment<br>[1042, 1101, 0]"]
15["Segment<br>[1107, 1114, 0]"]
16[Solid2d]
subgraph path15 [Path]
15["Path<br>[980, 1036, 0]"]
16["Segment<br>[1042, 1101, 0]"]
17["Segment<br>[1107, 1114, 0]"]
18[Solid2d]
end
subgraph path21 [Path]
21["Path<br>[1484, 1617, 0]"]
22["Segment<br>[1623, 1683, 0]"]
23["Segment<br>[1689, 1720, 0]"]
24["Segment<br>[1726, 1754, 0]"]
25["Segment<br>[1760, 1767, 0]"]
26[Solid2d]
subgraph path24 [Path]
24["Path<br>[1484, 1617, 0]"]
25["Segment<br>[1623, 1683, 0]"]
26["Segment<br>[1689, 1720, 0]"]
27["Segment<br>[1726, 1754, 0]"]
28["Segment<br>[1760, 1767, 0]"]
29[Solid2d]
end
subgraph path33 [Path]
33["Path<br>[2101, 2243, 0]"]
34["Segment<br>[2101, 2243, 0]"]
35[Solid2d]
subgraph path40 [Path]
40["Path<br>[2101, 2243, 0]"]
41["Segment<br>[2101, 2243, 0]"]
42[Solid2d]
end
subgraph path41 [Path]
41["Path<br>[2637, 2690, 0]"]
42["Segment<br>[2637, 2690, 0]"]
43[Solid2d]
subgraph path50 [Path]
50["Path<br>[2637, 2690, 0]"]
51["Segment<br>[2637, 2690, 0]"]
52[Solid2d]
end
subgraph path44 [Path]
44["Path<br>[2714, 2788, 0]"]
45["Segment<br>[2714, 2788, 0]"]
46[Solid2d]
subgraph path53 [Path]
53["Path<br>[2714, 2788, 0]"]
54["Segment<br>[2714, 2788, 0]"]
55[Solid2d]
end
1["Plane<br>[610, 657, 0]"]
8["Sweep Extrusion<br>[848, 900, 0]"]
9[Wall]
10["Cap Start"]
11["Cap End"]
12["Plane<br>[957, 974, 0]"]
17["Sweep Revolve<br>[1196, 1226, 0]"]
18[Wall]
19[Wall]
20["Plane<br>[1461, 1478, 0]"]
27["Sweep Revolve<br>[1809, 1839, 0]"]
28[Wall]
29[Wall]
30[Wall]
12["SweepEdge Opposite"]
13["SweepEdge Adjacent"]
14["Plane<br>[957, 974, 0]"]
19["Sweep Revolve<br>[1196, 1226, 0]"]
20[Wall]
21[Wall]
22["SweepEdge Adjacent"]
23["Plane<br>[1461, 1478, 0]"]
30["Sweep Revolve<br>[1809, 1839, 0]"]
31[Wall]
32["Plane<br>[2078, 2095, 0]"]
36["Sweep Revolve<br>[2286, 2337, 0]"]
37[Wall]
38["Cap Start"]
39["Cap End"]
40["Plane<br>[2583, 2630, 0]"]
47["Sweep Extrusion<br>[2805, 2858, 0]"]
48[Wall]
49["Cap Start"]
50["Cap End"]
51["StartSketchOnPlane<br>[596, 658, 0]"]
52["StartSketchOnPlane<br>[2569, 2631, 0]"]
32[Wall]
33[Wall]
34[Wall]
35["SweepEdge Adjacent"]
36["SweepEdge Adjacent"]
37["SweepEdge Adjacent"]
38["SweepEdge Adjacent"]
39["Plane<br>[2078, 2095, 0]"]
43["Sweep Revolve<br>[2286, 2337, 0]"]
44[Wall]
45["Cap Start"]
46["Cap End"]
47["SweepEdge Opposite"]
48["SweepEdge Adjacent"]
49["Plane<br>[2583, 2630, 0]"]
56["Sweep Extrusion<br>[2805, 2858, 0]"]
57[Wall]
58["Cap Start"]
59["Cap End"]
60["SweepEdge Opposite"]
61["SweepEdge Adjacent"]
62["StartSketchOnPlane<br>[596, 658, 0]"]
63["StartSketchOnPlane<br>[2569, 2631, 0]"]
1 --- 2
1 --- 5
2 --- 3
2 ---- 8
2 --- 4
3 --- 9
3 --- 12
3 --- 13
3 x--> 10
5 --- 6
5 --- 7
8 --- 9
8 --- 10
8 --- 11
12 --- 13
13 --- 14
13 --- 15
13 ---- 17
13 --- 16
14 --- 18
15 --- 19
17 --- 18
17 --- 19
17 <--x 15
20 --- 21
21 --- 22
21 --- 23
21 --- 24
21 --- 25
21 ---- 27
21 --- 26
22 --- 28
23 --- 29
24 --- 30
8 --- 12
8 --- 13
12 <--x 9
12 <--x 11
13 <--x 9
14 --- 15
15 --- 16
15 --- 17
15 ---- 19
15 --- 18
16 --- 20
16 x--> 22
17 --- 21
17 --- 22
19 --- 20
19 --- 21
19 <--x 16
19 --- 22
19 <--x 17
22 <--x 20
22 <--x 21
23 --- 24
24 --- 25
24 --- 26
24 --- 27
24 --- 28
24 ---- 30
24 --- 29
25 --- 31
27 --- 28
27 --- 29
27 --- 30
27 --- 31
27 <--x 23
27 <--x 24
27 <--x 25
32 --- 33
33 --- 34
33 ---- 36
33 --- 35
34 --- 37
34 x--> 38
36 --- 37
36 --- 38
36 --- 39
25 --- 35
26 --- 32
26 --- 36
27 --- 33
27 --- 37
28 --- 34
28 --- 38
30 --- 31
30 --- 32
30 --- 33
30 --- 34
30 <--x 25
30 --- 35
30 <--x 26
30 --- 36
30 <--x 27
30 --- 37
30 <--x 28
30 --- 38
35 <--x 31
35 <--x 32
36 <--x 32
36 <--x 33
37 <--x 33
37 <--x 34
38 <--x 34
38 <--x 31
39 --- 40
40 --- 41
40 --- 44
41 --- 42
41 ---- 47
41 --- 43
42 --- 48
42 x--> 49
44 --- 45
44 --- 46
47 --- 48
47 --- 49
47 --- 50
1 <--x 51
40 <--x 52
40 ---- 43
40 --- 42
41 --- 44
41 --- 47
41 --- 48
41 x--> 45
43 --- 44
43 --- 45
43 --- 46
43 --- 47
43 --- 48
47 <--x 44
47 <--x 46
48 <--x 44
49 --- 50
49 --- 53
50 --- 51
50 ---- 56
50 --- 52
51 --- 57
51 --- 60
51 --- 61
51 x--> 58
53 --- 54
53 --- 55
56 --- 57
56 --- 58
56 --- 59
56 --- 60
56 --- 61
60 <--x 57
60 <--x 59
61 <--x 57
1 <--x 62
49 <--x 63
```

File diff suppressed because it is too large Load Diff

View File

@ -240,6 +240,15 @@ description: Artifact commands bottle.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -250,6 +259,15 @@ description: Artifact commands bottle.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -282,19 +300,19 @@ description: Artifact commands bottle.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -329,19 +347,19 @@ description: Artifact commands bottle.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -376,19 +394,19 @@ description: Artifact commands bottle.kcl
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"type": "solid3d_get_opposite_edge",
"object_id": "[uuid]",
"edge_id": "[uuid]"
"edge_id": "[uuid]",
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_opposite_edge",
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]",
"face_id": "[uuid]"
"edge_id": "[uuid]"
}
},
{
@ -419,15 +437,6 @@ description: Artifact commands bottle.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -438,6 +447,15 @@ description: Artifact commands bottle.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -457,24 +475,6 @@ description: Artifact commands bottle.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -594,6 +594,15 @@ description: Artifact commands bottle.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -604,6 +613,15 @@ description: Artifact commands bottle.kcl
"face_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
@ -623,24 +641,6 @@ description: Artifact commands bottle.kcl
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],
"command": {
"type": "solid3d_get_all_edge_faces",
"object_id": "[uuid]",
"edge_id": "[uuid]"
}
},
{
"cmdId": "[uuid]",
"range": [],

View File

@ -19,7 +19,9 @@ flowchart LR
13["Sweep Extrusion<br>[794, 821, 0]"]
14[Wall]
15["Cap End"]
16["StartSketchOnFace<br>[695, 732, 0]"]
16["SweepEdge Opposite"]
17["SweepEdge Adjacent"]
18["StartSketchOnFace<br>[695, 732, 0]"]
1 --- 2
2 --- 3
2 --- 4
@ -32,8 +34,15 @@ flowchart LR
10 ---- 13
10 --- 12
11 --- 14
11 --- 16
11 --- 17
11 <--x 9
13 --- 14
13 --- 15
9 <--x 16
13 --- 16
13 --- 17
16 <--x 14
16 <--x 15
17 <--x 14
9 <--x 18
```

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