Sheet Properties (SProp)
Reads and sets the details a sheet cannot measure about itself: material, quantity, name, part number and the finish on each side. Leave an input empty to read the value that is already there; connect one to set it. The same values come out again, so this component both reports and edits. Thickness and bend radius are measured from the geometry and stay read-only: see Sheet Info for those.
Inputs
| Name | Nick | Type | Access | Default | Description |
|---|---|---|---|---|---|
| Sheet | S | Sheet | item | Sheet to read from, or to write the connected values onto. | |
| Material | M | Text | item | Material name, for example "S235" or "AlMg3". | |
| Quantity | Q | Integer | item | How many of this part the job needs. Nesting reads this, so the count travels with the part instead of being lined up by hand. | |
| Name | N | Text | item | Display name for the part. | |
| Part Number | PN | Text | item | Shop or drawing identifier, for example "A-1042/B". Text, so separators and leading zeros survive. | |
| Finish Side 0 | F0 | Text | item | Surface finish on side 0: the side holding the root face. Leave both finishes empty for an uncoated part. | |
| Finish Side 1 | F1 | Text | item | Surface finish on side 1: the side opposite the root face. Set this and Finish Side 0 differently for a part coated on one side only. |
Outputs
| Name | Nick | Type | Access | Default | Description |
|---|---|---|---|---|---|
| Sheet | S | Sheet | item | The sheet, carrying whatever was connected on the input side. | |
| Material | M | Text | item | Material name. Empty when not set. | |
| Quantity | Q | Integer | item | How many of this part the job needs. 0 when not set, which nesting reads as 1. | |
| Name | N | Text | item | Display name. Empty when not set. | |
| Part Number | PN | Text | item | Shop identifier. Empty when not set. | |
| Finish Side 0 | F0 | Text | item | Finish on the root face's side. Empty when not set. | |
| Finish Side 1 | F1 | Text | item | Finish on the side opposite the root face. Empty when not set. |
Read and set in one component
The same value appears as an input and as an output. An input you leave empty reads the
value that is already on the sheet; connect something and it overwrites it.
[Sheet] ─→ Sheet ──[Sheet Properties]── Sheet ─→ (carries the new values)
Material Material ─→ (reads back what is set)
That means one component both inspects and edits, and you can chain several of them: set
the material in one place, the quantity in another.
Only declared details are here. Thickness, bend radius, flange and hole counts are measured
from the geometry, so they are read-only and live on Sheet Info. Letting you overwrite a
measured value would let the model disagree with the part it came from.
Quantity feeds nesting
Set Quantity here and the count travels with the part all the way into Nest Parts,
through unrolling. You no longer need to keep a separate list of quantities lined up with
your list of parts.
The nester's own Quantities (Q) input still wins when you wire it, so existing
definitions keep working.
Which side is side 0
A part coated on one side needs to say *which* side. Sides are numbered the way the sheet's
topology numbers them:
- Side 0 is the side holding the root face.
- Side 1 is the opposite side.
Coating the right side after unrolling
Here is the trap. Back Side Up on the Unroller decides which of the two sides ends up
facing up in the flat pattern. The stored finish does not change, but the face pointing up
does:
| Back Side Up | Face pointing up | Finish shown up |
|---|---|---|
| off | side 0 | Finish Side 0 |
| on | side 1 | Finish Side 1 |
So reading Finish Side 0 at the machine would coat the wrong face on every back-side
unroll.
Use the Unroller's Finish Up (FU) and Finish Down (FD) outputs instead. They are
worked out from the same setting that does the flipping, so they always name the face that
is really facing up:
[Sheet Properties] F0 = powder-coat
F1 = bare
│
▼
[Unroller] BSU = off → Finish Up = powder-coat
[Unroller] BSU = on → Finish Up = bare
Explode Sheet (ES)
Breaks a sheet apart into its individual faces, grouped by type: flanges, bends, hems, the three hole types, and thickness faces. Each output is a list of BREP faces, empty if the sheet has none of that type.
Inputs
| Name | Nick | Type | Access | Default | Description |
|---|---|---|---|---|---|
| Sheet | S | Sheet | item | Sheet to explode. |
Outputs
| Name | Nick | Type | Access | Default | Description |
|---|---|---|---|---|---|
| Flanges | F | Brep | list | The flat bearing faces of the sheet. | |
| Bends | B | Brep | list | The curved faces where the sheet folds. | |
| Hems | H | Brep | list | The tight bends where an edge is folded back on itself. | |
| I-Holes | IH | Brep | list | Isolated holes (fully inside a flange). | |
| NI-Holes | NIH | Brep | list | Non-isolated holes (touching a flange edge). | |
| C-Holes | CSH | Brep | list | Countersink holes. | |
| Thickness Faces | TF | Brep | list | The narrow side faces that give the sheet its thickness. |
Set Tolerances (STol)
Sets the tolerances SheepMetal uses, for headless Rhino environments (e.g. rhino.compute) where document tolerances aren't available. Place at most one per document; it applies to every SheepMetal operation in that document. If omitted, millimeter-based defaults are used.
Inputs
| Name | Nick | Type | Access | Default | Description |
|---|---|---|---|---|---|
| Angle Tolerance Radians | ATR | Number | item | 0.017453 | Angle tolerance in radians for geometric calculations. The degrees-based tolerance is derived from this value, so the two can never disagree. Defaults to 0.017453 rad (1°). |
| Absolute Tolerance | AT | Number | item | 0.001 | Absolute distance tolerance for geometric calculations, in document units. Defaults to 0.001. |
Outputs
| Name | Nick | Type | Access | Default | Description |
|---|---|---|---|---|---|
| Status | S | Text | item | The tolerances actually applied, so you can confirm what took effect. |
Constraints
- Only one instance is allowed per Grasshopper document.
- Applies to all SheepMetal operations in that document.
When to Use
- Headless/batch processing where Rhino document tolerances aren't available (e.g. rhino.compute).
- Automation scripts.
- Consistent tolerance across multiple documents.
Tips
- Match values to your project units (mm: 0.001, inches: 0.0001).
- Affects the quality of topology detection and classification.