From 6ac9c49773a9ab5fcac4c76bc764ea313b8806dc Mon Sep 17 00:00:00 2001 From: Adam Chalmers Date: Thu, 6 Feb 2025 17:46:47 -0600 Subject: [PATCH] KCL: Patterns of patterns can use the original sketch/solid as target (#5284) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Right now, if you model something like this box with a button: Screenshot 2025-02-06 at 3 08 03 PM Let's say you want to pattern the button, and repeat it a second time. If you try, you'll actually pattern the entire model (box + button). Screenshot 2025-02-06 at 3 08 52 PM Why? Because right now, when you sketch on a face (like the button was), both the box and the button share the same ID. All extrusions from a solid will share the same ID, because they all refer to the same composite solid. This is helpful in some ways -- arguably the solid _is_ just one big complex shape now -- but it's not helpful in other ways. What if I want to only pattern the button? Luckily there's an original ID for the button part, which is still stored. So we just need a way to tell the pattern stdlib functions whether to use the target's main ID or its original ID. This PR adds a new optional bool, `useOriginal`, to patterns. It's false by default, to keep backwards-compatibility (make sure that old KCL code doesn't change). This PR is based on https://github.com/KittyCAD/modeling-app/pull/3914. It's based on work Serena and I are doing to fix a bug (engine does not allow patterning a 3D solid which was sketched on a face of another solid). @gserena01 our test program is now: ``` w = 400 case = startSketchOn('XY') |> startProfileAt([-w, -w], %) |> line(endAbsolute = [-w, w]) |> line(endAbsolute = [w, -w]) |> line(endAbsolute = [-w, -w]) |> close() |> extrude(length = 200) bump1 = startSketchOn(case, 'end') |> circle({ center = [-50, -50], radius = 40 }, %) |> extrude(length = 20) // We pass in "bump1" here since we want to pattern just this object on the face. useOriginal = true target = bump1 transform = { axis = [1, 0, 0], instances = 3, distance = -100 } patternLinear3d(transform, target, useOriginal) ``` If you change the `useOriginal = true` to `false` you can see the difference. --- docs/kcl/patternLinear2d.md | 3 +- docs/kcl/patternLinear3d.md | 3 +- docs/kcl/patternTransform.md | 3 +- docs/kcl/patternTransform2d.md | 3 +- docs/kcl/std.json | 6862 +++++++++++++++++ docs/kcl/types/CircularPattern2dData.md | 1 + docs/kcl/types/CircularPattern3dData.md | 1 + docs/kcl/types/Sketch.md | 1 + docs/kcl/types/SketchSet.md | 1 + ...ode-color-goober-1-Google-Chrome-linux.png | Bin 148724 -> 148734 bytes src/lang/artifact.test.ts | 4 + src/lang/executor.test.ts | 1 + src/wasm-lib/kcl/src/execution/geometry.rs | 12 + src/wasm-lib/kcl/src/std/args.rs | 10 +- src/wasm-lib/kcl/src/std/patterns.rs | 78 +- src/wasm-lib/kcl/src/std/sketch.rs | 1 + .../kcl/tests/angled_line/program_memory.snap | 2 + .../program_memory.snap | 6 + .../program_memory.snap | 2 + .../program_memory.snap | 1 + .../program_memory.snap | 20 + .../program_memory.snap | 2 + .../basic_fillet_cube_end/program_memory.snap | 2 + .../program_memory.snap | 2 + .../program_memory.snap | 2 + .../program_memory.snap | 2 + .../program_memory.snap | 2 + .../program_memory.snap | 2 + .../circle_three_point/program_memory.snap | 2 + .../program_memory.snap | 296 + .../kcl/tests/cube/program_memory.snap | 2 + .../fillet-and-shell/program_memory.snap | 5 + .../tests/function_sketch/program_memory.snap | 2 + .../program_memory.snap | 2 + .../kcl/tests/helix_ccw/program_memory.snap | 2 + .../kcl/tests/i_shape/program_memory.snap | 4 + .../program_memory.snap | 3 + .../tests/import_whole/program_memory.snap | 2 + .../tests/kittycad_svg/program_memory.snap | 2 + .../program_memory.snap | 58 + .../mike_stress_test/program_memory.snap | 2 + .../tests/neg_xz_plane/program_memory.snap | 2 + .../kcl/tests/parametric/program_memory.snap | 2 + .../program_memory.snap | 2 + .../pentagon_fillet_sugar/program_memory.snap | 11 + .../kcl/tests/pipe_as_arg/program_memory.snap | 2 + .../kcl/tests/poop_chute/program_memory.snap | 4 + .../tests/riddle_small/program_memory.snap | 2 + .../program_memory.snap | 9 + .../program_memory.snap | 9 + .../sketch_in_object/program_memory.snap | 3 + .../tests/sketch_on_face/program_memory.snap | 4 + .../program_memory.snap | 4 + .../program_memory.snap | 4 + .../sketch_on_face_end/program_memory.snap | 4 + .../program_memory.snap | 4 + .../sketch_on_face_start/program_memory.snap | 5 + .../tests/tangential_arc/program_memory.snap | 2 + .../kcl/tests/xz_plane/program_memory.snap | 2 + 59 files changed, 7468 insertions(+), 18 deletions(-) diff --git a/docs/kcl/patternLinear2d.md b/docs/kcl/patternLinear2d.md index 8fc6b22f7..9910804d5 100644 --- a/docs/kcl/patternLinear2d.md +++ b/docs/kcl/patternLinear2d.md @@ -9,7 +9,7 @@ Repeat a 2-dimensional sketch along some dimension, with a dynamic amount of distance between each repetition, some specified number of times. ```js -patternLinear2d(data: LinearPattern2dData, sketch_set: SketchSet) -> [Sketch] +patternLinear2d(data: LinearPattern2dData, sketch_set: SketchSet, use_original?: bool) -> [Sketch] ``` @@ -19,6 +19,7 @@ patternLinear2d(data: LinearPattern2dData, sketch_set: SketchSet) -> [Sketch] |----------|------|-------------|----------| | `data` | [`LinearPattern2dData`](/docs/kcl/types/LinearPattern2dData) | Data for a linear pattern on a 2D sketch. | Yes | | `sketch_set` | [`SketchSet`](/docs/kcl/types/SketchSet) | A sketch or a group of sketches. | Yes | +| `use_original` | `bool` | | No | ### Returns diff --git a/docs/kcl/patternLinear3d.md b/docs/kcl/patternLinear3d.md index 791ae8f3a..f6b04f543 100644 --- a/docs/kcl/patternLinear3d.md +++ b/docs/kcl/patternLinear3d.md @@ -9,7 +9,7 @@ Repeat a 3-dimensional solid along a linear path, with a dynamic amount of distance between each repetition, some specified number of times. ```js -patternLinear3d(data: LinearPattern3dData, solid_set: SolidSet) -> [Solid] +patternLinear3d(data: LinearPattern3dData, solid_set: SolidSet, use_original?: bool) -> [Solid] ``` @@ -19,6 +19,7 @@ patternLinear3d(data: LinearPattern3dData, solid_set: SolidSet) -> [Solid] |----------|------|-------------|----------| | `data` | [`LinearPattern3dData`](/docs/kcl/types/LinearPattern3dData) | Data for a linear pattern on a 3D model. | Yes | | `solid_set` | [`SolidSet`](/docs/kcl/types/SolidSet) | A solid or a group of solids. | Yes | +| `use_original` | `bool` | | No | ### Returns diff --git a/docs/kcl/patternTransform.md b/docs/kcl/patternTransform.md index 8a057265d..95ea916ad 100644 --- a/docs/kcl/patternTransform.md +++ b/docs/kcl/patternTransform.md @@ -35,7 +35,7 @@ The transform function returns a transform object. All properties of the object - `rotation.origin` (either "local" i.e. rotate around its own center, "global" i.e. rotate around the scene's center, or a 3D point, defaults to "local") ```js -patternTransform(total_instances: integer, transform_function: FunctionParam, solid_set: SolidSet) -> [Solid] +patternTransform(total_instances: integer, transform_function: FunctionParam, solid_set: SolidSet, use_original?: bool) -> [Solid] ``` @@ -46,6 +46,7 @@ patternTransform(total_instances: integer, transform_function: FunctionParam, so | `total_instances` | `integer` | | Yes | | `transform_function` | `FunctionParam` | | Yes | | `solid_set` | [`SolidSet`](/docs/kcl/types/SolidSet) | A solid or a group of solids. | Yes | +| `use_original` | `bool` | | No | ### Returns diff --git a/docs/kcl/patternTransform2d.md b/docs/kcl/patternTransform2d.md index 353ce75b5..aa6286c29 100644 --- a/docs/kcl/patternTransform2d.md +++ b/docs/kcl/patternTransform2d.md @@ -9,7 +9,7 @@ Just like patternTransform, but works on 2D sketches not 3D solids. ```js -patternTransform2d(total_instances: integer, transform_function: FunctionParam, solid_set: SketchSet) -> [Sketch] +patternTransform2d(total_instances: integer, transform_function: FunctionParam, solid_set: SketchSet, use_original?: bool) -> [Sketch] ``` @@ -20,6 +20,7 @@ patternTransform2d(total_instances: integer, transform_function: FunctionParam, | `total_instances` | `integer` | | Yes | | `transform_function` | `FunctionParam` | | Yes | | `solid_set` | [`SketchSet`](/docs/kcl/types/SketchSet) | A sketch or a group of sketches. | Yes | +| `use_original` | `bool` | | No | ### Returns diff --git a/docs/kcl/std.json b/docs/kcl/std.json index 5818073cd..6ee66d556 100644 --- a/docs/kcl/std.json +++ b/docs/kcl/std.json @@ -1845,6 +1845,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -1893,6 +1894,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -3137,6 +3142,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -3185,6 +3191,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -5144,6 +5154,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -5192,6 +5203,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -6436,6 +6451,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -6484,6 +6500,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -6745,6 +6765,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -6793,6 +6814,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -7999,6 +8024,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -8047,6 +8073,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -9469,6 +9499,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -9517,6 +9548,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -9745,6 +9780,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -9793,6 +9829,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -10999,6 +11039,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -11047,6 +11088,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -11332,6 +11377,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -11380,6 +11426,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -12586,6 +12636,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -12634,6 +12685,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -14056,6 +14111,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -14104,6 +14160,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -14332,6 +14392,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -14380,6 +14441,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -15586,6 +15651,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -15634,6 +15700,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -15919,6 +15989,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -15967,6 +16038,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -17173,6 +17248,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -17221,6 +17297,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -18643,6 +18723,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -18691,6 +18772,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -18919,6 +19004,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -18967,6 +19053,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -20173,6 +20263,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -20221,6 +20312,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -21373,6 +21468,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -21421,6 +21517,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -22691,6 +22791,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -22739,6 +22840,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -24161,6 +24266,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -24209,6 +24315,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -24373,6 +24483,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -24421,6 +24532,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -25627,6 +25742,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -25675,6 +25791,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -25945,6 +26065,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -25993,6 +26114,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -27199,6 +27324,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -27247,6 +27373,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -28669,6 +28799,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -28717,6 +28848,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -28945,6 +29080,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -28993,6 +29129,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -30199,6 +30339,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -30247,6 +30388,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -30517,6 +30662,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -30565,6 +30711,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -31771,6 +31921,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -31819,6 +31970,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -33241,6 +33396,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -33289,6 +33445,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -33517,6 +33677,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -33565,6 +33726,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -34771,6 +34936,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -34819,6 +34985,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -35440,6 +35610,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -35488,6 +35659,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -37012,6 +37187,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -37060,6 +37236,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -38343,6 +38523,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -38391,6 +38572,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -39597,6 +39782,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -39645,6 +39831,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -41067,6 +41257,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -41115,6 +41306,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -41343,6 +41538,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -41391,6 +41587,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -42597,6 +42797,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -42645,6 +42846,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -42925,6 +43130,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -42973,6 +43179,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -44179,6 +44389,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -44227,6 +44438,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -45649,6 +45864,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -45697,6 +45913,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -45925,6 +46145,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -45973,6 +46194,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -47179,6 +47404,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -47227,6 +47453,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -48040,6 +48270,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -48088,6 +48319,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -49294,6 +49529,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -49342,6 +49578,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -50764,6 +51004,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -50812,6 +51053,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -51040,6 +51285,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -51088,6 +51334,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -52294,6 +52544,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -52342,6 +52593,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -54517,6 +54772,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -54565,6 +54821,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -56005,6 +56265,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -56053,6 +56314,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -56901,6 +57166,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -56949,6 +57215,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -58814,6 +59084,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -58862,6 +59133,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -60284,6 +60559,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -60332,6 +60608,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -61122,6 +61402,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -61170,6 +61451,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -62376,6 +62661,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -62424,6 +62710,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -63358,6 +63648,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -63406,6 +63697,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -64829,6 +65124,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -64877,6 +65173,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -65668,6 +65968,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -65716,6 +66017,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -66922,6 +67227,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -66970,6 +67276,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -67211,6 +67521,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -67259,6 +67570,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -68465,6 +68780,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -68513,6 +68829,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -69936,6 +70256,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -69984,6 +70305,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -70213,6 +70538,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -70261,6 +70587,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -71467,6 +71797,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -71515,6 +71846,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -71858,6 +72193,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "type", @@ -71913,6 +72249,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -73141,6 +73481,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -73189,6 +73530,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -74608,6 +74953,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -74656,6 +75002,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -75227,6 +75577,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -75275,6 +75626,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -78370,6 +78725,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -78418,6 +78774,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -79858,6 +80218,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -79906,6 +80267,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -80754,6 +81119,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -80802,6 +81168,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -87395,6 +87765,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -87443,6 +87814,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -88935,6 +89310,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -88983,6 +89359,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -90181,6 +90561,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "type", @@ -90236,6 +90617,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -91464,6 +91849,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -91512,6 +91898,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -91740,6 +92130,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -91788,6 +92179,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -92994,6 +93389,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -93042,6 +93438,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -93271,6 +93671,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -93319,6 +93720,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -94525,6 +94930,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -94573,6 +94979,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -95137,6 +95547,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -95185,6 +95596,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -96677,6 +97092,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -96725,6 +97141,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -98410,6 +98830,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -98458,6 +98879,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -99664,6 +100089,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -99712,6 +100138,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -99967,6 +100397,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -100015,6 +100446,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -101221,6 +101656,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -101269,6 +101705,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -101689,6 +102129,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -101737,6 +102178,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -102943,6 +103388,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -102991,6 +103437,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -104416,6 +104866,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -104464,6 +104915,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -105888,6 +106343,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -105936,6 +106392,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -107359,6 +107819,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -107407,6 +107868,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -107636,6 +108101,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -107684,6 +108150,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -108890,6 +109360,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -108938,6 +109409,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -109227,6 +109702,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -109275,6 +109751,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -110695,6 +111175,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -110743,6 +111224,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -112161,6 +112646,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -112209,6 +112695,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -113630,6 +114120,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -113678,6 +114169,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -115097,6 +115592,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -115145,6 +115641,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -116869,6 +117369,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -116917,6 +117418,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -119996,6 +120501,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -120044,6 +120550,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -122236,6 +122746,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -122284,6 +122795,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -124480,6 +124995,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -124528,6 +125044,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -126124,6 +126644,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "type", @@ -126179,6 +126700,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -127581,6 +128106,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -127629,6 +128155,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -127800,6 +128330,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -127848,6 +128379,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -129666,6 +130201,12 @@ "rotateDuplicates": { "description": "Whether or not to rotate the duplicates as they are copied.", "type": "boolean" + }, + "useOriginal": { + "description": "If the target being patterned is itself a pattern, then, should you use the original solid, or the pattern?", + "default": null, + "type": "boolean", + "nullable": true } } }, @@ -129689,6 +130230,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "type", @@ -129744,6 +130286,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -130972,6 +131518,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -131020,6 +131567,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -131255,6 +131806,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -131303,6 +131855,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -132767,6 +133323,12 @@ "rotateDuplicates": { "description": "Whether or not to rotate the duplicates as they are copied.", "type": "boolean" + }, + "useOriginal": { + "description": "If the target being patterned is itself a pattern, then, should you use the original solid, or the pattern?", + "default": null, + "type": "boolean", + "nullable": true } } }, @@ -133128,6 +133690,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -133176,6 +133739,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -134674,6 +135241,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -134722,6 +135290,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -135884,6 +136456,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "type", @@ -135939,6 +136512,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -137167,6 +137744,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -137215,6 +137793,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -137429,6 +138011,1476 @@ "required": true, "includeInSnippet": true, "labelRequired": true + }, + { + "name": "use_original", + "type": "bool", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_Boolean", + "type": "boolean", + "nullable": true, + "definitions": { + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "UnitLen": { + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } + } + }, + "required": false, + "labelRequired": true } ], "returnValue": { @@ -137450,6 +139502,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -137498,6 +139551,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -139307,6 +141364,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -139355,6 +141413,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -140523,6 +142585,1476 @@ "required": true, "includeInSnippet": true, "labelRequired": true + }, + { + "name": "use_original", + "type": "bool", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_Boolean", + "type": "boolean", + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "UnitLen": { + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": false, + "labelRequired": true } ], "returnValue": { @@ -140853,6 +144385,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -140901,6 +144434,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -142386,6 +145923,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -142434,6 +145972,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -143602,6 +147144,1476 @@ "required": true, "includeInSnippet": true, "labelRequired": true + }, + { + "name": "use_original", + "type": "bool", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_Boolean", + "type": "boolean", + "nullable": true, + "definitions": { + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "UnitLen": { + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + } + } + }, + "required": false, + "labelRequired": true } ], "returnValue": { @@ -143932,6 +148944,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -143980,6 +148993,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -145132,6 +150149,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "type", @@ -145187,6 +150205,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -146415,6 +151437,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -146463,6 +151486,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -146677,6 +151704,1476 @@ "required": true, "includeInSnippet": true, "labelRequired": true + }, + { + "name": "use_original", + "type": "bool", + "schema": { + "$schema": "https://spec.openapis.org/oas/3.0/schema/2019-04-02#/definitions/Schema", + "title": "Nullable_Boolean", + "type": "boolean", + "nullable": true, + "definitions": { + "Path": { + "description": "A path.", + "oneOf": [ + { + "description": "A path that goes to a point.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "ToPoint" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment that goes to a point", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArcTo" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A arc that is tangential to the last path segment", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "TangentialArc" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "ccw": { + "description": "arc's direction", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "a complete arc", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Circle" + ] + }, + "center": { + "description": "the arc's center", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "the arc's radius", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "arc's direction This is used to compute the tangential angle.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A path that is horizontal.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type", + "x" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Horizontal" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "An angled line to.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "AngledLineTo" + ] + }, + "x": { + "description": "The x coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "y": { + "description": "The y coordinate.", + "type": "number", + "format": "double", + "nullable": true + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Base" + ] + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + { + "description": "A circular arc, not necessarily tangential to the current point.", + "type": "object", + "required": [ + "__geoMeta", + "ccw", + "center", + "from", + "radius", + "to", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Arc" + ] + }, + "center": { + "description": "Center of the circle that this arc is drawn on.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "radius": { + "description": "Radius of the circle that this arc is drawn on.", + "type": "number", + "format": "double" + }, + "ccw": { + "description": "True if the arc is counterclockwise.", + "type": "boolean" + }, + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + } + ] + }, + "TagDeclarator": { + "type": "object", + "required": [ + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "digest": { + "type": "array", + "items": { + "type": "integer", + "format": "uint8", + "minimum": 0.0 + }, + "maxItems": 32, + "minItems": 32, + "nullable": true + }, + "start": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "end": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + } + } + }, + "GeoMeta": { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "id", + "sourceRange" + ], + "properties": { + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "SourceRange": { + "description": "The first two items are the start and end points (byte offsets from the start of the file). The third item is whether the source range belongs to the 'main' file, i.e., the file currently being rendered/displayed in the editor.", + "type": "array", + "items": { + "type": "integer", + "format": "uint", + "minimum": 0.0 + }, + "maxItems": 3, + "minItems": 3 + }, + "SketchSurface": { + "description": "A sketch type.", + "oneOf": [ + { + "description": "A plane.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "origin", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "plane" + ] + }, + "id": { + "description": "The id of the plane.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "$ref": "#/components/schemas/PlaneType" + }, + "origin": { + "description": "Origin of the plane.", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "xAxis": { + "description": "What should the plane’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the plane’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + { + "description": "A face.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "solid", + "type", + "units", + "value", + "xAxis", + "yAxis", + "zAxis" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "face" + ] + }, + "id": { + "description": "The id of the face.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The tag of the face.", + "type": "string" + }, + "xAxis": { + "description": "What should the face’s X axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "yAxis": { + "description": "What should the face’s Y axis be?", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "zAxis": { + "description": "The z-axis (normal).", + "allOf": [ + { + "$ref": "#/components/schemas/Point3d" + } + ] + }, + "solid": { + "description": "The solid the face is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Solid" + } + ] + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + } + ] + }, + "ArtifactId": { + "type": "string", + "format": "uuid" + }, + "PlaneType": { + "description": "Type for a plane.", + "oneOf": [ + { + "type": "string", + "enum": [ + "XY", + "XZ", + "YZ" + ] + }, + { + "description": "A custom plane.", + "type": "string", + "enum": [ + "Custom" + ] + } + ] + }, + "Point3d": { + "type": "object", + "required": [ + "x", + "y", + "z" + ], + "properties": { + "x": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "z": { + "type": "number", + "format": "double" + } + } + }, + "UnitLen": { + "oneOf": [ + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Mm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Cm" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "M" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Inches" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Feet" + ] + } + } + }, + { + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "Yards" + ] + } + } + } + ] + }, + "Metadata": { + "description": "Metadata.", + "type": "object", + "required": [ + "sourceRange" + ], + "properties": { + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + "Solid": { + "description": "An solid is a collection of extrude surfaces.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "height", + "id", + "sketch", + "units", + "value" + ], + "properties": { + "id": { + "description": "The id of the solid.", + "type": "string", + "format": "uuid" + }, + "artifactId": { + "description": "The artifact ID of the solid. Unlike `id`, this doesn't change.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "value": { + "description": "The extrude surfaces.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtrudeSurface" + } + }, + "sketch": { + "description": "The sketch.", + "allOf": [ + { + "$ref": "#/components/schemas/Sketch" + } + ] + }, + "height": { + "description": "The height of the solid.", + "type": "number", + "format": "double" + }, + "startCapId": { + "description": "The id of the extrusion start cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "endCapId": { + "description": "The id of the extrusion end cap", + "type": "string", + "format": "uuid", + "nullable": true + }, + "edgeCuts": { + "description": "Chamfers or fillets on this solid.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EdgeCut" + } + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "ExtrudeSurface": { + "description": "An extrude surface.", + "oneOf": [ + { + "description": "An extrude plane.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudePlane" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "An extruded arc.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "extrudeArc" + ] + }, + "faceId": { + "description": "The face id for the extrude plane.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "faceId": { + "description": "The id for the chamfer surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + }, + { + "description": "Geometry metadata.", + "type": "object", + "required": [ + "faceId", + "id", + "sourceRange", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "faceId": { + "description": "The id for the fillet surface.", + "type": "string", + "format": "uuid" + }, + "tag": { + "description": "The tag.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "id": { + "description": "The id of the geometry.", + "type": "string", + "format": "uuid" + }, + "sourceRange": { + "description": "The source range.", + "allOf": [ + { + "$ref": "#/components/schemas/SourceRange" + } + ] + } + } + } + ] + }, + "Sketch": { + "description": "A sketch is a collection of paths.", + "type": "object", + "required": [ + "__meta", + "artifactId", + "id", + "on", + "originalId", + "paths", + "start", + "units" + ], + "properties": { + "id": { + "description": "The id of the sketch (this will change when the engine's reference to it changes).", + "type": "string", + "format": "uuid" + }, + "paths": { + "description": "The paths in the sketch.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Path" + } + }, + "on": { + "description": "What the sketch is on (can be a plane or a face).", + "allOf": [ + { + "$ref": "#/components/schemas/SketchSurface" + } + ] + }, + "start": { + "description": "The starting path.", + "allOf": [ + { + "$ref": "#/components/schemas/BasePath" + } + ] + }, + "tags": { + "description": "Tag identifiers that have been declared in this sketch.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/TagIdentifier" + } + }, + "artifactId": { + "description": "The original id of the sketch. This stays the same even if the sketch is is sketched on face etc.", + "allOf": [ + { + "$ref": "#/components/schemas/ArtifactId" + } + ] + }, + "originalId": { + "type": "string", + "format": "uuid" + }, + "units": { + "$ref": "#/components/schemas/UnitLen" + }, + "__meta": { + "description": "Metadata.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "BasePath": { + "description": "A base path.", + "type": "object", + "required": [ + "__geoMeta", + "from", + "to" + ], + "properties": { + "from": { + "description": "The from point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "to": { + "description": "The to point.", + "type": "array", + "items": { + "type": "number", + "format": "double" + }, + "maxItems": 2, + "minItems": 2 + }, + "tag": { + "description": "The tag of the path.", + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + }, + "__geoMeta": { + "description": "Metadata.", + "allOf": [ + { + "$ref": "#/components/schemas/GeoMeta" + } + ] + } + } + }, + "TagIdentifier": { + "type": "object", + "required": [ + "__meta", + "value" + ], + "properties": { + "value": { + "type": "string" + }, + "info": { + "allOf": [ + { + "$ref": "#/components/schemas/TagEngineInfo" + } + ], + "nullable": true + }, + "__meta": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Metadata" + } + } + } + }, + "TagEngineInfo": { + "description": "Engine information for a tag.", + "type": "object", + "required": [ + "id", + "sketch" + ], + "properties": { + "id": { + "description": "The id of the tagged object.", + "type": "string", + "format": "uuid" + }, + "sketch": { + "description": "The sketch the tag is on.", + "type": "string", + "format": "uuid" + }, + "path": { + "description": "The path the tag is on.", + "allOf": [ + { + "$ref": "#/components/schemas/Path" + } + ], + "nullable": true + }, + "surface": { + "description": "The surface information for the tag.", + "allOf": [ + { + "$ref": "#/components/schemas/ExtrudeSurface" + } + ], + "nullable": true + } + } + }, + "EdgeCut": { + "description": "A fillet or a chamfer.", + "oneOf": [ + { + "description": "A fillet.", + "type": "object", + "required": [ + "edgeId", + "id", + "radius", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "fillet" + ] + }, + "id": { + "description": "The id of the engine command that called this fillet.", + "type": "string", + "format": "uuid" + }, + "radius": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to fillet.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + }, + { + "description": "A chamfer.", + "type": "object", + "required": [ + "edgeId", + "id", + "length", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "chamfer" + ] + }, + "id": { + "description": "The id of the engine command that called this chamfer.", + "type": "string", + "format": "uuid" + }, + "length": { + "type": "number", + "format": "double" + }, + "edgeId": { + "description": "The engine id of the edge to chamfer.", + "type": "string", + "format": "uuid" + }, + "tag": { + "allOf": [ + { + "$ref": "#/components/schemas/TagDeclarator" + } + ], + "nullable": true + } + } + } + ] + } + } + }, + "required": false, + "labelRequired": true } ], "returnValue": { @@ -146698,6 +153195,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -146746,6 +153244,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -148943,6 +155445,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -148991,6 +155494,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -150413,6 +156920,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -150461,6 +156969,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -151251,6 +157763,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -151299,6 +157812,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -152505,6 +159022,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -152553,6 +159071,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -154510,6 +161032,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -154558,6 +161081,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -157253,6 +163780,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -157301,6 +163829,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -157849,6 +164381,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -157897,6 +164430,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -159103,6 +165640,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -159151,6 +165689,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -159411,6 +165953,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -159459,6 +166002,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -160665,6 +167212,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -160713,6 +167261,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -160968,6 +167520,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -161016,6 +167569,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -162222,6 +168779,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -162270,6 +168828,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -164240,6 +170802,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -164288,6 +170851,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -166981,6 +173548,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -167029,6 +173597,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -169723,6 +176295,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -169771,6 +176344,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -171979,6 +178556,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -172027,6 +178605,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -174720,6 +181302,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -174768,6 +181351,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -176960,6 +183547,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -177008,6 +183596,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -179702,6 +186294,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -179750,6 +186343,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -181327,6 +187924,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -181375,6 +187973,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -182755,6 +189357,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -182803,6 +189406,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -183277,6 +189884,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -183325,6 +189933,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -193807,6 +200419,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -193855,6 +200468,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -194736,6 +201353,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -194784,6 +201402,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -196711,6 +203333,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -196759,6 +203382,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -198181,6 +204808,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -198229,6 +204857,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -199187,6 +205819,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -199235,6 +205868,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -200441,6 +207078,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -200489,6 +207127,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -200751,6 +207393,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -200799,6 +207442,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -202005,6 +208652,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -202053,6 +208701,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -202940,6 +209592,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -202988,6 +209641,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -204584,6 +211241,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -204632,6 +211290,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -206248,6 +212910,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -206296,6 +212959,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -207310,6 +213977,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -207358,6 +214026,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -208823,6 +215495,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -208871,6 +215544,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -208902,6 +215579,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -208950,6 +215628,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -210725,6 +217407,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -210773,6 +217456,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -212957,6 +219644,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -213005,6 +219693,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -214211,6 +220903,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -214259,6 +220952,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -215681,6 +222378,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -215729,6 +222427,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -215957,6 +222659,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -216005,6 +222708,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -217211,6 +223918,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -217259,6 +223967,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -217518,6 +224230,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -217566,6 +224279,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -218772,6 +225489,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -218820,6 +225538,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -220242,6 +226964,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -220290,6 +227013,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -220518,6 +227245,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -220566,6 +227294,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -221772,6 +228504,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -221820,6 +228553,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -222079,6 +228816,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -222127,6 +228865,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -223333,6 +230075,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -223381,6 +230124,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -224803,6 +231550,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -224851,6 +231599,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -225079,6 +231831,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -225127,6 +231880,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -226333,6 +233090,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -226381,6 +233139,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -226747,6 +233509,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -226795,6 +233558,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -228001,6 +234768,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -228049,6 +234817,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -229471,6 +236243,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -229519,6 +236292,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -229747,6 +236524,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -229795,6 +236573,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -231001,6 +237783,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -231049,6 +237832,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -231303,6 +238090,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -231351,6 +238139,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -232557,6 +239349,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -232605,6 +239398,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -234027,6 +240824,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -234075,6 +240873,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -234303,6 +241105,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -234351,6 +241154,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -235557,6 +242364,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -235605,6 +242413,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -235859,6 +242671,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -235907,6 +242720,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -237113,6 +243930,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -237161,6 +243979,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -238583,6 +245405,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -238631,6 +245454,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -238859,6 +245686,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -238907,6 +245735,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -240113,6 +246945,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -240161,6 +246994,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -240415,6 +247252,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -240463,6 +247301,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -241669,6 +248511,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -241717,6 +248560,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -243139,6 +249986,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -243187,6 +250035,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -243415,6 +250267,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -243463,6 +250316,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, @@ -244669,6 +251526,7 @@ "artifactId", "id", "on", + "originalId", "paths", "start", "units" @@ -244717,6 +251575,10 @@ } ] }, + "originalId": { + "type": "string", + "format": "uuid" + }, "units": { "$ref": "#/components/schemas/UnitLen" }, diff --git a/docs/kcl/types/CircularPattern2dData.md b/docs/kcl/types/CircularPattern2dData.md index cfa0702b5..7a91c6173 100644 --- a/docs/kcl/types/CircularPattern2dData.md +++ b/docs/kcl/types/CircularPattern2dData.md @@ -20,5 +20,6 @@ Data for a circular pattern on a 2D sketch. | `center` |`[number, number]`| The center about which to make the pattern. This is a 2D vector. | No | | `arcDegrees` |`number`| The arc angle (in degrees) to place the repetitions. Must be greater than 0. | No | | `rotateDuplicates` |`boolean`| Whether or not to rotate the duplicates as they are copied. | No | +| `useOriginal` |`boolean`| If the target being patterned is itself a pattern, then, should you use the original solid, or the pattern? | No | diff --git a/docs/kcl/types/CircularPattern3dData.md b/docs/kcl/types/CircularPattern3dData.md index b4bbd7d52..251467309 100644 --- a/docs/kcl/types/CircularPattern3dData.md +++ b/docs/kcl/types/CircularPattern3dData.md @@ -21,5 +21,6 @@ Data for a circular pattern on a 3D model. | `center` |`[number, number, number]`| The center about which to make the pattern. This is a 3D vector. | No | | `arcDegrees` |`number`| The arc angle (in degrees) to place the repetitions. Must be greater than 0. | No | | `rotateDuplicates` |`boolean`| Whether or not to rotate the duplicates as they are copied. | No | +| `useOriginal` |`boolean`| If the target being patterned is itself a pattern, then, should you use the original solid, or the pattern? | No | diff --git a/docs/kcl/types/Sketch.md b/docs/kcl/types/Sketch.md index a299cfbd0..00d18082a 100644 --- a/docs/kcl/types/Sketch.md +++ b/docs/kcl/types/Sketch.md @@ -22,6 +22,7 @@ A sketch is a collection of paths. | `start` |[`BasePath`](/docs/kcl/types/BasePath)| The starting path. | No | | `tags` |`object`| Tag identifiers that have been declared in this sketch. | No | | `artifactId` |[`ArtifactId`](/docs/kcl/types/ArtifactId)| The original id of the sketch. This stays the same even if the sketch is is sketched on face etc. | No | +| `originalId` |`string`| | No | | `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A sketch is a collection of paths. | No | | `__meta` |`[` [`Metadata`](/docs/kcl/types/Metadata) `]`| Metadata. | No | diff --git a/docs/kcl/types/SketchSet.md b/docs/kcl/types/SketchSet.md index 2597d81c3..9cf3827ed 100644 --- a/docs/kcl/types/SketchSet.md +++ b/docs/kcl/types/SketchSet.md @@ -31,6 +31,7 @@ A sketch is a collection of paths. | `start` |[`BasePath`](/docs/kcl/types/BasePath)| The starting path. | No | | `tags` |`object`| Tag identifiers that have been declared in this sketch. | No | | `artifactId` |[`ArtifactId`](/docs/kcl/types/ArtifactId)| The original id of the sketch. This stays the same even if the sketch is is sketched on face etc. | No | +| `originalId` |`string`| | No | | `units` |[`UnitLen`](/docs/kcl/types/UnitLen)| A sketch or a group of sketches. | No | | `__meta` |`[` [`Metadata`](/docs/kcl/types/Metadata) `]`| Metadata. | No | diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/code-color-goober-code-color-goober-1-Google-Chrome-linux.png index 9a3aa2342d9c869db0a489bba770995b7563f086..46d197e28601cf59c545c75a68ce2b4c556c6392 100644 GIT binary patch delta 24615 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 C>mcC( delta 24537 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 diff --git a/src/lang/artifact.test.ts b/src/lang/artifact.test.ts index f17c2a81b..711492051 100644 --- a/src/lang/artifact.test.ts +++ b/src/lang/artifact.test.ts @@ -55,6 +55,7 @@ const mySketch001 = startSketchOn('XY') ], id: expect.any(String), artifactId: expect.any(String), + originalId: expect.any(String), units: { type: 'Mm', }, @@ -98,6 +99,7 @@ const mySketch001 = startSketchOn('XY') ], sketch: { id: expect.any(String), + originalId: expect.any(String), artifactId: expect.any(String), units: { type: 'Mm', @@ -203,6 +205,7 @@ const sk2 = startSketchOn('XY') ], sketch: { id: expect.any(String), + originalId: expect.any(String), artifactId: expect.any(String), __meta: expect.any(Array), on: expect.any(Object), @@ -308,6 +311,7 @@ const sk2 = startSketchOn('XY') ], sketch: { id: expect.any(String), + originalId: expect.any(String), artifactId: expect.any(String), units: { type: 'Mm', diff --git a/src/lang/executor.test.ts b/src/lang/executor.test.ts index 2ee8bbead..c44c6ae58 100644 --- a/src/lang/executor.test.ts +++ b/src/lang/executor.test.ts @@ -221,6 +221,7 @@ const newVar = myVar + 1` }, ], id: expect.any(String), + originalId: expect.any(String), artifactId: expect.any(String), units: { type: 'Mm', diff --git a/src/wasm-lib/kcl/src/execution/geometry.rs b/src/wasm-lib/kcl/src/execution/geometry.rs index 63b693c03..3d34b21c6 100644 --- a/src/wasm-lib/kcl/src/execution/geometry.rs +++ b/src/wasm-lib/kcl/src/execution/geometry.rs @@ -32,6 +32,16 @@ impl Geometry { Geometry::Solid(e) => e.id, } } + + /// If this geometry is the result of a pattern, then return the ID of + /// the original sketch which was patterned. + /// Equivalent to the `id()` method if this isn't a pattern. + pub fn original_id(&self) -> uuid::Uuid { + match self { + Geometry::Sketch(s) => s.original_id, + Geometry::Solid(e) => e.sketch.original_id, + } + } } /// A set of geometry. @@ -419,6 +429,8 @@ pub struct Sketch { /// The original id of the sketch. This stays the same even if the sketch is /// is sketched on face etc. pub artifact_id: ArtifactId, + #[ts(skip)] + pub original_id: uuid::Uuid, pub units: UnitLen, /// Metadata. #[serde(rename = "__meta")] diff --git a/src/wasm-lib/kcl/src/std/args.rs b/src/wasm-lib/kcl/src/std/args.rs index 3873f667e..7042ac154 100644 --- a/src/wasm-lib/kcl/src/std/args.rs +++ b/src/wasm-lib/kcl/src/std/args.rs @@ -356,7 +356,7 @@ impl Args { Ok(numbers) } - pub(crate) fn get_pattern_transform_args(&self) -> Result<(u32, FnAsArg<'_>, SolidSet), KclError> { + pub(crate) fn get_pattern_transform_args(&self) -> Result<(u32, FnAsArg<'_>, SolidSet, Option), KclError> { FromArgs::from_args(self, 0) } @@ -764,6 +764,10 @@ macro_rules! let_field_of { ($obj:ident, $field:ident?) => { let $field = $obj.get(stringify!($field)).and_then(FromKclValue::from_kcl_val); }; + // Optional field but with a different string used as the key + ($obj:ident, $field:ident? $key:literal) => { + let $field = $obj.get($key).and_then(FromKclValue::from_kcl_val); + }; // Mandatory field, but with a different string used as the key. ($obj:ident, $field:ident $key:literal) => { let $field = $obj.get($key).and_then(FromKclValue::from_kcl_val)?; @@ -947,12 +951,14 @@ impl<'a> FromKclValue<'a> for super::patterns::CircularPattern3dData { let_field_of!(obj, rotate_duplicates "rotateDuplicates"); let_field_of!(obj, axis); let_field_of!(obj, center); + let_field_of!(obj, use_original? "useOriginal"); Some(Self { instances, axis, center, arc_degrees, rotate_duplicates, + use_original, }) } } @@ -964,11 +970,13 @@ impl<'a> FromKclValue<'a> for super::patterns::CircularPattern2dData { let_field_of!(obj, arc_degrees "arcDegrees"); let_field_of!(obj, rotate_duplicates "rotateDuplicates"); let_field_of!(obj, center); + let_field_of!(obj, use_original? "useOriginal"); Some(Self { instances, center, arc_degrees, rotate_duplicates, + use_original, }) } } diff --git a/src/wasm-lib/kcl/src/std/patterns.rs b/src/wasm-lib/kcl/src/std/patterns.rs index f3313f808..8e3d9ffaa 100644 --- a/src/wasm-lib/kcl/src/std/patterns.rs +++ b/src/wasm-lib/kcl/src/std/patterns.rs @@ -63,7 +63,7 @@ pub struct LinearPattern3dData { /// Repeat some 3D solid, changing each repetition slightly. pub async fn pattern_transform(exec_state: &mut ExecState, args: Args) -> Result { - let (num_repetitions, transform, extr) = args.get_pattern_transform_args()?; + let (num_repetitions, transform, extr, use_original) = args.get_pattern_transform_args()?; let solids = inner_pattern_transform( num_repetitions, @@ -75,6 +75,7 @@ pub async fn pattern_transform(exec_state: &mut ExecState, args: Args) -> Result memory: *transform.memory, }, extr, + use_original, exec_state, &args, ) @@ -84,7 +85,7 @@ pub async fn pattern_transform(exec_state: &mut ExecState, args: Args) -> Result /// Repeat some 2D sketch, changing each repetition slightly. pub async fn pattern_transform_2d(exec_state: &mut ExecState, args: Args) -> Result { - let (num_repetitions, transform, sketch): (u32, super::FnAsArg<'_>, SketchSet) = + let (num_repetitions, transform, sketch, use_original): (u32, super::FnAsArg<'_>, SketchSet, Option) = super::args::FromArgs::from_args(&args, 0)?; let sketches = inner_pattern_transform_2d( @@ -97,6 +98,7 @@ pub async fn pattern_transform_2d(exec_state: &mut ExecState, args: Args) -> Res memory: *transform.memory, }, sketch, + use_original, exec_state, &args, ) @@ -295,6 +297,7 @@ async fn inner_pattern_transform<'a>( total_instances: u32, transform_function: FunctionParam<'a>, solid_set: SolidSet, + use_original: Option, exec_state: &mut ExecState, args: &'a Args, ) -> Result>, KclError> { @@ -310,7 +313,7 @@ async fn inner_pattern_transform<'a>( let t = make_transform::>(i, &transform_function, args.source_range, exec_state).await?; transform.push(t); } - execute_pattern_transform(transform, solid_set, exec_state, args).await + execute_pattern_transform(transform, solid_set, use_original.unwrap_or_default(), exec_state, args).await } /// Just like patternTransform, but works on 2D sketches not 3D solids. @@ -332,6 +335,7 @@ async fn inner_pattern_transform_2d<'a>( total_instances: u32, transform_function: FunctionParam<'a>, solid_set: SketchSet, + use_original: Option, exec_state: &mut ExecState, args: &'a Args, ) -> Result>, KclError> { @@ -347,12 +351,13 @@ async fn inner_pattern_transform_2d<'a>( let t = make_transform::>(i, &transform_function, args.source_range, exec_state).await?; transform.push(t); } - execute_pattern_transform(transform, solid_set, exec_state, args).await + execute_pattern_transform(transform, solid_set, use_original.unwrap_or_default(), exec_state, args).await } async fn execute_pattern_transform( transforms: Vec>, geo_set: T::Set, + use_original: bool, exec_state: &mut ExecState, args: &Args, ) -> Result, KclError> { @@ -368,7 +373,7 @@ async fn execute_pattern_transform( let mut output = Vec::new(); for geo in starting { - let new = send_pattern_transform(transforms.clone(), &geo, exec_state, args).await?; + let new = send_pattern_transform(transforms.clone(), &geo, use_original, exec_state, args).await?; output.extend(new) } Ok(output) @@ -379,6 +384,7 @@ async fn send_pattern_transform( // https://github.com/KittyCAD/modeling-app/issues/2821 transforms: Vec>, solid: &T, + use_original: bool, exec_state: &mut ExecState, args: &Args, ) -> Result, KclError> { @@ -388,7 +394,7 @@ async fn send_pattern_transform( .send_modeling_cmd( id, ModelingCmd::from(mcmd::EntityLinearPatternTransform { - entity_id: solid.id(), + entity_id: if use_original { solid.original_id() } else { solid.id() }, transform: Default::default(), transforms, }), @@ -602,6 +608,7 @@ fn array_to_point2d(val: &KclValue, source_ranges: Vec) -> Result

> + Clone; fn id(&self) -> Uuid; + fn original_id(&self) -> Uuid; fn set_id(&mut self, id: Uuid); fn array_to_point3d(val: &KclValue, source_ranges: Vec) -> Result; async fn flush_batch(args: &Args, exec_state: &mut ExecState, set: Self::Set) -> Result<(), KclError>; @@ -615,6 +622,9 @@ impl GeometryTrait for Box { fn id(&self) -> Uuid { self.id } + fn original_id(&self) -> Uuid { + self.original_id + } fn array_to_point3d(val: &KclValue, source_ranges: Vec) -> Result { let Point2d { x, y } = array_to_point2d(val, source_ranges)?; Ok(Point3d { x, y, z: 0.0 }) @@ -634,6 +644,11 @@ impl GeometryTrait for Box { fn id(&self) -> Uuid { self.id } + + fn original_id(&self) -> Uuid { + self.sketch.original_id + } + fn array_to_point3d(val: &KclValue, source_ranges: Vec) -> Result { array_to_point3d(val, source_ranges) } @@ -674,7 +689,8 @@ mod tests { /// A linear pattern on a 2D sketch. pub async fn pattern_linear_2d(exec_state: &mut ExecState, args: Args) -> Result { - let (data, sketch_set): (LinearPattern2dData, SketchSet) = args.get_data_and_sketch_set()?; + let (data, sketch_set, use_original): (LinearPattern2dData, SketchSet, Option) = + super::args::FromArgs::from_args(&args, 0)?; if data.axis == [0.0, 0.0] { return Err(KclError::Semantic(KclErrorDetails { @@ -685,7 +701,7 @@ pub async fn pattern_linear_2d(exec_state: &mut ExecState, args: Args) -> Result })); } - let sketches = inner_pattern_linear_2d(data, sketch_set, exec_state, args).await?; + let sketches = inner_pattern_linear_2d(data, sketch_set, use_original, exec_state, args).await?; Ok(sketches.into()) } @@ -709,6 +725,7 @@ pub async fn pattern_linear_2d(exec_state: &mut ExecState, args: Args) -> Result async fn inner_pattern_linear_2d( data: LinearPattern2dData, sketch_set: SketchSet, + use_original: Option, exec_state: &mut ExecState, args: Args, ) -> Result>, KclError> { @@ -726,12 +743,20 @@ async fn inner_pattern_linear_2d( }] }) .collect(); - execute_pattern_transform(transforms, sketch_set, exec_state, &args).await + execute_pattern_transform( + transforms, + sketch_set, + use_original.unwrap_or_default(), + exec_state, + &args, + ) + .await } /// A linear pattern on a 3D model. pub async fn pattern_linear_3d(exec_state: &mut ExecState, args: Args) -> Result { - let (data, solid_set): (LinearPattern3dData, SolidSet) = args.get_data_and_solid_set()?; + let (data, solid_set, use_original): (LinearPattern3dData, SolidSet, Option) = + super::args::FromArgs::from_args(&args, 0)?; if data.axis == [0.0, 0.0, 0.0] { return Err(KclError::Semantic(KclErrorDetails { @@ -742,7 +767,7 @@ pub async fn pattern_linear_3d(exec_state: &mut ExecState, args: Args) -> Result })); } - let solids = inner_pattern_linear_3d(data, solid_set, exec_state, args).await?; + let solids = inner_pattern_linear_3d(data, solid_set, use_original, exec_state, args).await?; Ok(solids.into()) } @@ -771,6 +796,7 @@ pub async fn pattern_linear_3d(exec_state: &mut ExecState, args: Args) -> Result async fn inner_pattern_linear_3d( data: LinearPattern3dData, solid_set: SolidSet, + use_original: Option, exec_state: &mut ExecState, args: Args, ) -> Result>, KclError> { @@ -788,7 +814,14 @@ async fn inner_pattern_linear_3d( }] }) .collect(); - execute_pattern_transform(transforms, solid_set, exec_state, &args).await + execute_pattern_transform( + transforms, + solid_set, + use_original.unwrap_or_default(), + exec_state, + &args, + ) + .await } /// Data for a circular pattern on a 2D sketch. @@ -807,6 +840,10 @@ pub struct CircularPattern2dData { pub arc_degrees: f64, /// Whether or not to rotate the duplicates as they are copied. pub rotate_duplicates: bool, + /// If the target being patterned is itself a pattern, then, should you use the original solid, + /// or the pattern? + #[serde(default)] + pub use_original: Option, } /// Data for a circular pattern on a 3D model. @@ -827,6 +864,10 @@ pub struct CircularPattern3dData { pub arc_degrees: f64, /// Whether or not to rotate the duplicates as they are copied. pub rotate_duplicates: bool, + /// If the target being patterned is itself a pattern, then, should you use the original solid, + /// or the pattern? + #[serde(default)] + pub use_original: Option, } pub enum CircularPattern { @@ -889,6 +930,13 @@ impl CircularPattern { CircularPattern::ThreeD(lp) => lp.rotate_duplicates, } } + + pub fn use_original(&self) -> bool { + match self { + CircularPattern::TwoD(lp) => lp.use_original.unwrap_or_default(), + CircularPattern::ThreeD(lp) => lp.use_original.unwrap_or_default(), + } + } } /// A circular pattern on a 2D sketch. @@ -1055,7 +1103,11 @@ async fn pattern_circular( id, ModelingCmd::from(mcmd::EntityCircularPattern { axis: kcmc::shared::Point3d::from(data.axis()), - entity_id: geometry.id(), + entity_id: if data.use_original() { + geometry.original_id() + } else { + geometry.id() + }, center: kcmc::shared::Point3d { x: LengthUnit(center[0]), y: LengthUnit(center[1]), diff --git a/src/wasm-lib/kcl/src/std/sketch.rs b/src/wasm-lib/kcl/src/std/sketch.rs index 87368d281..da9ff1530 100644 --- a/src/wasm-lib/kcl/src/std/sketch.rs +++ b/src/wasm-lib/kcl/src/std/sketch.rs @@ -1360,6 +1360,7 @@ pub(crate) async fn inner_start_profile_at( let sketch = Sketch { id: path_id, + original_id: path_id, artifact_id: path_id.into(), on: sketch_surface.clone(), paths: vec![], diff --git a/src/wasm-lib/kcl/tests/angled_line/program_memory.snap b/src/wasm-lib/kcl/tests/angled_line/program_memory.snap index a9c24da66..dd87ad766 100644 --- a/src/wasm-lib/kcl/tests/angled_line/program_memory.snap +++ b/src/wasm-lib/kcl/tests/angled_line/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing angled_line.kcl +snapshot_kind: text --- { "environments": [ @@ -346,6 +347,7 @@ description: Program memory after executing angled_line.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/artifact_graph_example_code1/program_memory.snap b/src/wasm-lib/kcl/tests/artifact_graph_example_code1/program_memory.snap index 08a99d2ff..6866cdf70 100644 --- a/src/wasm-lib/kcl/tests/artifact_graph_example_code1/program_memory.snap +++ b/src/wasm-lib/kcl/tests/artifact_graph_example_code1/program_memory.snap @@ -374,6 +374,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -904,6 +905,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -975,6 +977,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1412,6 +1415,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1878,6 +1882,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1949,6 +1954,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/artifact_graph_example_code_no_3d/program_memory.snap b/src/wasm-lib/kcl/tests/artifact_graph_example_code_no_3d/program_memory.snap index c8eeb0260..42c8b8ab8 100644 --- a/src/wasm-lib/kcl/tests/artifact_graph_example_code_no_3d/program_memory.snap +++ b/src/wasm-lib/kcl/tests/artifact_graph_example_code_no_3d/program_memory.snap @@ -468,6 +468,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -609,6 +610,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/artifact_graph_example_code_offset_planes/program_memory.snap b/src/wasm-lib/kcl/tests/artifact_graph_example_code_offset_planes/program_memory.snap index 3dc19d8e8..829cee710 100644 --- a/src/wasm-lib/kcl/tests/artifact_graph_example_code_offset_planes/program_memory.snap +++ b/src/wasm-lib/kcl/tests/artifact_graph_example_code_offset_planes/program_memory.snap @@ -200,6 +200,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/artifact_graph_sketch_on_face_etc/program_memory.snap b/src/wasm-lib/kcl/tests/artifact_graph_sketch_on_face_etc/program_memory.snap index 6b3616b86..2ab737480 100644 --- a/src/wasm-lib/kcl/tests/artifact_graph_sketch_on_face_etc/program_memory.snap +++ b/src/wasm-lib/kcl/tests/artifact_graph_sketch_on_face_etc/program_memory.snap @@ -274,6 +274,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -695,6 +696,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -757,6 +759,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1332,6 +1335,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1394,6 +1398,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1517,6 +1522,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2236,6 +2242,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2298,6 +2305,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2421,6 +2429,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2483,6 +2492,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2836,6 +2846,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3202,6 +3213,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3264,6 +3276,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3779,6 +3792,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3841,6 +3855,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3964,6 +3979,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4628,6 +4644,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4690,6 +4707,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4813,6 +4831,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4875,6 +4894,7 @@ snapshot_kind: text } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_close_opposite/program_memory.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_close_opposite/program_memory.snap index d58a5870d..c2e28eab5 100644 --- a/src/wasm-lib/kcl/tests/basic_fillet_cube_close_opposite/program_memory.snap +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_close_opposite/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing basic_fillet_cube_close_opposite.kcl +snapshot_kind: text --- { "environments": [ @@ -422,6 +423,7 @@ description: Program memory after executing basic_fillet_cube_close_opposite.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_end/program_memory.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_end/program_memory.snap index acb9cdb97..b649ea4cc 100644 --- a/src/wasm-lib/kcl/tests/basic_fillet_cube_end/program_memory.snap +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_end/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing basic_fillet_cube_end.kcl +snapshot_kind: text --- { "environments": [ @@ -353,6 +354,7 @@ description: Program memory after executing basic_fillet_cube_end.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/program_memory.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/program_memory.snap index f68be7a59..91f43884f 100644 --- a/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/program_memory.snap +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_next_adjacent/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing basic_fillet_cube_next_adjacent.kcl +snapshot_kind: text --- { "environments": [ @@ -491,6 +492,7 @@ description: Program memory after executing basic_fillet_cube_next_adjacent.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_previous_adjacent/program_memory.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_previous_adjacent/program_memory.snap index b9980aeaf..9565f7bb4 100644 --- a/src/wasm-lib/kcl/tests/basic_fillet_cube_previous_adjacent/program_memory.snap +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_previous_adjacent/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing basic_fillet_cube_previous_adjacent.kcl +snapshot_kind: text --- { "environments": [ @@ -491,6 +492,7 @@ description: Program memory after executing basic_fillet_cube_previous_adjacent. } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/basic_fillet_cube_start/program_memory.snap b/src/wasm-lib/kcl/tests/basic_fillet_cube_start/program_memory.snap index 55ca2a482..916aa6379 100644 --- a/src/wasm-lib/kcl/tests/basic_fillet_cube_start/program_memory.snap +++ b/src/wasm-lib/kcl/tests/basic_fillet_cube_start/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing basic_fillet_cube_start.kcl +snapshot_kind: text --- { "environments": [ @@ -353,6 +354,7 @@ description: Program memory after executing basic_fillet_cube_start.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_x/program_memory.snap b/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_x/program_memory.snap index 6a96f6c03..51b18a113 100644 --- a/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_x/program_memory.snap +++ b/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_x/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing big_number_angle_to_match_length_x.kcl +snapshot_kind: text --- { "environments": [ @@ -253,6 +254,7 @@ description: Program memory after executing big_number_angle_to_match_length_x.k } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_y/program_memory.snap b/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_y/program_memory.snap index 48bf293b1..dfac9c2eb 100644 --- a/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_y/program_memory.snap +++ b/src/wasm-lib/kcl/tests/big_number_angle_to_match_length_y/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing big_number_angle_to_match_length_y.kcl +snapshot_kind: text --- { "environments": [ @@ -253,6 +254,7 @@ description: Program memory after executing big_number_angle_to_match_length_y.k } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/circle_three_point/program_memory.snap b/src/wasm-lib/kcl/tests/circle_three_point/program_memory.snap index a604a2458..ea9139d14 100644 --- a/src/wasm-lib/kcl/tests/circle_three_point/program_memory.snap +++ b/src/wasm-lib/kcl/tests/circle_three_point/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing circle_three_point.kcl +snapshot_kind: text --- { "environments": [ @@ -126,6 +127,7 @@ description: Program memory after executing circle_three_point.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/circular_pattern3d_a_pattern/program_memory.snap b/src/wasm-lib/kcl/tests/circular_pattern3d_a_pattern/program_memory.snap index f02ee6dde..38e85449b 100644 --- a/src/wasm-lib/kcl/tests/circular_pattern3d_a_pattern/program_memory.snap +++ b/src/wasm-lib/kcl/tests/circular_pattern3d_a_pattern/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing circular_pattern3d_a_pattern.kcl +snapshot_kind: text --- { "environments": [ @@ -213,6 +214,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -431,6 +433,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -645,6 +648,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -859,6 +863,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1073,6 +1078,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1287,6 +1293,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1501,6 +1508,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1715,6 +1723,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1934,6 +1943,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2148,6 +2158,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2362,6 +2373,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2576,6 +2588,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2790,6 +2803,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3004,6 +3018,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3218,6 +3233,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3432,6 +3448,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3646,6 +3663,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3860,6 +3878,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4074,6 +4093,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4288,6 +4308,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4502,6 +4523,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4716,6 +4738,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4930,6 +4953,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -5144,6 +5168,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -5358,6 +5383,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -5572,6 +5598,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -5786,6 +5813,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -6000,6 +6028,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -6214,6 +6243,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -6428,6 +6458,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -6642,6 +6673,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -6856,6 +6888,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -7070,6 +7103,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -7284,6 +7318,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -7498,6 +7533,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -7712,6 +7748,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -7926,6 +7963,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -8140,6 +8178,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -8354,6 +8393,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -8568,6 +8608,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -8782,6 +8823,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -8996,6 +9038,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -9210,6 +9253,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -9424,6 +9468,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -9638,6 +9683,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -9852,6 +9898,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -10066,6 +10113,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -10280,6 +10328,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -10494,6 +10543,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -10708,6 +10758,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -10922,6 +10973,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -11136,6 +11188,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -11350,6 +11403,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -11564,6 +11618,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -11778,6 +11833,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -11992,6 +12048,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -12206,6 +12263,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -12420,6 +12478,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -12634,6 +12693,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -12848,6 +12908,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -13062,6 +13123,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -13276,6 +13338,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -13490,6 +13553,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -13704,6 +13768,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -13918,6 +13983,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -14132,6 +14198,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -14346,6 +14413,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -14560,6 +14628,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -14774,6 +14843,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -14988,6 +15058,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -15202,6 +15273,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -15416,6 +15488,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -15630,6 +15703,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -15844,6 +15918,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -16058,6 +16133,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -16272,6 +16348,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -16486,6 +16563,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -16700,6 +16778,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -16914,6 +16993,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -17128,6 +17208,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -17342,6 +17423,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -17556,6 +17638,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -17770,6 +17853,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -17984,6 +18068,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -18198,6 +18283,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -18412,6 +18498,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -18626,6 +18713,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -18840,6 +18928,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -19054,6 +19143,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -19268,6 +19358,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -19482,6 +19573,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -19696,6 +19788,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -19910,6 +20003,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -20124,6 +20218,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -20338,6 +20433,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -20552,6 +20648,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -20766,6 +20863,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -20980,6 +21078,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -21194,6 +21293,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -21408,6 +21508,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -21622,6 +21723,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -21836,6 +21938,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -22050,6 +22153,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -22264,6 +22368,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -22478,6 +22583,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -22692,6 +22798,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -22906,6 +23013,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -23120,6 +23228,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -23334,6 +23443,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -23548,6 +23658,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -23762,6 +23873,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -23976,6 +24088,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -24190,6 +24303,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -24404,6 +24518,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -24618,6 +24733,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -24832,6 +24948,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -25046,6 +25163,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -25260,6 +25378,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -25474,6 +25593,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -25688,6 +25808,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -25902,6 +26023,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -26116,6 +26238,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -26330,6 +26453,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -26544,6 +26668,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -26758,6 +26883,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -26972,6 +27098,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -27186,6 +27313,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -27400,6 +27528,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -27614,6 +27743,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -27828,6 +27958,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -28042,6 +28173,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -28256,6 +28388,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -28470,6 +28603,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -28684,6 +28818,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -28898,6 +29033,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -29112,6 +29248,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -29326,6 +29463,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -29540,6 +29678,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -29754,6 +29893,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -29968,6 +30108,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -30182,6 +30323,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -30396,6 +30538,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -30610,6 +30753,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -30824,6 +30968,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -31038,6 +31183,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -31252,6 +31398,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -31466,6 +31613,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -31680,6 +31828,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -31894,6 +32043,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -32108,6 +32258,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -32322,6 +32473,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -32536,6 +32688,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -32750,6 +32903,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -32964,6 +33118,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -33178,6 +33333,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -33392,6 +33548,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -33606,6 +33763,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -33820,6 +33978,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -34034,6 +34193,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -34248,6 +34408,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -34462,6 +34623,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -34676,6 +34838,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -34890,6 +35053,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -35104,6 +35268,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -35318,6 +35483,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -35532,6 +35698,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -35746,6 +35913,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -35960,6 +36128,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -36174,6 +36343,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -36388,6 +36558,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -36602,6 +36773,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -36816,6 +36988,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -37030,6 +37203,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -37244,6 +37418,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -37458,6 +37633,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -37672,6 +37848,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -37886,6 +38063,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -38100,6 +38278,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -38314,6 +38493,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -38528,6 +38708,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -38742,6 +38923,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -38956,6 +39138,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -39170,6 +39353,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -39384,6 +39568,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -39598,6 +39783,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -39812,6 +39998,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -40026,6 +40213,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -40240,6 +40428,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -40454,6 +40643,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -40668,6 +40858,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -40882,6 +41073,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -41096,6 +41288,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -41310,6 +41503,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -41524,6 +41718,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -41738,6 +41933,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -41952,6 +42148,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -42166,6 +42363,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -42380,6 +42578,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -42594,6 +42793,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -42808,6 +43008,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -43022,6 +43223,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -43236,6 +43438,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -43450,6 +43653,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -43664,6 +43868,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -43878,6 +44083,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -44092,6 +44298,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -44306,6 +44513,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -44520,6 +44728,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -44734,6 +44943,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -44948,6 +45158,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -45162,6 +45373,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -45376,6 +45588,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -45590,6 +45803,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -45804,6 +46018,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -46018,6 +46233,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -46232,6 +46448,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -46446,6 +46663,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -46660,6 +46878,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -46874,6 +47093,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -47088,6 +47308,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -47302,6 +47523,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -47516,6 +47738,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -47730,6 +47953,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -47944,6 +48168,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -48158,6 +48383,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -48372,6 +48598,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -48586,6 +48813,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -48800,6 +49028,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -49014,6 +49243,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -49228,6 +49458,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -49442,6 +49673,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -49656,6 +49888,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -49870,6 +50103,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -50084,6 +50318,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -50298,6 +50533,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -50512,6 +50748,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -50726,6 +50963,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -50940,6 +51178,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -51154,6 +51393,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -51368,6 +51608,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -51582,6 +51823,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -51796,6 +52038,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -52010,6 +52253,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -52224,6 +52468,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -52438,6 +52683,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -52652,6 +52898,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -52866,6 +53113,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -53080,6 +53328,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -53294,6 +53543,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -53508,6 +53758,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -53722,6 +53973,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -53936,6 +54188,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -54150,6 +54403,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -54364,6 +54618,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -54578,6 +54833,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -54792,6 +55048,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -55006,6 +55263,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -55220,6 +55478,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -55434,6 +55693,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -55648,6 +55908,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -55862,6 +56123,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -56076,6 +56338,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -56290,6 +56553,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -56504,6 +56768,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -56718,6 +56983,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -56932,6 +57198,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -57146,6 +57413,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -57360,6 +57628,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -57574,6 +57843,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -57788,6 +58058,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -58002,6 +58273,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -58216,6 +58488,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -58430,6 +58703,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -58644,6 +58918,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -58858,6 +59133,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -59072,6 +59348,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -59286,6 +59563,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -59500,6 +59778,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -59714,6 +59993,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -59928,6 +60208,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -60142,6 +60423,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -60356,6 +60638,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -60570,6 +60853,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -60784,6 +61068,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -60998,6 +61283,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -61212,6 +61498,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -61426,6 +61713,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -61640,6 +61928,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -61854,6 +62143,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -62068,6 +62358,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -62282,6 +62573,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -62496,6 +62788,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -62710,6 +63003,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -62924,6 +63218,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -63138,6 +63433,7 @@ description: Program memory after executing circular_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/cube/program_memory.snap b/src/wasm-lib/kcl/tests/cube/program_memory.snap index 51ba27aa2..dbd4efa6e 100644 --- a/src/wasm-lib/kcl/tests/cube/program_memory.snap +++ b/src/wasm-lib/kcl/tests/cube/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing cube.kcl +snapshot_kind: text --- { "environments": [ @@ -944,6 +945,7 @@ description: Program memory after executing cube.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/fillet-and-shell/program_memory.snap b/src/wasm-lib/kcl/tests/fillet-and-shell/program_memory.snap index 144481480..c84f47843 100644 --- a/src/wasm-lib/kcl/tests/fillet-and-shell/program_memory.snap +++ b/src/wasm-lib/kcl/tests/fillet-and-shell/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing fillet-and-shell.kcl +snapshot_kind: text --- { "environments": [ @@ -504,6 +505,7 @@ description: Program memory after executing fillet-and-shell.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1787,6 +1789,7 @@ description: Program memory after executing fillet-and-shell.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2389,6 +2392,7 @@ description: Program memory after executing fillet-and-shell.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2674,6 +2678,7 @@ description: Program memory after executing fillet-and-shell.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/function_sketch/program_memory.snap b/src/wasm-lib/kcl/tests/function_sketch/program_memory.snap index a529a23a2..f034544e1 100644 --- a/src/wasm-lib/kcl/tests/function_sketch/program_memory.snap +++ b/src/wasm-lib/kcl/tests/function_sketch/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing function_sketch.kcl +snapshot_kind: text --- { "environments": [ @@ -622,6 +623,7 @@ description: Program memory after executing function_sketch.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/function_sketch_with_position/program_memory.snap b/src/wasm-lib/kcl/tests/function_sketch_with_position/program_memory.snap index d039d541c..c178837fd 100644 --- a/src/wasm-lib/kcl/tests/function_sketch_with_position/program_memory.snap +++ b/src/wasm-lib/kcl/tests/function_sketch_with_position/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing function_sketch_with_position.kcl +snapshot_kind: text --- { "environments": [ @@ -608,6 +609,7 @@ description: Program memory after executing function_sketch_with_position.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/helix_ccw/program_memory.snap b/src/wasm-lib/kcl/tests/helix_ccw/program_memory.snap index 8a207eb9a..f4145dca7 100644 --- a/src/wasm-lib/kcl/tests/helix_ccw/program_memory.snap +++ b/src/wasm-lib/kcl/tests/helix_ccw/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing helix_ccw.kcl +snapshot_kind: text --- { "environments": [ @@ -126,6 +127,7 @@ description: Program memory after executing helix_ccw.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/i_shape/program_memory.snap b/src/wasm-lib/kcl/tests/i_shape/program_memory.snap index 4bf54b88c..d0c41e3a1 100644 --- a/src/wasm-lib/kcl/tests/i_shape/program_memory.snap +++ b/src/wasm-lib/kcl/tests/i_shape/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing i_shape.kcl +snapshot_kind: text --- { "environments": [ @@ -643,6 +644,7 @@ description: Program memory after executing i_shape.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1623,6 +1625,7 @@ description: Program memory after executing i_shape.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1923,6 +1926,7 @@ description: Program memory after executing i_shape.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/import_function_not_sketch/program_memory.snap b/src/wasm-lib/kcl/tests/import_function_not_sketch/program_memory.snap index 9a99380ce..4537d1c57 100644 --- a/src/wasm-lib/kcl/tests/import_function_not_sketch/program_memory.snap +++ b/src/wasm-lib/kcl/tests/import_function_not_sketch/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing import_function_not_sketch.kcl +snapshot_kind: text --- { "environments": [ @@ -471,6 +472,7 @@ description: Program memory after executing import_function_not_sketch.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -905,6 +907,7 @@ description: Program memory after executing import_function_not_sketch.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/import_whole/program_memory.snap b/src/wasm-lib/kcl/tests/import_whole/program_memory.snap index bd86bd7ab..5b2facea9 100644 --- a/src/wasm-lib/kcl/tests/import_whole/program_memory.snap +++ b/src/wasm-lib/kcl/tests/import_whole/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing import_whole.kcl +snapshot_kind: text --- { "environments": [ @@ -126,6 +127,7 @@ description: Program memory after executing import_whole.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Inches" }, diff --git a/src/wasm-lib/kcl/tests/kittycad_svg/program_memory.snap b/src/wasm-lib/kcl/tests/kittycad_svg/program_memory.snap index 41fa7b872..601d299d2 100644 --- a/src/wasm-lib/kcl/tests/kittycad_svg/program_memory.snap +++ b/src/wasm-lib/kcl/tests/kittycad_svg/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing kittycad_svg.kcl +snapshot_kind: text --- { "environments": [ @@ -8820,6 +8821,7 @@ description: Program memory after executing kittycad_svg.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/linear_pattern3d_a_pattern/program_memory.snap b/src/wasm-lib/kcl/tests/linear_pattern3d_a_pattern/program_memory.snap index c109d5d69..4b4548604 100644 --- a/src/wasm-lib/kcl/tests/linear_pattern3d_a_pattern/program_memory.snap +++ b/src/wasm-lib/kcl/tests/linear_pattern3d_a_pattern/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing linear_pattern3d_a_pattern.kcl +snapshot_kind: text --- { "environments": [ @@ -213,6 +214,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -431,6 +433,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -645,6 +648,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -859,6 +863,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1073,6 +1078,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1287,6 +1293,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1501,6 +1508,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1715,6 +1723,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1934,6 +1943,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2148,6 +2158,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2362,6 +2373,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2576,6 +2588,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2790,6 +2803,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3004,6 +3018,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3218,6 +3233,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3432,6 +3448,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3646,6 +3663,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3860,6 +3878,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4074,6 +4093,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4288,6 +4308,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4502,6 +4523,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4716,6 +4738,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4930,6 +4953,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -5144,6 +5168,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -5358,6 +5383,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -5572,6 +5598,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -5786,6 +5813,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -6000,6 +6028,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -6214,6 +6243,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -6428,6 +6458,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -6642,6 +6673,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -6856,6 +6888,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -7070,6 +7103,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -7284,6 +7318,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -7498,6 +7533,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -7712,6 +7748,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -7926,6 +7963,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -8140,6 +8178,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -8354,6 +8393,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -8568,6 +8608,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -8782,6 +8823,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -8996,6 +9038,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -9210,6 +9253,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -9424,6 +9468,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -9638,6 +9683,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -9852,6 +9898,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -10066,6 +10113,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -10280,6 +10328,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -10494,6 +10543,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -10708,6 +10758,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -10922,6 +10973,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -11136,6 +11188,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -11350,6 +11403,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -11564,6 +11618,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -11778,6 +11833,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -11992,6 +12048,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -12206,6 +12263,7 @@ description: Program memory after executing linear_pattern3d_a_pattern.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/mike_stress_test/program_memory.snap b/src/wasm-lib/kcl/tests/mike_stress_test/program_memory.snap index f45635096..523a1806a 100644 --- a/src/wasm-lib/kcl/tests/mike_stress_test/program_memory.snap +++ b/src/wasm-lib/kcl/tests/mike_stress_test/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing mike_stress_test.kcl +snapshot_kind: text --- { "environments": [ @@ -31120,6 +31121,7 @@ description: Program memory after executing mike_stress_test.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/neg_xz_plane/program_memory.snap b/src/wasm-lib/kcl/tests/neg_xz_plane/program_memory.snap index ddbd6f73b..c126aadf2 100644 --- a/src/wasm-lib/kcl/tests/neg_xz_plane/program_memory.snap +++ b/src/wasm-lib/kcl/tests/neg_xz_plane/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing neg_xz_plane.kcl +snapshot_kind: text --- { "environments": [ @@ -182,6 +183,7 @@ description: Program memory after executing neg_xz_plane.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/parametric/program_memory.snap b/src/wasm-lib/kcl/tests/parametric/program_memory.snap index ea6ed2a6e..a651ea536 100644 --- a/src/wasm-lib/kcl/tests/parametric/program_memory.snap +++ b/src/wasm-lib/kcl/tests/parametric/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing parametric.kcl +snapshot_kind: text --- { "environments": [ @@ -288,6 +289,7 @@ description: Program memory after executing parametric.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/parametric_with_tan_arc/program_memory.snap b/src/wasm-lib/kcl/tests/parametric_with_tan_arc/program_memory.snap index 6425c6b1a..d11b953e8 100644 --- a/src/wasm-lib/kcl/tests/parametric_with_tan_arc/program_memory.snap +++ b/src/wasm-lib/kcl/tests/parametric_with_tan_arc/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing parametric_with_tan_arc.kcl +snapshot_kind: text --- { "environments": [ @@ -360,6 +361,7 @@ description: Program memory after executing parametric_with_tan_arc.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap index a9342181a..065169e9c 100644 --- a/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap +++ b/src/wasm-lib/kcl/tests/pentagon_fillet_sugar/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing pentagon_fillet_sugar.kcl +snapshot_kind: text --- { "environments": [ @@ -713,6 +714,7 @@ description: Program memory after executing pentagon_fillet_sugar.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -842,6 +844,7 @@ description: Program memory after executing pentagon_fillet_sugar.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1297,6 +1300,7 @@ description: Program memory after executing pentagon_fillet_sugar.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1426,6 +1430,7 @@ description: Program memory after executing pentagon_fillet_sugar.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2318,6 +2323,7 @@ description: Program memory after executing pentagon_fillet_sugar.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2782,6 +2788,7 @@ description: Program memory after executing pentagon_fillet_sugar.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3275,6 +3282,7 @@ description: Program memory after executing pentagon_fillet_sugar.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3404,6 +3412,7 @@ description: Program memory after executing pentagon_fillet_sugar.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3913,6 +3922,7 @@ description: Program memory after executing pentagon_fillet_sugar.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4042,6 +4052,7 @@ description: Program memory after executing pentagon_fillet_sugar.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/pipe_as_arg/program_memory.snap b/src/wasm-lib/kcl/tests/pipe_as_arg/program_memory.snap index 33375cae4..ebf1a26ca 100644 --- a/src/wasm-lib/kcl/tests/pipe_as_arg/program_memory.snap +++ b/src/wasm-lib/kcl/tests/pipe_as_arg/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing pipe_as_arg.kcl +snapshot_kind: text --- { "environments": [ @@ -1765,6 +1766,7 @@ description: Program memory after executing pipe_as_arg.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/poop_chute/program_memory.snap b/src/wasm-lib/kcl/tests/poop_chute/program_memory.snap index 3cdf5c833..2b99727b4 100644 --- a/src/wasm-lib/kcl/tests/poop_chute/program_memory.snap +++ b/src/wasm-lib/kcl/tests/poop_chute/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing poop_chute.kcl +snapshot_kind: text --- { "environments": [ @@ -680,6 +681,7 @@ description: Program memory after executing poop_chute.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1213,6 +1215,7 @@ description: Program memory after executing poop_chute.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1764,6 +1767,7 @@ description: Program memory after executing poop_chute.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/riddle_small/program_memory.snap b/src/wasm-lib/kcl/tests/riddle_small/program_memory.snap index 9200fe835..eeb9efcdb 100644 --- a/src/wasm-lib/kcl/tests/riddle_small/program_memory.snap +++ b/src/wasm-lib/kcl/tests/riddle_small/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing riddle_small.kcl +snapshot_kind: text --- { "environments": [ @@ -322,6 +323,7 @@ description: Program memory after executing riddle_small.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times-different-order/program_memory.snap b/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times-different-order/program_memory.snap index 59f1e3bc9..322697ee0 100644 --- a/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times-different-order/program_memory.snap +++ b/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times-different-order/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing sketch-on-chamfer-two-times-different-order.kcl +snapshot_kind: text --- { "environments": [ @@ -544,6 +545,7 @@ description: Program memory after executing sketch-on-chamfer-two-times-differen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1330,6 +1332,7 @@ description: Program memory after executing sketch-on-chamfer-two-times-differen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1604,6 +1607,7 @@ description: Program memory after executing sketch-on-chamfer-two-times-differen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2622,6 +2626,7 @@ description: Program memory after executing sketch-on-chamfer-two-times-differen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3294,6 +3299,7 @@ description: Program memory after executing sketch-on-chamfer-two-times-differen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3568,6 +3574,7 @@ description: Program memory after executing sketch-on-chamfer-two-times-differen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4240,6 +4247,7 @@ description: Program memory after executing sketch-on-chamfer-two-times-differen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4469,6 +4477,7 @@ description: Program memory after executing sketch-on-chamfer-two-times-differen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times/program_memory.snap b/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times/program_memory.snap index 5de66051b..3be1ab4f5 100644 --- a/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times/program_memory.snap +++ b/src/wasm-lib/kcl/tests/sketch-on-chamfer-two-times/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing sketch-on-chamfer-two-times.kcl +snapshot_kind: text --- { "environments": [ @@ -544,6 +545,7 @@ description: Program memory after executing sketch-on-chamfer-two-times.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1330,6 +1332,7 @@ description: Program memory after executing sketch-on-chamfer-two-times.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1604,6 +1607,7 @@ description: Program memory after executing sketch-on-chamfer-two-times.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -2622,6 +2626,7 @@ description: Program memory after executing sketch-on-chamfer-two-times.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3294,6 +3299,7 @@ description: Program memory after executing sketch-on-chamfer-two-times.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -3568,6 +3574,7 @@ description: Program memory after executing sketch-on-chamfer-two-times.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4240,6 +4247,7 @@ description: Program memory after executing sketch-on-chamfer-two-times.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -4469,6 +4477,7 @@ description: Program memory after executing sketch-on-chamfer-two-times.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/sketch_in_object/program_memory.snap b/src/wasm-lib/kcl/tests/sketch_in_object/program_memory.snap index 520bcb444..e986a4198 100644 --- a/src/wasm-lib/kcl/tests/sketch_in_object/program_memory.snap +++ b/src/wasm-lib/kcl/tests/sketch_in_object/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing sketch_in_object.kcl +snapshot_kind: text --- { "environments": [ @@ -1173,6 +1174,7 @@ description: Program memory after executing sketch_in_object.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1330,6 +1332,7 @@ description: Program memory after executing sketch_in_object.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/sketch_on_face/program_memory.snap b/src/wasm-lib/kcl/tests/sketch_on_face/program_memory.snap index 873ee9531..bdeb2380c 100644 --- a/src/wasm-lib/kcl/tests/sketch_on_face/program_memory.snap +++ b/src/wasm-lib/kcl/tests/sketch_on_face/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing sketch_on_face.kcl +snapshot_kind: text --- { "environments": [ @@ -344,6 +345,7 @@ description: Program memory after executing sketch_on_face.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -787,6 +789,7 @@ description: Program memory after executing sketch_on_face.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -849,6 +852,7 @@ description: Program memory after executing sketch_on_face.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_after_fillets_referencing_face/program_memory.snap b/src/wasm-lib/kcl/tests/sketch_on_face_after_fillets_referencing_face/program_memory.snap index 9b1546d96..d8c42abf6 100644 --- a/src/wasm-lib/kcl/tests/sketch_on_face_after_fillets_referencing_face/program_memory.snap +++ b/src/wasm-lib/kcl/tests/sketch_on_face_after_fillets_referencing_face/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing sketch_on_face_after_fillets_referencing_face.kcl +snapshot_kind: text --- { "environments": [ @@ -537,6 +538,7 @@ description: Program memory after executing sketch_on_face_after_fillets_referen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1448,6 +1450,7 @@ description: Program memory after executing sketch_on_face_after_fillets_referen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1526,6 +1529,7 @@ description: Program memory after executing sketch_on_face_after_fillets_referen } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/program_memory.snap b/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/program_memory.snap index 1632d276f..b80e225a1 100644 --- a/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/program_memory.snap +++ b/src/wasm-lib/kcl/tests/sketch_on_face_circle_tagged/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing sketch_on_face_circle_tagged.kcl +snapshot_kind: text --- { "environments": [ @@ -607,6 +608,7 @@ description: Program memory after executing sketch_on_face_circle_tagged.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -902,6 +904,7 @@ description: Program memory after executing sketch_on_face_circle_tagged.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1031,6 +1034,7 @@ description: Program memory after executing sketch_on_face_circle_tagged.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_end/program_memory.snap b/src/wasm-lib/kcl/tests/sketch_on_face_end/program_memory.snap index d476066a0..914475e8e 100644 --- a/src/wasm-lib/kcl/tests/sketch_on_face_end/program_memory.snap +++ b/src/wasm-lib/kcl/tests/sketch_on_face_end/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing sketch_on_face_end.kcl +snapshot_kind: text --- { "environments": [ @@ -541,6 +542,7 @@ description: Program memory after executing sketch_on_face_end.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -913,6 +915,7 @@ description: Program memory after executing sketch_on_face_end.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -975,6 +978,7 @@ description: Program memory after executing sketch_on_face_end.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_end_negative_extrude/program_memory.snap b/src/wasm-lib/kcl/tests/sketch_on_face_end_negative_extrude/program_memory.snap index af1367565..a0ab1b806 100644 --- a/src/wasm-lib/kcl/tests/sketch_on_face_end_negative_extrude/program_memory.snap +++ b/src/wasm-lib/kcl/tests/sketch_on_face_end_negative_extrude/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing sketch_on_face_end_negative_extrude.kcl +snapshot_kind: text --- { "environments": [ @@ -541,6 +542,7 @@ description: Program memory after executing sketch_on_face_end_negative_extrude. } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -913,6 +915,7 @@ description: Program memory after executing sketch_on_face_end_negative_extrude. } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -975,6 +978,7 @@ description: Program memory after executing sketch_on_face_end_negative_extrude. } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/sketch_on_face_start/program_memory.snap b/src/wasm-lib/kcl/tests/sketch_on_face_start/program_memory.snap index f18bc4216..c9155b3b0 100644 --- a/src/wasm-lib/kcl/tests/sketch_on_face_start/program_memory.snap +++ b/src/wasm-lib/kcl/tests/sketch_on_face_start/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing sketch_on_face_start.kcl +snapshot_kind: text --- { "environments": [ @@ -541,6 +542,7 @@ description: Program memory after executing sketch_on_face_start.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -758,6 +760,7 @@ description: Program memory after executing sketch_on_face_start.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1130,6 +1133,7 @@ description: Program memory after executing sketch_on_face_start.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, @@ -1192,6 +1196,7 @@ description: Program memory after executing sketch_on_face_start.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/tangential_arc/program_memory.snap b/src/wasm-lib/kcl/tests/tangential_arc/program_memory.snap index bef41e213..514a4d04b 100644 --- a/src/wasm-lib/kcl/tests/tangential_arc/program_memory.snap +++ b/src/wasm-lib/kcl/tests/tangential_arc/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing tangential_arc.kcl +snapshot_kind: text --- { "environments": [ @@ -187,6 +188,7 @@ description: Program memory after executing tangential_arc.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" }, diff --git a/src/wasm-lib/kcl/tests/xz_plane/program_memory.snap b/src/wasm-lib/kcl/tests/xz_plane/program_memory.snap index 9a197bc7b..45fedb2e6 100644 --- a/src/wasm-lib/kcl/tests/xz_plane/program_memory.snap +++ b/src/wasm-lib/kcl/tests/xz_plane/program_memory.snap @@ -1,6 +1,7 @@ --- source: kcl/src/simulation_tests.rs description: Program memory after executing xz_plane.kcl +snapshot_kind: text --- { "environments": [ @@ -182,6 +183,7 @@ description: Program memory after executing xz_plane.kcl } }, "artifactId": "[uuid]", + "originalId": "[uuid]", "units": { "type": "Mm" },