* fix autocomplete snippet bool Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * fix clippu Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
		
			
				
	
	
		
			943 lines
		
	
	
		
			85 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			943 lines
		
	
	
		
			85 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | ||
| title: "chamfer"
 | ||
| excerpt: "Cut a straight transitional edge along a tagged path."
 | ||
| layout: manual
 | ||
| ---
 | ||
| 
 | ||
| Cut a straight transitional edge along a tagged path.
 | ||
| 
 | ||
| Chamfer is similar in function and use to a fillet, except a fillet will blend the transition along an edge, rather than cut a sharp, straight transitional edge.
 | ||
| 
 | ||
| ```js
 | ||
| chamfer(data: ChamferData, extrude_group: ExtrudeGroup, tag?: TagDeclarator) -> ExtrudeGroup
 | ||
| ```
 | ||
| 
 | ||
| ### Examples
 | ||
| 
 | ||
| ```js
 | ||
| const width = 20
 | ||
| const length = 10
 | ||
| const thickness = 1
 | ||
| const chamferLength = 2
 | ||
| 
 | ||
| const mountingPlateSketch = startSketchOn("XY")
 | ||
|   |> startProfileAt([-width / 2, -length / 2], %)
 | ||
|   |> lineTo([width / 2, -length / 2], %, $edge1)
 | ||
|   |> lineTo([width / 2, length / 2], %, $edge2)
 | ||
|   |> lineTo([-width / 2, length / 2], %, $edge3)
 | ||
|   |> close(%, $edge4)
 | ||
| 
 | ||
| const mountingPlate = extrude(thickness, mountingPlateSketch)
 | ||
|   |> chamfer({
 | ||
|        length: chamferLength,
 | ||
|        tags: [
 | ||
|          getNextAdjacentEdge(edge1),
 | ||
|          getNextAdjacentEdge(edge2),
 | ||
|          getNextAdjacentEdge(edge3),
 | ||
|          getNextAdjacentEdge(edge4)
 | ||
|        ]
 | ||
|      }, %)
 | ||
| ```
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| ### Arguments
 | ||
| 
 | ||
| * `data`: `ChamferData` - Data for chamfers. (REQUIRED)
 | ||
| ```js
 | ||
| {
 | ||
| 	// The length of the chamfer.
 | ||
| 	length: number,
 | ||
| 	// 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",
 | ||
| } |
 | ||
| {
 | ||
| 	// The id for the chamfer surface.
 | ||
| 	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: "chamfer",
 | ||
| } |
 | ||
| {
 | ||
| 	// The id for the fillet surface.
 | ||
| 	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: "fillet",
 | ||
| },
 | ||
| },
 | ||
| 	value: string,
 | ||
| }],
 | ||
| }
 | ||
| ```
 | ||
| * `extrude_group`: `ExtrudeGroup` - An extrude group is a collection of extrude surfaces. (REQUIRED)
 | ||
| ```js
 | ||
| {
 | ||
| 	// Chamfers or fillets on this extrude group.
 | ||
| 	edgeCuts: [{
 | ||
| 	// The engine id of the edge to fillet.
 | ||
| 	edgeId: uuid,
 | ||
| 	// The id of the engine command that called this fillet.
 | ||
| 	id: uuid,
 | ||
| 	radius: 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: "fillet",
 | ||
| } |
 | ||
| {
 | ||
| 	// The engine id of the edge to chamfer.
 | ||
| 	edgeId: 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 id of the extrusion end cap
 | ||
| 	endCapId: uuid,
 | ||
| 	// 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 (this will change when the engine's reference to it changes.
 | ||
| 	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: {
 | ||
| 	// Chamfers or fillets on this extrude group.
 | ||
| 	edgeCuts: [{
 | ||
| 	// The engine id of the edge to fillet.
 | ||
| 	edgeId: uuid,
 | ||
| 	// The id of the engine command that called this fillet.
 | ||
| 	id: uuid,
 | ||
| 	radius: 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: "fillet",
 | ||
| } |
 | ||
| {
 | ||
| 	// The engine id of the edge to chamfer.
 | ||
| 	edgeId: 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 id of the extrusion end cap
 | ||
| 	endCapId: uuid,
 | ||
| 	// 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 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",
 | ||
| } |
 | ||
| {
 | ||
| 	// The id for the chamfer surface.
 | ||
| 	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: "chamfer",
 | ||
| } |
 | ||
| {
 | ||
| 	// The id for the fillet surface.
 | ||
| 	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: "fillet",
 | ||
| }],
 | ||
| },
 | ||
| 	// 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: bool,
 | ||
| 	// 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",
 | ||
| } |
 | ||
| {
 | ||
| 	// arc's direction
 | ||
| 	ccw: bool,
 | ||
| 	// 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: "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",
 | ||
| } |
 | ||
| {
 | ||
| 	// The id for the chamfer surface.
 | ||
| 	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: "chamfer",
 | ||
| } |
 | ||
| {
 | ||
| 	// The id for the fillet surface.
 | ||
| 	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: "fillet",
 | ||
| }],
 | ||
| }
 | ||
| ```
 | ||
| * `tag`: `TagDeclarator` (OPTIONAL)
 | ||
| ```js
 | ||
| {
 | ||
| 	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,
 | ||
| }
 | ||
| ```
 | ||
| 
 | ||
| ### Returns
 | ||
| 
 | ||
| `ExtrudeGroup` - An extrude group is a collection of extrude surfaces.
 | ||
| ```js
 | ||
| {
 | ||
| 	// Chamfers or fillets on this extrude group.
 | ||
| 	edgeCuts: [{
 | ||
| 	// The engine id of the edge to fillet.
 | ||
| 	edgeId: uuid,
 | ||
| 	// The id of the engine command that called this fillet.
 | ||
| 	id: uuid,
 | ||
| 	radius: 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: "fillet",
 | ||
| } |
 | ||
| {
 | ||
| 	// The engine id of the edge to chamfer.
 | ||
| 	edgeId: 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 id of the extrusion end cap
 | ||
| 	endCapId: uuid,
 | ||
| 	// 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 (this will change when the engine's reference to it changes.
 | ||
| 	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: {
 | ||
| 	// Chamfers or fillets on this extrude group.
 | ||
| 	edgeCuts: [{
 | ||
| 	// The engine id of the edge to fillet.
 | ||
| 	edgeId: uuid,
 | ||
| 	// The id of the engine command that called this fillet.
 | ||
| 	id: uuid,
 | ||
| 	radius: 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: "fillet",
 | ||
| } |
 | ||
| {
 | ||
| 	// The engine id of the edge to chamfer.
 | ||
| 	edgeId: 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 id of the extrusion end cap
 | ||
| 	endCapId: uuid,
 | ||
| 	// 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 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",
 | ||
| } |
 | ||
| {
 | ||
| 	// The id for the chamfer surface.
 | ||
| 	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: "chamfer",
 | ||
| } |
 | ||
| {
 | ||
| 	// The id for the fillet surface.
 | ||
| 	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: "fillet",
 | ||
| }],
 | ||
| },
 | ||
| 	// 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: bool,
 | ||
| 	// 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",
 | ||
| } |
 | ||
| {
 | ||
| 	// arc's direction
 | ||
| 	ccw: bool,
 | ||
| 	// 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: "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",
 | ||
| } |
 | ||
| {
 | ||
| 	// The id for the chamfer surface.
 | ||
| 	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: "chamfer",
 | ||
| } |
 | ||
| {
 | ||
| 	// The id for the fillet surface.
 | ||
| 	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: "fillet",
 | ||
| }],
 | ||
| }
 | ||
| ```
 | ||
| 
 | ||
| 
 | ||
| 
 |