194 lines
708 KiB
Markdown
194 lines
708 KiB
Markdown
![]() |
---
|
||
|
title: "std::solid::shell"
|
||
|
excerpt: ""
|
||
|
layout: manual
|
||
|
---
|
||
|
|
||
|
|
||
|
|
||
|
Remove volume from a 3-dimensional shape such that a wall of the
|
||
|
provided thickness remains, taking volume starting at the providedface, leaving it open in that direction.
|
||
|
|
||
|
```js
|
||
|
shell(
|
||
|
@solids: [Solid; 1+],
|
||
|
thickness: number(Length),
|
||
|
faces: [tag; 1+],
|
||
|
): [Solid]
|
||
|
```
|
||
|
|
||
|
|
||
|
### Arguments
|
||
|
|
||
|
| Name | Type | Description | Required |
|
||
|
|----------|------|-------------|----------|
|
||
|
| `solids` | `[Solid; 1+]` | Which solid (or solids) to shell out | Yes |
|
||
|
| `thickness` | `number(Length)` | The thickness of the shell | Yes |
|
||
|
| `faces` | `[tag; 1+]` | The faces you want removed | Yes |
|
||
|
|
||
|
### Returns
|
||
|
|
||
|
[`[Solid]`](/docs/kcl/types/Solid)
|
||
|
|
||
|
|
||
|
### Examples
|
||
|
|
||
|
```js
|
||
|
// Remove the end face for the extrusion.
|
||
|
firstSketch = startSketchOn(XY)
|
||
|
|> startProfile(at = [-12, 12])
|
||
|
|> line(end = [24, 0])
|
||
|
|> line(end = [0, -24])
|
||
|
|> line(end = [-24, 0])
|
||
|
|> close()
|
||
|
|> extrude(length = 6)
|
||
|
|
||
|
// Remove the end face for the extrusion.
|
||
|
shell(
|
||
|
firstSketch,
|
||
|
faces = [END],
|
||
|
thickness = 0.25,
|
||
|
)
|
||
|
```
|
||
|
|
||
|

|
||
|
|> startProfile(at = [-12, 12])
|
||
|
|> line(end = [24, 0])
|
||
|
|> line(end = [0, -24])
|
||
|
|> line(end = [-24, 0])
|
||
|
|> close()
|
||
|
|> extrude(length = 6)
|
||
|
|
||
|
// Remove the start face for the extrusion.
|
||
|
shell(
|
||
|
firstSketch,
|
||
|
faces = [START],
|
||
|
thickness = 0.25,
|
||
|
)
|
||
|
```
|
||
|
|
||
|

|
||
|
|> startProfile(at = [-12, 12])
|
||
|
|> line(end = [24, 0])
|
||
|
|> line(end = [0, -24])
|
||
|
|> line(end = [-24, 0], tag = $myTag)
|
||
|
|> close()
|
||
|
|> extrude(length = 6)
|
||
|
|
||
|
// Remove a tagged face for the extrusion.
|
||
|
shell(
|
||
|
firstSketch,
|
||
|
faces = [myTag],
|
||
|
thickness = 0.25,
|
||
|
)
|
||
|
```
|
||
|
|
||
|

|
||
|
|> startProfile(at = [-12, 12])
|
||
|
|> line(end = [24, 0])
|
||
|
|> line(end = [0, -24])
|
||
|
|> line(end = [-24, 0], tag = $myTag)
|
||
|
|> close()
|
||
|
|> extrude(length = 6)
|
||
|
|
||
|
// Remove a tagged face and the end face for the extrusion.
|
||
|
shell(
|
||
|
firstSketch,
|
||
|
faces = [myTag, END],
|
||
|
thickness = 0.25,
|
||
|
)
|
||
|
```
|
||
|
|
||
|

|
||
|
|> startProfile(at = [-size, -size])
|
||
|
|> line(end = [2 * size, 0])
|
||
|
|> line(end = [0, 2 * size])
|
||
|
|> tangentialArc(endAbsolute = [-size, size])
|
||
|
|> close()
|
||
|
|> extrude(length = 65)
|
||
|
|
||
|
thing1 = startSketchOn(case, face = END)
|
||
|
|> circle( center = [-size / 2, -size / 2], radius = 25 )
|
||
|
|> extrude(length = 50)
|
||
|
|
||
|
thing2 = startSketchOn(case, face = END)
|
||
|
|> circle( center = [size / 2, -size / 2], radius = 25 )
|
||
|
|> extrude(length = 50)
|
||
|
|
||
|
// We put "case" in the shell function to shell the entire object.
|
||
|
shell(case, faces = [START], thickness = 5)
|
||
|
```
|
||
|
|
||
|

|
||
|
|> startProfile(at = [-size, -size])
|
||
|
|> line(end = [2 * size, 0])
|
||
|
|> line(end = [0, 2 * size])
|
||
|
|> tangentialArc(endAbsolute = [-size, size])
|
||
|
|> close()
|
||
|
|> extrude(length = 65)
|
||
|
|
||
|
thing1 = startSketchOn(case, face = END)
|
||
|
|> circle( center = [-size / 2, -size / 2], radius = 25 )
|
||
|
|> extrude(length = 50)
|
||
|
|
||
|
thing2 = startSketchOn(case, face = END)
|
||
|
|> circle( center = [size / 2, -size / 2], radius = 25 )
|
||
|
|> extrude(length = 50)
|
||
|
|
||
|
// We put "thing1" in the shell function to shell the end face of the object.
|
||
|
shell(thing1, faces = [END], thickness = 5)
|
||
|
```
|
||
|
|
||
|

|
||
|
|> startProfile(at = [-size, -size])
|
||
|
|> line(end = [2 * size, 0])
|
||
|
|> line(end = [0, 2 * size])
|
||
|
|> tangentialArc(endAbsolute = [-size, size])
|
||
|
|> close()
|
||
|
|> extrude(length = 65)
|
||
|
|
||
|
thing1 = startSketchOn(case, face = END)
|
||
|
|> circle( center = [-size / 2, -size / 2], radius = 25 )
|
||
|
|> extrude(length = 50)
|
||
|
|
||
|
thing2 = startSketchOn(case, face = END)
|
||
|
|> circle( center = [size / 2, -size / 2], radius = 25)
|
||
|
|> extrude(length = 50)
|
||
|
|
||
|
// We put "thing1" and "thing2" in the shell function to shell the end face of the object.
|
||
|
shell([thing1, thing2], faces = [END], thickness = 5)
|
||
|
```
|
||
|
|
||
|
![Rendered example of std::solid::shell 6](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADgXElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVV
|
||
|
|
||
|
|