Utilities

Helper tools for sheet manipulation and configuration

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

NameNickTypeAccessDefaultDescription
SheetSSheetitemSheet to read from, or to write the connected values onto.
MaterialMTextitemMaterial name, for example "S235" or "AlMg3".
QuantityQIntegeritemHow many of this part the job needs. Nesting reads this, so the count travels with the part instead of being lined up by hand.
NameNTextitemDisplay name for the part.
Part NumberPNTextitemShop or drawing identifier, for example "A-1042/B". Text, so separators and leading zeros survive.
Finish Side 0F0TextitemSurface finish on side 0: the side holding the root face. Leave both finishes empty for an uncoated part.
Finish Side 1F1TextitemSurface 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

NameNickTypeAccessDefaultDescription
SheetSSheetitemThe sheet, carrying whatever was connected on the input side.
MaterialMTextitemMaterial name. Empty when not set.
QuantityQIntegeritemHow many of this part the job needs. 0 when not set, which nesting reads as 1.
NameNTextitemDisplay name. Empty when not set.
Part NumberPNTextitemShop identifier. Empty when not set.
Finish Side 0F0TextitemFinish on the root face's side. Empty when not set.
Finish Side 1F1TextitemFinish 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.
Side 0 is not a world-space "top". It follows the root face you picked when the sheet was created, so rebuilding a sheet with a different root face swaps which physical face each finish describes. The component reminds you of this whenever the two sides differ.

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 UpFace pointing upFinish shown up
offside 0Finish Side 0
onside 1Finish 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

NameNickTypeAccessDefaultDescription
SheetSSheetitemSheet to explode.

Outputs

NameNickTypeAccessDefaultDescription
FlangesFBreplistThe flat bearing faces of the sheet.
BendsBBreplistThe curved faces where the sheet folds.
HemsHBreplistThe tight bends where an edge is folded back on itself.
I-HolesIHBreplistIsolated holes (fully inside a flange).
NI-HolesNIHBreplistNon-isolated holes (touching a flange edge).
C-HolesCSHBreplistCountersink holes.
Thickness FacesTFBreplistThe 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

NameNickTypeAccessDefaultDescription
Angle Tolerance RadiansATRNumberitem0.017453Angle 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 ToleranceATNumberitem0.001Absolute distance tolerance for geometric calculations, in document units. Defaults to 0.001.

Outputs

NameNickTypeAccessDefaultDescription
StatusSTextitemThe 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.