Tag enhancements (#3143)
* start Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * more Signed-off-by: Jess Frazelle <github@jessfraz.com> * enhancements Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * get plane data Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * cleanup Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * more Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fmt Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * add lint rule Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
		@ -9,7 +9,7 @@ Returns the angle to match the given length for x.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
angleToMatchLengthX(segment_name: TagIdentifier, to: number, sketch_group: SketchGroup) -> number
 | 
			
		||||
angleToMatchLengthX(tag: TagIdentifier, to: number, sketch_group: SketchGroup) -> number
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Examples
 | 
			
		||||
@ -28,9 +28,63 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
 | 
			
		||||
### Arguments
 | 
			
		||||
 | 
			
		||||
* `segment_name`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
* `tag`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ Returns the angle to match the given length for y.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
angleToMatchLengthY(segment_name: TagIdentifier, to: number, sketch_group: SketchGroup) -> number
 | 
			
		||||
angleToMatchLengthY(tag: TagIdentifier, to: number, sketch_group: SketchGroup) -> number
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Examples
 | 
			
		||||
@ -32,9 +32,63 @@ const extrusion = extrude(5, sketch001)
 | 
			
		||||
 | 
			
		||||
### Arguments
 | 
			
		||||
 | 
			
		||||
* `segment_name`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
* `tag`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -41,6 +41,60 @@ const example = extrude(10, exampleSketch)
 | 
			
		||||
	angle: number,
 | 
			
		||||
	// The tag of the line to intersect with.
 | 
			
		||||
	intersectTag: {
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The offset from the intersecting line.
 | 
			
		||||
 | 
			
		||||
@ -31,10 +31,10 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
  |> chamfer({
 | 
			
		||||
       length: chamferLength,
 | 
			
		||||
       tags: [
 | 
			
		||||
         getNextAdjacentEdge(edge1, %),
 | 
			
		||||
         getNextAdjacentEdge(edge2, %),
 | 
			
		||||
         getNextAdjacentEdge(edge3, %),
 | 
			
		||||
         getNextAdjacentEdge(edge4, %)
 | 
			
		||||
         getNextAdjacentEdge(edge1),
 | 
			
		||||
         getNextAdjacentEdge(edge2),
 | 
			
		||||
         getNextAdjacentEdge(edge3),
 | 
			
		||||
         getNextAdjacentEdge(edge4)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
```
 | 
			
		||||
@ -51,6 +51,60 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	// The tags of the paths you want to chamfer.
 | 
			
		||||
	tags: [uuid |
 | 
			
		||||
{
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
}],
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -31,10 +31,10 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: filletRadius,
 | 
			
		||||
       tags: [
 | 
			
		||||
         getNextAdjacentEdge(edge1, %),
 | 
			
		||||
         getNextAdjacentEdge(edge2, %),
 | 
			
		||||
         getNextAdjacentEdge(edge3, %),
 | 
			
		||||
         getNextAdjacentEdge(edge4, %)
 | 
			
		||||
         getNextAdjacentEdge(edge1),
 | 
			
		||||
         getNextAdjacentEdge(edge2),
 | 
			
		||||
         getNextAdjacentEdge(edge3),
 | 
			
		||||
         getNextAdjacentEdge(edge4)
 | 
			
		||||
       ]
 | 
			
		||||
     }, %)
 | 
			
		||||
```
 | 
			
		||||
@ -51,6 +51,60 @@ const mountingPlate = extrude(thickness, mountingPlateSketch)
 | 
			
		||||
	// The tags of the paths you want to fillet.
 | 
			
		||||
	tags: [uuid |
 | 
			
		||||
{
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
}],
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -9,7 +9,7 @@ Get the next adjacent edge to the edge given.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
getNextAdjacentEdge(tag: TagIdentifier, extrude_group: ExtrudeGroup) -> Uuid
 | 
			
		||||
getNextAdjacentEdge(tag: TagIdentifier) -> Uuid
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Examples
 | 
			
		||||
@ -27,7 +27,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
const example = extrude(5, exampleSketch)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: 3,
 | 
			
		||||
       tags: [getNextAdjacentEdge(referenceEdge, %)]
 | 
			
		||||
       tags: [getNextAdjacentEdge(referenceEdge)]
 | 
			
		||||
     }, %)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -38,115 +38,28 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
* `tag`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	value: string,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
* `extrude_group`: `ExtrudeGroup` - An extrude group is a collection of extrude surfaces. (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	// The id of the extrusion end cap
 | 
			
		||||
	endCapId: uuid,
 | 
			
		||||
	// Chamfers or fillets on this extrude group.
 | 
			
		||||
	filletOrChamfers: [{
 | 
			
		||||
	// The engine id of the edge to fillet.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this fillet.
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	radius: number,
 | 
			
		||||
	type: "fillet",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The engine id of the edge to chamfer.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this chamfer.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "chamfer",
 | 
			
		||||
}],
 | 
			
		||||
	// The height of the extrude group.
 | 
			
		||||
	height: number,
 | 
			
		||||
	// The id of the extrude group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The sketch group.
 | 
			
		||||
	sketchGroup: {
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: {
 | 
			
		||||
	// The id of the plane.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// Origin of the plane.
 | 
			
		||||
	origin: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	type: "plane",
 | 
			
		||||
	// Type for a plane.
 | 
			
		||||
	value: "XY" | "XZ" | "YZ" | "Custom",
 | 
			
		||||
	// What should the plane’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the plane’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The extrude group the face is on.
 | 
			
		||||
	extrudeGroup: {
 | 
			
		||||
	// The id of the extrusion end cap
 | 
			
		||||
	endCapId: uuid,
 | 
			
		||||
	// Chamfers or fillets on this extrude group.
 | 
			
		||||
	filletOrChamfers: [{
 | 
			
		||||
	// The engine id of the edge to fillet.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this fillet.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	radius: number,
 | 
			
		||||
	type: "fillet",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The engine id of the edge to chamfer.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this chamfer.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "chamfer",
 | 
			
		||||
}],
 | 
			
		||||
	// The height of the extrude group.
 | 
			
		||||
	height: number,
 | 
			
		||||
	// The id of the extrude group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The sketch group.
 | 
			
		||||
	sketchGroup: SketchGroup,
 | 
			
		||||
	// The id of the extrusion start cap
 | 
			
		||||
	startCapId: uuid,
 | 
			
		||||
	// The extrude surfaces.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
@ -177,180 +90,9 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the face.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	type: "face",
 | 
			
		||||
	// The tag of the face.
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
	// What should the face’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the face’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the extrusion start cap
 | 
			
		||||
	startCapId: uuid,
 | 
			
		||||
	// The extrude surfaces.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
}],
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ Get the opposite edge to the edge given.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
getOppositeEdge(tag: TagIdentifier, extrude_group: ExtrudeGroup) -> Uuid
 | 
			
		||||
getOppositeEdge(tag: TagIdentifier) -> Uuid
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Examples
 | 
			
		||||
@ -27,7 +27,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
const example = extrude(5, exampleSketch)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: 3,
 | 
			
		||||
       tags: [getOppositeEdge(referenceEdge, %)]
 | 
			
		||||
       tags: [getOppositeEdge(referenceEdge)]
 | 
			
		||||
     }, %)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -38,115 +38,28 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
* `tag`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	value: string,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
* `extrude_group`: `ExtrudeGroup` - An extrude group is a collection of extrude surfaces. (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	// The id of the extrusion end cap
 | 
			
		||||
	endCapId: uuid,
 | 
			
		||||
	// Chamfers or fillets on this extrude group.
 | 
			
		||||
	filletOrChamfers: [{
 | 
			
		||||
	// The engine id of the edge to fillet.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this fillet.
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	radius: number,
 | 
			
		||||
	type: "fillet",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The engine id of the edge to chamfer.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this chamfer.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "chamfer",
 | 
			
		||||
}],
 | 
			
		||||
	// The height of the extrude group.
 | 
			
		||||
	height: number,
 | 
			
		||||
	// The id of the extrude group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The sketch group.
 | 
			
		||||
	sketchGroup: {
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: {
 | 
			
		||||
	// The id of the plane.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// Origin of the plane.
 | 
			
		||||
	origin: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	type: "plane",
 | 
			
		||||
	// Type for a plane.
 | 
			
		||||
	value: "XY" | "XZ" | "YZ" | "Custom",
 | 
			
		||||
	// What should the plane’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the plane’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The extrude group the face is on.
 | 
			
		||||
	extrudeGroup: {
 | 
			
		||||
	// The id of the extrusion end cap
 | 
			
		||||
	endCapId: uuid,
 | 
			
		||||
	// Chamfers or fillets on this extrude group.
 | 
			
		||||
	filletOrChamfers: [{
 | 
			
		||||
	// The engine id of the edge to fillet.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this fillet.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	radius: number,
 | 
			
		||||
	type: "fillet",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The engine id of the edge to chamfer.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this chamfer.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "chamfer",
 | 
			
		||||
}],
 | 
			
		||||
	// The height of the extrude group.
 | 
			
		||||
	height: number,
 | 
			
		||||
	// The id of the extrude group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The sketch group.
 | 
			
		||||
	sketchGroup: SketchGroup,
 | 
			
		||||
	// The id of the extrusion start cap
 | 
			
		||||
	startCapId: uuid,
 | 
			
		||||
	// The extrude surfaces.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
@ -177,180 +90,9 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the face.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	type: "face",
 | 
			
		||||
	// The tag of the face.
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
	// What should the face’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the face’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the extrusion start cap
 | 
			
		||||
	startCapId: uuid,
 | 
			
		||||
	// The extrude surfaces.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
}],
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ Get the previous adjacent edge to the edge given.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
getPreviousAdjacentEdge(tag: TagIdentifier, extrude_group: ExtrudeGroup) -> Uuid
 | 
			
		||||
getPreviousAdjacentEdge(tag: TagIdentifier) -> Uuid
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Examples
 | 
			
		||||
@ -27,9 +27,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
const example = extrude(5, exampleSketch)
 | 
			
		||||
  |> fillet({
 | 
			
		||||
       radius: 3,
 | 
			
		||||
       tags: [
 | 
			
		||||
         getPreviousAdjacentEdge(referenceEdge, %)
 | 
			
		||||
       ]
 | 
			
		||||
       tags: [getPreviousAdjacentEdge(referenceEdge)]
 | 
			
		||||
     }, %)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -40,115 +38,28 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
* `tag`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	value: string,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
* `extrude_group`: `ExtrudeGroup` - An extrude group is a collection of extrude surfaces. (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	// The id of the extrusion end cap
 | 
			
		||||
	endCapId: uuid,
 | 
			
		||||
	// Chamfers or fillets on this extrude group.
 | 
			
		||||
	filletOrChamfers: [{
 | 
			
		||||
	// The engine id of the edge to fillet.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this fillet.
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	radius: number,
 | 
			
		||||
	type: "fillet",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The engine id of the edge to chamfer.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this chamfer.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "chamfer",
 | 
			
		||||
}],
 | 
			
		||||
	// The height of the extrude group.
 | 
			
		||||
	height: number,
 | 
			
		||||
	// The id of the extrude group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The sketch group.
 | 
			
		||||
	sketchGroup: {
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: {
 | 
			
		||||
	// The id of the plane.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// Origin of the plane.
 | 
			
		||||
	origin: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	type: "plane",
 | 
			
		||||
	// Type for a plane.
 | 
			
		||||
	value: "XY" | "XZ" | "YZ" | "Custom",
 | 
			
		||||
	// What should the plane’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the plane’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The extrude group the face is on.
 | 
			
		||||
	extrudeGroup: {
 | 
			
		||||
	// The id of the extrusion end cap
 | 
			
		||||
	endCapId: uuid,
 | 
			
		||||
	// Chamfers or fillets on this extrude group.
 | 
			
		||||
	filletOrChamfers: [{
 | 
			
		||||
	// The engine id of the edge to fillet.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this fillet.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	radius: number,
 | 
			
		||||
	type: "fillet",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The engine id of the edge to chamfer.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this chamfer.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "chamfer",
 | 
			
		||||
}],
 | 
			
		||||
	// The height of the extrude group.
 | 
			
		||||
	height: number,
 | 
			
		||||
	// The id of the extrude group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The sketch group.
 | 
			
		||||
	sketchGroup: SketchGroup,
 | 
			
		||||
	// The id of the extrusion start cap
 | 
			
		||||
	startCapId: uuid,
 | 
			
		||||
	// The extrude surfaces.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
@ -179,180 +90,9 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the face.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	type: "face",
 | 
			
		||||
	// The tag of the face.
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
	// What should the face’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the face’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the extrusion start cap
 | 
			
		||||
	startCapId: uuid,
 | 
			
		||||
	// The extrude surfaces.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
}],
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,6 @@ layout: manual
 | 
			
		||||
* [`extrude`](kcl/extrude)
 | 
			
		||||
* [`fillet`](kcl/fillet)
 | 
			
		||||
* [`floor`](kcl/floor)
 | 
			
		||||
* [`getEdge`](kcl/getEdge)
 | 
			
		||||
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
 | 
			
		||||
* [`getOppositeEdge`](kcl/getOppositeEdge)
 | 
			
		||||
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@ const sketch001 = startSketchOn('XY')
 | 
			
		||||
  |> startProfileAt([5, 2], %)
 | 
			
		||||
  |> angledLine({ angle: 120, length: 50 }, %, $seg01)
 | 
			
		||||
  |> angledLine({
 | 
			
		||||
       angle: segAng(seg01, %) + 120,
 | 
			
		||||
       angle: segAng(seg01) + 120,
 | 
			
		||||
       length: 50
 | 
			
		||||
     }, %)
 | 
			
		||||
  |> lineTo(profileStart(%), %)
 | 
			
		||||
 | 
			
		||||
@ -107,7 +107,7 @@ const sketch001 = startSketchOn(box, "END")
 | 
			
		||||
  |> circle([10, 10], 4, %)
 | 
			
		||||
  |> revolve({
 | 
			
		||||
       angle: 90,
 | 
			
		||||
       axis: getOppositeEdge(revolveAxis, box)
 | 
			
		||||
       axis: getOppositeEdge(revolveAxis)
 | 
			
		||||
     }, %)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@ -157,6 +157,60 @@ const part001 = revolve({
 | 
			
		||||
} |
 | 
			
		||||
uuid |
 | 
			
		||||
{
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ Returns the angle of the segment.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
segAng(segment_name: TagIdentifier, sketch_group: SketchGroup) -> number
 | 
			
		||||
segAng(tag: TagIdentifier) -> number
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Examples
 | 
			
		||||
@ -20,9 +20,9 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
  |> line([10, 0], %)
 | 
			
		||||
  |> line([5, 10], %, $seg01)
 | 
			
		||||
  |> line([-10, 0], %)
 | 
			
		||||
  |> angledLine([segAng(seg01, %), 10], %)
 | 
			
		||||
  |> angledLine([segAng(seg01), 10], %)
 | 
			
		||||
  |> line([-10, 0], %)
 | 
			
		||||
  |> angledLine([segAng(seg01, %), -15], %)
 | 
			
		||||
  |> angledLine([segAng(seg01), -15], %)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
 | 
			
		||||
const example = extrude(4, exampleSketch)
 | 
			
		||||
@ -32,89 +32,15 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
 | 
			
		||||
### Arguments
 | 
			
		||||
 | 
			
		||||
* `segment_name`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
* `tag`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	value: string,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: {
 | 
			
		||||
	// The id of the plane.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// Origin of the plane.
 | 
			
		||||
	origin: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	type: "plane",
 | 
			
		||||
	// Type for a plane.
 | 
			
		||||
	value: "XY" | "XZ" | "YZ" | "Custom",
 | 
			
		||||
	// What should the plane’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the plane’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The extrude group the face is on.
 | 
			
		||||
	extrudeGroup: {
 | 
			
		||||
	// The id of the extrusion end cap
 | 
			
		||||
	endCapId: uuid,
 | 
			
		||||
	// Chamfers or fillets on this extrude group.
 | 
			
		||||
	filletOrChamfers: [{
 | 
			
		||||
	// The engine id of the edge to fillet.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this fillet.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	radius: number,
 | 
			
		||||
	type: "fillet",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The engine id of the edge to chamfer.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this chamfer.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "chamfer",
 | 
			
		||||
}],
 | 
			
		||||
	// The height of the extrude group.
 | 
			
		||||
	height: number,
 | 
			
		||||
	// The id of the extrude group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The sketch group.
 | 
			
		||||
	sketchGroup: {
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: SketchSurface,
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
@ -127,109 +53,10 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the extrusion start cap
 | 
			
		||||
	startCapId: uuid,
 | 
			
		||||
	// The extrude surfaces.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
@ -260,144 +87,9 @@ const example = extrude(4, exampleSketch)
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the face.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	type: "face",
 | 
			
		||||
	// The tag of the face.
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
	// What should the face’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the face’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ Returns the segment end of x.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
segEndX(segment_name: TagIdentifier, sketch_group: SketchGroup) -> number
 | 
			
		||||
segEndX(tag: TagIdentifier) -> number
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Examples
 | 
			
		||||
@ -19,7 +19,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
  |> startProfileAt([0, 0], %)
 | 
			
		||||
  |> line([20, 0], %, $thing)
 | 
			
		||||
  |> line([0, 5], %)
 | 
			
		||||
  |> line([segEndX(thing, %), 0], %)
 | 
			
		||||
  |> line([segEndX(thing), 0], %)
 | 
			
		||||
  |> line([-20, 10], %)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
 | 
			
		||||
@ -30,89 +30,15 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
 | 
			
		||||
### Arguments
 | 
			
		||||
 | 
			
		||||
* `segment_name`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
* `tag`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	value: string,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: {
 | 
			
		||||
	// The id of the plane.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// Origin of the plane.
 | 
			
		||||
	origin: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	type: "plane",
 | 
			
		||||
	// Type for a plane.
 | 
			
		||||
	value: "XY" | "XZ" | "YZ" | "Custom",
 | 
			
		||||
	// What should the plane’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the plane’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The extrude group the face is on.
 | 
			
		||||
	extrudeGroup: {
 | 
			
		||||
	// The id of the extrusion end cap
 | 
			
		||||
	endCapId: uuid,
 | 
			
		||||
	// Chamfers or fillets on this extrude group.
 | 
			
		||||
	filletOrChamfers: [{
 | 
			
		||||
	// The engine id of the edge to fillet.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this fillet.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	radius: number,
 | 
			
		||||
	type: "fillet",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The engine id of the edge to chamfer.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this chamfer.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "chamfer",
 | 
			
		||||
}],
 | 
			
		||||
	// The height of the extrude group.
 | 
			
		||||
	height: number,
 | 
			
		||||
	// The id of the extrude group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The sketch group.
 | 
			
		||||
	sketchGroup: {
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: SketchSurface,
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
@ -125,109 +51,10 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the extrusion start cap
 | 
			
		||||
	startCapId: uuid,
 | 
			
		||||
	// The extrude surfaces.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
@ -258,144 +85,9 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the face.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	type: "face",
 | 
			
		||||
	// The tag of the face.
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
	// What should the face’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the face’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ Returns the segment end of y.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
segEndY(segment_name: TagIdentifier, sketch_group: SketchGroup) -> number
 | 
			
		||||
segEndY(tag: TagIdentifier) -> number
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Examples
 | 
			
		||||
@ -20,7 +20,7 @@ const exampleSketch = startSketchOn('XZ')
 | 
			
		||||
  |> line([20, 0], %)
 | 
			
		||||
  |> line([0, 3], %, $thing)
 | 
			
		||||
  |> line([-10, 0], %)
 | 
			
		||||
  |> line([0, segEndY(thing, %)], %)
 | 
			
		||||
  |> line([0, segEndY(thing)], %)
 | 
			
		||||
  |> line([-10, 0], %)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
 | 
			
		||||
@ -31,89 +31,15 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
 | 
			
		||||
### Arguments
 | 
			
		||||
 | 
			
		||||
* `segment_name`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
* `tag`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	value: string,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: {
 | 
			
		||||
	// The id of the plane.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// Origin of the plane.
 | 
			
		||||
	origin: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	type: "plane",
 | 
			
		||||
	// Type for a plane.
 | 
			
		||||
	value: "XY" | "XZ" | "YZ" | "Custom",
 | 
			
		||||
	// What should the plane’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the plane’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The extrude group the face is on.
 | 
			
		||||
	extrudeGroup: {
 | 
			
		||||
	// The id of the extrusion end cap
 | 
			
		||||
	endCapId: uuid,
 | 
			
		||||
	// Chamfers or fillets on this extrude group.
 | 
			
		||||
	filletOrChamfers: [{
 | 
			
		||||
	// The engine id of the edge to fillet.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this fillet.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	radius: number,
 | 
			
		||||
	type: "fillet",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The engine id of the edge to chamfer.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this chamfer.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "chamfer",
 | 
			
		||||
}],
 | 
			
		||||
	// The height of the extrude group.
 | 
			
		||||
	height: number,
 | 
			
		||||
	// The id of the extrude group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The sketch group.
 | 
			
		||||
	sketchGroup: {
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: SketchSurface,
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
@ -126,109 +52,10 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the extrusion start cap
 | 
			
		||||
	startCapId: uuid,
 | 
			
		||||
	// The extrude surfaces.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
@ -259,144 +86,9 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the face.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	type: "face",
 | 
			
		||||
	// The tag of the face.
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
	// What should the face’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the face’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -9,7 +9,7 @@ Returns the length of the segment.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
segLen(segment_name: TagIdentifier, sketch_group: SketchGroup) -> number
 | 
			
		||||
segLen(tag: TagIdentifier) -> number
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Examples
 | 
			
		||||
@ -19,7 +19,7 @@ const exampleSketch = startSketchOn("XZ")
 | 
			
		||||
  |> startProfileAt([0, 0], %)
 | 
			
		||||
  |> angledLine({ angle: 60, length: 10 }, %, $thing)
 | 
			
		||||
  |> tangentialArc({ offset: -120, radius: 5 }, %)
 | 
			
		||||
  |> angledLine({ angle: -60, length: segLen(thing, %) }, %)
 | 
			
		||||
  |> angledLine({ angle: -60, length: segLen(thing) }, %)
 | 
			
		||||
  |> close(%)
 | 
			
		||||
 | 
			
		||||
const example = extrude(5, exampleSketch)
 | 
			
		||||
@ -29,89 +29,15 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
 | 
			
		||||
### Arguments
 | 
			
		||||
 | 
			
		||||
* `segment_name`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
* `tag`: `TagIdentifier` (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	value: string,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
* `sketch_group`: `SketchGroup` - A sketch group is a collection of paths. (REQUIRED)
 | 
			
		||||
```js
 | 
			
		||||
{
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: {
 | 
			
		||||
	// The id of the plane.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// Origin of the plane.
 | 
			
		||||
	origin: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	type: "plane",
 | 
			
		||||
	// Type for a plane.
 | 
			
		||||
	value: "XY" | "XZ" | "YZ" | "Custom",
 | 
			
		||||
	// What should the plane’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the plane’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The extrude group the face is on.
 | 
			
		||||
	extrudeGroup: {
 | 
			
		||||
	// The id of the extrusion end cap
 | 
			
		||||
	endCapId: uuid,
 | 
			
		||||
	// Chamfers or fillets on this extrude group.
 | 
			
		||||
	filletOrChamfers: [{
 | 
			
		||||
	// The engine id of the edge to fillet.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this fillet.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	radius: number,
 | 
			
		||||
	type: "fillet",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The engine id of the edge to chamfer.
 | 
			
		||||
	edge_id: uuid,
 | 
			
		||||
	// The id of the engine command that called this chamfer.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	length: number,
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "chamfer",
 | 
			
		||||
}],
 | 
			
		||||
	// The height of the extrude group.
 | 
			
		||||
	height: number,
 | 
			
		||||
	// The id of the extrude group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The sketch group.
 | 
			
		||||
	sketchGroup: {
 | 
			
		||||
	// The id of the sketch group.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// What the sketch is on (can be a plane or a face).
 | 
			
		||||
	on: SketchSurface,
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
@ -124,109 +50,10 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the extrusion start cap
 | 
			
		||||
	startCapId: uuid,
 | 
			
		||||
	// The extrude surfaces.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
@ -257,144 +84,9 @@ const example = extrude(5, exampleSketch)
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
}],
 | 
			
		||||
},
 | 
			
		||||
	// The id of the face.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	type: "face",
 | 
			
		||||
	// The tag of the face.
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
	// What should the face’s X axis be?
 | 
			
		||||
	xAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// What should the face’s Y axis be?
 | 
			
		||||
	yAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
	// The z-axis (normal).
 | 
			
		||||
	zAxis: {
 | 
			
		||||
	x: number,
 | 
			
		||||
	y: number,
 | 
			
		||||
	z: number,
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	// The starting path.
 | 
			
		||||
	start: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// Tag identifiers that have been declared in this sketch group.
 | 
			
		||||
	tags: {
 | 
			
		||||
},
 | 
			
		||||
	// The paths in the sketch group.
 | 
			
		||||
	value: [{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "ToPoint",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// arc's direction
 | 
			
		||||
	ccw: string,
 | 
			
		||||
	// the arc's center
 | 
			
		||||
	center: [number, number],
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArcTo",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "TangentialArc",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Horizontal",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "AngledLineTo",
 | 
			
		||||
	// The x coordinate.
 | 
			
		||||
	x: number,
 | 
			
		||||
	// The y coordinate.
 | 
			
		||||
	y: number,
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
	type: "Base",
 | 
			
		||||
}],
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -37,6 +37,60 @@ shell({ faces: ['end'], thickness: 0.25 }, firstSketch)
 | 
			
		||||
	// The faces you want removed.
 | 
			
		||||
	faces: ["start" | "end" |
 | 
			
		||||
{
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
}],
 | 
			
		||||
	// The thickness of the shell.
 | 
			
		||||
 | 
			
		||||
@ -407,6 +407,60 @@ const a1 = startSketchOn({
 | 
			
		||||
```js
 | 
			
		||||
"start" | "end" |
 | 
			
		||||
{
 | 
			
		||||
	// Engine information for a tag.
 | 
			
		||||
	info: {
 | 
			
		||||
	// The id of the tagged object.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The path the tag is on.
 | 
			
		||||
	path: {
 | 
			
		||||
	// The from point.
 | 
			
		||||
	from: [number, number],
 | 
			
		||||
	// The tag of the path.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	// The to point.
 | 
			
		||||
	to: [number, number],
 | 
			
		||||
},
 | 
			
		||||
	// The sketch group the tag is on.
 | 
			
		||||
	sketchGroup: uuid,
 | 
			
		||||
	// The surface information for the tag.
 | 
			
		||||
	surface: {
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudePlane",
 | 
			
		||||
} |
 | 
			
		||||
{
 | 
			
		||||
	// The face id for the extrude plane.
 | 
			
		||||
	faceId: uuid,
 | 
			
		||||
	// The id of the geometry.
 | 
			
		||||
	id: uuid,
 | 
			
		||||
	// The source range.
 | 
			
		||||
	sourceRange: [number, number],
 | 
			
		||||
	// The tag.
 | 
			
		||||
	tag: {
 | 
			
		||||
	digest: [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number],
 | 
			
		||||
	end: number,
 | 
			
		||||
	start: number,
 | 
			
		||||
	value: string,
 | 
			
		||||
},
 | 
			
		||||
	type: "extrudeArc",
 | 
			
		||||
},
 | 
			
		||||
},
 | 
			
		||||
	value: string,
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										55358
									
								
								docs/kcl/std.json
									
									
									
									
									
								
							
							
						
						
									
										55358
									
								
								docs/kcl/std.json
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user