* updates Signed-off-by: Jess Frazelle <github@jessfraz.com> * regenerate images Signed-off-by: Jess Frazelle <github@jessfraz.com> --------- Signed-off-by: Jess Frazelle <github@jessfraz.com>
366 lines
670 KiB
Markdown
366 lines
670 KiB
Markdown
---
|
||
title: "startSketchOn"
|
||
excerpt: "Start a sketch on a specific plane or face."
|
||
layout: manual
|
||
---
|
||
|
||
Start a sketch on a specific plane or face.
|
||
|
||
|
||
|
||
```js
|
||
startSketchOn(data: SketchData, tag?: SketchOnFaceTag) -> SketchSurface
|
||
```
|
||
|
||
### Examples
|
||
|
||
```js
|
||
const exampleSketch = startSketchOn("XY")
|
||
|> startProfileAt([0, 0], %)
|
||
|> line([10, 0], %)
|
||
|> line([0, 10], %)
|
||
|> line([-10, 0], %)
|
||
|> close(%)
|
||
|
||
const example = extrude(5, exampleSketch)
|
||
|
||
const exampleSketch002 = startSketchOn(example, 'end')
|
||
|> startProfileAt([1, 1], %)
|
||
|> line([8, 0], %)
|
||
|> line([0, 8], %)
|
||
|> line([-8, 0], %)
|
||
|> close(%)
|
||
|
||
const example002 = extrude(5, exampleSketch002)
|
||
|
||
const exampleSketch003 = startSketchOn(example002, 'end')
|
||
|> startProfileAt([2, 2], %)
|
||
|> line([6, 0], %)
|
||
|> line([0, 6], %)
|
||
|> line([-6, 0], %)
|
||
|> close(%)
|
||
|
||
const example003 = extrude(5, exampleSketch003)
|
||
```
|
||
|
||

|
||
|
||
```js
|
||
const exampleSketch = startSketchOn("XY")
|
||
|> startProfileAt([0, 0], %)
|
||
|> line([10, 0], %)
|
||
|> line([0, 10], %, 'sketchingFace')
|
||
|> line([-10, 0], %)
|
||
|> close(%)
|
||
|
||
const example = extrude(10, exampleSketch)
|
||
|
||
const exampleSketch002 = startSketchOn(example, 'sketchingFace')
|
||
|> startProfileAt([1, 1], %)
|
||
|> line([8, 0], %)
|
||
|> line([0, 8], %)
|
||
|> line([-8, 0], %)
|
||
|> close(%, 'sketchingFace002')
|
||
|
||
const example002 = extrude(10, exampleSketch002)
|
||
|
||
const exampleSketch003 = startSketchOn(example002, 'sketchingFace002')
|
||
|> startProfileAt([-8, 12], %)
|
||
|> line([0, 6], %)
|
||
|> line([6, 0], %)
|
||
|> line([0, -6], %)
|
||
|> close(%)
|
||
|
||
const example003 = extrude(5, exampleSketch003)
|
||
```
|
||
|
||

|
||
|
||
```js
|
||
const exampleSketch = startSketchOn('XY')
|
||
|> startProfileAt([4, 12], %)
|
||
|> line([2, 0], %)
|
||
|> line([0, -6], %)
|
||
|> line([4, -6], %)
|
||
|> line([0, -6], %)
|
||
|> line([-3.75, -4.5], %)
|
||
|> line([0, -5.5], %)
|
||
|> line([-2, 0], %)
|
||
|> close(%)
|
||
|
||
const example = revolve({ axis: 'y', angle: 180 }, exampleSketch)
|
||
|
||
const exampleSketch002 = startSketchOn(example, 'end')
|
||
|> startProfileAt([4.5, -5], %)
|
||
|> line([0, 5], %)
|
||
|> line([5, 0], %)
|
||
|> line([0, -5], %)
|
||
|> close(%)
|
||
|
||
const example002 = extrude(5, exampleSketch002)
|
||
```
|
||
|
||

|
||
|
||
```js
|
||
const a1 = startSketchOn({
|
||
plane: {
|
||
origin: { x: 0, y: 0, z: 0 },
|
||
x_axis: { x: 1, y: 0, z: 0 },
|
||
y_axis: { x: 0, y: 1, z: 0 },
|
||
z_axis: { x: 0, y: 0, z: 1 }
|
||
}
|
||
})
|
||
|> startProfileAt([0, 0], %)
|
||
|> line([100.0, 0], %)
|
||
|> yLine(-100.0, %)
|
||
|> xLine(-100.0, %)
|
||
|> yLine(100.0, %)
|
||
|> close(%)
|
||
|> extrude(3.14, %)
|
||
```
|
||
|
||

|
||
|
||
### Arguments
|
||
|
||
* `data`: `SketchData` - Data for start sketch on. You can start a sketch on a plane or an extrude group. (REQUIRED)
|
||
```js
|
||
"XY" |
|
||
"-XY" |
|
||
"XZ" |
|
||
"-XZ" |
|
||
"YZ" |
|
||
"-YZ" |
|
||
{
|
||
plane: {
|
||
// Origin of the plane.
|
||
origin: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
// What should the plane’s X axis be?
|
||
x_axis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
// What should the plane’s Y axis be?
|
||
y_axis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
// The z-axis (normal).
|
||
z_axis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
},
|
||
} |
|
||
{
|
||
// The id of the extrusion end cap
|
||
endCapId: uuid,
|
||
// The height of the extrude group.
|
||
height: number,
|
||
// The id of the extrude group.
|
||
id: uuid,
|
||
// The position of the extrude group.
|
||
position: [number, number, number],
|
||
// The rotation of the extrude group.
|
||
rotation: [number, number, number, number],
|
||
// The sketch group paths.
|
||
sketchGroupValues: [{
|
||
// The from point.
|
||
from: [number, number],
|
||
// The name of the path.
|
||
name: string,
|
||
// The to point.
|
||
to: [number, number],
|
||
type: "ToPoint",
|
||
} |
|
||
{
|
||
// arc's direction
|
||
ccw: string,
|
||
// the arc's center
|
||
center: [number, number],
|
||
// The from point.
|
||
from: [number, number],
|
||
// The name of the path.
|
||
name: string,
|
||
// The to point.
|
||
to: [number, number],
|
||
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.
|
||
from: [number, number],
|
||
// The name of the path.
|
||
name: string,
|
||
// The to point.
|
||
to: [number, number],
|
||
type: "Horizontal",
|
||
// The x coordinate.
|
||
x: number,
|
||
} |
|
||
{
|
||
// The from point.
|
||
from: [number, number],
|
||
// The name of the path.
|
||
name: string,
|
||
// The to point.
|
||
to: [number, number],
|
||
type: "AngledLineTo",
|
||
// The x coordinate.
|
||
x: number,
|
||
// The y coordinate.
|
||
y: number,
|
||
} |
|
||
{
|
||
// The from point.
|
||
from: [number, number],
|
||
// The name of the path.
|
||
name: string,
|
||
// The to point.
|
||
to: [number, number],
|
||
type: "Base",
|
||
}],
|
||
// The id of the extrusion start cap
|
||
startCapId: uuid,
|
||
// The extrude surfaces.
|
||
value: [{
|
||
// The face id for the extrude plane.
|
||
faceId: uuid,
|
||
// The id of the geometry.
|
||
id: uuid,
|
||
// The name.
|
||
name: string,
|
||
// The position.
|
||
position: [number, number, number],
|
||
// The rotation.
|
||
rotation: [number, number, number, number],
|
||
// The source range.
|
||
sourceRange: [number, number],
|
||
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
|
||
xAxis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
// The y-axis of the extrude group base plane in the 3D space
|
||
yAxis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
// The z-axis of the extrude group base plane in the 3D space
|
||
zAxis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
}
|
||
```
|
||
* `tag`: `SketchOnFaceTag` - A tag for sketch on face. (OPTIONAL)
|
||
```js
|
||
"start" | "end" |
|
||
string
|
||
```
|
||
|
||
### Returns
|
||
|
||
`SketchSurface` - A sketch group type.
|
||
```js
|
||
{
|
||
// The id of the plane.
|
||
id: uuid,
|
||
// Origin of the plane.
|
||
origin: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
type: "plane",
|
||
// Type for a plane.
|
||
value: "XY" | "XZ" | "YZ" | "Custom",
|
||
// What should the plane’s X axis be?
|
||
xAxis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
// What should the plane’s Y axis be?
|
||
yAxis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
// The z-axis (normal).
|
||
zAxis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
} |
|
||
{
|
||
// the face id the sketch is on
|
||
faceId: uuid,
|
||
// The id of the face.
|
||
id: uuid,
|
||
// The original sketch group id of the object we are sketching on.
|
||
sketchGroupId: uuid,
|
||
type: "face",
|
||
// The tag of the face.
|
||
value: string,
|
||
// What should the face’s X axis be?
|
||
xAxis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
// What should the face’s Y axis be?
|
||
yAxis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
// The z-axis (normal).
|
||
zAxis: {
|
||
x: number,
|
||
y: number,
|
||
z: number,
|
||
},
|
||
}
|
||
```
|
||
|
||
|
||
|