Sketch on arc error (#1495)
* add error for sketch on arc Signed-off-by: Jess Frazelle <github@jessfraz.com> * fixes Signed-off-by: Jess Frazelle <github@jessfraz.com> * generate std lib Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
This commit is contained in:
4188
docs/kcl/std.json
4188
docs/kcl/std.json
File diff suppressed because it is too large
Load Diff
534
docs/kcl/std.md
534
docs/kcl/std.md
@ -221,6 +221,15 @@ angleToMatchLengthX(segment_name: string, to: number, sketch_group: SketchGroup)
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -395,6 +404,15 @@ angleToMatchLengthY(segment_name: string, to: number, sketch_group: SketchGroup)
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -579,6 +597,15 @@ angledLine(data: AngledLineData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -735,6 +762,15 @@ angledLine(data: AngledLineData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -915,6 +951,15 @@ angledLineOfXLength(data: AngledLineData, sketch_group: SketchGroup) -> SketchGr
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -1071,6 +1116,15 @@ angledLineOfXLength(data: AngledLineData, sketch_group: SketchGroup) -> SketchGr
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -1251,6 +1305,15 @@ angledLineOfYLength(data: AngledLineData, sketch_group: SketchGroup) -> SketchGr
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -1407,6 +1470,15 @@ angledLineOfYLength(data: AngledLineData, sketch_group: SketchGroup) -> SketchGr
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -1588,6 +1660,15 @@ angledLineThatIntersects(data: AngledLineThatIntersectsData, sketch_group: Sketc
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -1744,6 +1825,15 @@ angledLineThatIntersects(data: AngledLineThatIntersectsData, sketch_group: Sketc
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -1924,6 +2014,15 @@ angledLineToX(data: AngledLineToData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -2080,6 +2179,15 @@ angledLineToX(data: AngledLineToData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -2260,6 +2368,15 @@ angledLineToY(data: AngledLineToData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -2416,6 +2533,15 @@ angledLineToY(data: AngledLineToData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -2623,6 +2749,15 @@ arc(data: ArcData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -2779,6 +2914,15 @@ arc(data: ArcData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -3008,6 +3152,15 @@ bezierCurve(data: BezierData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -3164,6 +3317,15 @@ bezierCurve(data: BezierData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -3352,6 +3514,15 @@ close(sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -3508,6 +3679,15 @@ close(sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -3716,6 +3896,15 @@ extrude(length: number, sketch_group: SketchGroup) -> ExtrudeGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -3802,6 +3991,21 @@ extrude(length: number, sketch_group: SketchGroup) -> ExtrudeGroup
|
|||||||
// The source range.
|
// The source range.
|
||||||
sourceRange: [number, number],
|
sourceRange: [number, number],
|
||||||
type: "extrudePlane",
|
type: "extrudePlane",
|
||||||
|
} |
|
||||||
|
{
|
||||||
|
// The face id for the extrude plane.
|
||||||
|
faceId: uuid,
|
||||||
|
// The id of the geometry.
|
||||||
|
id: uuid,
|
||||||
|
// The name.
|
||||||
|
name: string,
|
||||||
|
// The position.
|
||||||
|
position: [number, number, number],
|
||||||
|
// The rotation.
|
||||||
|
rotation: [number, number, number, number],
|
||||||
|
// The source range.
|
||||||
|
sourceRange: [number, number],
|
||||||
|
type: "extrudeArc",
|
||||||
}],
|
}],
|
||||||
// The x-axis of the extrude group base plane in the 3D space
|
// The x-axis of the extrude group base plane in the 3D space
|
||||||
xAxis: {
|
xAxis: {
|
||||||
@ -3889,6 +4093,21 @@ getExtrudeWallTransform(surface_name: string, extrude_group: ExtrudeGroup) -> Ex
|
|||||||
// The source range.
|
// The source range.
|
||||||
sourceRange: [number, number],
|
sourceRange: [number, number],
|
||||||
type: "extrudePlane",
|
type: "extrudePlane",
|
||||||
|
} |
|
||||||
|
{
|
||||||
|
// The face id for the extrude plane.
|
||||||
|
faceId: uuid,
|
||||||
|
// The id of the geometry.
|
||||||
|
id: uuid,
|
||||||
|
// The name.
|
||||||
|
name: string,
|
||||||
|
// The position.
|
||||||
|
position: [number, number, number],
|
||||||
|
// The rotation.
|
||||||
|
rotation: [number, number, number, number],
|
||||||
|
// The source range.
|
||||||
|
sourceRange: [number, number],
|
||||||
|
type: "extrudeArc",
|
||||||
}],
|
}],
|
||||||
// The x-axis of the extrude group base plane in the 3D space
|
// The x-axis of the extrude group base plane in the 3D space
|
||||||
xAxis: {
|
xAxis: {
|
||||||
@ -4036,6 +4255,15 @@ hole(hole_sketch_group: SketchGroupSet, sketch_group: SketchGroup) -> SketchGrou
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -4192,6 +4420,15 @@ hole(hole_sketch_group: SketchGroupSet, sketch_group: SketchGroup) -> SketchGrou
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -4348,6 +4585,15 @@ hole(hole_sketch_group: SketchGroupSet, sketch_group: SketchGroup) -> SketchGrou
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -4625,6 +4871,15 @@ lastSegX(sketch_group: SketchGroup) -> number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -4797,6 +5052,15 @@ lastSegY(sketch_group: SketchGroup) -> number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -5042,6 +5306,15 @@ line(data: LineData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -5198,6 +5471,15 @@ line(data: LineData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -5376,6 +5658,15 @@ lineTo(data: LineToData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -5532,6 +5823,15 @@ lineTo(data: LineToData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -5837,6 +6137,15 @@ patternCircular(data: CircularPatternData, geometry: Geometry) -> Geometries
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -5918,6 +6227,21 @@ patternCircular(data: CircularPatternData, geometry: Geometry) -> Geometries
|
|||||||
// The source range.
|
// The source range.
|
||||||
sourceRange: [number, number],
|
sourceRange: [number, number],
|
||||||
type: "extrudePlane",
|
type: "extrudePlane",
|
||||||
|
} |
|
||||||
|
{
|
||||||
|
// The face id for the extrude plane.
|
||||||
|
faceId: uuid,
|
||||||
|
// The id of the geometry.
|
||||||
|
id: uuid,
|
||||||
|
// The name.
|
||||||
|
name: string,
|
||||||
|
// The position.
|
||||||
|
position: [number, number, number],
|
||||||
|
// The rotation.
|
||||||
|
rotation: [number, number, number, number],
|
||||||
|
// The source range.
|
||||||
|
sourceRange: [number, number],
|
||||||
|
type: "extrudeArc",
|
||||||
}],
|
}],
|
||||||
// The x-axis of the extrude group base plane in the 3D space
|
// The x-axis of the extrude group base plane in the 3D space
|
||||||
xAxis: {
|
xAxis: {
|
||||||
@ -6078,6 +6402,15 @@ patternLinear(data: LinearPatternData, geometry: Geometry) -> Geometries
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -6159,6 +6492,21 @@ patternLinear(data: LinearPatternData, geometry: Geometry) -> Geometries
|
|||||||
// The source range.
|
// The source range.
|
||||||
sourceRange: [number, number],
|
sourceRange: [number, number],
|
||||||
type: "extrudePlane",
|
type: "extrudePlane",
|
||||||
|
} |
|
||||||
|
{
|
||||||
|
// The face id for the extrude plane.
|
||||||
|
faceId: uuid,
|
||||||
|
// The id of the geometry.
|
||||||
|
id: uuid,
|
||||||
|
// The name.
|
||||||
|
name: string,
|
||||||
|
// The position.
|
||||||
|
position: [number, number, number],
|
||||||
|
// The rotation.
|
||||||
|
rotation: [number, number, number, number],
|
||||||
|
// The source range.
|
||||||
|
sourceRange: [number, number],
|
||||||
|
type: "extrudeArc",
|
||||||
}],
|
}],
|
||||||
// The x-axis of the extrude group base plane in the 3D space
|
// The x-axis of the extrude group base plane in the 3D space
|
||||||
xAxis: {
|
xAxis: {
|
||||||
@ -6348,6 +6696,15 @@ segAng(segment_name: string, sketch_group: SketchGroup) -> number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -6521,6 +6878,15 @@ segEndX(segment_name: string, sketch_group: SketchGroup) -> number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -6694,6 +7060,15 @@ segEndY(segment_name: string, sketch_group: SketchGroup) -> number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -6867,6 +7242,15 @@ segLen(segment_name: string, sketch_group: SketchGroup) -> number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -7039,6 +7423,15 @@ show(sketch: SketchGroup)
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -7319,6 +7712,15 @@ startProfileAt(data: LineData, sketch_surface: SketchSurface) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -7500,6 +7902,15 @@ startSketchAt(data: LineData) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -7632,6 +8043,21 @@ startSketchOn(data: SketchData, tag: SketchOnFaceTag) -> SketchSurface
|
|||||||
// The source range.
|
// The source range.
|
||||||
sourceRange: [number, number],
|
sourceRange: [number, number],
|
||||||
type: "extrudePlane",
|
type: "extrudePlane",
|
||||||
|
} |
|
||||||
|
{
|
||||||
|
// The face id for the extrude plane.
|
||||||
|
faceId: uuid,
|
||||||
|
// The id of the geometry.
|
||||||
|
id: uuid,
|
||||||
|
// The name.
|
||||||
|
name: string,
|
||||||
|
// The position.
|
||||||
|
position: [number, number, number],
|
||||||
|
// The rotation.
|
||||||
|
rotation: [number, number, number, number],
|
||||||
|
// The source range.
|
||||||
|
sourceRange: [number, number],
|
||||||
|
type: "extrudeArc",
|
||||||
}],
|
}],
|
||||||
// The x-axis of the extrude group base plane in the 3D space
|
// The x-axis of the extrude group base plane in the 3D space
|
||||||
xAxis: {
|
xAxis: {
|
||||||
@ -7871,6 +8297,15 @@ tangentialArc(data: TangentialArcData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -8027,6 +8462,15 @@ tangentialArc(data: TangentialArcData, sketch_group: SketchGroup) -> SketchGroup
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -8196,6 +8640,15 @@ tangentialArcTo(to: [number], sketch_group: SketchGroup, tag: String) -> SketchG
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -8353,6 +8806,15 @@ tangentialArcTo(to: [number], sketch_group: SketchGroup, tag: String) -> SketchG
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -8550,6 +9012,15 @@ number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -8706,6 +9177,15 @@ number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -8884,6 +9364,15 @@ number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -9040,6 +9529,15 @@ number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -9218,6 +9716,15 @@ number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -9374,6 +9881,15 @@ number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -9552,6 +10068,15 @@ number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
@ -9708,6 +10233,15 @@ number
|
|||||||
to: [number, number],
|
to: [number, number],
|
||||||
type: "TangentialArcTo",
|
type: "TangentialArcTo",
|
||||||
} |
|
} |
|
||||||
|
{
|
||||||
|
// The from point.
|
||||||
|
from: [number, number],
|
||||||
|
// The name of the path.
|
||||||
|
name: string,
|
||||||
|
// The to point.
|
||||||
|
to: [number, number],
|
||||||
|
type: "TangentialArc",
|
||||||
|
} |
|
||||||
{
|
{
|
||||||
// The from point.
|
// The from point.
|
||||||
from: [number, number],
|
from: [number, number],
|
||||||
|
@ -799,6 +799,11 @@ pub enum Path {
|
|||||||
/// arc's direction
|
/// arc's direction
|
||||||
ccw: bool,
|
ccw: bool,
|
||||||
},
|
},
|
||||||
|
/// A arc that is tangential to the last path segment
|
||||||
|
TangentialArc {
|
||||||
|
#[serde(flatten)]
|
||||||
|
base: BasePath,
|
||||||
|
},
|
||||||
/// A path that is horizontal.
|
/// A path that is horizontal.
|
||||||
Horizontal {
|
Horizontal {
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
@ -830,6 +835,7 @@ impl Path {
|
|||||||
Path::AngledLineTo { base, .. } => base.geo_meta.id,
|
Path::AngledLineTo { base, .. } => base.geo_meta.id,
|
||||||
Path::Base { base } => base.geo_meta.id,
|
Path::Base { base } => base.geo_meta.id,
|
||||||
Path::TangentialArcTo { base, .. } => base.geo_meta.id,
|
Path::TangentialArcTo { base, .. } => base.geo_meta.id,
|
||||||
|
Path::TangentialArc { base } => base.geo_meta.id,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -840,6 +846,7 @@ impl Path {
|
|||||||
Path::AngledLineTo { base, .. } => base.name.clone(),
|
Path::AngledLineTo { base, .. } => base.name.clone(),
|
||||||
Path::Base { base } => base.name.clone(),
|
Path::Base { base } => base.name.clone(),
|
||||||
Path::TangentialArcTo { base, .. } => base.name.clone(),
|
Path::TangentialArcTo { base, .. } => base.name.clone(),
|
||||||
|
Path::TangentialArc { base } => base.name.clone(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -850,6 +857,7 @@ impl Path {
|
|||||||
Path::AngledLineTo { base, .. } => base,
|
Path::AngledLineTo { base, .. } => base,
|
||||||
Path::Base { base } => base,
|
Path::Base { base } => base,
|
||||||
Path::TangentialArcTo { base, .. } => base,
|
Path::TangentialArcTo { base, .. } => base,
|
||||||
|
Path::TangentialArc { base } => base,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -860,6 +868,7 @@ impl Path {
|
|||||||
Path::AngledLineTo { base, .. } => Some(base),
|
Path::AngledLineTo { base, .. } => Some(base),
|
||||||
Path::Base { base } => Some(base),
|
Path::Base { base } => Some(base),
|
||||||
Path::TangentialArcTo { base, .. } => Some(base),
|
Path::TangentialArcTo { base, .. } => Some(base),
|
||||||
|
Path::TangentialArc { base } => Some(base),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -871,6 +880,7 @@ impl Path {
|
|||||||
pub enum ExtrudeSurface {
|
pub enum ExtrudeSurface {
|
||||||
/// An extrude plane.
|
/// An extrude plane.
|
||||||
ExtrudePlane(ExtrudePlane),
|
ExtrudePlane(ExtrudePlane),
|
||||||
|
ExtrudeArc(ExtrudeArc),
|
||||||
}
|
}
|
||||||
|
|
||||||
/// An extruded plane.
|
/// An extruded plane.
|
||||||
@ -891,28 +901,50 @@ pub struct ExtrudePlane {
|
|||||||
pub geo_meta: GeoMeta,
|
pub geo_meta: GeoMeta,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// An extruded arc.
|
||||||
|
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
|
||||||
|
#[ts(export)]
|
||||||
|
#[serde(rename_all = "camelCase")]
|
||||||
|
pub struct ExtrudeArc {
|
||||||
|
/// The position.
|
||||||
|
pub position: Position,
|
||||||
|
/// The rotation.
|
||||||
|
pub rotation: Rotation,
|
||||||
|
/// The face id for the extrude plane.
|
||||||
|
pub face_id: uuid::Uuid,
|
||||||
|
/// The name.
|
||||||
|
pub name: String,
|
||||||
|
/// Metadata.
|
||||||
|
#[serde(flatten)]
|
||||||
|
pub geo_meta: GeoMeta,
|
||||||
|
}
|
||||||
|
|
||||||
impl ExtrudeSurface {
|
impl ExtrudeSurface {
|
||||||
pub fn get_id(&self) -> uuid::Uuid {
|
pub fn get_id(&self) -> uuid::Uuid {
|
||||||
match self {
|
match self {
|
||||||
ExtrudeSurface::ExtrudePlane(ep) => ep.geo_meta.id,
|
ExtrudeSurface::ExtrudePlane(ep) => ep.geo_meta.id,
|
||||||
|
ExtrudeSurface::ExtrudeArc(ea) => ea.geo_meta.id,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_name(&self) -> String {
|
pub fn get_name(&self) -> String {
|
||||||
match self {
|
match self {
|
||||||
ExtrudeSurface::ExtrudePlane(ep) => ep.name.to_string(),
|
ExtrudeSurface::ExtrudePlane(ep) => ep.name.to_string(),
|
||||||
|
ExtrudeSurface::ExtrudeArc(ea) => ea.name.to_string(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_position(&self) -> Position {
|
pub fn get_position(&self) -> Position {
|
||||||
match self {
|
match self {
|
||||||
ExtrudeSurface::ExtrudePlane(ep) => ep.position,
|
ExtrudeSurface::ExtrudePlane(ep) => ep.position,
|
||||||
|
ExtrudeSurface::ExtrudeArc(ea) => ea.position,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_rotation(&self) -> Rotation {
|
pub fn get_rotation(&self) -> Rotation {
|
||||||
match self {
|
match self {
|
||||||
ExtrudeSurface::ExtrudePlane(ep) => ep.rotation,
|
ExtrudeSurface::ExtrudePlane(ep) => ep.rotation,
|
||||||
|
ExtrudeSurface::ExtrudeArc(ea) => ea.rotation,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -115,6 +115,21 @@ async fn inner_extrude(length: f64, sketch_group: Box<SketchGroup>, args: Args)
|
|||||||
let mut new_value: Vec<ExtrudeSurface> = Vec::new();
|
let mut new_value: Vec<ExtrudeSurface> = Vec::new();
|
||||||
for path in sketch_group.value.iter() {
|
for path in sketch_group.value.iter() {
|
||||||
if let Some(Some(actual_face_id)) = face_id_map.get(&path.get_base().geo_meta.id) {
|
if let Some(Some(actual_face_id)) = face_id_map.get(&path.get_base().geo_meta.id) {
|
||||||
|
match path {
|
||||||
|
Path::TangentialArc { .. } | Path::TangentialArcTo { .. } => {
|
||||||
|
let extrude_surface = ExtrudeSurface::ExtrudeArc(crate::executor::ExtrudeArc {
|
||||||
|
position: sketch_group.position, // TODO should be for the extrude surface
|
||||||
|
rotation: sketch_group.rotation, // TODO should be for the extrude surface
|
||||||
|
face_id: *actual_face_id,
|
||||||
|
name: path.get_base().name.clone(),
|
||||||
|
geo_meta: GeoMeta {
|
||||||
|
id: path.get_base().geo_meta.id,
|
||||||
|
metadata: path.get_base().geo_meta.metadata.clone(),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
new_value.push(extrude_surface);
|
||||||
|
}
|
||||||
|
Path::Base { .. } | Path::ToPoint { .. } | Path::Horizontal { .. } | Path::AngledLineTo { .. } => {
|
||||||
let extrude_surface = ExtrudeSurface::ExtrudePlane(crate::executor::ExtrudePlane {
|
let extrude_surface = ExtrudeSurface::ExtrudePlane(crate::executor::ExtrudePlane {
|
||||||
position: sketch_group.position, // TODO should be for the extrude surface
|
position: sketch_group.position, // TODO should be for the extrude surface
|
||||||
rotation: sketch_group.rotation, // TODO should be for the extrude surface
|
rotation: sketch_group.rotation, // TODO should be for the extrude surface
|
||||||
@ -128,6 +143,8 @@ async fn inner_extrude(length: f64, sketch_group: Box<SketchGroup>, args: Args)
|
|||||||
new_value.push(extrude_surface);
|
new_value.push(extrude_surface);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Ok(Box::new(ExtrudeGroup {
|
Ok(Box::new(ExtrudeGroup {
|
||||||
// Ok so you would think that the id would be the id of the extrude group,
|
// Ok so you would think that the id would be the id of the extrude group,
|
||||||
|
@ -849,15 +849,23 @@ async fn start_sketch_on_face(
|
|||||||
.value
|
.value
|
||||||
.iter()
|
.iter()
|
||||||
.find_map(|extrude_surface| match extrude_surface {
|
.find_map(|extrude_surface| match extrude_surface {
|
||||||
ExtrudeSurface::ExtrudePlane(extrude_plane) if extrude_plane.name == *s => Some(extrude_plane.face_id),
|
ExtrudeSurface::ExtrudePlane(extrude_plane) if extrude_plane.name == *s => {
|
||||||
ExtrudeSurface::ExtrudePlane(_) => None,
|
Some(Ok(extrude_plane.face_id))
|
||||||
|
}
|
||||||
|
ExtrudeSurface::ExtrudeArc(extrude_arc) if extrude_arc.name == *s => {
|
||||||
|
Some(Err(KclError::Type(KclErrorDetails {
|
||||||
|
message: format!("Cannot sketch on a non-planar surface: `{}`", tag),
|
||||||
|
source_ranges: vec![args.source_range],
|
||||||
|
})))
|
||||||
|
}
|
||||||
|
ExtrudeSurface::ExtrudePlane(_) | ExtrudeSurface::ExtrudeArc(_) => None,
|
||||||
})
|
})
|
||||||
.ok_or_else(|| {
|
.ok_or_else(|| {
|
||||||
KclError::Type(KclErrorDetails {
|
KclError::Type(KclErrorDetails {
|
||||||
message: format!("Expected a face with the tag `{}`", tag),
|
message: format!("Expected a face with the tag `{}`", tag),
|
||||||
source_ranges: vec![args.source_range],
|
source_ranges: vec![args.source_range],
|
||||||
})
|
})
|
||||||
})?,
|
})??,
|
||||||
SketchOnFaceTag::StartOrEnd(StartOrEnd::Start) => extrude_group.start_cap_id.ok_or_else(|| {
|
SketchOnFaceTag::StartOrEnd(StartOrEnd::Start) => extrude_group.start_cap_id.ok_or_else(|| {
|
||||||
KclError::Type(KclErrorDetails {
|
KclError::Type(KclErrorDetails {
|
||||||
message: "Expected a start face to sketch on".to_string(),
|
message: "Expected a start face to sketch on".to_string(),
|
||||||
@ -1328,11 +1336,14 @@ async fn inner_tangential_arc(
|
|||||||
|
|
||||||
let to = [from.x + to[0], from.y + to[1]];
|
let to = [from.x + to[0], from.y + to[1]];
|
||||||
|
|
||||||
let current_path = Path::ToPoint {
|
let current_path = Path::TangentialArc {
|
||||||
base: BasePath {
|
base: BasePath {
|
||||||
from: from.into(),
|
from: from.into(),
|
||||||
to,
|
to,
|
||||||
name: "".to_string(),
|
name: match data {
|
||||||
|
TangentialArcData::PointWithTag { tag, .. } => tag.to_string(),
|
||||||
|
TangentialArcData::Point(_) | TangentialArcData::RadiusAndOffset { .. } => "".to_string(),
|
||||||
|
},
|
||||||
geo_meta: GeoMeta {
|
geo_meta: GeoMeta {
|
||||||
id,
|
id,
|
||||||
metadata: args.source_range.into(),
|
metadata: args.source_range.into(),
|
||||||
|
@ -1138,3 +1138,36 @@ const myCube = cube([0,0], 10)
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
twenty_twenty::assert_image("tests/executor/outputs/cube_yd.png", &result, 1.0);
|
twenty_twenty::assert_image("tests/executor/outputs/cube_yd.png", &result, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn serial_test_error_sketch_on_arc_face() {
|
||||||
|
let code = r#"fn cube = (pos, scale) => {
|
||||||
|
const sg = startSketchOn('XY')
|
||||||
|
|> startProfileAt(pos, %)
|
||||||
|
|> tangentialArc({ to: [0, scale], tag: "here" }, %)
|
||||||
|
|> line([scale, 0], %)
|
||||||
|
|> line([0, -scale], %)
|
||||||
|
|
||||||
|
return sg
|
||||||
|
}
|
||||||
|
const part001 = cube([0, 0], 20)
|
||||||
|
|> close(%)
|
||||||
|
|> extrude(20, %)
|
||||||
|
|
||||||
|
const part002 = startSketchOn(part001, "here")
|
||||||
|
|> startProfileAt([0, 0], %)
|
||||||
|
|> line([5, 0], %)
|
||||||
|
|> line([5, 5], %)
|
||||||
|
|> line([0, 5], %)
|
||||||
|
|> close(%)
|
||||||
|
|> extrude(1, %)
|
||||||
|
"#;
|
||||||
|
|
||||||
|
let result = execute_and_snapshot(code, kittycad::types::UnitLength::Mm).await;
|
||||||
|
|
||||||
|
assert!(result.is_err());
|
||||||
|
assert_eq!(
|
||||||
|
result.err().unwrap().to_string(),
|
||||||
|
r#"type: KclErrorDetails { source_ranges: [SourceRange([294, 324])], message: "Cannot sketch on a non-planar surface: `here`" }"#
|
||||||
|
);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user