[ { "name": "abs", "summary": "Compute the absolute value of a number.", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const myAngle = -120\n\nconst sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([8, 0], %)\n |> angledLine({ angle: abs(myAngle), length: 5 }, %)\n |> line([-5, 0], %)\n |> angledLine({ angle: myAngle, length: 5 }, %)\n |> close(%)\n\nconst baseExtrusion = extrude(5, sketch001)" ] }, { "name": "acos", "summary": "Compute the arccosine of a number (in radians).", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle: toDegrees(acos(0.5)),\n length: 10\n }, %)\n |> line([5, 0], %)\n |> lineTo([12, 0], %)\n |> close(%)\n\nconst extrude001 = extrude(5, sketch001)" ] }, { "name": "angleToMatchLengthX", "summary": "Compute the angle (in degrees) in o", "description": "", "tags": [], "args": [ { "name": "tag", "type": "TagIdentifier", "schema": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } }, "required": true }, { "name": "to", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([2, 5], %, $seg01)\n |> angledLineToX([-angleToMatchLengthX(seg01, 7, %), 10], %)\n |> close(%)\n\nconst extrusion = extrude(5, sketch001)" ] }, { "name": "angleToMatchLengthY", "summary": "Returns the angle to match the given length for y.", "description": "", "tags": [], "args": [ { "name": "tag", "type": "TagIdentifier", "schema": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } }, "required": true }, { "name": "to", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([1, 2], %, $seg01)\n |> angledLine({\n angle: angleToMatchLengthY(seg01, 15, %),\n length: 5\n }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst extrusion = extrude(5, sketch001)" ] }, { "name": "angledLine", "summary": "Draw a line segment relative to the current origin using the polar", "description": "measure of some angle and distance.", "tags": [], "args": [ { "name": "data", "type": "AngledLineData", "schema": { "description": "Data to draw an angled line.", "anyOf": [ { "description": "An angle and length with explicitly named parameters", "type": "object", "required": [ "angle", "length" ], "properties": { "angle": { "description": "The angle of the line (in degrees).", "type": "number", "format": "double" }, "length": { "description": "The length of the line.", "type": "number", "format": "double" } } }, { "description": "An angle and length given as a pair", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } ] }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> yLineTo(15, %)\n |> angledLine({ angle: 30, length: 15 }, %)\n |> line([8, -10], %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "angledLineOfXLength", "summary": "Create a line segment from the current 2-dimensional sketch origin", "description": "along some angle (in degrees) for some relative length in the 'x' dimension.", "tags": [], "args": [ { "name": "data", "type": "AngledLineData", "schema": { "description": "Data to draw an angled line.", "anyOf": [ { "description": "An angle and length with explicitly named parameters", "type": "object", "required": [ "angle", "length" ], "properties": { "angle": { "description": "The angle of the line (in degrees).", "type": "number", "format": "double" }, "length": { "description": "The length of the line.", "type": "number", "format": "double" } } }, { "description": "An angle and length given as a pair", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } ] }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLineOfXLength({ angle: 45, length: 10 }, %, $edge1)\n |> angledLineOfXLength({ angle: -15, length: 20 }, %, $edge2)\n |> line([0, -5], %)\n |> close(%, $edge3)\n\nconst extrusion = extrude(10, sketch001)" ] }, { "name": "angledLineOfYLength", "summary": "Create a line segment from the current 2-dimensional sketch origin", "description": "along some angle (in degrees) for some relative length in the 'y' dimension.", "tags": [], "args": [ { "name": "data", "type": "AngledLineData", "schema": { "description": "Data to draw an angled line.", "anyOf": [ { "description": "An angle and length with explicitly named parameters", "type": "object", "required": [ "angle", "length" ], "properties": { "angle": { "description": "The angle of the line (in degrees).", "type": "number", "format": "double" }, "length": { "description": "The length of the line.", "type": "number", "format": "double" } } }, { "description": "An angle and length given as a pair", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } ] }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> angledLineOfYLength({ angle: 45, length: 10 }, %)\n |> line([0, 10], %)\n |> angledLineOfYLength({ angle: 135, length: 10 }, %)\n |> line([-10, 0], %)\n |> line([0, -30], %)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "angledLineThatIntersects", "summary": "Draw an angled line from the current origin, constructing a line segment", "description": "such that the newly created line intersects the desired target line segment.", "tags": [], "args": [ { "name": "data", "type": "AngledLineThatIntersectsData", "schema": { "description": "Data for drawing an angled line that intersects with a given line.", "type": "object", "required": [ "angle", "intersectTag" ], "properties": { "angle": { "description": "The angle of the line.", "type": "number", "format": "double" }, "intersectTag": { "description": "The tag of the line to intersect with.", "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } }, "offset": { "description": "The offset from the intersecting line.", "type": "number", "format": "double", "nullable": true } } }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> lineTo([5, 10], %)\n |> lineTo([-10, 10], %, $lineToIntersect)\n |> lineTo([0, 20], %)\n |> angledLineThatIntersects({\n angle: 80,\n intersectTag: lineToIntersect,\n offset: 10\n }, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "angledLineToX", "summary": "Create a line segment from the current 2-dimensional sketch origin", "description": "along some angle (in degrees) for some length, ending at the provided value in the 'x' dimension.", "tags": [], "args": [ { "name": "data", "type": "AngledLineToData", "schema": { "description": "Data to draw an angled line to a point.", "type": "object", "required": [ "angle", "to" ], "properties": { "angle": { "description": "The angle of the line.", "type": "number", "format": "double" }, "to": { "description": "The point to draw to.", "type": "number", "format": "double" } } }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLineToX({ angle: 30, to: 10 }, %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "angledLineToY", "summary": "Create a line segment from the current 2-dimensional sketch origin", "description": "along some angle (in degrees) for some length, ending at the provided value in the 'y' dimension.", "tags": [], "args": [ { "name": "data", "type": "AngledLineToData", "schema": { "description": "Data to draw an angled line to a point.", "type": "object", "required": [ "angle", "to" ], "properties": { "angle": { "description": "The angle of the line.", "type": "number", "format": "double" }, "to": { "description": "The point to draw to.", "type": "number", "format": "double" } } }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLineToY({ angle: 60, to: 20 }, %)\n |> line([-20, 0], %)\n |> angledLineToY({ angle: 70, to: 10 }, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "arc", "summary": "Starting at the current sketch's origin, draw a curved line segment along", "description": "an imaginary circle of the specified radius.\nThe arc is constructed such that the current position of the sketch is placed along an imaginary circle of the specified radius, at angleStart degrees. The resulting arc is the segment of the imaginary circle from that origin point to angleEnd, radius away from the center of the imaginary circle.\nUnless this makes a lot of sense and feels like what you're looking for to construct your shape, you're likely looking for tangentialArc.", "tags": [], "args": [ { "name": "data", "type": "ArcData", "schema": { "description": "Data to draw an arc.", "anyOf": [ { "description": "Angles and radius with an optional tag.", "type": "object", "required": [ "angleEnd", "angleStart", "radius" ], "properties": { "angleEnd": { "description": "The end angle.", "type": "number", "format": "double" }, "angleStart": { "description": "The start angle.", "type": "number", "format": "double" }, "radius": { "description": "The radius.", "type": "number", "format": "double" } } }, { "description": "Center, to and radius with an optional tag.", "type": "object", "required": [ "center", "radius", "to" ], "properties": { "center": { "description": "The center.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "radius": { "description": "The radius.", "type": "number", "format": "double" }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } } ] }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> arc({\n angleStart: 0,\n angleEnd: 280,\n radius: 16\n }, %)\n |> close(%)" ] }, { "name": "asin", "summary": "Compute the arcsine of a number (in radians).", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle: toDegrees(asin(0.5)),\n length: 20\n }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst extrude001 = extrude(5, sketch001)" ] }, { "name": "assert", "summary": "Check a value at runtime, and raise an error if the argument provided", "description": "is false.", "tags": [], "args": [ { "name": "data", "type": "bool", "schema": { "type": "boolean" }, "required": true }, { "name": "message", "type": "string", "schema": { "type": "string" }, "required": true } ], "returnValue": { "name": "", "type": "()", "schema": { "type": "null" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const myVar = true\nassert(myVar, \"should always be true\")" ] }, { "name": "assertEqual", "summary": "Check that a numerical value equals another at runtime,", "description": "otherwise raise an error.", "tags": [], "args": [ { "name": "left", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "right", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "epsilon", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "message", "type": "string", "schema": { "type": "string" }, "required": true } ], "returnValue": { "name": "", "type": "()", "schema": { "type": "null" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "let n = 1.0285\nlet o = 1.0286\nassertEqual(n, o, 0.01, \"n is within the given tolerance for o\")" ] }, { "name": "assertGreaterThan", "summary": "Check that a numerical value is greater than another at runtime,", "description": "otherwise raise an error.", "tags": [], "args": [ { "name": "left", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "right", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "message", "type": "string", "schema": { "type": "string" }, "required": true } ], "returnValue": { "name": "", "type": "()", "schema": { "type": "null" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "assertGreaterThan(2, 1, \"2 is greater than 1\")" ] }, { "name": "assertGreaterThanOrEq", "summary": "Check that a numerical value is greater than or equal to another at runtime,", "description": "otherwise raise an error.", "tags": [], "args": [ { "name": "left", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "right", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "message", "type": "string", "schema": { "type": "string" }, "required": true } ], "returnValue": { "name": "", "type": "()", "schema": { "type": "null" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "assertGreaterThanOrEq(2, 1, \"2 is greater than 1\")\nassertGreaterThanOrEq(1, 1, \"1 is equal to 1\")" ] }, { "name": "assertLessThan", "summary": "Check that a numerical value is less than to another at runtime,", "description": "otherwise raise an error.", "tags": [], "args": [ { "name": "left", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "right", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "message", "type": "string", "schema": { "type": "string" }, "required": true } ], "returnValue": { "name": "", "type": "()", "schema": { "type": "null" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "assertLessThan(1, 2, \"1 is less than 2\")" ] }, { "name": "assertLessThanOrEq", "summary": "Check that a numerical value is less than or equal to another at runtime,", "description": "otherwise raise an error.", "tags": [], "args": [ { "name": "left", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "right", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "message", "type": "string", "schema": { "type": "string" }, "required": true } ], "returnValue": { "name": "", "type": "()", "schema": { "type": "null" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "assertLessThanOrEq(1, 2, \"1 is less than 2\")\nassertLessThanOrEq(1, 1, \"1 is equal to 1\")" ] }, { "name": "atan", "summary": "Compute the arctangent of a number (in radians).", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle: toDegrees(atan(1.25)),\n length: 20\n }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst extrude001 = extrude(5, sketch001)" ] }, { "name": "bezierCurve", "summary": "Draw a smooth, continuous, curved line segment from the current origin to", "description": "the desired (x, y), using a number of control points to shape the curve's shape.", "tags": [], "args": [ { "name": "data", "type": "BezierData", "schema": { "description": "Data to draw a bezier curve.", "type": "object", "required": [ "control1", "control2", "to" ], "properties": { "control1": { "description": "The first control point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "control2": { "description": "The second control point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %)\n |> bezierCurve({\n to: [10, 10],\n control1: [5, 0],\n control2: [5, 10]\n }, %)\n |> lineTo([10, 0], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "ceil", "summary": "Compute the smallest integer greater than or equal to a number.", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> lineTo([12, 10], %)\n |> line([ceil(7.02986), 0], %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst extrude001 = extrude(5, sketch001)" ] }, { "name": "chamfer", "summary": "Cut a straight transitional edge along a tagged path.", "description": "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.", "tags": [], "args": [ { "name": "data", "type": "ChamferData", "schema": { "description": "Data for chamfers.", "type": "object", "required": [ "length", "tags" ], "properties": { "length": { "description": "The length of the chamfer.", "type": "number", "format": "double" }, "tags": { "description": "The tags of the paths you want to chamfer.", "type": "array", "items": { "description": "A tag or a uuid of an edge.", "anyOf": [ { "description": "A uuid of an edge.", "type": "string", "format": "uuid" }, { "description": "A tag of an edge.", "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } ] } } } }, "required": true }, { "name": "extrude_group", "type": "ExtrudeGroup", "schema": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "ExtrudeGroup", "schema": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const width = 20\nconst length = 10\nconst thickness = 1\nconst chamferLength = 2\n\nconst mountingPlateSketch = startSketchOn(\"XY\")\n |> startProfileAt([-width / 2, -length / 2], %)\n |> lineTo([width / 2, -length / 2], %, $edge1)\n |> lineTo([width / 2, length / 2], %, $edge2)\n |> lineTo([-width / 2, length / 2], %, $edge3)\n |> close(%, $edge4)\n\nconst mountingPlate = extrude(thickness, mountingPlateSketch)\n |> chamfer({\n length: chamferLength,\n tags: [\n getNextAdjacentEdge(edge1),\n getNextAdjacentEdge(edge2),\n getNextAdjacentEdge(edge3),\n getNextAdjacentEdge(edge4)\n ]\n }, %)" ] }, { "name": "circle", "summary": "Construct a 2-dimensional circle, of the specified radius, centered at", "description": "the provided (x, y) origin point.", "tags": [], "args": [ { "name": "center", "type": "[number]", "schema": { "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "required": true }, { "name": "radius", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "sketch_surface_or_group", "type": "SketchSurfaceOrGroup", "schema": { "description": "A sketch surface or a sketch group.", "anyOf": [ { "description": "A sketch group type.", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } } ] }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"-XZ\")\n |> circle([0, 0], 10, %)\n\nconst example = extrude(5, exampleSketch)", "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([-15, 0], %)\n |> line([30, 0], %)\n |> line([0, 30], %)\n |> line([-30, 0], %)\n |> close(%)\n |> hole(circle([0, 15], 5, %), %)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "close", "summary": "Construct a line segment from the current origin back to the profile's", "description": "origin, ensuring the resulting 2-dimensional sketch is not open-ended.", "tags": [], "args": [ { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 10], %)\n |> line([10, 0], %)\n |> close(%)\n |> extrude(10, %)", "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "cm", "summary": "Centimeters conversion factor for current projects units.", "description": "No matter what units the current project uses, this function will always return the conversion factor to centimeters.\nFor example, if the current project uses inches, this function will return `0.393701`. If the current project uses millimeters, this function will return `10`. If the current project uses centimeters, this function will return `1`.\n**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the project settings. Otherwise, it is a bad pattern to use this function.\nWe merely provide these functions for convenience and readability, as `10 * cm()` is more readable that your intent is \"I want 10 centimeters\" than `10 * 10`, if the project settings are in millimeters.", "tags": [ "units" ], "args": [], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const totalWidth = 10 * cm()" ] }, { "name": "cos", "summary": "Compute the cosine of a number (in radians).", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle: 30,\n length: 3 / cos(toRadians(30))\n }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "e", "summary": "Return the value of Euler’s number `e`.", "description": "", "tags": [ "math" ], "args": [], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 30, length: 2 * e() ^ 2 }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "extrude", "summary": "Extend a 2-dimensional sketch through a third dimension in order to", "description": "create new 3-dimensional volume, or if extruded into an existing volume, cut into an existing solid.", "tags": [], "args": [ { "name": "length", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "sketch_group_set", "type": "SketchGroupSet", "schema": { "description": "A sketch group or a group of sketch groups.", "oneOf": [ { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "type", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "type": { "type": "string", "enum": [ "sketchGroup" ] }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, { "type": [ "object", "array" ], "items": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "sketchGroups" ] } } } ] }, "required": true } ], "returnValue": { "name": "", "type": "ExtrudeGroupSet", "schema": { "description": "A extrude group or a group of extrude groups.", "oneOf": [ { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "type", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "type": { "type": "string", "enum": [ "extrudeGroup" ] }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, { "type": [ "object", "array" ], "items": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "$ref": "#/components/schemas/ExtrudeGroup" }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "extrudeGroups" ] } } } ] }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const example = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> arc({\n angleStart: 120,\n angleEnd: 0,\n radius: 5\n }, %)\n |> line([5, 0], %)\n |> line([0, 10], %)\n |> bezierCurve({\n control1: [-10, 0],\n control2: [2, 10],\n to: [-5, 10]\n }, %)\n |> line([-5, -2], %)\n |> close(%)\n |> extrude(10, %)", "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([-10, 0], %)\n |> arc({\n angleStart: 120,\n angleEnd: -60,\n radius: 5\n }, %)\n |> line([10, 0], %)\n |> line([5, 0], %)\n |> bezierCurve({\n control1: [-3, 0],\n control2: [2, 10],\n to: [-5, 10]\n }, %)\n |> line([-4, 10], %)\n |> line([-5, -2], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "fillet", "summary": "Blend a transitional edge along a tagged path, smoothing the sharp edge.", "description": "Fillet is similar in function and use to a chamfer, except a chamfer will cut a sharp transition along an edge while fillet will smoothly blend the transition.", "tags": [], "args": [ { "name": "data", "type": "FilletData", "schema": { "description": "Data for fillets.", "type": "object", "required": [ "radius", "tags" ], "properties": { "radius": { "description": "The radius of the fillet.", "type": "number", "format": "double" }, "tags": { "description": "The tags of the paths you want to fillet.", "type": "array", "items": { "description": "A tag or a uuid of an edge.", "anyOf": [ { "description": "A uuid of an edge.", "type": "string", "format": "uuid" }, { "description": "A tag of an edge.", "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } ] } }, "tolerance": { "description": "The tolerance for the fillet.", "default": null, "type": "number", "format": "double", "nullable": true } } }, "required": true }, { "name": "extrude_group", "type": "ExtrudeGroup", "schema": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "ExtrudeGroup", "schema": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const width = 20\nconst length = 10\nconst thickness = 1\nconst filletRadius = 2\n\nconst mountingPlateSketch = startSketchOn(\"XY\")\n |> startProfileAt([-width / 2, -length / 2], %)\n |> lineTo([width / 2, -length / 2], %, $edge1)\n |> lineTo([width / 2, length / 2], %, $edge2)\n |> lineTo([-width / 2, length / 2], %, $edge3)\n |> close(%, $edge4)\n\nconst mountingPlate = extrude(thickness, mountingPlateSketch)\n |> fillet({\n radius: filletRadius,\n tags: [\n getNextAdjacentEdge(edge1),\n getNextAdjacentEdge(edge2),\n getNextAdjacentEdge(edge3),\n getNextAdjacentEdge(edge4)\n ]\n }, %)", "const width = 20\nconst length = 10\nconst thickness = 1\nconst filletRadius = 1\n\nconst mountingPlateSketch = startSketchOn(\"XY\")\n |> startProfileAt([-width / 2, -length / 2], %)\n |> lineTo([width / 2, -length / 2], %, $edge1)\n |> lineTo([width / 2, length / 2], %, $edge2)\n |> lineTo([-width / 2, length / 2], %, $edge3)\n |> close(%, $edge4)\n\nconst mountingPlate = extrude(thickness, mountingPlateSketch)\n |> fillet({\n radius: filletRadius,\n tolerance: 0.000001,\n tags: [\n getNextAdjacentEdge(edge1),\n getNextAdjacentEdge(edge2),\n getNextAdjacentEdge(edge3),\n getNextAdjacentEdge(edge4)\n ]\n }, %)" ] }, { "name": "floor", "summary": "Compute the largest integer less than or equal to a number.", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> lineTo([12, 10], %)\n |> line([floor(7.02986), 0], %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst extrude001 = extrude(5, sketch001)" ] }, { "name": "ft", "summary": "Feet conversion factor for current projects units.", "description": "No matter what units the current project uses, this function will always return the conversion factor to feet.\nFor example, if the current project uses inches, this function will return `12`. If the current project uses millimeters, this function will return `304.8`. If the current project uses feet, this function will return `1`.\n**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the project settings. Otherwise, it is a bad pattern to use this function.\nWe merely provide these functions for convenience and readability, as `10 * ft()` is more readable that your intent is \"I want 10 feet\" than `10 * 304.8`, if the project settings are in millimeters.", "tags": [ "units" ], "args": [], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const totalWidth = 10 * ft()" ] }, { "name": "getNextAdjacentEdge", "summary": "Get the next adjacent edge to the edge given.", "description": "", "tags": [], "args": [ { "name": "tag", "type": "TagIdentifier", "schema": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } }, "required": true } ], "returnValue": { "name": "", "type": "Uuid", "schema": { "type": "string", "format": "uuid" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %)\n |> angledLine({ angle: 120, length: 10 }, %)\n |> line([-10, 0], %)\n |> angledLine({ angle: 240, length: 10 }, %, $referenceEdge)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)\n |> fillet({\n radius: 3,\n tags: [getNextAdjacentEdge(referenceEdge)]\n }, %)" ] }, { "name": "getOppositeEdge", "summary": "Get the opposite edge to the edge given.", "description": "", "tags": [], "args": [ { "name": "tag", "type": "TagIdentifier", "schema": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } }, "required": true } ], "returnValue": { "name": "", "type": "Uuid", "schema": { "type": "string", "format": "uuid" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %)\n |> angledLine({ angle: 120, length: 10 }, %)\n |> line([-10, 0], %)\n |> angledLine({ angle: 240, length: 10 }, %, $referenceEdge)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)\n |> fillet({\n radius: 3,\n tags: [getOppositeEdge(referenceEdge)]\n }, %)" ] }, { "name": "getPreviousAdjacentEdge", "summary": "Get the previous adjacent edge to the edge given.", "description": "", "tags": [], "args": [ { "name": "tag", "type": "TagIdentifier", "schema": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } }, "required": true } ], "returnValue": { "name": "", "type": "Uuid", "schema": { "type": "string", "format": "uuid" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %)\n |> angledLine({ angle: 120, length: 10 }, %)\n |> line([-10, 0], %)\n |> angledLine({ angle: 240, length: 10 }, %, $referenceEdge)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)\n |> fillet({\n radius: 3,\n tags: [getPreviousAdjacentEdge(referenceEdge)]\n }, %)" ] }, { "name": "helix", "summary": "Create a helix on a cylinder.", "description": "", "tags": [], "args": [ { "name": "data", "type": "HelixData", "schema": { "description": "Data for helices.", "type": "object", "required": [ "angleStart", "revolutions" ], "properties": { "angleStart": { "description": "Start angle (in degrees).", "type": "number", "format": "double" }, "ccw": { "description": "Is the helix rotation counter clockwise? The default is `false`.", "default": false, "type": "boolean" }, "length": { "description": "Length of the helix. If this argument is not provided, the height of the extrude group is used.", "type": "number", "format": "double", "nullable": true }, "revolutions": { "description": "Number of revolutions.", "type": "number", "format": "double" } } }, "required": true }, { "name": "extrude_group", "type": "ExtrudeGroup", "schema": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "ExtrudeGroup", "schema": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const part001 = startSketchOn('XY')\n |> circle([5, 5], 10, %)\n |> extrude(10, %)\n |> helix({\n angleStart: 0,\n ccw: true,\n revolutions: 16\n }, %)" ] }, { "name": "hole", "summary": "Use a 2-dimensional sketch to cut a hole in another 2-dimensional sketch.", "description": "", "tags": [], "args": [ { "name": "hole_sketch_group", "type": "SketchGroupSet", "schema": { "description": "A sketch group or a group of sketch groups.", "oneOf": [ { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "type", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "type": { "type": "string", "enum": [ "sketchGroup" ] }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, { "type": [ "object", "array" ], "items": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "sketchGroups" ] } } } ] }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 5], %)\n |> line([5, 0], %)\n |> line([0, -5], %)\n |> close(%)\n |> hole(circle([1, 1], .25, %), %)\n |> hole(circle([1, 4], .25, %), %)\n\nconst example = extrude(1, exampleSketch)", "fn squareHoleSketch = () => {\n const squareSketch = startSketchOn('-XZ')\n |> startProfileAt([-1, -1], %)\n |> line([2, 0], %)\n |> line([0, 2], %)\n |> line([-2, 0], %)\n |> close(%)\n return squareSketch\n}\n\nconst exampleSketch = startSketchOn('-XZ')\n |> circle([0, 0], 3, %)\n |> hole(squareHoleSketch(), %)\nconst example = extrude(1, exampleSketch)" ] }, { "name": "import", "summary": "Import a CAD file.", "description": "For formats lacking unit data (such as STL, OBJ, or PLY files), the default unit of measurement is millimeters. Alternatively you may specify the unit by passing your desired measurement unit in the options parameter. When importing a GLTF file, the bin file will be imported as well. Import paths are relative to the current project directory.\nNote: The import command currently only works when using the native Modeling App.", "tags": [], "args": [ { "name": "file_path", "type": "String", "schema": { "type": "string" }, "required": true }, { "name": "options", "type": "ImportFormat", "schema": { "description": "Import format specifier", "oneOf": [ { "description": "Autodesk Filmbox (FBX) format", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "fbx" ] } } }, { "description": "Binary glTF 2.0. We refer to this as glTF since that is how our customers refer to it, but this can also import binary glTF (glb).", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "gltf" ] } } }, { "description": "Wavefront OBJ format.", "type": "object", "required": [ "type", "units" ], "properties": { "coords": { "description": "Co-ordinate system of input data. Defaults to the [KittyCAD co-ordinate system.", "type": "object", "required": [ "forward", "up" ], "properties": { "forward": { "description": "Axis the front face of a model looks along.", "type": "object", "required": [ "axis", "direction" ], "properties": { "axis": { "description": "Axis specifier.", "oneOf": [ { "description": "'Y' axis.", "type": "string", "enum": [ "y" ] }, { "description": "'Z' axis.", "type": "string", "enum": [ "z" ] } ] }, "direction": { "description": "Specifies which direction the axis is pointing.", "oneOf": [ { "description": "Increasing numbers.", "type": "string", "enum": [ "positive" ] }, { "description": "Decreasing numbers.", "type": "string", "enum": [ "negative" ] } ] } } }, "up": { "description": "Axis pointing up and away from a model.", "type": "object", "required": [ "axis", "direction" ], "properties": { "axis": { "description": "Axis specifier.", "oneOf": [ { "description": "'Y' axis.", "type": "string", "enum": [ "y" ] }, { "description": "'Z' axis.", "type": "string", "enum": [ "z" ] } ] }, "direction": { "description": "Specifies which direction the axis is pointing.", "oneOf": [ { "description": "Increasing numbers.", "type": "string", "enum": [ "positive" ] }, { "description": "Decreasing numbers.", "type": "string", "enum": [ "negative" ] } ] } } } }, "nullable": true }, "type": { "type": "string", "enum": [ "obj" ] }, "units": { "description": "The units of the input data. This is very important for correct scaling and when calculating physics properties like mass, etc. Defaults to millimeters.", "oneOf": [ { "description": "Centimeters ", "type": "string", "enum": [ "cm" ] }, { "description": "Feet ", "type": "string", "enum": [ "ft" ] }, { "description": "Inches ", "type": "string", "enum": [ "in" ] }, { "description": "Meters ", "type": "string", "enum": [ "m" ] }, { "description": "Millimeters ", "type": "string", "enum": [ "mm" ] }, { "description": "Yards ", "type": "string", "enum": [ "yd" ] } ] } } }, { "description": "The PLY Polygon File Format.", "type": "object", "required": [ "type", "units" ], "properties": { "coords": { "description": "Co-ordinate system of input data. Defaults to the [KittyCAD co-ordinate system.", "type": "object", "required": [ "forward", "up" ], "properties": { "forward": { "description": "Axis the front face of a model looks along.", "type": "object", "required": [ "axis", "direction" ], "properties": { "axis": { "description": "Axis specifier.", "oneOf": [ { "description": "'Y' axis.", "type": "string", "enum": [ "y" ] }, { "description": "'Z' axis.", "type": "string", "enum": [ "z" ] } ] }, "direction": { "description": "Specifies which direction the axis is pointing.", "oneOf": [ { "description": "Increasing numbers.", "type": "string", "enum": [ "positive" ] }, { "description": "Decreasing numbers.", "type": "string", "enum": [ "negative" ] } ] } } }, "up": { "description": "Axis pointing up and away from a model.", "type": "object", "required": [ "axis", "direction" ], "properties": { "axis": { "description": "Axis specifier.", "oneOf": [ { "description": "'Y' axis.", "type": "string", "enum": [ "y" ] }, { "description": "'Z' axis.", "type": "string", "enum": [ "z" ] } ] }, "direction": { "description": "Specifies which direction the axis is pointing.", "oneOf": [ { "description": "Increasing numbers.", "type": "string", "enum": [ "positive" ] }, { "description": "Decreasing numbers.", "type": "string", "enum": [ "negative" ] } ] } } } }, "nullable": true }, "type": { "type": "string", "enum": [ "ply" ] }, "units": { "description": "The units of the input data. This is very important for correct scaling and when calculating physics properties like mass, etc. Defaults to millimeters.", "oneOf": [ { "description": "Centimeters ", "type": "string", "enum": [ "cm" ] }, { "description": "Feet ", "type": "string", "enum": [ "ft" ] }, { "description": "Inches ", "type": "string", "enum": [ "in" ] }, { "description": "Meters ", "type": "string", "enum": [ "m" ] }, { "description": "Millimeters ", "type": "string", "enum": [ "mm" ] }, { "description": "Yards ", "type": "string", "enum": [ "yd" ] } ] } } }, { "description": "SolidWorks part (SLDPRT) format.", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "sldprt" ] } } }, { "description": "ISO 10303-21 (STEP) format.", "type": "object", "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "step" ] } } }, { "description": "ST**ereo**L**ithography format.", "type": "object", "required": [ "type", "units" ], "properties": { "coords": { "description": "Co-ordinate system of input data. Defaults to the [KittyCAD co-ordinate system.", "type": "object", "required": [ "forward", "up" ], "properties": { "forward": { "description": "Axis the front face of a model looks along.", "type": "object", "required": [ "axis", "direction" ], "properties": { "axis": { "description": "Axis specifier.", "oneOf": [ { "description": "'Y' axis.", "type": "string", "enum": [ "y" ] }, { "description": "'Z' axis.", "type": "string", "enum": [ "z" ] } ] }, "direction": { "description": "Specifies which direction the axis is pointing.", "oneOf": [ { "description": "Increasing numbers.", "type": "string", "enum": [ "positive" ] }, { "description": "Decreasing numbers.", "type": "string", "enum": [ "negative" ] } ] } } }, "up": { "description": "Axis pointing up and away from a model.", "type": "object", "required": [ "axis", "direction" ], "properties": { "axis": { "description": "Axis specifier.", "oneOf": [ { "description": "'Y' axis.", "type": "string", "enum": [ "y" ] }, { "description": "'Z' axis.", "type": "string", "enum": [ "z" ] } ] }, "direction": { "description": "Specifies which direction the axis is pointing.", "oneOf": [ { "description": "Increasing numbers.", "type": "string", "enum": [ "positive" ] }, { "description": "Decreasing numbers.", "type": "string", "enum": [ "negative" ] } ] } } } }, "nullable": true }, "type": { "type": "string", "enum": [ "stl" ] }, "units": { "description": "The units of the input data. This is very important for correct scaling and when calculating physics properties like mass, etc. Defaults to millimeters.", "oneOf": [ { "description": "Centimeters ", "type": "string", "enum": [ "cm" ] }, { "description": "Feet ", "type": "string", "enum": [ "ft" ] }, { "description": "Inches ", "type": "string", "enum": [ "in" ] }, { "description": "Meters ", "type": "string", "enum": [ "m" ] }, { "description": "Millimeters ", "type": "string", "enum": [ "mm" ] }, { "description": "Yards ", "type": "string", "enum": [ "yd" ] } ] } } } ], "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "ImportedGeometry", "schema": { "description": "Data for an imported geometry.", "type": "object", "required": [ "__meta", "id", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The ID of the imported geometry.", "type": "string", "format": "uuid" }, "value": { "description": "The original file paths.", "type": "array", "items": { "type": "string" } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const model = import(\"tests/inputs/cube.obj\")", "const model = import(\"tests/inputs/cube.obj\", { type: \"obj\", units: \"m\" })", "const model = import(\"tests/inputs/cube.gltf\")", "const model = import(\"tests/inputs/cube.sldprt\")", "const model = import(\"tests/inputs/cube.step\")" ] }, { "name": "inch", "summary": "Inches conversion factor for current projects units.", "description": "No matter what units the current project uses, this function will always return the conversion factor to inches.\nFor example, if the current project uses inches, this function will return `1`. If the current project uses millimeters, this function will return `25.4`.\n**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the project settings. Otherwise, it is a bad pattern to use this function.\nWe merely provide these functions for convenience and readability, as `10 * inch()` is more readable that your intent is \"I want 10 inches\" than `10 * 25.4`, if the project settings are in millimeters.", "tags": [ "units" ], "args": [], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const totalWidth = 10 * inch()" ] }, { "name": "int", "summary": "Convert a number to an integer.", "description": "Callers should use floor(), ceil(), or other rounding function first if they care about how numbers with fractional parts are converted. If the number has a fractional part, it's truncated, moving the number towards zero.\nIf the number is NaN or has a magnitude, either positive or negative, that is too large to fit into the internal integer representation, the result is a runtime error.", "tags": [ "convert" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "i64", "schema": { "type": "integer", "format": "int64" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XZ')\n |> circle([0, 0], 2, %)\nconst extrude001 = extrude(5, sketch001)\n\nconst pattern01 = patternTransform(int(ceil(5 / 2)), (id) => {\n return { translate: [4 * id, 0, 0] }\n}, extrude001)" ] }, { "name": "lastSegX", "summary": "Extract the 'x' axis value of the last line segment in the provided 2-d", "description": "sketch.", "tags": [], "args": [ { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> line([5, 0], %)\n |> line([20, 5], %)\n |> line([lastSegX(%), 0], %)\n |> line([-15, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "lastSegY", "summary": "Extract the 'y' axis value of the last line segment in the provided 2-d", "description": "sketch.", "tags": [], "args": [ { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> line([5, 0], %)\n |> line([20, 5], %)\n |> line([0, lastSegY(%)], %)\n |> line([-15, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "legAngX", "summary": "Compute the angle of the given leg for x.", "description": "", "tags": [ "utilities" ], "args": [ { "name": "hypotenuse", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "leg", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "legAngX(5, 3)" ] }, { "name": "legAngY", "summary": "Compute the angle of the given leg for y.", "description": "", "tags": [ "utilities" ], "args": [ { "name": "hypotenuse", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "leg", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "legAngY(5, 3)" ] }, { "name": "legLen", "summary": "Compute the length of the given leg.", "description": "", "tags": [ "utilities" ], "args": [ { "name": "hypotenuse", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "leg", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "legLen(5, 3)" ] }, { "name": "line", "summary": "Draw a line relative to the current origin to a specified (x, y) away", "description": "from the current position.", "tags": [], "args": [ { "name": "delta", "type": "[number]", "schema": { "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> line([25, 15], %)\n |> line([5, -6], %)\n |> line([-10, -10], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)", "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "lineTo", "summary": "Draw a line from the current origin to some absolute (x, y) point.", "description": "", "tags": [], "args": [ { "name": "to", "type": "[number]", "schema": { "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> lineTo([10, 0], %)\n |> lineTo([0, 10], %)\n |> lineTo([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "ln", "summary": "Compute the natural logarithm of the number.", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> line([ln(100), 15], %)\n |> line([5, -6], %)\n |> line([-10, -10], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "log", "summary": "Compute the logarithm of the number with respect to an arbitrary base.", "description": "The result might not be correctly rounded owing to implementation details; `log2()` can produce more accurate results for base 2, and `log10()` can produce more accurate results for base 10.", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "base", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> line([log(100, 5), 0], %)\n |> line([5, 8], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "log10", "summary": "Compute the base 10 logarithm of the number.", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> line([log10(100), 0], %)\n |> line([5, 8], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "log2", "summary": "Compute the base 2 logarithm of the number.", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> line([log2(100), 0], %)\n |> line([5, 8], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "m", "summary": "Meters conversion factor for current projects units.", "description": "No matter what units the current project uses, this function will always return the conversion factor to meters.\nFor example, if the current project uses inches, this function will return `39.3701`. If the current project uses millimeters, this function will return `1000`. If the current project uses meters, this function will return `1`.\n**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the project settings. Otherwise, it is a bad pattern to use this function.\nWe merely provide these functions for convenience and readability, as `10 * m()` is more readable that your intent is \"I want 10 meters\" than `10 * 1000`, if the project settings are in millimeters.", "tags": [ "units" ], "args": [], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const totalWidth = 10 * m()" ] }, { "name": "max", "summary": "Compute the maximum of the given arguments.", "description": "", "tags": [ "math" ], "args": [ { "name": "args", "type": "[number]", "schema": { "type": "array", "items": { "type": "number", "format": "double" } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle: 70,\n length: max(15, 31, 4, 13, 22)\n }, %)\n |> line([20, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "min", "summary": "Compute the minimum of the given arguments.", "description": "", "tags": [ "math" ], "args": [ { "name": "args", "type": "[number]", "schema": { "type": "array", "items": { "type": "number", "format": "double" } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle: 70,\n length: min(15, 31, 4, 13, 22)\n }, %)\n |> line([20, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "mm", "summary": "Millimeters conversion factor for current projects units.", "description": "No matter what units the current project uses, this function will always return the conversion factor to millimeters.\nFor example, if the current project uses inches, this function will return `(1/25.4)`. If the current project uses millimeters, this function will return `1`.\n**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the project settings. Otherwise, it is a bad pattern to use this function.\nWe merely provide these functions for convenience and readability, as `10 * mm()` is more readable that your intent is \"I want 10 millimeters\" than `10 * (1/25.4)`, if the project settings are in inches.", "tags": [ "units" ], "args": [], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const totalWidth = 10 * mm()" ] }, { "name": "patternCircular2d", "summary": "Repeat a 2-dimensional sketch some number of times along a partial or", "description": "complete circle some specified number of times. Each object may additionally be rotated along the circle, ensuring orentation of the solid with respect to the center of the circle is maintained.", "tags": [], "args": [ { "name": "data", "type": "CircularPattern2dData", "schema": { "description": "Data for a circular pattern on a 2D sketch.", "type": "object", "required": [ "arcDegrees", "center", "repetitions", "rotateDuplicates" ], "properties": { "arcDegrees": { "description": "The arc angle (in degrees) to place the repetitions. Must be greater than 0.", "type": "number", "format": "double" }, "center": { "description": "The center about which to make the pattern. This is a 2D vector.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "repetitions": { "description": "The number of repetitions. Must be greater than 0. This excludes the original entity. For example, if `repetitions` is 1, the original entity will be copied once.", "type": "integer", "format": "uint32", "minimum": 0.0 }, "rotateDuplicates": { "description": "Whether or not to rotate the duplicates as they are copied.", "type": "boolean" } } }, "required": true }, { "name": "sketch_group_set", "type": "SketchGroupSet", "schema": { "description": "A sketch group or a group of sketch groups.", "oneOf": [ { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "type", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "type": { "type": "string", "enum": [ "sketchGroup" ] }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, { "type": [ "object", "array" ], "items": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "sketchGroups" ] } } } ] }, "required": true } ], "returnValue": { "name": "", "type": "[SketchGroup]", "schema": { "type": "array", "items": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([.5, 25], %)\n |> line([0, 5], %)\n |> line([-1, 0], %)\n |> line([0, -5], %)\n |> close(%)\n |> patternCircular2d({\n center: [0, 0],\n repetitions: 12,\n arcDegrees: 360,\n rotateDuplicates: true\n }, %)\n\nconst example = extrude(1, exampleSketch)" ] }, { "name": "patternCircular3d", "summary": "Repeat a 3-dimensional solid some number of times along a partial or", "description": "complete circle some specified number of times. Each object may additionally be rotated along the circle, ensuring orentation of the solid with respect to the center of the circle is maintained.", "tags": [], "args": [ { "name": "data", "type": "CircularPattern3dData", "schema": { "description": "Data for a circular pattern on a 3D model.", "type": "object", "required": [ "arcDegrees", "axis", "center", "repetitions", "rotateDuplicates" ], "properties": { "arcDegrees": { "description": "The arc angle (in degrees) to place the repetitions. Must be greater than 0.", "type": "number", "format": "double" }, "axis": { "description": "The axis around which to make the pattern. This is a 3D vector.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 3, "minItems": 3 }, "center": { "description": "The center about which to make the pattern. This is a 3D vector.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 3, "minItems": 3 }, "repetitions": { "description": "The number of repetitions. Must be greater than 0. This excludes the original entity. For example, if `repetitions` is 1, the original entity will be copied once.", "type": "integer", "format": "uint32", "minimum": 0.0 }, "rotateDuplicates": { "description": "Whether or not to rotate the duplicates as they are copied.", "type": "boolean" } } }, "required": true }, { "name": "extrude_group_set", "type": "ExtrudeGroupSet", "schema": { "description": "A extrude group or a group of extrude groups.", "oneOf": [ { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "type", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "type": { "type": "string", "enum": [ "extrudeGroup" ] }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, { "type": [ "object", "array" ], "items": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "$ref": "#/components/schemas/ExtrudeGroup" }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "extrudeGroups" ] } } } ] }, "required": true } ], "returnValue": { "name": "", "type": "[ExtrudeGroup]", "schema": { "type": "array", "items": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "$ref": "#/components/schemas/ExtrudeGroup" }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> circle([0, 0], 1, %)\n\nconst example = extrude(-5, exampleSketch)\n |> patternCircular3d({\n axis: [1, -1, 0],\n center: [10, -20, 0],\n repetitions: 10,\n arcDegrees: 360,\n rotateDuplicates: true\n }, %)" ] }, { "name": "patternLinear2d", "summary": "Repeat a 2-dimensional sketch along some dimension, with a dynamic amount", "description": "of distance between each repetition, some specified number of times.", "tags": [], "args": [ { "name": "data", "type": "LinearPattern2dData", "schema": { "description": "Data for a linear pattern on a 2D sketch.", "type": "object", "required": [ "axis", "distance", "repetitions" ], "properties": { "axis": { "description": "The axis of the pattern. This is a 2D vector.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "distance": { "description": "The distance between each repetition. This can also be referred to as spacing.", "type": "number", "format": "double" }, "repetitions": { "description": "The number of repetitions. Must be greater than 0. This excludes the original entity. For example, if `repetitions` is 1, the original entity will be copied once.", "type": "integer", "format": "uint32", "minimum": 0.0 } } }, "required": true }, { "name": "sketch_group_set", "type": "SketchGroupSet", "schema": { "description": "A sketch group or a group of sketch groups.", "oneOf": [ { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "type", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "type": { "type": "string", "enum": [ "sketchGroup" ] }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, { "type": [ "object", "array" ], "items": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "sketchGroups" ] } } } ] }, "required": true } ], "returnValue": { "name": "", "type": "[SketchGroup]", "schema": { "type": "array", "items": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> circle([0, 0], 1, %)\n |> patternLinear2d({\n axis: [1, 0],\n repetitions: 6,\n distance: 4\n }, %)\n\nconst example = extrude(1, exampleSketch)" ] }, { "name": "patternLinear3d", "summary": "Repeat a 3-dimensional solid along a linear path, with a dynamic amount", "description": "of distance between each repetition, some specified number of times.", "tags": [], "args": [ { "name": "data", "type": "LinearPattern3dData", "schema": { "description": "Data for a linear pattern on a 3D model.", "type": "object", "required": [ "axis", "distance", "repetitions" ], "properties": { "axis": { "description": "The axis of the pattern.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 3, "minItems": 3 }, "distance": { "description": "The distance between each repetition. This can also be referred to as spacing.", "type": "number", "format": "double" }, "repetitions": { "description": "The number of repetitions. Must be greater than 0. This excludes the original entity. For example, if `repetitions` is 1, the original entity will be copied once.", "type": "integer", "format": "uint32", "minimum": 0.0 } } }, "required": true }, { "name": "extrude_group_set", "type": "ExtrudeGroupSet", "schema": { "description": "A extrude group or a group of extrude groups.", "oneOf": [ { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "type", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "type": { "type": "string", "enum": [ "extrudeGroup" ] }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, { "type": [ "object", "array" ], "items": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "$ref": "#/components/schemas/ExtrudeGroup" }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "extrudeGroups" ] } } } ] }, "required": true } ], "returnValue": { "name": "", "type": "[ExtrudeGroup]", "schema": { "type": "array", "items": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "$ref": "#/components/schemas/ExtrudeGroup" }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([0, 2], %)\n |> line([3, 1], %)\n |> line([0, -4], %)\n |> close(%)\n\nconst example = extrude(1, exampleSketch)\n |> patternLinear3d({\n axis: [1, 0, 1],\n repetitions: 6,\n distance: 6\n }, %)" ] }, { "name": "patternTransform", "summary": "Repeat a 3-dimensional solid by successively applying a transformation (such", "description": "as rotation, scale, translation, visibility) on each repetition.", "tags": [], "args": [ { "name": "num_repetitions", "type": "u32", "schema": { "type": "integer", "format": "uint32", "minimum": 0.0 }, "required": true }, { "name": "transform_function", "type": "FunctionParam", "schema": { "type": "null" }, "required": true }, { "name": "extrude_group_set", "type": "ExtrudeGroupSet", "schema": { "description": "A extrude group or a group of extrude groups.", "oneOf": [ { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "type", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "type": { "type": "string", "enum": [ "extrudeGroup" ] }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, { "type": [ "object", "array" ], "items": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "$ref": "#/components/schemas/ExtrudeGroup" }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": [ "type" ], "properties": { "type": { "type": "string", "enum": [ "extrudeGroups" ] } } } ] }, "required": true } ], "returnValue": { "name": "", "type": "[ExtrudeGroup]", "schema": { "type": "array", "items": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "$ref": "#/components/schemas/ExtrudeGroup" }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "// Parameters\nconst r = 50 // base radius\nconst h = 10 // layer height\nconst t = 0.005 // taper factor [0-1)\n// Defines how to modify each layer of the vase.\n// Each replica is shifted up the Z axis, and has a smoothly-varying radius\nfn transform = (replicaId) => {\n let scale = r * abs(1 - (t * replicaId)) * (5 + cos(replicaId / 8))\n return {\n translate: [0, 0, replicaId * 10],\n scale: [scale, scale, 0]\n}\n}\n// Each layer is just a pretty thin cylinder.\nfn layer = () => {\n return startSketchOn(\"XY\")\n // or some other plane idk\n |> circle([0, 0], 1, %, $tag1)\n |> extrude(h, %)\n}\n// The vase is 100 layers tall.\n// The 100 layers are replica of each other, with a slight transformation applied to each.\nlet vase = layer()\n |> patternTransform(100, transform, %)" ] }, { "name": "pi", "summary": "Return the value of `pi`. Archimedes’ constant (π).", "description": "", "tags": [ "math" ], "args": [], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const circumference = 70\n\nconst exampleSketch = startSketchOn(\"XZ\")\n |> circle([0, 0], circumference / (2 * pi()), %)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "polar", "summary": "Convert polar/sphere (azimuth, elevation, distance) coordinates to", "description": "cartesian (x/y/z grid) coordinates.", "tags": [], "args": [ { "name": "data", "type": "PolarCoordsData", "schema": { "description": "Data for polar coordinates.", "type": "object", "required": [ "angle", "length" ], "properties": { "angle": { "description": "The angle of the line (in degrees).", "type": "number", "format": "double" }, "length": { "description": "The length of the line.", "type": "number", "format": "double" } } }, "required": true } ], "returnValue": { "name": "", "type": "[number]", "schema": { "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line(polar({ angle: 30, length: 5 }), %, $thing)\n |> line([0, 5], %)\n |> line([segEndX(thing), 0], %)\n |> line([-20, 10], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "pow", "summary": "Compute the number to a power.", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "pow", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 50, length: pow(5, 2) }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "profileStart", "summary": "Extract the provided 2-dimensional sketch group's profile's origin", "description": "value.", "tags": [], "args": [ { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "[number]", "schema": { "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XY')\n |> startProfileAt([5, 2], %)\n |> angledLine({ angle: 120, length: 50 }, %, $seg01)\n |> angledLine({\n angle: segAng(seg01) + 120,\n length: 50\n }, %)\n |> lineTo(profileStart(%), %)\n |> close(%)\n |> extrude(20, %)" ] }, { "name": "profileStartX", "summary": "Extract the provided 2-dimensional sketch group's profile's origin's 'x'", "description": "value.", "tags": [], "args": [ { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XY')\n |> startProfileAt([5, 2], %)\n |> angledLine([-26.6, 50], %)\n |> angledLine([90, 50], %)\n |> angledLineToX({ angle: 30, to: profileStartX(%) }, %)" ] }, { "name": "profileStartY", "summary": "Extract the provided 2-dimensional sketch group's profile's origin's 'y'", "description": "value.", "tags": [], "args": [ { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const sketch001 = startSketchOn('XY')\n |> startProfileAt([5, 2], %)\n |> angledLine({ angle: -60, length: 14 }, %)\n |> angledLineToY({ angle: 30, to: profileStartY(%) }, %)" ] }, { "name": "revolve", "summary": "Rotate a sketch around some provided axis, creating a solid from its extent.", "description": "This, like extrude, is able to create a 3-dimensional solid from a 2-dimensional sketch. However, unlike extrude, this creates a solid by using the extent of the sketch as its revolved around an axis rather than using the extent of the sketch linearly translated through a third dimension.", "tags": [], "args": [ { "name": "data", "type": "RevolveData", "schema": { "description": "Data for revolution surfaces.", "type": "object", "required": [ "axis" ], "properties": { "angle": { "description": "Angle to revolve (in degrees). Default is 360.", "default": null, "type": "number", "format": "double", "nullable": true }, "axis": { "description": "Axis of revolution.", "anyOf": [ { "description": "Axis of revolution.", "oneOf": [ { "description": "X-axis.", "type": "string", "enum": [ "X" ] }, { "description": "Y-axis.", "type": "string", "enum": [ "Y" ] }, { "description": "Z-axis.", "type": "string", "enum": [ "Z" ] }, { "description": "Flip the X-axis.", "type": "string", "enum": [ "-X" ] }, { "description": "Flip the Y-axis.", "type": "string", "enum": [ "-Y" ] }, { "description": "Flip the Z-axis.", "type": "string", "enum": [ "-Z" ] }, { "type": "object", "required": [ "custom" ], "properties": { "custom": { "type": "object", "required": [ "axis", "origin" ], "properties": { "axis": { "description": "The axis.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 3, "minItems": 3 }, "origin": { "description": "The origin.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 3, "minItems": 3 } } } }, "additionalProperties": false } ] }, { "description": "Tagged edge.", "anyOf": [ { "description": "A uuid of an edge.", "type": "string", "format": "uuid" }, { "description": "A tag of an edge.", "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } ] } ] }, "tolerance": { "description": "Tolerance for the revolve operation.", "default": null, "type": "number", "format": "double", "nullable": true } } }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "ExtrudeGroup", "schema": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const part001 = startSketchOn('XY')\n |> startProfileAt([4, 12], %)\n |> line([2, 0], %)\n |> line([0, -6], %)\n |> line([4, -6], %)\n |> line([0, -6], %)\n |> line([-3.75, -4.5], %)\n |> line([0, -5.5], %)\n |> line([-2, 0], %)\n |> close(%)\n |> revolve({ axis: 'y' }, %) // default angle is 360", "// A donut shape.\nconst sketch001 = startSketchOn('XY')\n |> circle([15, 0], 5, %)\n |> revolve({ angle: 360, axis: 'y' }, %)", "const part001 = startSketchOn('XY')\n |> startProfileAt([4, 12], %)\n |> line([2, 0], %)\n |> line([0, -6], %)\n |> line([4, -6], %)\n |> line([0, -6], %)\n |> line([-3.75, -4.5], %)\n |> line([0, -5.5], %)\n |> line([-2, 0], %)\n |> close(%)\n |> revolve({ axis: 'y', angle: 180 }, %)", "const part001 = startSketchOn('XY')\n |> startProfileAt([4, 12], %)\n |> line([2, 0], %)\n |> line([0, -6], %)\n |> line([4, -6], %)\n |> line([0, -6], %)\n |> line([-3.75, -4.5], %)\n |> line([0, -5.5], %)\n |> line([-2, 0], %)\n |> close(%)\n |> revolve({ axis: 'y', angle: 180 }, %)\nconst part002 = startSketchOn(part001, 'end')\n |> startProfileAt([4.5, -5], %)\n |> line([0, 5], %)\n |> line([5, 0], %)\n |> line([0, -5], %)\n |> close(%)\n |> extrude(5, %)", "const box = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 20], %)\n |> line([20, 0], %)\n |> line([0, -20], %)\n |> close(%)\n |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n |> circle([10, 10], 4, %)\n |> revolve({ angle: -90, axis: 'y' }, %)", "const box = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 20], %)\n |> line([20, 0], %)\n |> line([0, -20], %, $revolveAxis)\n |> close(%)\n |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n |> circle([10, 10], 4, %)\n |> revolve({\n angle: 90,\n axis: getOppositeEdge(revolveAxis)\n }, %)", "const box = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 20], %)\n |> line([20, 0], %)\n |> line([0, -20], %, $revolveAxis)\n |> close(%)\n |> extrude(20, %)\n\nconst sketch001 = startSketchOn(box, \"END\")\n |> circle([10, 10], 4, %)\n |> revolve({\n angle: 90,\n axis: getOppositeEdge(revolveAxis),\n tolerance: 0.0001\n }, %)", "const sketch001 = startSketchOn('XY')\n |> startProfileAt([10, 0], %)\n |> line([5, -5], %)\n |> line([5, 5], %)\n |> lineTo([profileStartX(%), profileStartY(%)], %)\n |> close(%)\n\nconst part001 = revolve({\n axis: {\n custom: {\n axis: [0.0, 1.0, 0.0],\n origin: [0.0, 0.0, 0.0]\n }\n }\n}, sketch001)" ] }, { "name": "segAng", "summary": "Compute the angle (in degrees) of the provided line segment.", "description": "", "tags": [], "args": [ { "name": "tag", "type": "TagIdentifier", "schema": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([5, 10], %, $seg01)\n |> line([-10, 0], %)\n |> angledLine([segAng(seg01), 10], %)\n |> line([-10, 0], %)\n |> angledLine([segAng(seg01), -15], %)\n |> close(%)\n\nconst example = extrude(4, exampleSketch)" ] }, { "name": "segEndX", "summary": "Compute the ending point of the provided line segment along the 'x' axis.", "description": "", "tags": [], "args": [ { "name": "tag", "type": "TagIdentifier", "schema": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([20, 0], %, $thing)\n |> line([0, 5], %)\n |> line([segEndX(thing), 0], %)\n |> line([-20, 10], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "segEndY", "summary": "Compute the ending point of the provided line segment along the 'y' axis.", "description": "", "tags": [], "args": [ { "name": "tag", "type": "TagIdentifier", "schema": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([20, 0], %)\n |> line([0, 3], %, $thing)\n |> line([-10, 0], %)\n |> line([0, segEndY(thing)], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "segLen", "summary": "Compute the length of the provided line segment.", "description": "", "tags": [], "args": [ { "name": "tag", "type": "TagIdentifier", "schema": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %, $thing)\n |> tangentialArc({ offset: -120, radius: 5 }, %)\n |> angledLine({ angle: -60, length: segLen(thing) }, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "shell", "summary": "Remove volume from a 3-dimensional shape such that a wall of the", "description": "provided thickness remains, taking volume starting at the provided face, leaving it open in that direction.", "tags": [], "args": [ { "name": "data", "type": "ShellData", "schema": { "description": "Data for shells.", "type": "object", "required": [ "faces", "thickness" ], "properties": { "faces": { "description": "The faces you want removed.", "type": "array", "items": { "description": "A tag for a face.", "anyOf": [ { "oneOf": [ { "description": "The start face as in before you extruded. This could also be known as the bottom face. But we do not call it bottom because it would be the top face if you extruded it in the opposite direction or flipped the camera.", "type": "string", "enum": [ "start" ] }, { "description": "The end face after you extruded. This could also be known as the top face. But we do not call it top because it would be the bottom face if you extruded it in the opposite direction or flipped the camera.", "type": "string", "enum": [ "end" ] } ] }, { "description": "A tag for the face.", "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } ] } }, "thickness": { "description": "The thickness of the shell.", "type": "number", "format": "double" } } }, "required": true }, { "name": "extrude_group", "type": "ExtrudeGroup", "schema": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": true } ], "returnValue": { "name": "", "type": "ExtrudeGroup", "schema": { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "$ref": "#/components/schemas/SketchGroup" }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const firstSketch = startSketchOn('XY')\n |> startProfileAt([-12, 12], %)\n |> line([24, 0], %)\n |> line([0, -24], %)\n |> line([-24, 0], %)\n |> close(%)\n |> extrude(6, %)\n\n// Remove the end face for the extrusion.\nshell({ faces: ['end'], thickness: 0.25 }, firstSketch)", "const firstSketch = startSketchOn('-XZ')\n |> startProfileAt([-12, 12], %)\n |> line([24, 0], %)\n |> line([0, -24], %)\n |> line([-24, 0], %)\n |> close(%)\n |> extrude(6, %)\n\n// Remove the start face for the extrusion.\nshell({ faces: ['start'], thickness: 0.25 }, firstSketch)", "const firstSketch = startSketchOn('XY')\n |> startProfileAt([-12, 12], %)\n |> line([24, 0], %)\n |> line([0, -24], %)\n |> line([-24, 0], %, $myTag)\n |> close(%)\n |> extrude(6, %)\n\n// Remove a tagged face for the extrusion.\nshell({ faces: [myTag], thickness: 0.25 }, firstSketch)" ] }, { "name": "sin", "summary": "Compute the sine of a number (in radians).", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle: 50,\n length: 15 / sin(toDegrees(135))\n }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "sqrt", "summary": "Compute the square root of a number.", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 50, length: sqrt(2500) }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "startProfileAt", "summary": "Start a new profile at a given point.", "description": "", "tags": [], "args": [ { "name": "to", "type": "[number]", "schema": { "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "required": true }, { "name": "sketch_surface", "type": "SketchSurface", "schema": { "description": "A sketch group type.", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "$ref": "#/components/schemas/ExtrudeGroup" }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)", "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([10, 10], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)", "const exampleSketch = startSketchOn('-XZ')\n |> startProfileAt([-10, 23], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "startSketchAt", "summary": "Start a new 2-dimensional sketch at a given point on the 'XY' plane.", "description": "", "tags": [], "args": [ { "name": "data", "type": "[number]", "schema": { "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "required": true } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchAt([0, 0])\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)", "const exampleSketch = startSketchAt([10, 10])\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)", "const exampleSketch = startSketchAt([-10, 23])\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "startSketchOn", "summary": "Start a new 2-dimensional sketch on a specific plane or face.", "description": "", "tags": [], "args": [ { "name": "data", "type": "SketchData", "schema": { "description": "Data for start sketch on. You can start a sketch on a plane or an extrude group.", "anyOf": [ { "description": "Data for a plane.", "oneOf": [ { "description": "The XY plane.", "type": "string", "enum": [ "XY" ] }, { "description": "The opposite side of the XY plane.", "type": "string", "enum": [ "-XY" ] }, { "description": "The XZ plane.", "type": "string", "enum": [ "XZ" ] }, { "description": "The opposite side of the XZ plane.", "type": "string", "enum": [ "-XZ" ] }, { "description": "The YZ plane.", "type": "string", "enum": [ "YZ" ] }, { "description": "The opposite side of the YZ plane.", "type": "string", "enum": [ "-YZ" ] }, { "description": "A defined plane.", "type": "object", "required": [ "plane" ], "properties": { "plane": { "type": "object", "required": [ "origin", "xAxis", "yAxis", "zAxis" ], "properties": { "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } }, "additionalProperties": false } ] }, { "description": "An extrude group is a collection of extrude surfaces.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "$ref": "#/components/schemas/ExtrudeGroup" }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } } ] }, "required": true }, { "name": "tag", "type": "FaceTag", "schema": { "description": "A tag for a face.", "anyOf": [ { "oneOf": [ { "description": "The start face as in before you extruded. This could also be known as the bottom face. But we do not call it bottom because it would be the top face if you extruded it in the opposite direction or flipped the camera.", "type": "string", "enum": [ "start" ] }, { "description": "The end face after you extruded. This could also be known as the top face. But we do not call it top because it would be the bottom face if you extruded it in the opposite direction or flipped the camera.", "type": "string", "enum": [ "end" ] } ] }, { "description": "A tag for the face.", "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } ], "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchSurface", "schema": { "description": "A sketch group type.", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "$ref": "#/components/schemas/ExtrudeGroup" }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([0, 10], %)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)\n\nconst exampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([1, 1], %)\n |> line([8, 0], %)\n |> line([0, 8], %)\n |> line([-8, 0], %)\n |> close(%)\n\nconst example002 = extrude(5, exampleSketch002)\n\nconst exampleSketch003 = startSketchOn(example002, 'end')\n |> startProfileAt([2, 2], %)\n |> line([6, 0], %)\n |> line([0, 6], %)\n |> line([-6, 0], %)\n |> close(%)\n\nconst example003 = extrude(5, exampleSketch003)", "const exampleSketch = startSketchOn(\"XY\")\n |> startProfileAt([0, 0], %)\n |> line([10, 0], %)\n |> line([0, 10], %, $sketchingFace)\n |> line([-10, 0], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)\n\nconst exampleSketch002 = startSketchOn(example, sketchingFace)\n |> startProfileAt([1, 1], %)\n |> line([8, 0], %)\n |> line([0, 8], %)\n |> line([-8, 0], %)\n |> close(%, $sketchingFace002)\n\nconst example002 = extrude(10, exampleSketch002)\n\nconst exampleSketch003 = startSketchOn(example002, sketchingFace002)\n |> startProfileAt([-8, 12], %)\n |> line([0, 6], %)\n |> line([6, 0], %)\n |> line([0, -6], %)\n |> close(%)\n\nconst example003 = extrude(5, exampleSketch003)", "const exampleSketch = startSketchOn('XY')\n |> startProfileAt([4, 12], %)\n |> line([2, 0], %)\n |> line([0, -6], %)\n |> line([4, -6], %)\n |> line([0, -6], %)\n |> line([-3.75, -4.5], %)\n |> line([0, -5.5], %)\n |> line([-2, 0], %)\n |> close(%)\n\nconst example = revolve({ axis: 'y', angle: 180 }, exampleSketch)\n\nconst exampleSketch002 = startSketchOn(example, 'end')\n |> startProfileAt([4.5, -5], %)\n |> line([0, 5], %)\n |> line([5, 0], %)\n |> line([0, -5], %)\n |> close(%)\n\nconst example002 = extrude(5, exampleSketch002)", "const a1 = startSketchOn({\n plane: {\n origin: { x: 0, y: 0, z: 0 },\n xAxis: { x: 1, y: 0, z: 0 },\n yAxis: { x: 0, y: 1, z: 0 },\n zAxis: { x: 0, y: 0, z: 1 }\n }\n })\n |> startProfileAt([0, 0], %)\n |> line([100.0, 0], %)\n |> yLine(-100.0, %)\n |> xLine(-100.0, %)\n |> yLine(100.0, %)\n |> close(%)\n |> extrude(3.14, %)" ] }, { "name": "tan", "summary": "Compute the tangent of a number (in radians).", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 50, length: 50 * tan(1 / 2) }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "tangentialArc", "summary": "Starting at the current sketch's origin, draw a curved line segment along", "description": "some part of an imaginary circle of the specified radius.\nThe arc is constructed such that the last line segment is placed tangent to the imaginary circle of the specified radius. The resulting arc is the segment of the imaginary circle from that tangent point for 'offset' degrees along the imaginary circle.", "tags": [], "args": [ { "name": "data", "type": "TangentialArcData", "schema": { "description": "Data to draw a tangential arc.", "anyOf": [ { "type": "object", "required": [ "offset", "radius" ], "properties": { "offset": { "description": "Offset of the arc, in degrees.", "type": "number", "format": "double" }, "radius": { "description": "Radius of the arc. Not to be confused with Raiders of the Lost Ark.", "type": "number", "format": "double" } } }, { "description": "A point where the arc should end. Must lie in the same plane as the current path pen position. Must not be colinear with current path pen position.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } ] }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %)\n |> tangentialArc({ radius: 10, offset: -120 }, %)\n |> angledLine({ angle: -60, length: 10 }, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "tangentialArcTo", "summary": "Starting at the current sketch's origin, draw a curved line segment along", "description": "some part of an imaginary circle until it reaches the desired (x, y) coordinates.", "tags": [], "args": [ { "name": "to", "type": "[number]", "schema": { "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 60, length: 10 }, %)\n |> tangentialArcTo([15, 15], %)\n |> line([10, -15], %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "tau", "summary": "Return the value of `tau`. The full circle constant (τ). Equal to 2π.", "description": "", "tags": [ "math" ], "args": [], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 50, length: 10 * tau() }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "toDegrees", "summary": "Converts a number from radians to degrees.", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle: 50,\n length: 70 * cos(toDegrees(pi() / 4))\n }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "toRadians", "summary": "Converts a number from degrees to radians.", "description": "", "tags": [ "math" ], "args": [ { "name": "num", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true } ], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({\n angle: 50,\n length: 70 * cos(toRadians(45))\n }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "xLine", "summary": "Draw a line relative to the current origin to a specified distance away", "description": "from the current position along the 'x' axis.", "tags": [], "args": [ { "name": "length", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> xLine(15, %)\n |> angledLine({ angle: 80, length: 15 }, %)\n |> line([8, -10], %)\n |> xLine(10, %)\n |> angledLine({ angle: 120, length: 30 }, %)\n |> xLine(-15, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "xLineTo", "summary": "Draw a line parallel to the X axis, that ends at the given X.", "description": "E.g. if the previous line ended at (1, 1), then xLineTo(4) draws a line from (1, 1) to (4, 1)", "tags": [], "args": [ { "name": "to", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> xLineTo(15, %)\n |> angledLine({ angle: 80, length: 15 }, %)\n |> line([8, -10], %)\n |> xLineTo(40, %)\n |> angledLine({ angle: 135, length: 30 }, %)\n |> xLineTo(10, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "yLine", "summary": "Draw a line relative to the current origin to a specified distance away", "description": "from the current position along the 'y' axis.", "tags": [], "args": [ { "name": "length", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn('XZ')\n |> startProfileAt([0, 0], %)\n |> yLine(15, %)\n |> angledLine({ angle: 30, length: 15 }, %)\n |> line([8, -10], %)\n |> yLine(-5, %)\n |> close(%)\n\nconst example = extrude(10, exampleSketch)" ] }, { "name": "yLineTo", "summary": "Draw a line parallel to the Y axis, that ends at the given Y.", "description": "E.g. if the previous line ended at (1, 1), then yLineTo(4) draws a line from (1, 1) to (1, 4)", "tags": [], "args": [ { "name": "to", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, { "name": "sketch_group", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, { "name": "tag", "type": "TagDeclarator", "schema": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "required": false } ], "returnValue": { "name": "", "type": "SketchGroup", "schema": { "description": "A sketch group is a collection of paths.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "oneOf": [ { "description": "A plane.", "type": "object", "required": [ "__meta", "id", "origin", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the plane.", "type": "string", "format": "uuid" }, "origin": { "description": "Origin of the plane.", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "type": { "type": "string", "enum": [ "plane" ] }, "value": { "description": "Type for a plane.", "oneOf": [ { "type": "string", "enum": [ "XY", "XZ", "YZ" ] }, { "description": "A custom plane.", "type": "string", "enum": [ "Custom" ] } ] }, "xAxis": { "description": "What should the plane’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the plane’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } }, { "description": "A face.", "type": "object", "required": [ "__meta", "extrudeGroup", "id", "type", "value", "xAxis", "yAxis", "zAxis" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "extrudeGroup": { "description": "The extrude group the face is on.", "type": "object", "required": [ "__meta", "height", "id", "sketchGroup", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "edgeCuts": { "description": "Chamfers or fillets on this extrude group.", "type": "array", "items": { "description": "A fillet or a chamfer.", "oneOf": [ { "description": "A fillet.", "type": "object", "required": [ "edgeId", "id", "radius", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to fillet.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this fillet.", "type": "string", "format": "uuid" }, "radius": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } }, { "description": "A chamfer.", "type": "object", "required": [ "edgeId", "id", "length", "type" ], "properties": { "edgeId": { "description": "The engine id of the edge to chamfer.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the engine command that called this chamfer.", "type": "string", "format": "uuid" }, "length": { "type": "number", "format": "double" }, "tag": { "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } } ] } }, "endCapId": { "description": "The id of the extrusion end cap", "type": "string", "format": "uuid", "nullable": true }, "height": { "description": "The height of the extrude group.", "type": "number", "format": "double" }, "id": { "description": "The id of the extrude group.", "type": "string", "format": "uuid" }, "sketchGroup": { "description": "The sketch group.", "type": "object", "required": [ "__meta", "id", "on", "start", "value" ], "properties": { "__meta": { "description": "Metadata.", "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "id": { "description": "The id of the sketch group (this will change when the engine's reference to it changes.", "type": "string", "format": "uuid" }, "on": { "description": "What the sketch is on (can be a plane or a face).", "$ref": "#/components/schemas/SketchSurface" }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "startCapId": { "description": "The id of the extrusion start cap", "type": "string", "format": "uuid", "nullable": true }, "value": { "description": "The extrude surfaces.", "type": "array", "items": { "description": "An extrude surface.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ] } } } }, "id": { "description": "The id of the face.", "type": "string", "format": "uuid" }, "type": { "type": "string", "enum": [ "face" ] }, "value": { "description": "The tag of the face.", "type": "string" }, "xAxis": { "description": "What should the face’s X axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "yAxis": { "description": "What should the face’s Y axis be?", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } }, "zAxis": { "description": "The z-axis (normal).", "type": "object", "required": [ "x", "y", "z" ], "properties": { "x": { "type": "number", "format": "double" }, "y": { "type": "number", "format": "double" }, "z": { "type": "number", "format": "double" } } } } } ] }, "start": { "description": "The starting path.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } } }, "tags": { "description": "Tag identifiers that have been declared in this sketch group.", "type": "object", "additionalProperties": { "type": "object", "required": [ "__meta", "value" ], "properties": { "__meta": { "type": "array", "items": { "description": "Metadata.", "type": "object", "required": [ "sourceRange" ], "properties": { "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } } }, "info": { "description": "Engine information for a tag.", "type": "object", "required": [ "id", "sketchGroup" ], "properties": { "id": { "description": "The id of the tagged object.", "type": "string", "format": "uuid" }, "path": { "description": "The path the tag is on.", "type": "object", "required": [ "__geoMeta", "from", "to" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 } }, "nullable": true }, "sketchGroup": { "description": "The sketch group the tag is on.", "type": "string", "format": "uuid" }, "surface": { "description": "The surface information for the tag.", "oneOf": [ { "description": "An extrude plane.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudePlane" ] } } }, { "description": "An extruded arc.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The face id for the extrude plane.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "extrudeArc" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the chamfer surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "chamfer" ] } } }, { "description": "Geometry metadata.", "type": "object", "required": [ "faceId", "id", "sourceRange", "type" ], "properties": { "faceId": { "description": "The id for the fillet surface.", "type": "string", "format": "uuid" }, "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "type": { "type": "string", "enum": [ "fillet" ] } } } ], "nullable": true } }, "nullable": true }, "value": { "type": "string" } } } }, "value": { "description": "The paths in the sketch group.", "type": "array", "items": { "description": "A path.", "oneOf": [ { "description": "A path that goes to a point.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "ToPoint" ] } } }, { "description": "A arc that is tangential to the last path segment that goes to a point", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArcTo" ] } } }, { "description": "A arc that is tangential to the last path segment", "type": "object", "required": [ "__geoMeta", "ccw", "center", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "ccw": { "description": "arc's direction", "type": "boolean" }, "center": { "description": "the arc's center", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "TangentialArc" ] } } }, { "description": "A path that is horizontal.", "type": "object", "required": [ "__geoMeta", "from", "to", "type", "x" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Horizontal" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double" } } }, { "description": "An angled line to.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "AngledLineTo" ] }, "x": { "description": "The x coordinate.", "type": "number", "format": "double", "nullable": true }, "y": { "description": "The y coordinate.", "type": "number", "format": "double", "nullable": true } } }, { "description": "A base path.", "type": "object", "required": [ "__geoMeta", "from", "to", "type" ], "properties": { "__geoMeta": { "description": "Metadata.", "type": "object", "required": [ "id", "sourceRange" ], "properties": { "id": { "description": "The id of the geometry.", "type": "string", "format": "uuid" }, "sourceRange": { "description": "The source range.", "type": "array", "items": { "type": "integer", "format": "uint", "minimum": 0.0 }, "maxItems": 2, "minItems": 2 } } }, "from": { "description": "The from point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "tag": { "description": "The tag of the path.", "type": "object", "required": [ "end", "start", "value" ], "properties": { "digest": { "type": "array", "items": { "type": "integer", "format": "uint8", "minimum": 0.0 }, "maxItems": 32, "minItems": 32, "nullable": true }, "end": { "type": "integer", "format": "uint", "minimum": 0.0 }, "start": { "type": "integer", "format": "uint", "minimum": 0.0 }, "value": { "type": "string" } }, "nullable": true }, "to": { "description": "The to point.", "type": "array", "items": { "type": "number", "format": "double" }, "maxItems": 2, "minItems": 2 }, "type": { "type": "string", "enum": [ "Base" ] } } } ] } } } }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const exampleSketch = startSketchOn(\"XZ\")\n |> startProfileAt([0, 0], %)\n |> angledLine({ angle: 50, length: 45 }, %)\n |> yLineTo(0, %)\n |> close(%)\n\nconst example = extrude(5, exampleSketch)" ] }, { "name": "yd", "summary": "Yards conversion factor for current projects units.", "description": "No matter what units the current project uses, this function will always return the conversion factor to yards.\nFor example, if the current project uses inches, this function will return `36`. If the current project uses millimeters, this function will return `914.4`. If the current project uses yards, this function will return `1`.\n**Caution**: This function is only intended to be used when you absolutely MUST have different units in your code than the project settings. Otherwise, it is a bad pattern to use this function.\nWe merely provide these functions for convenience and readability, as `10 * yd()` is more readable that your intent is \"I want 10 yards\" than `10 * 914.4`, if the project settings are in millimeters.", "tags": [ "units" ], "args": [], "returnValue": { "name": "", "type": "number", "schema": { "type": "number", "format": "double" }, "required": true }, "unpublished": false, "deprecated": false, "examples": [ "const totalWidth = 10 * yd()" ] } ]