remove getExtrudeWallTransform (#2342)
* remove getExtrudeWallTransform Signed-off-by: Jess Frazelle <github@jessfraz.com> * docs Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
File diff suppressed because one or more lines are too long
@ -31,7 +31,6 @@ layout: manual
|
|||||||
* [`fillet`](kcl/fillet)
|
* [`fillet`](kcl/fillet)
|
||||||
* [`floor`](kcl/floor)
|
* [`floor`](kcl/floor)
|
||||||
* [`getEdge`](kcl/getEdge)
|
* [`getEdge`](kcl/getEdge)
|
||||||
* [`getExtrudeWallTransform`](kcl/getExtrudeWallTransform)
|
|
||||||
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
|
* [`getNextAdjacentEdge`](kcl/getNextAdjacentEdge)
|
||||||
* [`getOppositeEdge`](kcl/getOppositeEdge)
|
* [`getOppositeEdge`](kcl/getOppositeEdge)
|
||||||
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)
|
* [`getPreviousAdjacentEdge`](kcl/getPreviousAdjacentEdge)
|
||||||
|
@ -28338,839 +28338,6 @@
|
|||||||
"const box = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %)\n |> line([10, 0], %)\n |> line([0, -10], %, 'revolveAxis')\n |> close(%)\n |> extrude(10, %)\n\nconst sketch001 = startSketchOn('XY')\n |> startProfileAt([0, -10], %)\n |> line([0, -10], %)\n |> line([2, 0], %)\n |> line([0, 10], %)\n |> close(%)\n |> revolve({\n axis: getEdge('revolveAxis', box),\n angle: 90\n }, %)"
|
"const box = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %)\n |> line([10, 0], %)\n |> line([0, -10], %, 'revolveAxis')\n |> close(%)\n |> extrude(10, %)\n\nconst sketch001 = startSketchOn('XY')\n |> startProfileAt([0, -10], %)\n |> line([0, -10], %)\n |> line([2, 0], %)\n |> line([0, 10], %)\n |> close(%)\n |> revolve({\n axis: getEdge('revolveAxis', box),\n angle: 90\n }, %)"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "getExtrudeWallTransform",
|
|
||||||
"summary": "Returns the extrude wall transform.",
|
|
||||||
"description": "",
|
|
||||||
"tags": [],
|
|
||||||
"args": [
|
|
||||||
{
|
|
||||||
"name": "surface_name",
|
|
||||||
"type": "string",
|
|
||||||
"schema": {
|
|
||||||
"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",
|
|
||||||
"position",
|
|
||||||
"rotation",
|
|
||||||
"sketchGroupValues",
|
|
||||||
"value",
|
|
||||||
"xAxis",
|
|
||||||
"yAxis",
|
|
||||||
"zAxis"
|
|
||||||
],
|
|
||||||
"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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"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"
|
|
||||||
},
|
|
||||||
"position": {
|
|
||||||
"description": "The position of the extrude group.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 3,
|
|
||||||
"minItems": 3
|
|
||||||
},
|
|
||||||
"rotation": {
|
|
||||||
"description": "The rotation of the extrude group.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 4,
|
|
||||||
"minItems": 4
|
|
||||||
},
|
|
||||||
"sketchGroupValues": {
|
|
||||||
"description": "The sketch group paths.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"description": "A path.",
|
|
||||||
"oneOf": [
|
|
||||||
{
|
|
||||||
"description": "A path that goes to a point.",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"__geoMeta",
|
|
||||||
"from",
|
|
||||||
"name",
|
|
||||||
"to",
|
|
||||||
"type"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"__geoMeta": {
|
|
||||||
"description": "Metadata.",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"id",
|
|
||||||
"sourceRange"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"description": "The id of the geometry.",
|
|
||||||
"type": "string",
|
|
||||||
"format": "uuid"
|
|
||||||
},
|
|
||||||
"sourceRange": {
|
|
||||||
"description": "The source range.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "integer",
|
|
||||||
"format": "uint",
|
|
||||||
"minimum": 0.0
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"from": {
|
|
||||||
"description": "The from point.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"description": "The name of the path.",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"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",
|
|
||||||
"name",
|
|
||||||
"to",
|
|
||||||
"type"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"__geoMeta": {
|
|
||||||
"description": "Metadata.",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"id",
|
|
||||||
"sourceRange"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"description": "The id of the geometry.",
|
|
||||||
"type": "string",
|
|
||||||
"format": "uuid"
|
|
||||||
},
|
|
||||||
"sourceRange": {
|
|
||||||
"description": "The source range.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "integer",
|
|
||||||
"format": "uint",
|
|
||||||
"minimum": 0.0
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ccw": {
|
|
||||||
"description": "arc's direction",
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"center": {
|
|
||||||
"description": "the arc's center",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
},
|
|
||||||
"from": {
|
|
||||||
"description": "The from point.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"description": "The name of the path.",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"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",
|
|
||||||
"from",
|
|
||||||
"name",
|
|
||||||
"to",
|
|
||||||
"type"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"__geoMeta": {
|
|
||||||
"description": "Metadata.",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"id",
|
|
||||||
"sourceRange"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"description": "The id of the geometry.",
|
|
||||||
"type": "string",
|
|
||||||
"format": "uuid"
|
|
||||||
},
|
|
||||||
"sourceRange": {
|
|
||||||
"description": "The source range.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "integer",
|
|
||||||
"format": "uint",
|
|
||||||
"minimum": 0.0
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"from": {
|
|
||||||
"description": "The from point.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"description": "The name of the path.",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"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",
|
|
||||||
"name",
|
|
||||||
"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
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"description": "The name of the path.",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"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",
|
|
||||||
"name",
|
|
||||||
"to",
|
|
||||||
"type"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"__geoMeta": {
|
|
||||||
"description": "Metadata.",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"id",
|
|
||||||
"sourceRange"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"description": "The id of the geometry.",
|
|
||||||
"type": "string",
|
|
||||||
"format": "uuid"
|
|
||||||
},
|
|
||||||
"sourceRange": {
|
|
||||||
"description": "The source range.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "integer",
|
|
||||||
"format": "uint",
|
|
||||||
"minimum": 0.0
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"from": {
|
|
||||||
"description": "The from point.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"description": "The name of the path.",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"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",
|
|
||||||
"name",
|
|
||||||
"to",
|
|
||||||
"type"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"__geoMeta": {
|
|
||||||
"description": "Metadata.",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"id",
|
|
||||||
"sourceRange"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"id": {
|
|
||||||
"description": "The id of the geometry.",
|
|
||||||
"type": "string",
|
|
||||||
"format": "uuid"
|
|
||||||
},
|
|
||||||
"sourceRange": {
|
|
||||||
"description": "The source range.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "integer",
|
|
||||||
"format": "uint",
|
|
||||||
"minimum": 0.0
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"from": {
|
|
||||||
"description": "The from point.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"description": "The name of the path.",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"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",
|
|
||||||
"name",
|
|
||||||
"position",
|
|
||||||
"rotation",
|
|
||||||
"sourceRange",
|
|
||||||
"type"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"faceId": {
|
|
||||||
"description": "The face id for the extrude plane.",
|
|
||||||
"type": "string",
|
|
||||||
"format": "uuid"
|
|
||||||
},
|
|
||||||
"id": {
|
|
||||||
"description": "The id of the geometry.",
|
|
||||||
"type": "string",
|
|
||||||
"format": "uuid"
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"description": "The name.",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"position": {
|
|
||||||
"description": "The position.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 3,
|
|
||||||
"minItems": 3
|
|
||||||
},
|
|
||||||
"rotation": {
|
|
||||||
"description": "The rotation.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 4,
|
|
||||||
"minItems": 4
|
|
||||||
},
|
|
||||||
"sourceRange": {
|
|
||||||
"description": "The source range.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "integer",
|
|
||||||
"format": "uint",
|
|
||||||
"minimum": 0.0
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"extrudePlane"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"description": "An extruded arc.",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"faceId",
|
|
||||||
"id",
|
|
||||||
"name",
|
|
||||||
"position",
|
|
||||||
"rotation",
|
|
||||||
"sourceRange",
|
|
||||||
"type"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"faceId": {
|
|
||||||
"description": "The face id for the extrude plane.",
|
|
||||||
"type": "string",
|
|
||||||
"format": "uuid"
|
|
||||||
},
|
|
||||||
"id": {
|
|
||||||
"description": "The id of the geometry.",
|
|
||||||
"type": "string",
|
|
||||||
"format": "uuid"
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"description": "The name.",
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"position": {
|
|
||||||
"description": "The position.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 3,
|
|
||||||
"minItems": 3
|
|
||||||
},
|
|
||||||
"rotation": {
|
|
||||||
"description": "The rotation.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 4,
|
|
||||||
"minItems": 4
|
|
||||||
},
|
|
||||||
"sourceRange": {
|
|
||||||
"description": "The source range.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "integer",
|
|
||||||
"format": "uint",
|
|
||||||
"minimum": 0.0
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
},
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"extrudeArc"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"xAxis": {
|
|
||||||
"description": "The x-axis of the extrude group base plane in the 3D space",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"x",
|
|
||||||
"y",
|
|
||||||
"z"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"x": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"yAxis": {
|
|
||||||
"description": "The y-axis of the extrude group base plane in the 3D space",
|
|
||||||
"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 of the extrude group base plane in the 3D space",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"x",
|
|
||||||
"y",
|
|
||||||
"z"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"x": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"y": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"z": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"returnValue": {
|
|
||||||
"name": "",
|
|
||||||
"type": "ExtrudeTransform",
|
|
||||||
"schema": {
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"__meta",
|
|
||||||
"position",
|
|
||||||
"rotation"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"__meta": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"description": "Metadata.",
|
|
||||||
"type": "object",
|
|
||||||
"required": [
|
|
||||||
"sourceRange"
|
|
||||||
],
|
|
||||||
"properties": {
|
|
||||||
"sourceRange": {
|
|
||||||
"description": "The source range.",
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "integer",
|
|
||||||
"format": "uint",
|
|
||||||
"minimum": 0.0
|
|
||||||
},
|
|
||||||
"maxItems": 2,
|
|
||||||
"minItems": 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"position": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 3,
|
|
||||||
"minItems": 3
|
|
||||||
},
|
|
||||||
"rotation": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "number",
|
|
||||||
"format": "double"
|
|
||||||
},
|
|
||||||
"maxItems": 4,
|
|
||||||
"minItems": 4
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": true
|
|
||||||
},
|
|
||||||
"unpublished": false,
|
|
||||||
"deprecated": false,
|
|
||||||
"examples": [
|
|
||||||
"const box = startSketchOn('XY')\n |> startProfileAt([0, 0], %)\n |> line([0, 10], %)\n |> line([10, 0], %)\n |> line([0, -10], %, \"surface\")\n |> close(%)\n |> extrude(5, %)\n\nconst transform = getExtrudeWallTransform('surface', box)"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "getNextAdjacentEdge",
|
"name": "getNextAdjacentEdge",
|
||||||
"summary": "Get the next adjacent edge to the edge given.",
|
"summary": "Get the next adjacent edge to the edge given.",
|
||||||
|
@ -144,8 +144,6 @@ pub enum MemoryItem {
|
|||||||
},
|
},
|
||||||
ImportedGeometry(ImportedGeometry),
|
ImportedGeometry(ImportedGeometry),
|
||||||
#[ts(skip)]
|
#[ts(skip)]
|
||||||
ExtrudeTransform(Box<ExtrudeTransform>),
|
|
||||||
#[ts(skip)]
|
|
||||||
Function {
|
Function {
|
||||||
#[serde(skip)]
|
#[serde(skip)]
|
||||||
func: Option<MemoryFunction>,
|
func: Option<MemoryFunction>,
|
||||||
@ -300,16 +298,6 @@ pub struct UserVal {
|
|||||||
pub meta: Vec<Metadata>,
|
pub meta: Vec<Metadata>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
|
|
||||||
#[ts(export)]
|
|
||||||
#[serde(tag = "type", rename_all = "camelCase")]
|
|
||||||
pub struct ExtrudeTransform {
|
|
||||||
pub position: Position,
|
|
||||||
pub rotation: Rotation,
|
|
||||||
#[serde(rename = "__meta")]
|
|
||||||
pub meta: Vec<Metadata>,
|
|
||||||
}
|
|
||||||
|
|
||||||
pub type MemoryFunction =
|
pub type MemoryFunction =
|
||||||
fn(
|
fn(
|
||||||
s: Vec<MemoryItem>,
|
s: Vec<MemoryItem>,
|
||||||
@ -348,7 +336,6 @@ impl From<MemoryItem> for Vec<SourceRange> {
|
|||||||
.flat_map(|eg| eg.meta.iter().map(|m| m.source_range))
|
.flat_map(|eg| eg.meta.iter().map(|m| m.source_range))
|
||||||
.collect(),
|
.collect(),
|
||||||
MemoryItem::ImportedGeometry(i) => i.meta.iter().map(|m| m.source_range).collect(),
|
MemoryItem::ImportedGeometry(i) => i.meta.iter().map(|m| m.source_range).collect(),
|
||||||
MemoryItem::ExtrudeTransform(e) => e.meta.iter().map(|m| m.source_range).collect(),
|
|
||||||
MemoryItem::Function { meta, .. } => meta.iter().map(|m| m.source_range).collect(),
|
MemoryItem::Function { meta, .. } => meta.iter().map(|m| m.source_range).collect(),
|
||||||
MemoryItem::Plane(p) => p.meta.iter().map(|m| m.source_range).collect(),
|
MemoryItem::Plane(p) => p.meta.iter().map(|m| m.source_range).collect(),
|
||||||
MemoryItem::Face(f) => f.meta.iter().map(|m| m.source_range).collect(),
|
MemoryItem::Face(f) => f.meta.iter().map(|m| m.source_range).collect(),
|
||||||
|
@ -8,8 +8,8 @@ use uuid::Uuid;
|
|||||||
use crate::{
|
use crate::{
|
||||||
errors::{KclError, KclErrorDetails},
|
errors::{KclError, KclErrorDetails},
|
||||||
executor::{
|
executor::{
|
||||||
ExtrudeGroup, ExtrudeGroupSet, ExtrudeSurface, ExtrudeTransform, GeoMeta, MemoryItem, Path, SketchGroup,
|
ExtrudeGroup, ExtrudeGroupSet, ExtrudeSurface, GeoMeta, MemoryItem, Path, SketchGroup, SketchGroupSet,
|
||||||
SketchGroupSet, SketchSurface,
|
SketchSurface,
|
||||||
},
|
},
|
||||||
std::Args,
|
std::Args,
|
||||||
};
|
};
|
||||||
@ -224,48 +224,3 @@ pub(crate) async fn do_post_extrude(
|
|||||||
meta: sketch_group.meta,
|
meta: sketch_group.meta,
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the extrude wall transform.
|
|
||||||
pub async fn get_extrude_wall_transform(args: Args) -> Result<MemoryItem, KclError> {
|
|
||||||
let (surface_name, extrude_group) = args.get_path_name_extrude_group()?;
|
|
||||||
let result = inner_get_extrude_wall_transform(&surface_name, *extrude_group, args)?;
|
|
||||||
Ok(MemoryItem::ExtrudeTransform(result))
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns the extrude wall transform.
|
|
||||||
///
|
|
||||||
/// ```no_run
|
|
||||||
/// const box = startSketchOn('XY')
|
|
||||||
/// |> startProfileAt([0, 0], %)
|
|
||||||
/// |> line([0, 10], %)
|
|
||||||
/// |> line([10, 0], %)
|
|
||||||
/// |> line([0, -10], %, "surface")
|
|
||||||
/// |> close(%)
|
|
||||||
/// |> extrude(5, %)
|
|
||||||
///
|
|
||||||
/// const transform = getExtrudeWallTransform('surface', box)
|
|
||||||
/// ```
|
|
||||||
#[stdlib {
|
|
||||||
name = "getExtrudeWallTransform"
|
|
||||||
}]
|
|
||||||
fn inner_get_extrude_wall_transform(
|
|
||||||
surface_name: &str,
|
|
||||||
extrude_group: ExtrudeGroup,
|
|
||||||
args: Args,
|
|
||||||
) -> Result<Box<ExtrudeTransform>, KclError> {
|
|
||||||
let surface = extrude_group.get_path_by_name(surface_name).ok_or_else(|| {
|
|
||||||
KclError::Type(KclErrorDetails {
|
|
||||||
message: format!(
|
|
||||||
"Expected a surface name that exists in the given ExtrudeGroup, found `{}`",
|
|
||||||
surface_name
|
|
||||||
),
|
|
||||||
source_ranges: vec![args.source_range],
|
|
||||||
})
|
|
||||||
})?;
|
|
||||||
|
|
||||||
Ok(Box::new(ExtrudeTransform {
|
|
||||||
position: surface.get_position(),
|
|
||||||
rotation: surface.get_rotation(),
|
|
||||||
meta: extrude_group.meta,
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
|
@ -44,7 +44,6 @@ lazy_static! {
|
|||||||
Box::new(LegAngX),
|
Box::new(LegAngX),
|
||||||
Box::new(LegAngY),
|
Box::new(LegAngY),
|
||||||
Box::new(crate::std::extrude::Extrude),
|
Box::new(crate::std::extrude::Extrude),
|
||||||
Box::new(crate::std::extrude::GetExtrudeWallTransform),
|
|
||||||
Box::new(crate::std::segment::SegEndX),
|
Box::new(crate::std::segment::SegEndX),
|
||||||
Box::new(crate::std::segment::SegEndY),
|
Box::new(crate::std::segment::SegEndY),
|
||||||
Box::new(crate::std::segment::LastSegX),
|
Box::new(crate::std::segment::LastSegX),
|
||||||
@ -906,54 +905,6 @@ impl Args {
|
|||||||
|
|
||||||
Ok((number, sketch_set))
|
Ok((number, sketch_set))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_path_name_extrude_group(&self) -> Result<(String, Box<ExtrudeGroup>), KclError> {
|
|
||||||
// Iterate over our args, the first argument should be a UserVal with a string value.
|
|
||||||
// The second argument should be a ExtrudeGroup.
|
|
||||||
let first_value = self
|
|
||||||
.args
|
|
||||||
.first()
|
|
||||||
.ok_or_else(|| {
|
|
||||||
KclError::Type(KclErrorDetails {
|
|
||||||
message: format!("Expected a string as the first argument, found `{:?}`", self.args),
|
|
||||||
source_ranges: vec![self.source_range],
|
|
||||||
})
|
|
||||||
})?
|
|
||||||
.get_json_value()?;
|
|
||||||
|
|
||||||
let path_name = if let serde_json::Value::String(s) = first_value {
|
|
||||||
s.to_string()
|
|
||||||
} else {
|
|
||||||
return Err(KclError::Type(KclErrorDetails {
|
|
||||||
message: format!("Expected a string as the first argument, found `{:?}`", self.args),
|
|
||||||
source_ranges: vec![self.source_range],
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
|
|
||||||
let second_value = self.args.get(1).ok_or_else(|| {
|
|
||||||
KclError::Type(KclErrorDetails {
|
|
||||||
message: format!(
|
|
||||||
"Expected a ExtrudeGroup as the second argument, found `{:?}`",
|
|
||||||
self.args
|
|
||||||
),
|
|
||||||
source_ranges: vec![self.source_range],
|
|
||||||
})
|
|
||||||
})?;
|
|
||||||
|
|
||||||
let extrude_group = if let MemoryItem::ExtrudeGroup(sg) = second_value {
|
|
||||||
sg.clone()
|
|
||||||
} else {
|
|
||||||
return Err(KclError::Type(KclErrorDetails {
|
|
||||||
message: format!(
|
|
||||||
"Expected a ExtrudeGroup as the second argument, found `{:?}`",
|
|
||||||
self.args
|
|
||||||
),
|
|
||||||
source_ranges: vec![self.source_range],
|
|
||||||
}));
|
|
||||||
};
|
|
||||||
|
|
||||||
Ok((path_name, extrude_group))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the length of the given leg.
|
/// Returns the length of the given leg.
|
||||||
|
Reference in New Issue
Block a user