more csg regression tests (#7032)
* more csg regression tests Signed-off-by: Jess Frazelle <github@jessfraz.com> * artifacts Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
@ -3214,3 +3214,66 @@ mod subtract_regression07 {
|
|||||||
super::execute(TEST_NAME, true).await
|
super::execute(TEST_NAME, true).await
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mod subtract_regression08 {
|
||||||
|
const TEST_NAME: &str = "subtract_regression08";
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn unparse() {
|
||||||
|
super::unparse(TEST_NAME).await
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mod subtract_regression09 {
|
||||||
|
const TEST_NAME: &str = "subtract_regression09";
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn unparse() {
|
||||||
|
super::unparse(TEST_NAME).await
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mod subtract_regression10 {
|
||||||
|
const TEST_NAME: &str = "subtract_regression10";
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn unparse() {
|
||||||
|
super::unparse(TEST_NAME).await
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 100 KiB |
578
rust/kcl-lib/tests/subtract_regression08/artifact_commands.snap
Normal file
@ -0,0 +1,578 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Artifact commands subtract_regression08.kcl
|
||||||
|
---
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "edge_lines_visible",
|
||||||
|
"hidden": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "object_visible",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"hidden": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "object_visible",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"hidden": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "make_plane",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"x_axis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"y_axis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"size": 60.0,
|
||||||
|
"clobber": false,
|
||||||
|
"hide": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "enable_sketch_mode",
|
||||||
|
"entity_id": "[uuid]",
|
||||||
|
"ortho": false,
|
||||||
|
"animated": false,
|
||||||
|
"adjust_camera": false,
|
||||||
|
"planar_normal": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "move_path_pen",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"to": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "sketch_mode_disable"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "start_path"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "line",
|
||||||
|
"end": {
|
||||||
|
"x": 23.7998,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"relative": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "arc",
|
||||||
|
"center": {
|
||||||
|
"x": 23.7998,
|
||||||
|
"y": 58.7502
|
||||||
|
},
|
||||||
|
"radius": 58.7502,
|
||||||
|
"start": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 270.0
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 360.0
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "line",
|
||||||
|
"end": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 23.7998,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"relative": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "make_plane",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"x_axis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"y_axis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
},
|
||||||
|
"size": 60.0,
|
||||||
|
"clobber": false,
|
||||||
|
"hide": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "close_path",
|
||||||
|
"path_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "enable_sketch_mode",
|
||||||
|
"entity_id": "[uuid]",
|
||||||
|
"ortho": false,
|
||||||
|
"animated": false,
|
||||||
|
"adjust_camera": false,
|
||||||
|
"planar_normal": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "arc",
|
||||||
|
"center": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0
|
||||||
|
},
|
||||||
|
"radius": 30.162499999999998,
|
||||||
|
"start": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 0.0
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 360.0
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "move_path_pen",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"to": {
|
||||||
|
"x": 30.1625,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "sketch_mode_disable"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "start_path"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "object_bring_to_front",
|
||||||
|
"object_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "object_visible",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"hidden": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "solid3d_get_extrusion_face_info",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"edge_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "sweep",
|
||||||
|
"target": "[uuid]",
|
||||||
|
"trajectory": "[uuid]",
|
||||||
|
"sectional": true,
|
||||||
|
"tolerance": 0.0000001,
|
||||||
|
"relative_to": "trajectory_curve"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "make_plane",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"x_axis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"y_axis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"size": 60.0,
|
||||||
|
"clobber": false,
|
||||||
|
"hide": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "enable_sketch_mode",
|
||||||
|
"entity_id": "[uuid]",
|
||||||
|
"ortho": false,
|
||||||
|
"animated": false,
|
||||||
|
"adjust_camera": false,
|
||||||
|
"planar_normal": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "move_path_pen",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"to": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "sketch_mode_disable"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "start_path"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "line",
|
||||||
|
"end": {
|
||||||
|
"x": 23.7998,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"relative": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "arc",
|
||||||
|
"center": {
|
||||||
|
"x": 23.7998,
|
||||||
|
"y": 58.7502
|
||||||
|
},
|
||||||
|
"radius": 58.7502,
|
||||||
|
"start": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 270.0
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 360.0
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "line",
|
||||||
|
"end": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 23.7998,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"relative": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "make_plane",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"x_axis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"y_axis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
},
|
||||||
|
"size": 60.0,
|
||||||
|
"clobber": false,
|
||||||
|
"hide": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "close_path",
|
||||||
|
"path_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "enable_sketch_mode",
|
||||||
|
"entity_id": "[uuid]",
|
||||||
|
"ortho": false,
|
||||||
|
"animated": false,
|
||||||
|
"adjust_camera": false,
|
||||||
|
"planar_normal": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "arc",
|
||||||
|
"center": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0
|
||||||
|
},
|
||||||
|
"radius": 23.8125,
|
||||||
|
"start": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 0.0
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 360.0
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "move_path_pen",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"to": {
|
||||||
|
"x": 23.8125,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "sketch_mode_disable"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "start_path"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "object_bring_to_front",
|
||||||
|
"object_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "object_visible",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"hidden": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "solid3d_get_extrusion_face_info",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"edge_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "sweep",
|
||||||
|
"target": "[uuid]",
|
||||||
|
"trajectory": "[uuid]",
|
||||||
|
"sectional": true,
|
||||||
|
"tolerance": 0.0000001,
|
||||||
|
"relative_to": "trajectory_curve"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "boolean_subtract",
|
||||||
|
"target_ids": [
|
||||||
|
"[uuid]"
|
||||||
|
],
|
||||||
|
"tool_ids": [
|
||||||
|
"[uuid]"
|
||||||
|
],
|
||||||
|
"tolerance": 0.0000001
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Artifact graph flowchart subtract_regression08.kcl
|
||||||
|
extension: md
|
||||||
|
snapshot_kind: binary
|
||||||
|
---
|
@ -0,0 +1,105 @@
|
|||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph path5 [Path]
|
||||||
|
5["Path<br>[88, 124, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
9["Segment<br>[130, 151, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
10["Segment<br>[157, 238, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
|
||||||
|
11["Segment<br>[244, 265, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
end
|
||||||
|
subgraph path6 [Path]
|
||||||
|
6["Path<br>[320, 379, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
12["Segment<br>[320, 379, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
17[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path7 [Path]
|
||||||
|
7["Path<br>[535, 571, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
13["Segment<br>[577, 598, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
14["Segment<br>[604, 685, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
|
||||||
|
15["Segment<br>[691, 712, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
end
|
||||||
|
subgraph path8 [Path]
|
||||||
|
8["Path<br>[767, 826, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 8 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
16["Segment<br>[767, 826, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 8 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
18[Solid2d]
|
||||||
|
end
|
||||||
|
1["Plane<br>[47, 64, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
2["Plane<br>[279, 296, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
3["Plane<br>[494, 511, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
4["Plane<br>[726, 743, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
19["Sweep Sweep<br>[399, 480, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
20["Sweep Sweep<br>[849, 929, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
21["CompositeSolid Subtract<br>[945, 998, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 10 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
22[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
23[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
24[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
25[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
26[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
27[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
28["Cap Start"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
29["Cap Start"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
30["Cap End"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
31["Cap End"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
1 --- 5
|
||||||
|
1 --- 7
|
||||||
|
2 --- 6
|
||||||
|
4 --- 8
|
||||||
|
5 --- 9
|
||||||
|
5 --- 10
|
||||||
|
5 --- 11
|
||||||
|
6 --- 12
|
||||||
|
6 --- 17
|
||||||
|
6 ---- 19
|
||||||
|
6 --- 21
|
||||||
|
7 --- 13
|
||||||
|
7 --- 14
|
||||||
|
7 --- 15
|
||||||
|
8 --- 16
|
||||||
|
8 --- 18
|
||||||
|
8 ---- 20
|
||||||
|
8 --- 21
|
||||||
|
12 --- 22
|
||||||
|
12 <--x 23
|
||||||
|
12 <--x 24
|
||||||
|
16 <--x 25
|
||||||
|
16 <--x 26
|
||||||
|
16 --- 27
|
||||||
|
19 --- 22
|
||||||
|
19 --- 23
|
||||||
|
19 --- 24
|
||||||
|
19 --- 29
|
||||||
|
19 --- 31
|
||||||
|
20 --- 25
|
||||||
|
20 --- 26
|
||||||
|
20 --- 27
|
||||||
|
20 --- 28
|
||||||
|
20 --- 30
|
||||||
|
```
|
1567
rust/kcl-lib/tests/subtract_regression08/ast.snap
Normal file
53
rust/kcl-lib/tests/subtract_regression08/input.kcl
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
sketch001 = startSketchOn(XY)
|
||||||
|
|
||||||
|
sketch001Profile000 = startProfile(sketch001, at = [0, 0])
|
||||||
|
|> xLine(length = 0.937)
|
||||||
|
|> arc(
|
||||||
|
angleStart = 270,
|
||||||
|
angleEnd = 360,
|
||||||
|
radius = 2.313
|
||||||
|
)
|
||||||
|
|> yLine(length = 0.937)
|
||||||
|
|
||||||
|
sketch000 = startSketchOn(YZ)
|
||||||
|
|
||||||
|
sketch000Profile000 = circle(
|
||||||
|
sketch000,
|
||||||
|
center = [0, 0],
|
||||||
|
radius = 1.1875
|
||||||
|
)
|
||||||
|
|
||||||
|
sweepExtrude000 = sweep(
|
||||||
|
sketch000Profile000,
|
||||||
|
path = sketch001Profile000,
|
||||||
|
sectional = true,
|
||||||
|
)
|
||||||
|
|
||||||
|
sketch003 = startSketchOn(XY)
|
||||||
|
|
||||||
|
sketch003Profile000 = startProfile(sketch001, at = [0, 0])
|
||||||
|
|> xLine(length = 0.937)
|
||||||
|
|> arc(
|
||||||
|
angleStart = 270,
|
||||||
|
angleEnd = 360,
|
||||||
|
radius = 2.313
|
||||||
|
)
|
||||||
|
|> yLine(length = 0.937)
|
||||||
|
|
||||||
|
sketch002 = startSketchOn(YZ)
|
||||||
|
|
||||||
|
sketch002Profile000 = circle(
|
||||||
|
sketch002,
|
||||||
|
center = [0, 0],
|
||||||
|
radius = 0.9375
|
||||||
|
)
|
||||||
|
|
||||||
|
sweepCut000Extrude = sweep(
|
||||||
|
sketch002Profile000,
|
||||||
|
path = sketch003Profile000,
|
||||||
|
sectional = true
|
||||||
|
)
|
||||||
|
|
||||||
|
sweepCut000 = subtract(sweepExtrude000, tools = sweepCut000Extrude)
|
147
rust/kcl-lib/tests/subtract_regression08/ops.snap
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Operations executed subtract_regression08.kcl
|
||||||
|
---
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"labeledArgs": {},
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Plane",
|
||||||
|
"artifact_id": "[uuid]"
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {},
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Plane",
|
||||||
|
"artifact_id": "[uuid]"
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"path": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"sectional": {
|
||||||
|
"value": {
|
||||||
|
"type": "Bool",
|
||||||
|
"value": true
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "sweep",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {},
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Plane",
|
||||||
|
"artifact_id": "[uuid]"
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {},
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Plane",
|
||||||
|
"artifact_id": "[uuid]"
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"path": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"sectional": {
|
||||||
|
"value": {
|
||||||
|
"type": "Bool",
|
||||||
|
"value": true
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "sweep",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"tools": {
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "subtract",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
882
rust/kcl-lib/tests/subtract_regression08/program_memory.snap
Normal file
@ -0,0 +1,882 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Variables in memory after executing subtract_regression08.kcl
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"sketch000": {
|
||||||
|
"type": "Plane",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"value": "YZ",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sketch000Profile000": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": true,
|
||||||
|
"center": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"radius": 1.1875,
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "Circle",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "plane",
|
||||||
|
"value": "YZ",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"originalId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sketch001": {
|
||||||
|
"type": "Plane",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"value": "XY",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sketch001Profile000": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.937,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": true,
|
||||||
|
"center": [
|
||||||
|
0.937,
|
||||||
|
2.313
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
0.937,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"radius": 2.313,
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
3.25,
|
||||||
|
2.313
|
||||||
|
],
|
||||||
|
"type": "Arc",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
3.25,
|
||||||
|
2.313
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
3.25,
|
||||||
|
3.25
|
||||||
|
],
|
||||||
|
"type": "ToPoint",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "plane",
|
||||||
|
"value": "XY",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"originalId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sketch002": {
|
||||||
|
"type": "Plane",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"value": "YZ",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sketch002Profile000": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": true,
|
||||||
|
"center": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
0.9375,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"radius": 0.9375,
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.9375,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "Circle",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "plane",
|
||||||
|
"value": "YZ",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
0.9375,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0.9375,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"originalId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sketch003": {
|
||||||
|
"type": "Plane",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"value": "XY",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sketch003Profile000": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.937,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": true,
|
||||||
|
"center": [
|
||||||
|
0.937,
|
||||||
|
2.313
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
0.937,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"radius": 2.313,
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
3.25,
|
||||||
|
2.313
|
||||||
|
],
|
||||||
|
"type": "Arc",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
3.25,
|
||||||
|
2.313
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
3.25,
|
||||||
|
3.25
|
||||||
|
],
|
||||||
|
"type": "ToPoint",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "plane",
|
||||||
|
"value": "XY",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"originalId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sweepCut000": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudeArc"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sketch": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": true,
|
||||||
|
"center": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"radius": 1.1875,
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "Circle",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "plane",
|
||||||
|
"value": "YZ",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"originalId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"height": 0.0,
|
||||||
|
"startCapId": "[uuid]",
|
||||||
|
"endCapId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"sectional": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sweepCut000Extrude": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudeArc"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sketch": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": true,
|
||||||
|
"center": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
0.9375,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"radius": 0.9375,
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.9375,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "Circle",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "plane",
|
||||||
|
"value": "YZ",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
0.9375,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0.9375,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"originalId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"height": 0.0,
|
||||||
|
"startCapId": "[uuid]",
|
||||||
|
"endCapId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"sectional": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sweepExtrude000": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudeArc"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sketch": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"ccw": true,
|
||||||
|
"center": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"radius": 1.1875,
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "Circle",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Mm"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "plane",
|
||||||
|
"value": "YZ",
|
||||||
|
"xAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0,
|
||||||
|
"units": {
|
||||||
|
"type": "Unknown"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
1.1875,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"artifactId": "[uuid]",
|
||||||
|
"originalId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"height": 0.0,
|
||||||
|
"startCapId": "[uuid]",
|
||||||
|
"endCapId": "[uuid]",
|
||||||
|
"units": {
|
||||||
|
"type": "Inches"
|
||||||
|
},
|
||||||
|
"sectional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
BIN
rust/kcl-lib/tests/subtract_regression08/rendered_model.png
Normal file
After Width: | Height: | Size: 92 KiB |
33
rust/kcl-lib/tests/subtract_regression08/unparsed.snap
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Result of unparsing subtract_regression08.kcl
|
||||||
|
---
|
||||||
|
@settings(defaultLengthUnit = in)
|
||||||
|
|
||||||
|
sketch001 = startSketchOn(XY)
|
||||||
|
|
||||||
|
sketch001Profile000 = startProfile(sketch001, at = [0, 0])
|
||||||
|
|> xLine(length = 0.937)
|
||||||
|
|> arc(angleStart = 270, angleEnd = 360, radius = 2.313)
|
||||||
|
|> yLine(length = 0.937)
|
||||||
|
|
||||||
|
sketch000 = startSketchOn(YZ)
|
||||||
|
|
||||||
|
sketch000Profile000 = circle(sketch000, center = [0, 0], radius = 1.1875)
|
||||||
|
|
||||||
|
sweepExtrude000 = sweep(sketch000Profile000, path = sketch001Profile000, sectional = true)
|
||||||
|
|
||||||
|
sketch003 = startSketchOn(XY)
|
||||||
|
|
||||||
|
sketch003Profile000 = startProfile(sketch001, at = [0, 0])
|
||||||
|
|> xLine(length = 0.937)
|
||||||
|
|> arc(angleStart = 270, angleEnd = 360, radius = 2.313)
|
||||||
|
|> yLine(length = 0.937)
|
||||||
|
|
||||||
|
sketch002 = startSketchOn(YZ)
|
||||||
|
|
||||||
|
sketch002Profile000 = circle(sketch002, center = [0, 0], radius = 0.9375)
|
||||||
|
|
||||||
|
sweepCut000Extrude = sweep(sketch002Profile000, path = sketch003Profile000, sectional = true)
|
||||||
|
|
||||||
|
sweepCut000 = subtract(sweepExtrude000, tools = sweepCut000Extrude)
|
555
rust/kcl-lib/tests/subtract_regression09/artifact_commands.snap
Normal file
@ -0,0 +1,555 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Artifact commands subtract_regression09.kcl
|
||||||
|
---
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "edge_lines_visible",
|
||||||
|
"hidden": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "object_visible",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"hidden": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "object_visible",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"hidden": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "make_plane",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"x_axis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"y_axis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
},
|
||||||
|
"size": 60.0,
|
||||||
|
"clobber": false,
|
||||||
|
"hide": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "enable_sketch_mode",
|
||||||
|
"entity_id": "[uuid]",
|
||||||
|
"ortho": false,
|
||||||
|
"animated": false,
|
||||||
|
"adjust_camera": false,
|
||||||
|
"planar_normal": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "move_path_pen",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"to": {
|
||||||
|
"x": 5.0,
|
||||||
|
"y": 3.0,
|
||||||
|
"z": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "sketch_mode_disable"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "start_path"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "line",
|
||||||
|
"end": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": -6.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"relative": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "line",
|
||||||
|
"end": {
|
||||||
|
"x": 24.972,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"relative": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "line",
|
||||||
|
"end": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 6.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"relative": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "line",
|
||||||
|
"end": {
|
||||||
|
"x": -24.972,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"relative": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "close_path",
|
||||||
|
"path_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "object_bring_to_front",
|
||||||
|
"object_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "revolve",
|
||||||
|
"target": "[uuid]",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"axis_is_2d": true,
|
||||||
|
"angle": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 360.0
|
||||||
|
},
|
||||||
|
"tolerance": 0.0000001,
|
||||||
|
"opposite": "None"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "solid3d_get_adjacency_info",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"edge_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "solid3d_get_extrusion_face_info",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"edge_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "make_plane",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"x_axis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"y_axis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"size": 60.0,
|
||||||
|
"clobber": false,
|
||||||
|
"hide": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "enable_sketch_mode",
|
||||||
|
"entity_id": "[uuid]",
|
||||||
|
"ortho": false,
|
||||||
|
"animated": false,
|
||||||
|
"adjust_camera": false,
|
||||||
|
"planar_normal": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "move_path_pen",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"to": {
|
||||||
|
"x": 1.1882,
|
||||||
|
"y": 27.4971,
|
||||||
|
"z": 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "sketch_mode_disable"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "start_path"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "line",
|
||||||
|
"end": {
|
||||||
|
"x": -0.1771,
|
||||||
|
"y": 0.7408,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"relative": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "arc",
|
||||||
|
"center": {
|
||||||
|
"x": -4.1275,
|
||||||
|
"y": 27.0095
|
||||||
|
},
|
||||||
|
"radius": 5.283446,
|
||||||
|
"start": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 13.4444
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 38.6282
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "arc",
|
||||||
|
"center": {
|
||||||
|
"x": 4.7625,
|
||||||
|
"y": 27.0095
|
||||||
|
},
|
||||||
|
"radius": 5.793095,
|
||||||
|
"start": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 145.2955
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 14.7045
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "arc",
|
||||||
|
"center": {
|
||||||
|
"x": 13.1164,
|
||||||
|
"y": 23.9689
|
||||||
|
},
|
||||||
|
"radius": 5.283446,
|
||||||
|
"start": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 121.3718
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 146.5556
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "line",
|
||||||
|
"end": {
|
||||||
|
"x": -0.4198,
|
||||||
|
"y": -0.6355,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"relative": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "arc",
|
||||||
|
"center": {
|
||||||
|
"x": 1.4162,
|
||||||
|
"y": 30.8507
|
||||||
|
},
|
||||||
|
"radius": 8.272375,
|
||||||
|
"start": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 326.1703
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 311.294
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "arc",
|
||||||
|
"center": {
|
||||||
|
"x": 4.7625,
|
||||||
|
"y": 27.0095
|
||||||
|
},
|
||||||
|
"radius": 3.178087,
|
||||||
|
"start": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 311.6667
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"unit": "degrees",
|
||||||
|
"value": 208.3333
|
||||||
|
},
|
||||||
|
"relative": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extend_path",
|
||||||
|
"path": "[uuid]",
|
||||||
|
"segment": {
|
||||||
|
"type": "tangential_arc_to",
|
||||||
|
"to": {
|
||||||
|
"x": -0.7769,
|
||||||
|
"y": 1.9959,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"angle_snap_increment": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "close_path",
|
||||||
|
"path_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "enable_sketch_mode",
|
||||||
|
"entity_id": "[uuid]",
|
||||||
|
"ortho": false,
|
||||||
|
"animated": false,
|
||||||
|
"adjust_camera": false,
|
||||||
|
"planar_normal": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "extrude",
|
||||||
|
"target": "[uuid]",
|
||||||
|
"distance": 10.0,
|
||||||
|
"faces": null,
|
||||||
|
"opposite": {
|
||||||
|
"Other": 10.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "object_bring_to_front",
|
||||||
|
"object_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "sketch_mode_disable"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "solid3d_get_adjacency_info",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"edge_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "solid3d_get_extrusion_face_info",
|
||||||
|
"object_id": "[uuid]",
|
||||||
|
"edge_id": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cmdId": "[uuid]",
|
||||||
|
"range": [],
|
||||||
|
"command": {
|
||||||
|
"type": "boolean_subtract",
|
||||||
|
"target_ids": [
|
||||||
|
"[uuid]"
|
||||||
|
],
|
||||||
|
"tool_ids": [
|
||||||
|
"[uuid]"
|
||||||
|
],
|
||||||
|
"tolerance": 0.0000001
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Artifact graph flowchart subtract_regression09.kcl
|
||||||
|
extension: md
|
||||||
|
snapshot_kind: binary
|
||||||
|
---
|
@ -0,0 +1,235 @@
|
|||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph path3 [Path]
|
||||||
|
3["Path<br>[88, 124, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
5["Segment<br>[130, 148, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
6["Segment<br>[154, 176, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
|
||||||
|
7["Segment<br>[182, 199, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
8["Segment<br>[205, 228, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
|
||||||
|
9["Segment<br>[234, 241, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
|
||||||
|
19[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path4 [Path]
|
||||||
|
4["Path<br>[362, 413, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
10["Segment<br>[419, 452, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
11["Segment<br>[458, 554, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
|
||||||
|
12["Segment<br>[560, 657, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
13["Segment<br>[663, 761, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
|
||||||
|
14["Segment<br>[767, 801, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
|
||||||
|
15["Segment<br>[807, 905, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
|
||||||
|
16["Segment<br>[911, 1009, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
|
||||||
|
17["Segment<br>[1015, 1073, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
|
||||||
|
18["Segment<br>[1198, 1205, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
|
||||||
|
20[Solid2d]
|
||||||
|
end
|
||||||
|
1["Plane<br>[47, 64, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
2["Plane<br>[321, 338, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
21["Sweep Revolve<br>[256, 307, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
22["Sweep Extrusion<br>[1223, 1292, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
23["CompositeSolid Subtract<br>[1294, 1337, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 6 }, ExpressionStatementExpr]
|
||||||
|
24[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
25[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
26[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
27[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
28[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
29[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
30[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
31[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
32[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
33[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
34[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
35[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
36["Cap Start"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
37["Cap End"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
38["SweepEdge Opposite"]
|
||||||
|
39["SweepEdge Opposite"]
|
||||||
|
40["SweepEdge Opposite"]
|
||||||
|
41["SweepEdge Opposite"]
|
||||||
|
42["SweepEdge Opposite"]
|
||||||
|
43["SweepEdge Opposite"]
|
||||||
|
44["SweepEdge Opposite"]
|
||||||
|
45["SweepEdge Opposite"]
|
||||||
|
46["SweepEdge Adjacent"]
|
||||||
|
47["SweepEdge Adjacent"]
|
||||||
|
48["SweepEdge Adjacent"]
|
||||||
|
49["SweepEdge Adjacent"]
|
||||||
|
50["SweepEdge Adjacent"]
|
||||||
|
51["SweepEdge Adjacent"]
|
||||||
|
52["SweepEdge Adjacent"]
|
||||||
|
53["SweepEdge Adjacent"]
|
||||||
|
54["SweepEdge Adjacent"]
|
||||||
|
55["SweepEdge Adjacent"]
|
||||||
|
56["SweepEdge Adjacent"]
|
||||||
|
1 --- 3
|
||||||
|
2 --- 4
|
||||||
|
3 --- 5
|
||||||
|
3 --- 6
|
||||||
|
3 --- 7
|
||||||
|
3 --- 8
|
||||||
|
3 --- 9
|
||||||
|
3 --- 19
|
||||||
|
3 ---- 21
|
||||||
|
3 --- 23
|
||||||
|
4 --- 10
|
||||||
|
4 --- 11
|
||||||
|
4 --- 12
|
||||||
|
4 --- 13
|
||||||
|
4 --- 14
|
||||||
|
4 --- 15
|
||||||
|
4 --- 16
|
||||||
|
4 --- 17
|
||||||
|
4 --- 18
|
||||||
|
4 --- 20
|
||||||
|
4 ---- 22
|
||||||
|
4 --- 23
|
||||||
|
21 <--x 5
|
||||||
|
5 --- 27
|
||||||
|
5 x--> 46
|
||||||
|
21 <--x 6
|
||||||
|
6 --- 25
|
||||||
|
6 --- 46
|
||||||
|
21 <--x 7
|
||||||
|
7 --- 24
|
||||||
|
7 --- 47
|
||||||
|
21 <--x 8
|
||||||
|
8 --- 26
|
||||||
|
8 --- 48
|
||||||
|
10 --- 29
|
||||||
|
10 x--> 36
|
||||||
|
10 --- 45
|
||||||
|
10 --- 56
|
||||||
|
11 --- 34
|
||||||
|
11 x--> 36
|
||||||
|
11 --- 44
|
||||||
|
11 --- 55
|
||||||
|
12 --- 30
|
||||||
|
12 x--> 36
|
||||||
|
12 --- 43
|
||||||
|
12 --- 54
|
||||||
|
13 --- 35
|
||||||
|
13 x--> 36
|
||||||
|
13 --- 42
|
||||||
|
13 --- 53
|
||||||
|
14 --- 28
|
||||||
|
14 x--> 36
|
||||||
|
14 --- 41
|
||||||
|
14 --- 52
|
||||||
|
15 --- 32
|
||||||
|
15 x--> 36
|
||||||
|
15 --- 40
|
||||||
|
15 --- 51
|
||||||
|
16 --- 33
|
||||||
|
16 x--> 36
|
||||||
|
16 --- 39
|
||||||
|
16 --- 50
|
||||||
|
17 --- 31
|
||||||
|
17 x--> 36
|
||||||
|
17 --- 38
|
||||||
|
17 --- 49
|
||||||
|
21 --- 24
|
||||||
|
21 --- 25
|
||||||
|
21 --- 26
|
||||||
|
21 --- 27
|
||||||
|
21 --- 46
|
||||||
|
21 --- 47
|
||||||
|
21 --- 48
|
||||||
|
22 --- 28
|
||||||
|
22 --- 29
|
||||||
|
22 --- 30
|
||||||
|
22 --- 31
|
||||||
|
22 --- 32
|
||||||
|
22 --- 33
|
||||||
|
22 --- 34
|
||||||
|
22 --- 35
|
||||||
|
22 --- 36
|
||||||
|
22 --- 37
|
||||||
|
22 --- 38
|
||||||
|
22 --- 39
|
||||||
|
22 --- 40
|
||||||
|
22 --- 41
|
||||||
|
22 --- 42
|
||||||
|
22 --- 43
|
||||||
|
22 --- 44
|
||||||
|
22 --- 45
|
||||||
|
22 --- 49
|
||||||
|
22 --- 50
|
||||||
|
22 --- 51
|
||||||
|
22 --- 52
|
||||||
|
22 --- 53
|
||||||
|
22 --- 54
|
||||||
|
22 --- 55
|
||||||
|
22 --- 56
|
||||||
|
24 --- 47
|
||||||
|
25 --- 46
|
||||||
|
47 <--x 26
|
||||||
|
26 --- 48
|
||||||
|
27 --- 46
|
||||||
|
48 <--x 27
|
||||||
|
28 --- 41
|
||||||
|
51 <--x 28
|
||||||
|
28 --- 52
|
||||||
|
29 --- 45
|
||||||
|
55 <--x 29
|
||||||
|
29 --- 56
|
||||||
|
30 --- 43
|
||||||
|
53 <--x 30
|
||||||
|
30 --- 54
|
||||||
|
31 --- 38
|
||||||
|
31 --- 49
|
||||||
|
56 <--x 31
|
||||||
|
32 --- 40
|
||||||
|
50 <--x 32
|
||||||
|
32 --- 51
|
||||||
|
33 --- 39
|
||||||
|
49 <--x 33
|
||||||
|
33 --- 50
|
||||||
|
34 --- 44
|
||||||
|
54 <--x 34
|
||||||
|
34 --- 55
|
||||||
|
35 --- 42
|
||||||
|
52 <--x 35
|
||||||
|
35 --- 53
|
||||||
|
38 <--x 37
|
||||||
|
39 <--x 37
|
||||||
|
40 <--x 37
|
||||||
|
41 <--x 37
|
||||||
|
42 <--x 37
|
||||||
|
43 <--x 37
|
||||||
|
44 <--x 37
|
||||||
|
45 <--x 37
|
||||||
|
```
|
1775
rust/kcl-lib/tests/subtract_regression09/ast.snap
Normal file
56
rust/kcl-lib/tests/subtract_regression09/input.kcl
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
sketch001 = startSketchOn(YZ)
|
||||||
|
|
||||||
|
sketch001Profile000 = startProfile(sketch001, at = [5, 3])
|
||||||
|
|> yLine(length = -6)
|
||||||
|
|> xLine(length = 24.972)
|
||||||
|
|> yLine(length = 6)
|
||||||
|
|> xLine(length = -24.972)
|
||||||
|
|> close()
|
||||||
|
|
||||||
|
revolve000 = revolve(sketch001Profile000, axis = Y, angle = 360)
|
||||||
|
|
||||||
|
sketch003 = startSketchOn(XY)
|
||||||
|
|
||||||
|
sketch003Profile000 = startProfile(sketch003, at = [1.188246, 27.497102])
|
||||||
|
|> line(end = [-0.177089, 0.740791])
|
||||||
|
|> arc(
|
||||||
|
angleStart = 13.444444,
|
||||||
|
angleEnd = 38.628165,
|
||||||
|
radius = 5.283446,
|
||||||
|
)
|
||||||
|
|> arc(
|
||||||
|
angleStart = 145.295512,
|
||||||
|
angleEnd = 14.704488,
|
||||||
|
radius = 5.793095,
|
||||||
|
)
|
||||||
|
|> arc(
|
||||||
|
angleStart = 121.371835,
|
||||||
|
angleEnd = 146.555556,
|
||||||
|
radius = 5.283446,
|
||||||
|
)
|
||||||
|
|> line(end = [-0.419774, -0.635548])
|
||||||
|
|> arc(
|
||||||
|
angleStart = 326.170267,
|
||||||
|
angleEnd = 311.293981,
|
||||||
|
radius = 8.272375,
|
||||||
|
)
|
||||||
|
|> arc(
|
||||||
|
angleStart = 311.666667,
|
||||||
|
angleEnd = 208.333333,
|
||||||
|
radius = 3.178087,
|
||||||
|
)
|
||||||
|
|> tangentialArc(
|
||||||
|
endAbsolute = [1.188246, 27.497102]
|
||||||
|
)
|
||||||
|
// |> arc(
|
||||||
|
// angleStart = 208.706019,
|
||||||
|
// angleEnd = 193.829733,
|
||||||
|
// radius = 8.272375,
|
||||||
|
// )
|
||||||
|
|> close()
|
||||||
|
|
||||||
|
cut000Extrude = extrude([sketch003Profile000], length = 10, bidirectionalLength = 10)
|
||||||
|
|
||||||
|
subtract(revolve000, tools = cut000Extrude)
|
217
rust/kcl-lib/tests/subtract_regression09/ops.snap
Normal file
@ -0,0 +1,217 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Operations executed subtract_regression09.kcl
|
||||||
|
---
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"labeledArgs": {},
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Plane",
|
||||||
|
"artifact_id": "[uuid]"
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "KclStdLibCall",
|
||||||
|
"name": "revolve",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"labeledArgs": {
|
||||||
|
"angle": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 360.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"axis": {
|
||||||
|
"value": {
|
||||||
|
"type": "Object",
|
||||||
|
"value": {
|
||||||
|
"direction": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 1.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {},
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Plane",
|
||||||
|
"artifact_id": "[uuid]"
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"bidirectionalLength": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 10.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
},
|
||||||
|
"length": {
|
||||||
|
"value": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 10.0,
|
||||||
|
"ty": {
|
||||||
|
"type": "Default",
|
||||||
|
"len": {
|
||||||
|
"type": "Mm"
|
||||||
|
},
|
||||||
|
"angle": {
|
||||||
|
"type": "Degrees"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "extrude",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Array",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"type": "Sketch",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"labeledArgs": {
|
||||||
|
"tools": {
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"name": "subtract",
|
||||||
|
"sourceRange": [],
|
||||||
|
"type": "StdLibCall",
|
||||||
|
"unlabeledArg": {
|
||||||
|
"value": {
|
||||||
|
"type": "Solid",
|
||||||
|
"value": {
|
||||||
|
"artifactId": "[uuid]"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sourceRange": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
1032
rust/kcl-lib/tests/subtract_regression09/program_memory.snap
Normal file
BIN
rust/kcl-lib/tests/subtract_regression09/rendered_model.png
Normal file
After Width: | Height: | Size: 66 KiB |
38
rust/kcl-lib/tests/subtract_regression09/unparsed.snap
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Result of unparsing subtract_regression09.kcl
|
||||||
|
---
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
sketch001 = startSketchOn(YZ)
|
||||||
|
|
||||||
|
sketch001Profile000 = startProfile(sketch001, at = [5, 3])
|
||||||
|
|> yLine(length = -6)
|
||||||
|
|> xLine(length = 24.972)
|
||||||
|
|> yLine(length = 6)
|
||||||
|
|> xLine(length = -24.972)
|
||||||
|
|> close()
|
||||||
|
|
||||||
|
revolve000 = revolve(sketch001Profile000, axis = Y, angle = 360)
|
||||||
|
|
||||||
|
sketch003 = startSketchOn(XY)
|
||||||
|
|
||||||
|
sketch003Profile000 = startProfile(sketch003, at = [1.188246, 27.497102])
|
||||||
|
|> line(end = [-0.177089, 0.740791])
|
||||||
|
|> arc(angleStart = 13.444444, angleEnd = 38.628165, radius = 5.283446)
|
||||||
|
|> arc(angleStart = 145.295512, angleEnd = 14.704488, radius = 5.793095)
|
||||||
|
|> arc(angleStart = 121.371835, angleEnd = 146.555556, radius = 5.283446)
|
||||||
|
|> line(end = [-0.419774, -0.635548])
|
||||||
|
|> arc(angleStart = 326.170267, angleEnd = 311.293981, radius = 8.272375)
|
||||||
|
|> arc(angleStart = 311.666667, angleEnd = 208.333333, radius = 3.178087)
|
||||||
|
|> tangentialArc(endAbsolute = [1.188246, 27.497102])
|
||||||
|
// |> arc(
|
||||||
|
// angleStart = 208.706019,
|
||||||
|
// angleEnd = 193.829733,
|
||||||
|
// radius = 8.272375,
|
||||||
|
// )
|
||||||
|
|> close()
|
||||||
|
|
||||||
|
cut000Extrude = extrude([sketch003Profile000], length = 10, bidirectionalLength = 10)
|
||||||
|
|
||||||
|
subtract(revolve000, tools = cut000Extrude)
|
2625
rust/kcl-lib/tests/subtract_regression10/artifact_commands.snap
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Artifact graph flowchart subtract_regression10.kcl
|
||||||
|
extension: md
|
||||||
|
snapshot_kind: binary
|
||||||
|
---
|
@ -0,0 +1,672 @@
|
|||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
subgraph path10 [Path]
|
||||||
|
10["Path<br>[497, 539, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 8 }, ExpressionStatementExpr, PipeBodyItem { index: 0 }]
|
||||||
|
20["Segment<br>[545, 608, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 8 }, ExpressionStatementExpr, PipeBodyItem { index: 1 }]
|
||||||
|
21["Segment<br>[614, 787, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 8 }, ExpressionStatementExpr, PipeBodyItem { index: 2 }]
|
||||||
|
22["Segment<br>[793, 857, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 8 }, ExpressionStatementExpr, PipeBodyItem { index: 3 }]
|
||||||
|
end
|
||||||
|
subgraph path11 [Path]
|
||||||
|
11["Path<br>[1105, 1249, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
23["Segment<br>[1255, 1279, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
|
||||||
|
24["Segment<br>[1285, 1303, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
25["Segment<br>[1309, 1327, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
|
||||||
|
26["Segment<br>[1333, 1351, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
|
||||||
|
27["Segment<br>[1357, 1374, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
|
||||||
|
28["Segment<br>[1380, 1398, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
|
||||||
|
29["Segment<br>[1404, 1422, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
|
||||||
|
30["Segment<br>[1428, 1446, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
|
||||||
|
31["Segment<br>[1452, 1469, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 10 }]
|
||||||
|
32["Segment<br>[1475, 1493, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 11 }]
|
||||||
|
33["Segment<br>[1499, 1517, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 12 }]
|
||||||
|
34["Segment<br>[1523, 1541, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 13 }]
|
||||||
|
35["Segment<br>[1547, 1564, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 14 }]
|
||||||
|
36["Segment<br>[1570, 1626, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 15 }]
|
||||||
|
37["Segment<br>[1632, 1650, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
|
||||||
|
38["Segment<br>[1656, 1710, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 17 }]
|
||||||
|
39["Segment<br>[1716, 1760, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 18 }]
|
||||||
|
40["Segment<br>[1766, 1803, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 19 }]
|
||||||
|
41["Segment<br>[1809, 1865, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 20 }]
|
||||||
|
42["Segment<br>[1871, 1878, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 21 }]
|
||||||
|
85[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path12 [Path]
|
||||||
|
12["Path<br>[2014, 2178, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 10 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
43["Segment<br>[2184, 2217, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 10 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
|
||||||
|
44["Segment<br>[2223, 2244, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 10 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
45["Segment<br>[2250, 2287, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 10 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
|
||||||
|
46["Segment<br>[2293, 2349, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 10 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
|
||||||
|
47["Segment<br>[2355, 2362, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 10 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
|
||||||
|
89[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path13 [Path]
|
||||||
|
13["Path<br>[2795, 3000, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 13 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
48["Segment<br>[2795, 3000, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 13 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
90[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path14 [Path]
|
||||||
|
14["Path<br>[3228, 3394, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
49["Segment<br>[3400, 3418, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
|
||||||
|
50["Segment<br>[3424, 3606, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
51["Segment<br>[3612, 3634, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
|
||||||
|
52["Segment<br>[3640, 3662, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
|
||||||
|
53["Segment<br>[3692, 3699, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
|
||||||
|
87[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path15 [Path]
|
||||||
|
15["Path<br>[3956, 4116, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
54["Segment<br>[4122, 4186, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
|
||||||
|
55["Segment<br>[4192, 4229, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
56["Segment<br>[4235, 4299, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
|
||||||
|
57["Segment<br>[4305, 4343, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
|
||||||
|
58["Segment<br>[4349, 4413, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
|
||||||
|
59["Segment<br>[4419, 4482, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
|
||||||
|
60["Segment<br>[4488, 4552, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
|
||||||
|
61["Segment<br>[4558, 4596, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
|
||||||
|
62["Segment<br>[4602, 4666, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 10 }]
|
||||||
|
63["Segment<br>[4672, 4720, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 11 }]
|
||||||
|
64["Segment<br>[4726, 4822, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 12 }]
|
||||||
|
65["Segment<br>[4828, 4866, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 13 }]
|
||||||
|
66["Segment<br>[4872, 4936, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 14 }]
|
||||||
|
67["Segment<br>[4942, 4980, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 15 }]
|
||||||
|
68["Segment<br>[4986, 5050, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 16 }]
|
||||||
|
69["Segment<br>[5056, 5151, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 17 }]
|
||||||
|
70["Segment<br>[5157, 5257, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 18 }]
|
||||||
|
71["Segment<br>[5263, 5340, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 19 }]
|
||||||
|
72["Segment<br>[5374, 5381, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 21 }]
|
||||||
|
86[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path16 [Path]
|
||||||
|
16["Path<br>[5900, 5941, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 18 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
73["Segment<br>[5947, 5964, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 18 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
|
||||||
|
74["Segment<br>[5970, 6007, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 18 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
75["Segment<br>[6013, 6069, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 18 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
|
||||||
|
76["Segment<br>[6075, 6112, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 18 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
|
||||||
|
77["Segment<br>[6118, 6155, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 18 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
|
||||||
|
78["Segment<br>[6185, 6192, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 18 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
|
||||||
|
83[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path17 [Path]
|
||||||
|
17["Path<br>[6473, 6567, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 21 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
79["Segment<br>[6473, 6567, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 21 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
84[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path18 [Path]
|
||||||
|
18["Path<br>[6627, 6829, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 22 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
80["Segment<br>[6627, 6829, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 22 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
88[Solid2d]
|
||||||
|
end
|
||||||
|
subgraph path19 [Path]
|
||||||
|
19["Path<br>[7102, 7138, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 24 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
81["Segment<br>[7102, 7138, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 24 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
82[Solid2d]
|
||||||
|
end
|
||||||
|
1["Plane<br>[479, 496, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
2["Plane<br>[1082, 1099, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
3["Plane<br>[1991, 2008, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 10 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
4["Plane<br>[2772, 2789, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 13 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
5["Plane<br>[3205, 3222, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
6["Plane<br>[3933, 3950, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
7["Plane<br>[5861, 5894, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 18 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
8["Plane<br>[6443, 6460, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 20 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
9["Plane<br>[7063, 7096, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 24 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
|
||||||
|
91["Sweep Revolve<br>[1884, 1914, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 9 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 22 }]
|
||||||
|
92["Sweep Extrusion<br>[2368, 2407, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 10 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
|
||||||
|
93["Sweep Extrusion<br>[3006, 3046, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 13 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
|
||||||
|
94["Sweep Extrusion<br>[3705, 3744, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 14 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
|
||||||
|
95["Sweep Extrusion<br>[5387, 5425, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 16 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 22 }]
|
||||||
|
96["Sweep Extrusion<br>[6198, 6237, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 18 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
|
||||||
|
97["Sweep Extrusion<br>[6573, 6611, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 21 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
98["Sweep Extrusion<br>[6835, 6873, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 22 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
|
||||||
|
99["Sweep Extrusion<br>[7278, 7299, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 24 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
100["Sweep Extrusion<br>[7278, 7299, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 24 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
101["CompositeSolid Union<br>[6973, 7005, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit, CallKwArg { index: 0 }]
|
||||||
|
102["CompositeSolid Subtract<br>[2677, 2725, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
103["CompositeSolid Union<br>[7355, 7371, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit, CallKwArg { index: 0 }]
|
||||||
|
104["CompositeSolid Intersect<br>[6268, 6327, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 19 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
105["CompositeSolid Subtract<br>[3781, 3825, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 15 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
106["CompositeSolid Union<br>[2708, 2724, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 12 }, VariableDeclarationDeclaration, VariableDeclarationInit, CallKwArg { index: 0 }]
|
||||||
|
107["CompositeSolid Subtract<br>[7317, 7372, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 25 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
108["CompositeSolid Subtract<br>[6926, 7006, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 23 }, VariableDeclarationDeclaration, VariableDeclarationInit]
|
||||||
|
109[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
110[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
111[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
112[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
113[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
114[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
115[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
116[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
117[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
118[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
119[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
120[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
121[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
122[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
123[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
124[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
125[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
126[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
127[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
128[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
129[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
130[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
131[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
132[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
133[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
134[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
135[Wall]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
136["Cap Start"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
137["Cap Start"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
138["Cap Start"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
139["Cap Start"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
140["Cap Start"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
141["Cap End"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
142["Cap End"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
143["Cap End"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
144["Cap End"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
145["Cap End"]
|
||||||
|
%% face_code_ref=Missing NodePath
|
||||||
|
146["SweepEdge Opposite"]
|
||||||
|
147["SweepEdge Opposite"]
|
||||||
|
148["SweepEdge Opposite"]
|
||||||
|
149["SweepEdge Opposite"]
|
||||||
|
150["SweepEdge Opposite"]
|
||||||
|
151["SweepEdge Opposite"]
|
||||||
|
152["SweepEdge Opposite"]
|
||||||
|
153["SweepEdge Opposite"]
|
||||||
|
154["SweepEdge Adjacent"]
|
||||||
|
155["SweepEdge Adjacent"]
|
||||||
|
156["SweepEdge Adjacent"]
|
||||||
|
157["SweepEdge Adjacent"]
|
||||||
|
158["SweepEdge Adjacent"]
|
||||||
|
159["SweepEdge Adjacent"]
|
||||||
|
160["SweepEdge Adjacent"]
|
||||||
|
161["SweepEdge Adjacent"]
|
||||||
|
162["SweepEdge Adjacent"]
|
||||||
|
163["SweepEdge Adjacent"]
|
||||||
|
164["SweepEdge Adjacent"]
|
||||||
|
165["SweepEdge Adjacent"]
|
||||||
|
166["SweepEdge Adjacent"]
|
||||||
|
167["SweepEdge Adjacent"]
|
||||||
|
168["SweepEdge Adjacent"]
|
||||||
|
169["SweepEdge Adjacent"]
|
||||||
|
170["SweepEdge Adjacent"]
|
||||||
|
171["SweepEdge Adjacent"]
|
||||||
|
172["SweepEdge Adjacent"]
|
||||||
|
173["SweepEdge Adjacent"]
|
||||||
|
174["SweepEdge Adjacent"]
|
||||||
|
175["SweepEdge Adjacent"]
|
||||||
|
176["SweepEdge Adjacent"]
|
||||||
|
177["SweepEdge Adjacent"]
|
||||||
|
178["SweepEdge Adjacent"]
|
||||||
|
179["SweepEdge Adjacent"]
|
||||||
|
180["EdgeCut Fillet<br>[3052, 3126, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 13 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
181["EdgeCut Fillet<br>[3052, 3126, 0]"]
|
||||||
|
%% [ProgramBodyItem { index: 13 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
|
||||||
|
1 --- 10
|
||||||
|
2 --- 11
|
||||||
|
3 --- 12
|
||||||
|
4 --- 13
|
||||||
|
5 --- 14
|
||||||
|
6 --- 15
|
||||||
|
7 --- 16
|
||||||
|
8 --- 17
|
||||||
|
8 --- 18
|
||||||
|
9 --- 19
|
||||||
|
10 --- 20
|
||||||
|
10 --- 21
|
||||||
|
10 --- 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 --- 85
|
||||||
|
11 ---- 91
|
||||||
|
11 --- 102
|
||||||
|
12 --- 43
|
||||||
|
12 --- 44
|
||||||
|
12 --- 45
|
||||||
|
12 --- 46
|
||||||
|
12 --- 47
|
||||||
|
12 --- 89
|
||||||
|
12 ---- 92
|
||||||
|
12 --- 106
|
||||||
|
13 --- 48
|
||||||
|
13 --- 90
|
||||||
|
13 ---- 93
|
||||||
|
14 --- 49
|
||||||
|
14 --- 50
|
||||||
|
14 --- 51
|
||||||
|
14 --- 52
|
||||||
|
14 --- 53
|
||||||
|
14 --- 87
|
||||||
|
14 ---- 94
|
||||||
|
14 --- 105
|
||||||
|
15 --- 54
|
||||||
|
15 --- 55
|
||||||
|
15 --- 56
|
||||||
|
15 --- 57
|
||||||
|
15 --- 58
|
||||||
|
15 --- 59
|
||||||
|
15 --- 60
|
||||||
|
15 --- 61
|
||||||
|
15 --- 62
|
||||||
|
15 --- 63
|
||||||
|
15 --- 64
|
||||||
|
15 --- 65
|
||||||
|
15 --- 66
|
||||||
|
15 --- 67
|
||||||
|
15 --- 68
|
||||||
|
15 --- 69
|
||||||
|
15 --- 70
|
||||||
|
15 --- 71
|
||||||
|
15 --- 72
|
||||||
|
15 --- 86
|
||||||
|
15 ---- 95
|
||||||
|
15 --- 104
|
||||||
|
16 --- 73
|
||||||
|
16 --- 74
|
||||||
|
16 --- 75
|
||||||
|
16 --- 76
|
||||||
|
16 --- 77
|
||||||
|
16 --- 78
|
||||||
|
16 --- 83
|
||||||
|
16 ---- 96
|
||||||
|
16 --- 104
|
||||||
|
17 --- 79
|
||||||
|
17 --- 84
|
||||||
|
17 ---- 97
|
||||||
|
17 --- 101
|
||||||
|
18 --- 80
|
||||||
|
18 --- 88
|
||||||
|
18 ---- 98
|
||||||
|
18 --- 101
|
||||||
|
19 --- 81
|
||||||
|
19 --- 82
|
||||||
|
19 ---- 99
|
||||||
|
19 --- 103
|
||||||
|
91 <--x 23
|
||||||
|
23 --- 127
|
||||||
|
23 x--> 155
|
||||||
|
91 <--x 24
|
||||||
|
24 --- 114
|
||||||
|
24 --- 155
|
||||||
|
91 <--x 25
|
||||||
|
25 --- 115
|
||||||
|
25 --- 156
|
||||||
|
91 <--x 26
|
||||||
|
26 --- 128
|
||||||
|
26 --- 157
|
||||||
|
91 <--x 27
|
||||||
|
27 --- 124
|
||||||
|
27 --- 158
|
||||||
|
91 <--x 28
|
||||||
|
28 --- 119
|
||||||
|
28 --- 159
|
||||||
|
91 <--x 29
|
||||||
|
29 --- 112
|
||||||
|
29 --- 160
|
||||||
|
91 <--x 30
|
||||||
|
30 --- 125
|
||||||
|
30 --- 161
|
||||||
|
91 <--x 31
|
||||||
|
31 --- 113
|
||||||
|
31 --- 162
|
||||||
|
91 <--x 32
|
||||||
|
32 --- 126
|
||||||
|
32 --- 163
|
||||||
|
91 <--x 33
|
||||||
|
33 --- 111
|
||||||
|
33 --- 164
|
||||||
|
91 <--x 34
|
||||||
|
34 --- 122
|
||||||
|
34 --- 165
|
||||||
|
91 <--x 35
|
||||||
|
35 --- 123
|
||||||
|
35 --- 166
|
||||||
|
91 <--x 36
|
||||||
|
36 --- 120
|
||||||
|
36 --- 167
|
||||||
|
91 <--x 37
|
||||||
|
37 --- 121
|
||||||
|
37 --- 168
|
||||||
|
91 <--x 38
|
||||||
|
38 --- 118
|
||||||
|
38 --- 169
|
||||||
|
91 <--x 39
|
||||||
|
39 --- 116
|
||||||
|
39 --- 170
|
||||||
|
91 <--x 40
|
||||||
|
40 --- 117
|
||||||
|
40 --- 171
|
||||||
|
91 <--x 41
|
||||||
|
41 --- 110
|
||||||
|
41 --- 172
|
||||||
|
43 --- 132
|
||||||
|
43 x--> 138
|
||||||
|
43 --- 150
|
||||||
|
43 --- 176
|
||||||
|
44 --- 133
|
||||||
|
44 x--> 138
|
||||||
|
44 --- 151
|
||||||
|
44 --- 177
|
||||||
|
45 --- 134
|
||||||
|
45 x--> 138
|
||||||
|
45 --- 152
|
||||||
|
45 --- 178
|
||||||
|
46 --- 135
|
||||||
|
46 x--> 138
|
||||||
|
46 --- 153
|
||||||
|
46 --- 179
|
||||||
|
48 --- 130
|
||||||
|
48 x--> 137
|
||||||
|
48 --- 148
|
||||||
|
48 --- 174
|
||||||
|
48 --- 181
|
||||||
|
79 --- 131
|
||||||
|
79 x--> 139
|
||||||
|
79 --- 149
|
||||||
|
79 --- 175
|
||||||
|
80 --- 129
|
||||||
|
80 x--> 136
|
||||||
|
80 --- 147
|
||||||
|
80 --- 173
|
||||||
|
81 --- 109
|
||||||
|
81 x--> 140
|
||||||
|
81 --- 146
|
||||||
|
81 --- 154
|
||||||
|
91 --- 110
|
||||||
|
91 --- 111
|
||||||
|
91 --- 112
|
||||||
|
91 --- 113
|
||||||
|
91 --- 114
|
||||||
|
91 --- 115
|
||||||
|
91 --- 116
|
||||||
|
91 --- 117
|
||||||
|
91 --- 118
|
||||||
|
91 --- 119
|
||||||
|
91 --- 120
|
||||||
|
91 --- 121
|
||||||
|
91 --- 122
|
||||||
|
91 --- 123
|
||||||
|
91 --- 124
|
||||||
|
91 --- 125
|
||||||
|
91 --- 126
|
||||||
|
91 --- 127
|
||||||
|
91 --- 128
|
||||||
|
91 --- 155
|
||||||
|
91 --- 156
|
||||||
|
91 --- 157
|
||||||
|
91 --- 158
|
||||||
|
91 --- 159
|
||||||
|
91 --- 160
|
||||||
|
91 --- 161
|
||||||
|
91 --- 162
|
||||||
|
91 --- 163
|
||||||
|
91 --- 164
|
||||||
|
91 --- 165
|
||||||
|
91 --- 166
|
||||||
|
91 --- 167
|
||||||
|
91 --- 168
|
||||||
|
91 --- 169
|
||||||
|
91 --- 170
|
||||||
|
91 --- 171
|
||||||
|
91 --- 172
|
||||||
|
92 --- 132
|
||||||
|
92 --- 133
|
||||||
|
92 --- 134
|
||||||
|
92 --- 135
|
||||||
|
92 --- 138
|
||||||
|
92 --- 143
|
||||||
|
92 --- 150
|
||||||
|
92 --- 151
|
||||||
|
92 --- 152
|
||||||
|
92 --- 153
|
||||||
|
92 --- 176
|
||||||
|
92 --- 177
|
||||||
|
92 --- 178
|
||||||
|
92 --- 179
|
||||||
|
93 --- 130
|
||||||
|
93 --- 137
|
||||||
|
93 --- 142
|
||||||
|
93 --- 148
|
||||||
|
93 --- 174
|
||||||
|
97 --- 131
|
||||||
|
97 --- 139
|
||||||
|
97 --- 144
|
||||||
|
97 --- 149
|
||||||
|
97 --- 175
|
||||||
|
98 --- 129
|
||||||
|
98 --- 136
|
||||||
|
98 --- 141
|
||||||
|
98 --- 147
|
||||||
|
98 --- 173
|
||||||
|
99 --- 109
|
||||||
|
99 --- 140
|
||||||
|
99 --- 145
|
||||||
|
99 --- 146
|
||||||
|
99 --- 154
|
||||||
|
101 --- 108
|
||||||
|
102 --- 105
|
||||||
|
106 --- 102
|
||||||
|
103 --- 107
|
||||||
|
104 --- 108
|
||||||
|
108 --- 107
|
||||||
|
109 --- 146
|
||||||
|
109 --- 154
|
||||||
|
171 <--x 110
|
||||||
|
110 --- 172
|
||||||
|
163 <--x 111
|
||||||
|
111 --- 164
|
||||||
|
159 <--x 112
|
||||||
|
112 --- 160
|
||||||
|
161 <--x 113
|
||||||
|
113 --- 162
|
||||||
|
114 --- 155
|
||||||
|
115 --- 156
|
||||||
|
169 <--x 116
|
||||||
|
116 --- 170
|
||||||
|
170 <--x 117
|
||||||
|
117 --- 171
|
||||||
|
168 <--x 118
|
||||||
|
118 --- 169
|
||||||
|
158 <--x 119
|
||||||
|
119 --- 159
|
||||||
|
166 <--x 120
|
||||||
|
120 --- 167
|
||||||
|
167 <--x 121
|
||||||
|
121 --- 168
|
||||||
|
164 <--x 122
|
||||||
|
122 --- 165
|
||||||
|
165 <--x 123
|
||||||
|
123 --- 166
|
||||||
|
157 <--x 124
|
||||||
|
124 --- 158
|
||||||
|
160 <--x 125
|
||||||
|
125 --- 161
|
||||||
|
162 <--x 126
|
||||||
|
126 --- 163
|
||||||
|
127 --- 155
|
||||||
|
172 <--x 127
|
||||||
|
156 <--x 128
|
||||||
|
128 --- 157
|
||||||
|
129 --- 147
|
||||||
|
129 --- 173
|
||||||
|
130 --- 148
|
||||||
|
130 --- 174
|
||||||
|
131 --- 149
|
||||||
|
131 --- 175
|
||||||
|
132 --- 150
|
||||||
|
132 --- 176
|
||||||
|
179 <--x 132
|
||||||
|
133 --- 151
|
||||||
|
176 <--x 133
|
||||||
|
133 --- 177
|
||||||
|
134 --- 152
|
||||||
|
177 <--x 134
|
||||||
|
134 --- 178
|
||||||
|
135 --- 153
|
||||||
|
178 <--x 135
|
||||||
|
135 --- 179
|
||||||
|
147 <--x 141
|
||||||
|
148 <--x 142
|
||||||
|
150 <--x 143
|
||||||
|
151 <--x 143
|
||||||
|
152 <--x 143
|
||||||
|
153 <--x 143
|
||||||
|
149 <--x 144
|
||||||
|
146 <--x 145
|
||||||
|
148 <--x 180
|
||||||
|
```
|
11565
rust/kcl-lib/tests/subtract_regression10/ast.snap
Normal file
205
rust/kcl-lib/tests/subtract_regression10/input.kcl
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
// Piston
|
||||||
|
// A piston is the component of an engine that transfers linear motion into circular motion. The piston head is accelerated by exploding fuel, which drives a connecting rod to rotate a crankshaft.
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
// Define parameters
|
||||||
|
stroke = 110
|
||||||
|
bore = 92
|
||||||
|
pistonHeight = 75
|
||||||
|
crankPos = 40deg
|
||||||
|
crankRadius = 36
|
||||||
|
pinHeight = 35
|
||||||
|
rodLength = 201.2
|
||||||
|
|
||||||
|
// A simple sketch to define piston position at different crank parameters
|
||||||
|
kinematicSketch = startSketchOn(XZ)
|
||||||
|
startProfile(kinematicSketch, at = [0, 0])
|
||||||
|
|> angledLine(angle = crankPos, length = stroke / 2, tag = $seg01)
|
||||||
|
|> line(
|
||||||
|
endAbsolute = [
|
||||||
|
0,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2))
|
||||||
|
],
|
||||||
|
tag = $seg02,
|
||||||
|
)
|
||||||
|
|> angledLine(angle = segAng(seg02) - 90, length = 1, tag = $seg03)
|
||||||
|
|
||||||
|
// Sketch a profile with a total width equal to half the bore of the piston head. Include lands and gaps for compression rings. Then revolve the profile about the center axis to form the start of a piston head
|
||||||
|
pistonBore = startSketchOn(XZ)
|
||||||
|
|> startProfile(at = [
|
||||||
|
0.1,
|
||||||
|
pinHeight + stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2))
|
||||||
|
])
|
||||||
|
|> xLine(length = bore / 2)
|
||||||
|
|> yLine(length = -3)
|
||||||
|
|> xLine(length = -3)
|
||||||
|
|> yLine(length = -2)
|
||||||
|
|> xLine(length = 3)
|
||||||
|
|> yLine(length = -3)
|
||||||
|
|> xLine(length = -3)
|
||||||
|
|> yLine(length = -2)
|
||||||
|
|> xLine(length = 3)
|
||||||
|
|> yLine(length = -3)
|
||||||
|
|> xLine(length = -3)
|
||||||
|
|> yLine(length = -2)
|
||||||
|
|> xLine(length = 3)
|
||||||
|
|> yLine(endAbsolute = profileStartY(%) - pistonHeight - 3)
|
||||||
|
|> xLine(length = -8)
|
||||||
|
|> yLine(endAbsolute = profileStartY(%) - 8 - (bore / 4))
|
||||||
|
|> tangentialArc(angle = 90, radius = bore / 4)
|
||||||
|
|> xLine(endAbsolute = profileStartX(%))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
|> revolve(angle = 360, axis = Y)
|
||||||
|
|
||||||
|
// Create a square profile divot to subtract from the piston head
|
||||||
|
divots = startSketchOn(YZ)
|
||||||
|
|> startProfile(at = [
|
||||||
|
bore / 2 - 6,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2)) + pistonHeight / 4 / 2
|
||||||
|
])
|
||||||
|
|> yLine(length = -pistonHeight / 4)
|
||||||
|
|> xLine(length = 25.75)
|
||||||
|
|> yLine(endAbsolute = profileStartY(%))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = 314, symmetric = true)
|
||||||
|
|
||||||
|
// Rotate another divot to the opposite side
|
||||||
|
cutDivots = patternCircular3d(
|
||||||
|
divots,
|
||||||
|
instances = 2,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
center = [0, 0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Cut the divots from the piston head
|
||||||
|
// WORKED PREVIOUSLY
|
||||||
|
pistonDiv = subtract([pistonBore], tools = union(cutDivots))
|
||||||
|
|
||||||
|
// Extrude and fillet a wrist pin
|
||||||
|
wristPin = startSketchOn(XZ)
|
||||||
|
|> circle(
|
||||||
|
center = [
|
||||||
|
0,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2))
|
||||||
|
],
|
||||||
|
radius = pistonHeight / 10,
|
||||||
|
tag = $seg04,
|
||||||
|
)
|
||||||
|
|> extrude(length = bore, symmetric = true)
|
||||||
|
|> fillet(radius = pistonHeight / 40, tags = [getOppositeEdge(seg04), seg04])
|
||||||
|
|
||||||
|
// Cut a rounded profile to arc the bottom of the piston skirt
|
||||||
|
pistonSkirt = startSketchOn(XZ)
|
||||||
|
|> startProfile(at = [
|
||||||
|
0,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2)) + pinHeight - (pistonHeight * 0.95)
|
||||||
|
])
|
||||||
|
|> xLine(length = .1)
|
||||||
|
|> tangentialArc(endAbsolute = [
|
||||||
|
bore / 2 + 4,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2)) + pinHeight - pistonHeight - 3
|
||||||
|
])
|
||||||
|
|> yLine(endAbsolute = 0)
|
||||||
|
|> xLine(endAbsolute = 0)
|
||||||
|
|> mirror2d(axis = Y)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = 314, symmetric = true)
|
||||||
|
// WORKED PREVIOUSLY
|
||||||
|
pistonHead = subtract([pistonDiv], tools = [pistonSkirt])
|
||||||
|
|
||||||
|
// Create a connecting rod that spans from the crank position to the piston height
|
||||||
|
connectingRodProfile = startSketchOn(XZ)
|
||||||
|
|> startProfile(at = [
|
||||||
|
segEndX(seg01) - (1.25 * crankRadius * cos(segAng(seg02))),
|
||||||
|
segEndY(seg01) - (1.25 * crankRadius * sin(segAng(seg02)))
|
||||||
|
])
|
||||||
|
|> angledLine(angle = segAng(seg02) - 90, length = crankRadius / 2)
|
||||||
|
|> tangentialArc(angle = 45, radius = 5)
|
||||||
|
|> angledLine(angle = segAng(seg02) - 45, length = crankRadius / 2)
|
||||||
|
|> tangentialArc(angle = -45, radius = 5)
|
||||||
|
|> angledLine(angle = segAng(seg02) - 90, length = crankRadius / 2)
|
||||||
|
|> angledLine(angle = segAng(seg02), length = crankRadius * 1.625)
|
||||||
|
|> angledLine(angle = segAng(seg02) + 90, length = crankRadius / 2)
|
||||||
|
|> tangentialArc(angle = -45, radius = 5)
|
||||||
|
|> angledLine(angle = segAng(seg02) + 45, length = crankRadius / 2)
|
||||||
|
|> tangentialArc(angle = -45, radius = crankRadius)
|
||||||
|
|> angledLineThatIntersects(angle = segAng(seg02), intersectTag = seg03, offset = -crankRadius / 2)
|
||||||
|
|> tangentialArc(angle = -45, radius = 5)
|
||||||
|
|> angledLine(angle = segAng(seg02) - 45, length = crankRadius / 5)
|
||||||
|
|> tangentialArc(angle = -45, radius = 5)
|
||||||
|
|> angledLine(angle = segAng(seg02) - 90, length = crankRadius / 5)
|
||||||
|
|> angledLineThatIntersects(angle = segAng(seg02), intersectTag = seg03, offset = crankRadius / 3)
|
||||||
|
|> angledLineThatIntersects(angle = segAng(seg02) + 45, intersectTag = seg03, offset = crankRadius / 2)
|
||||||
|
|> angledLineThatIntersects(%, angle = segAng(seg02) + 90, intersectTag = seg02)
|
||||||
|
|> mirror2d(axis = seg02)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = 54, symmetric = true)
|
||||||
|
|
||||||
|
// Define a plane perpendicular to the connecting rod
|
||||||
|
connectingRodPlane = {
|
||||||
|
origin = [
|
||||||
|
0,
|
||||||
|
0.0,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2))
|
||||||
|
],
|
||||||
|
xAxis = [
|
||||||
|
-1 * sin(segAng(seg02)),
|
||||||
|
0,
|
||||||
|
1 * cos(segAng(seg02))
|
||||||
|
],
|
||||||
|
yAxis = [0.0, 1.0, 0.0]
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extrude an oval profile through the connecting rod to define its boundaries in the other dimensions
|
||||||
|
connectingRodShape = startSketchOn(connectingRodPlane)
|
||||||
|
|> startProfile(at = [crankRadius * 1.5, 0])
|
||||||
|
|> yLine(length = 4)
|
||||||
|
|> tangentialArc(angle = 80, radius = 8)
|
||||||
|
|> tangentialArc(endAbsolute = [-lastSegX(%), lastSegY(%)])
|
||||||
|
|> tangentialArc(angle = 80, radius = 8)
|
||||||
|
|> yLine(endAbsolute = profileStartY(%))
|
||||||
|
|> mirror2d(axis = X)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = 554, symmetric = true)
|
||||||
|
|
||||||
|
connectingRodShapeSubtract = intersect([
|
||||||
|
connectingRodProfile,
|
||||||
|
connectingRodShape
|
||||||
|
])
|
||||||
|
|
||||||
|
// Bore holes in the connecting rod for the wrist pin and crank
|
||||||
|
// REPLACED POLYGON CUTS WITH CIRCLES
|
||||||
|
boreHoles = startSketchOn(XZ)
|
||||||
|
crankBore = circle(boreHoles, center = polar(angle = crankPos, length = stroke / 2), radius = crankRadius)
|
||||||
|
|> extrude(length = 54, symmetric = true)
|
||||||
|
wristPinHole = circle(
|
||||||
|
boreHoles,
|
||||||
|
center = [
|
||||||
|
0,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2))
|
||||||
|
],
|
||||||
|
radius = pistonHeight / 10,
|
||||||
|
)
|
||||||
|
|> extrude(length = 54, symmetric = true)
|
||||||
|
|
||||||
|
// Subtract out the bore holes
|
||||||
|
connectingRodBore = subtract([connectingRodShapeSubtract], tools = union([wristPinHole, crankBore]))
|
||||||
|
|
||||||
|
// Bore holes for the connecting rod bolts
|
||||||
|
boltHoles = startSketchOn(connectingRodPlane)
|
||||||
|
|> circle(center = [45, 0], radius = 5)
|
||||||
|
|> patternCircular2d(
|
||||||
|
instances = 2,
|
||||||
|
center = [0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
|> extrude(length = 300)
|
||||||
|
|
||||||
|
connectingRod = subtract([connectingRodBore], tools = union(boltHoles))
|
1277
rust/kcl-lib/tests/subtract_regression10/ops.snap
Normal file
5534
rust/kcl-lib/tests/subtract_regression10/program_memory.snap
Normal file
BIN
rust/kcl-lib/tests/subtract_regression10/rendered_model.png
Normal file
After Width: | Height: | Size: 78 KiB |
209
rust/kcl-lib/tests/subtract_regression10/unparsed.snap
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
---
|
||||||
|
source: kcl-lib/src/simulation_tests.rs
|
||||||
|
description: Result of unparsing subtract_regression10.kcl
|
||||||
|
---
|
||||||
|
// Piston
|
||||||
|
// A piston is the component of an engine that transfers linear motion into circular motion. The piston head is accelerated by exploding fuel, which drives a connecting rod to rotate a crankshaft.
|
||||||
|
|
||||||
|
// Set units
|
||||||
|
@settings(defaultLengthUnit = mm)
|
||||||
|
|
||||||
|
// Define parameters
|
||||||
|
stroke = 110
|
||||||
|
bore = 92
|
||||||
|
pistonHeight = 75
|
||||||
|
crankPos = 40deg
|
||||||
|
crankRadius = 36
|
||||||
|
pinHeight = 35
|
||||||
|
rodLength = 201.2
|
||||||
|
|
||||||
|
// A simple sketch to define piston position at different crank parameters
|
||||||
|
kinematicSketch = startSketchOn(XZ)
|
||||||
|
startProfile(kinematicSketch, at = [0, 0])
|
||||||
|
|> angledLine(angle = crankPos, length = stroke / 2, tag = $seg01)
|
||||||
|
|> line(
|
||||||
|
endAbsolute = [
|
||||||
|
0,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2))
|
||||||
|
],
|
||||||
|
tag = $seg02,
|
||||||
|
)
|
||||||
|
|> angledLine(angle = segAng(seg02) - 90, length = 1, tag = $seg03)
|
||||||
|
|
||||||
|
// Sketch a profile with a total width equal to half the bore of the piston head. Include lands and gaps for compression rings. Then revolve the profile about the center axis to form the start of a piston head
|
||||||
|
pistonBore = startSketchOn(XZ)
|
||||||
|
|> startProfile(at = [
|
||||||
|
0.1,
|
||||||
|
pinHeight + stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2))
|
||||||
|
])
|
||||||
|
|> xLine(length = bore / 2)
|
||||||
|
|> yLine(length = -3)
|
||||||
|
|> xLine(length = -3)
|
||||||
|
|> yLine(length = -2)
|
||||||
|
|> xLine(length = 3)
|
||||||
|
|> yLine(length = -3)
|
||||||
|
|> xLine(length = -3)
|
||||||
|
|> yLine(length = -2)
|
||||||
|
|> xLine(length = 3)
|
||||||
|
|> yLine(length = -3)
|
||||||
|
|> xLine(length = -3)
|
||||||
|
|> yLine(length = -2)
|
||||||
|
|> xLine(length = 3)
|
||||||
|
|> yLine(endAbsolute = profileStartY(%) - pistonHeight - 3)
|
||||||
|
|> xLine(length = -8)
|
||||||
|
|> yLine(endAbsolute = profileStartY(%) - 8 - (bore / 4))
|
||||||
|
|> tangentialArc(angle = 90, radius = bore / 4)
|
||||||
|
|> xLine(endAbsolute = profileStartX(%))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
|> revolve(angle = 360, axis = Y)
|
||||||
|
|
||||||
|
// Create a square profile divot to subtract from the piston head
|
||||||
|
divots = startSketchOn(YZ)
|
||||||
|
|> startProfile(at = [
|
||||||
|
bore / 2 - 6,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2)) + pistonHeight / 4 / 2
|
||||||
|
])
|
||||||
|
|> yLine(length = -pistonHeight / 4)
|
||||||
|
|> xLine(length = 25.75)
|
||||||
|
|> yLine(endAbsolute = profileStartY(%))
|
||||||
|
|> line(endAbsolute = [profileStartX(%), profileStartY(%)])
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = 314, symmetric = true)
|
||||||
|
|
||||||
|
// Rotate another divot to the opposite side
|
||||||
|
cutDivots = patternCircular3d(
|
||||||
|
divots,
|
||||||
|
instances = 2,
|
||||||
|
axis = [0, 0, 1],
|
||||||
|
center = [0, 0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Cut the divots from the piston head
|
||||||
|
// WORKED PREVIOUSLY
|
||||||
|
pistonDiv = subtract([pistonBore], tools = union(cutDivots))
|
||||||
|
|
||||||
|
// Extrude and fillet a wrist pin
|
||||||
|
wristPin = startSketchOn(XZ)
|
||||||
|
|> circle(
|
||||||
|
center = [
|
||||||
|
0,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2))
|
||||||
|
],
|
||||||
|
radius = pistonHeight / 10,
|
||||||
|
tag = $seg04,
|
||||||
|
)
|
||||||
|
|> extrude(length = bore, symmetric = true)
|
||||||
|
|> fillet(radius = pistonHeight / 40, tags = [getOppositeEdge(seg04), seg04])
|
||||||
|
|
||||||
|
// Cut a rounded profile to arc the bottom of the piston skirt
|
||||||
|
pistonSkirt = startSketchOn(XZ)
|
||||||
|
|> startProfile(at = [
|
||||||
|
0,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2)) + pinHeight - (pistonHeight * 0.95)
|
||||||
|
])
|
||||||
|
|> xLine(length = .1)
|
||||||
|
|> tangentialArc(endAbsolute = [
|
||||||
|
bore / 2 + 4,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2)) + pinHeight - pistonHeight - 3
|
||||||
|
])
|
||||||
|
|> yLine(endAbsolute = 0)
|
||||||
|
|> xLine(endAbsolute = 0)
|
||||||
|
|> mirror2d(axis = Y)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = 314, symmetric = true)
|
||||||
|
// WORKED PREVIOUSLY
|
||||||
|
pistonHead = subtract([pistonDiv], tools = [pistonSkirt])
|
||||||
|
|
||||||
|
// Create a connecting rod that spans from the crank position to the piston height
|
||||||
|
connectingRodProfile = startSketchOn(XZ)
|
||||||
|
|> startProfile(at = [
|
||||||
|
segEndX(seg01) - (1.25 * crankRadius * cos(segAng(seg02))),
|
||||||
|
segEndY(seg01) - (1.25 * crankRadius * sin(segAng(seg02)))
|
||||||
|
])
|
||||||
|
|> angledLine(angle = segAng(seg02) - 90, length = crankRadius / 2)
|
||||||
|
|> tangentialArc(angle = 45, radius = 5)
|
||||||
|
|> angledLine(angle = segAng(seg02) - 45, length = crankRadius / 2)
|
||||||
|
|> tangentialArc(angle = -45, radius = 5)
|
||||||
|
|> angledLine(angle = segAng(seg02) - 90, length = crankRadius / 2)
|
||||||
|
|> angledLine(angle = segAng(seg02), length = crankRadius * 1.625)
|
||||||
|
|> angledLine(angle = segAng(seg02) + 90, length = crankRadius / 2)
|
||||||
|
|> tangentialArc(angle = -45, radius = 5)
|
||||||
|
|> angledLine(angle = segAng(seg02) + 45, length = crankRadius / 2)
|
||||||
|
|> tangentialArc(angle = -45, radius = crankRadius)
|
||||||
|
|> angledLineThatIntersects(angle = segAng(seg02), intersectTag = seg03, offset = -crankRadius / 2)
|
||||||
|
|> tangentialArc(angle = -45, radius = 5)
|
||||||
|
|> angledLine(angle = segAng(seg02) - 45, length = crankRadius / 5)
|
||||||
|
|> tangentialArc(angle = -45, radius = 5)
|
||||||
|
|> angledLine(angle = segAng(seg02) - 90, length = crankRadius / 5)
|
||||||
|
|> angledLineThatIntersects(angle = segAng(seg02), intersectTag = seg03, offset = crankRadius / 3)
|
||||||
|
|> angledLineThatIntersects(angle = segAng(seg02) + 45, intersectTag = seg03, offset = crankRadius / 2)
|
||||||
|
|> angledLineThatIntersects(%, angle = segAng(seg02) + 90, intersectTag = seg02)
|
||||||
|
|> mirror2d(axis = seg02)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = 54, symmetric = true)
|
||||||
|
|
||||||
|
// Define a plane perpendicular to the connecting rod
|
||||||
|
connectingRodPlane = {
|
||||||
|
origin = [
|
||||||
|
0,
|
||||||
|
0.0,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2))
|
||||||
|
],
|
||||||
|
xAxis = [
|
||||||
|
-1 * sin(segAng(seg02)),
|
||||||
|
0,
|
||||||
|
1 * cos(segAng(seg02))
|
||||||
|
],
|
||||||
|
yAxis = [0.0, 1.0, 0.0]
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extrude an oval profile through the connecting rod to define its boundaries in the other dimensions
|
||||||
|
connectingRodShape = startSketchOn(connectingRodPlane)
|
||||||
|
|> startProfile(at = [crankRadius * 1.5, 0])
|
||||||
|
|> yLine(length = 4)
|
||||||
|
|> tangentialArc(angle = 80, radius = 8)
|
||||||
|
|> tangentialArc(endAbsolute = [-lastSegX(%), lastSegY(%)])
|
||||||
|
|> tangentialArc(angle = 80, radius = 8)
|
||||||
|
|> yLine(endAbsolute = profileStartY(%))
|
||||||
|
|> mirror2d(axis = X)
|
||||||
|
|> close()
|
||||||
|
|> extrude(length = 554, symmetric = true)
|
||||||
|
|
||||||
|
connectingRodShapeSubtract = intersect([
|
||||||
|
connectingRodProfile,
|
||||||
|
connectingRodShape
|
||||||
|
])
|
||||||
|
|
||||||
|
// Bore holes in the connecting rod for the wrist pin and crank
|
||||||
|
// REPLACED POLYGON CUTS WITH CIRCLES
|
||||||
|
boreHoles = startSketchOn(XZ)
|
||||||
|
crankBore = circle(boreHoles, center = polar(angle = crankPos, length = stroke / 2), radius = crankRadius)
|
||||||
|
|> extrude(length = 54, symmetric = true)
|
||||||
|
wristPinHole = circle(
|
||||||
|
boreHoles,
|
||||||
|
center = [
|
||||||
|
0,
|
||||||
|
stroke / 2 * sin(crankPos) + sqrt(rodLength ^ 2 - ((stroke / 2 * cos(crankPos)) ^ 2))
|
||||||
|
],
|
||||||
|
radius = pistonHeight / 10,
|
||||||
|
)
|
||||||
|
|> extrude(length = 54, symmetric = true)
|
||||||
|
|
||||||
|
// Subtract out the bore holes
|
||||||
|
connectingRodBore = subtract([connectingRodShapeSubtract], tools = union([wristPinHole, crankBore]))
|
||||||
|
|
||||||
|
// Bore holes for the connecting rod bolts
|
||||||
|
boltHoles = startSketchOn(connectingRodPlane)
|
||||||
|
|> circle(center = [45, 0], radius = 5)
|
||||||
|
|> patternCircular2d(
|
||||||
|
instances = 2,
|
||||||
|
center = [0, 0],
|
||||||
|
arcDegrees = 360,
|
||||||
|
rotateDuplicates = true,
|
||||||
|
)
|
||||||
|
|> extrude(length = 300)
|
||||||
|
|
||||||
|
connectingRod = subtract([connectingRodBore], tools = union(boltHoles))
|