Move axes to std constants; move helix, revolve, and mirror2d to be declated in KCL Signed-off-by: Nick Cameron <nrc@ncameron.org>
209 lines
732 KiB
Markdown
209 lines
732 KiB
Markdown
---
|
|
title: "appearance"
|
|
excerpt: "Set the appearance of a solid. This only works on solids, not sketches or individual paths."
|
|
layout: manual
|
|
---
|
|
|
|
Set the appearance of a solid. This only works on solids, not sketches or individual paths.
|
|
|
|
This will work on any solid, including extruded solids, revolved solids, and shelled solids.
|
|
|
|
```js
|
|
appearance(
|
|
solids: [Solid],
|
|
color: String,
|
|
metalness?: number,
|
|
roughness?: number,
|
|
): [Solid]
|
|
```
|
|
|
|
|
|
### Arguments
|
|
|
|
| Name | Type | Description | Required |
|
|
|----------|------|-------------|----------|
|
|
| `solids` | [`[Solid]`](/docs/kcl/types/Solid) | The solid(s) whose appearance is being set | Yes |
|
|
| `color` | `String` | Color of the new material, a hex string like '#ff0000' | Yes |
|
|
| `metalness` | [`number`](/docs/kcl/types/number) | Metalness of the new material, a percentage like 95.7. | No |
|
|
| `roughness` | [`number`](/docs/kcl/types/number) | Roughness of the new material, a percentage like 95.7. | No |
|
|
|
|
### Returns
|
|
|
|
[`[Solid]`](/docs/kcl/types/Solid)
|
|
|
|
|
|
### Examples
|
|
|
|
```js
|
|
// Add color to an extruded solid.
|
|
exampleSketch = startSketchOn(XZ)
|
|
|> startProfileAt([0, 0], %)
|
|
|> line(endAbsolute = [10, 0])
|
|
|> line(endAbsolute = [0, 10])
|
|
|> line(endAbsolute = [-10, 0])
|
|
|> close()
|
|
|
|
example = extrude(exampleSketch, length = 5)
|
|
// There are other options besides 'color', but they're optional.
|
|
|> appearance(color = '#ff0000')
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
// Add color to a revolved solid.
|
|
sketch001 = startSketchOn(XY)
|
|
|> circle(center = [15, 0], radius = 5)
|
|
|> revolve(angle = 360, axis = Y)
|
|
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
// Add color to different solids.
|
|
fn cube(center) {
|
|
return startSketchOn(XY)
|
|
|> startProfileAt([center[0] - 10, center[1] - 10], %)
|
|
|> line(endAbsolute = [center[0] + 10, center[1] - 10])
|
|
|> line(endAbsolute = [center[0] + 10, center[1] + 10])
|
|
|> line(endAbsolute = [center[0] - 10, center[1] + 10])
|
|
|> close()
|
|
|> extrude(length = 10)
|
|
}
|
|
|
|
example0 = cube([0, 0])
|
|
example1 = cube([20, 0])
|
|
example2 = cube([40, 0])
|
|
|
|
appearance(
|
|
[example0, example1],
|
|
color = '#ff0000',
|
|
metalness = 50,
|
|
roughness = 50,
|
|
)
|
|
appearance(
|
|
example2,
|
|
color = '#00ff00',
|
|
metalness = 50,
|
|
roughness = 50,
|
|
)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
// You can set the appearance before or after you shell it will yield the same result.
|
|
// This example shows setting the appearance _after_ the shell.
|
|
firstSketch = startSketchOn(XY)
|
|
|> startProfileAt([-12, 12], %)
|
|
|> line(end = [24, 0])
|
|
|> line(end = [0, -24])
|
|
|> line(end = [-24, 0])
|
|
|> close()
|
|
|> extrude(length = 6)
|
|
|
|
shell(firstSketch, faces = ['end'], thickness = 0.25)
|
|
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
// You can set the appearance before or after you shell it will yield the same result.
|
|
// This example shows setting the appearance _before_ the shell.
|
|
firstSketch = startSketchOn(XY)
|
|
|> startProfileAt([-12, 12], %)
|
|
|> line(end = [24, 0])
|
|
|> line(end = [0, -24])
|
|
|> line(end = [-24, 0])
|
|
|> close()
|
|
|> extrude(length = 6)
|
|
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
|
|
|
shell(firstSketch, faces = ['end'], thickness = 0.25)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
// Setting the appearance of a 3D pattern can be done _before_ or _after_ the pattern.
|
|
// This example shows _before_ the pattern.
|
|
exampleSketch = startSketchOn(XZ)
|
|
|> startProfileAt([0, 0], %)
|
|
|> line(end = [0, 2])
|
|
|> line(end = [3, 1])
|
|
|> line(end = [0, -4])
|
|
|> close()
|
|
|
|
example = extrude(exampleSketch, length = 1)
|
|
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
|
|> patternLinear3d(axis = [1, 0, 1], instances = 7, distance = 6)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
// Setting the appearance of a 3D pattern can be done _before_ or _after_ the pattern.
|
|
// This example shows _after_ the pattern.
|
|
exampleSketch = startSketchOn(XZ)
|
|
|> startProfileAt([0, 0], %)
|
|
|> line(end = [0, 2])
|
|
|> line(end = [3, 1])
|
|
|> line(end = [0, -4])
|
|
|> close()
|
|
|
|
example = extrude(exampleSketch, length = 1)
|
|
|> patternLinear3d(axis = [1, 0, 1], instances = 7, distance = 6)
|
|
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
// Color the result of a 2D pattern that was extruded.
|
|
exampleSketch = startSketchOn(XZ)
|
|
|> startProfileAt([.5, 25], %)
|
|
|> line(end = [0, 5])
|
|
|> line(end = [-1, 0])
|
|
|> line(end = [0, -5])
|
|
|> close()
|
|
|> patternCircular2d(
|
|
center = [0, 0],
|
|
instances = 13,
|
|
arcDegrees = 360,
|
|
rotateDuplicates = true,
|
|
)
|
|
|
|
example = extrude(exampleSketch, length = 1)
|
|
|> appearance(color = '#ff0000', metalness = 90, roughness = 90)
|
|
```
|
|
|
|

|
|
|
|
```js
|
|
// Color the result of a sweep.
|
|
|
|
// Create a path for the sweep.
|
|
sweepPath = startSketchOn(XZ)
|
|
|> startProfileAt([0.05, 0.05], %)
|
|
|> line(end = [0, 7])
|
|
|> tangentialArc({ offset = 90, radius = 5 }, %)
|
|
|> line(end = [-3, 0])
|
|
|> tangentialArc({ offset = -90, radius = 5 }, %)
|
|
|> line(end = [0, 7])
|
|
|
|
pipeHole = startSketchOn(XY)
|
|
|> circle(center = [0, 0], radius = 1.5)
|
|
|
|
sweepSketch = startSketchOn(XY)
|
|
|> circle(center = [0, 0], radius = 2)
|
|
|> hole(pipeHole, %)
|
|
|> sweep(path = sweepPath)
|
|
|> appearance(color = "#ff0000", metalness = 50, roughness = 50)
|
|
```
|
|
|
|

|
|
|
|
|