diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gear-helical0.png b/content/kcl-test-outputs/serial_test_example_fn_std-gear-helical0.png index dcd476d0..bcca415c 100644 Binary files a/content/kcl-test-outputs/serial_test_example_fn_std-gear-helical0.png and b/content/kcl-test-outputs/serial_test_example_fn_std-gear-helical0.png differ diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-gear-helical1.png b/content/kcl-test-outputs/serial_test_example_fn_std-gear-helical1.png index 993d69ce..63c907d0 100644 Binary files a/content/kcl-test-outputs/serial_test_example_fn_std-gear-helical1.png and b/content/kcl-test-outputs/serial_test_example_fn_std-gear-helical1.png differ diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-helix4.png b/content/kcl-test-outputs/serial_test_example_fn_std-helix4.png index db759726..7622e16d 100644 Binary files a/content/kcl-test-outputs/serial_test_example_fn_std-helix4.png and b/content/kcl-test-outputs/serial_test_example_fn_std-helix4.png differ diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-sketch-loft4.png b/content/kcl-test-outputs/serial_test_example_fn_std-sketch-loft4.png index 7a032a4c..d20c60b9 100644 Binary files a/content/kcl-test-outputs/serial_test_example_fn_std-sketch-loft4.png and b/content/kcl-test-outputs/serial_test_example_fn_std-sketch-loft4.png differ diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-sketch-revolve16.png b/content/kcl-test-outputs/serial_test_example_fn_std-sketch-revolve16.png index 8992c0cb..c5cfddb9 100644 Binary files a/content/kcl-test-outputs/serial_test_example_fn_std-sketch-revolve16.png and b/content/kcl-test-outputs/serial_test_example_fn_std-sketch-revolve16.png differ diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-sketch-tangentialArc1.png b/content/kcl-test-outputs/serial_test_example_fn_std-sketch-tangentialArc1.png index 21c4a8be..4c869d20 100644 Binary files a/content/kcl-test-outputs/serial_test_example_fn_std-sketch-tangentialArc1.png and b/content/kcl-test-outputs/serial_test_example_fn_std-sketch-tangentialArc1.png differ diff --git a/content/kcl-test-outputs/serial_test_example_fn_std-transform-rotate0.png b/content/kcl-test-outputs/serial_test_example_fn_std-transform-rotate0.png index d29309cf..8efdafa1 100644 Binary files a/content/kcl-test-outputs/serial_test_example_fn_std-transform-rotate0.png and b/content/kcl-test-outputs/serial_test_example_fn_std-transform-rotate0.png differ diff --git a/content/pages/docs/kcl-std/functions/std-sketch-sweep.md b/content/pages/docs/kcl-std/functions/std-sketch-sweep.md index 4fe2c7fc..00f657bd 100644 --- a/content/pages/docs/kcl-std/functions/std-sketch-sweep.md +++ b/content/pages/docs/kcl-std/functions/std-sketch-sweep.md @@ -38,7 +38,7 @@ swept along the same path. |----------|------|-------------|----------| | `sketches` | [[`Sketch`](/docs/kcl-std/types/std-types-Sketch) or [`Face`](/docs/kcl-std/types/std-types-Face) or [`TaggedFace`](/docs/kcl-std/types/std-types-TaggedFace) or [`Segment`](/docs/kcl-std/types/std-types-Segment); 1+] | The sketch or set of sketches that should be swept in space. | Yes | | `path` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) or [`Helix`](/docs/kcl-std/types/std-types-Helix) or [[`Segment`](/docs/kcl-std/types/std-types-Segment); 1+] | The path to sweep the sketch along. | Yes | -| `sectional` | [`bool`](/docs/kcl-std/types/std-types-bool) | If true, the sweep will be broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components. | No | +| `sectional` | [`bool`](/docs/kcl-std/types/std-types-bool) | In KCL 2, if true, the sweep is broken up into sub-sweeps (extrusions, revolves, sweeps) based on the trajectory path components. Sectional sweeps are not supported in KCL 3, so this argument has no effect and produces a warning. | No | | `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | Defines the smallest distance below which two entities are considered coincident, intersecting, coplanar, or similar. For most use cases, it should not be changed from its default value of 10^-7 millimeters. | No | | `relativeTo` | [`string`](/docs/kcl-std/types/std-types-string) | **Deprecated.** **Removed in KCL 3.0.** Use 'translateProfileToPath' and 'orientProfilePerpendicular' instead. What is the sweep relative to? Can be either 'sketchPlane' or 'trajectoryCurve'. | No | | `translateProfileToPath` | [`bool`](/docs/kcl-std/types/std-types-bool) | If true, the profile being swept will be moved to the path being swept along, before the sweep starts. If false, the profile stays where it is, and the sweep starts from there. Defaults to false. On KCL 2.0 and earlier, explicitly setting this option, even to false, requires `version = 2`. | No | diff --git a/content/pages/docs/kcl-std/functions/std-solid-chamfer.md b/content/pages/docs/kcl-std/functions/std-solid-chamfer.md index be58cc61..54a2fa64 100644 --- a/content/pages/docs/kcl-std/functions/std-solid-chamfer.md +++ b/content/pages/docs/kcl-std/functions/std-solid-chamfer.md @@ -26,6 +26,15 @@ Chamfer is similar in function and use to a fillet, except a fillet will blend the transition along an edge, rather than cut a sharp, straight transitional edge. +### Face references + +In `edges`, `sideFaces` and `endFaces` contain face tags or face UUIDs, not raw sketch segments. +For a side face created by extruding `profile.line1`, use `profileRegion.tags.line1` or +`body.sketch.tags.line1`, where `profileRegion` is the extruded region and `body` is the resulting solid. +For extrusion caps, declare `tagStart = $startCap` or `tagEnd = $endCap`, then refer to +`startCap` or `endCap`. Use `$` only when declaring the tag. +See [Face API Edge References](/docs/kcl-lang/edge-references) for selection examples. + ### Arguments | Name | Type | Description | Required | @@ -33,12 +42,12 @@ a sharp, straight transitional edge. | `solid` | [`Solid`](/docs/kcl-std/types/std-types-Solid) | The solid whose edges should be chamfered | Yes | | `length` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | Chamfering cuts away two faces to create a third face. This is the length to chamfer away from each face. The larger this length to chamfer away, the larger the new face will be. | Yes | | `tags` | [[`Edge`](/docs/kcl-std/types/std-types-Edge); 1+] | The paths you want to chamfer (legacy API) | No | -| `edges` | [[`any`](/docs/kcl-std/types/std-types-any)] | Array of edge references; each element is an object with: - `sideFaces`: [Face \| Tag; 1+] - Adjacent faces that share the edge(s) to chamfer - `endFaces?`: [Face \| Tag] - Optional faces to disambiguate when multiple edges share the same two faces - `index?`: number(Count) - Optional index when multiple edges share the same faces (0-based) | No | +| `edges` | [[`any`](/docs/kcl-std/types/std-types-any)] | Preferred for KCL 3. Required unless legacy `tags` is provided. Do not provide both. Array of edge references; each element is an object with: - `sideFaces`: array of one or more face tags or face UUIDs. Adjacent faces that share the edge(s) to chamfer. - `endFaces?`: array of face tags or face UUIDs. Optional faces to disambiguate when multiple edges share the same two faces. - `index?`: number(Count). Optional index when multiple edges share the same faces (0-based). | No | | `secondLength` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | Chamfering cuts away two faces to create a third face. If this argument isn't given, the lengths chamfered away from both the first and second face are both given by `length`. If this argument _is_ given, it determines how much is cut away from the second face. Incompatible with `angle`. | No | | `angle` | [`number(Angle)`](/docs/kcl-std/types/std-types-number) | Chamfering cuts away two faces to create a third face. This argument determines the angle between the two cut edges. Requires `length`, incompatible with `secondLength`. The valid range is 0deg < angle < 90deg. | No | | `tag` | [`TagDecl`](/docs/kcl-std/types/std-types-TagDecl) | Create a new tag which refers to this chamfer | No | | `legacyMethod` | [`bool`](/docs/kcl-std/types/std-types-bool) | **Deprecated as of KCL 2.0.** **Removed in KCL 3.0.** You probably shouldn't set this or care about this, it's for opting back into an older version of an engine algorithm. If true, revert to older engine SSI algorithm. Defaults to false. | No | -| `version` | [`number(_)`](/docs/kcl-std/types/std-types-number) | **Removed in KCL 3.0.** **Experimental.** What version of the fillet algorithm to use. 0 means "let the Zoo engine choose whichever version is best", 1 is the original Zoo fillet algorithm, 2 is the newer algorithm (supports rolling ball fillets). On KCL 2.0 and before, the default is 1. KCL 3.0 and later always use the newest algorithm. | No | +| `version` | [`number(_)`](/docs/kcl-std/types/std-types-number) | **Removed in KCL 3.0.** **Experimental.** What version of the fillet algorithm to use. 0 means "let the Zoo engine choose whichever version is best", 1 is the original Zoo fillet algorithm, 2 is the newer algorithm (supports rolling ball fillets). On KCL 2.0 and before, the default is 1. Use KCL 3.0 or later for the newest algorithm without setting `version`. | No | | `tangentChain` | [`bool`](/docs/kcl-std/types/std-types-bool) | **Added in KCL 3.0.** If true, also chamfer edges that are tangent to the selected edges. Defaults to true. | No | ### Returns diff --git a/content/pages/docs/kcl-std/functions/std-solid-fillet.md b/content/pages/docs/kcl-std/functions/std-solid-fillet.md index d448e89e..f172db2f 100644 --- a/content/pages/docs/kcl-std/functions/std-solid-fillet.md +++ b/content/pages/docs/kcl-std/functions/std-solid-fillet.md @@ -25,6 +25,15 @@ Fillet is similar in function and use to a chamfer, except a chamfer will cut a sharp transition along an edge while fillet will smoothly blend the transition. +### Face references + +In `edges`, `sideFaces` and `endFaces` contain face tags or face UUIDs, not raw sketch segments. +For a side face created by extruding `profile.line1`, use `profileRegion.tags.line1` or +`body.sketch.tags.line1`, where `profileRegion` is the extruded region and `body` is the resulting solid. +For extrusion caps, declare `tagStart = $startCap` or `tagEnd = $endCap`, then refer to +`startCap` or `endCap`. Use `$` only when declaring the tag. +See [Face API Edge References](/docs/kcl-lang/edge-references) for selection examples. + ### Arguments | Name | Type | Description | Required | @@ -32,11 +41,11 @@ will smoothly blend the transition. | `solid` | [`Solid`](/docs/kcl-std/types/std-types-Solid) | The solid whose edges should be filletted | Yes | | `radius` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | The radius of the fillet | Yes | | `tags` | [[`Edge`](/docs/kcl-std/types/std-types-Edge); 1+] | The paths you want to fillet (legacy API) | No | -| `edges` | [[`any`](/docs/kcl-std/types/std-types-any)] | Array of edge references; each element is an object with: - `sideFaces`: [Face \| Tag; 1+] - Adjacent faces that share the edge(s) to fillet - `endFaces?`: [Face \| Tag] - Optional faces to disambiguate when multiple edges share the same two faces - `index?`: number(Count) - Optional index when multiple edges share the same faces (0-based) | No | +| `edges` | [[`any`](/docs/kcl-std/types/std-types-any)] | Preferred for KCL 3. Required unless legacy `tags` is provided. Do not provide both. Array of edge references; each element is an object with: - `sideFaces`: array of one or more face tags or face UUIDs. Adjacent faces that share the edge(s) to fillet. - `endFaces?`: array of face tags or face UUIDs. Optional faces to disambiguate when multiple edges share the same two faces. - `index?`: number(Count). Optional index when multiple edges share the same faces (0-based). | No | | `tolerance` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | Defines the smallest distance below which two entities are considered coincident, intersecting, coplanar, or similar. For most use cases, it should not be changed from its default value of 10^-7 millimeters. | No | -| `tag` | [`TagDecl`](/docs/kcl-std/types/std-types-TagDecl) | Create a new tag which refers to this fillet | No | +| `tag` | [`TagDecl`](/docs/kcl-std/types/std-types-TagDecl) | Create a new tag which refers to this fillet. For multiple edges, omit `tag` or tag each edge in a separate call. | No | | `legacyMethod` | [`bool`](/docs/kcl-std/types/std-types-bool) | **Deprecated as of KCL 2.0.** **Removed in KCL 3.0.** You probably shouldn't set this or care about this, it's for opting back into an older version of an engine algorithm. If true, revert to older engine SSI algorithm. Defaults to false. | No | -| `version` | [`number(_)`](/docs/kcl-std/types/std-types-number) | **Removed in KCL 3.0.** **Experimental.** What version of the fillet algorithm to use. 0 means "let the Zoo engine choose whichever version is best", 1 is the original Zoo fillet algorithm, 2 is the newer algorithm (supports rolling ball fillets). On KCL 2.0 and before, the default is 1. KCL 3.0 and later always use the newest algorithm. | No | +| `version` | [`number(_)`](/docs/kcl-std/types/std-types-number) | **Removed in KCL 3.0.** **Experimental.** What version of the fillet algorithm to use. 0 means "let the Zoo engine choose whichever version is best", 1 is the original Zoo fillet algorithm, 2 is the newer algorithm (supports rolling ball fillets). On KCL 2.0 and before, the default is 1. Use KCL 3.0 or later for the newest algorithm without setting `version`. `edges` does not require `version = 2`. | No | | `tangentChain` | [`bool`](/docs/kcl-std/types/std-types-bool) | **Added in KCL 3.0.** If true, also fillet edges that are tangent to the selected edges. Defaults to true. | No | ### Returns