Keep Main Pieces

Removes the loose pieces of a Solid and keeps its main ones.

How the pieces are found

The pieces are found at the Resolution: a separate bit counts as a piece only if it is at least one resolution step thick. A piece is looked at again 4 and 16 times as finely when it is small (at most 64 steps across, or a separate bit thinner than the resolution — a sliver where a lattice is cut), when it comes within a step of another piece, and, whatever its size, when Keep would remove it. At 4 times as finely its material is followed sample to sample (samples that share a cell join, across faces, edges and corners), at 16 times its own surface: where either runs on beyond what the resolution caught of it, the look widens to take all of it, so a thin piece the resolution caught only a sliver of is judged whole. A piece whose material or own surface is also another piece's is joined to it (through something thinner than the resolution, down to a sixteenth of it) and stays with it. A bit separate at the finer look is removed like a piece when Keep does not keep it (with Largest piece, always). BelowResolution counts the bits left.

What is removed

  • A piece is removed only when the closer look confirmed it separate: where the resolution is coarser than parts of the Solid, the ResolutionCoarse row says so and nothing is removed for that.
  • Each removed piece is cut out where it is, its thin edges with it (and loose crumbs thinner than the resolution lying closer to it than to anything else), and the cut is checked at a sixteenth of the resolution: a piece it cannot take whole without touching anything else stays, and ResolutionCoarse says so.
  • ResolutionCoarse is also set when a piece sits right at one of these limits, where the last digits another computer computes differently could decide it the other way.

The rest of the surface is unchanged.

Limits

Refused, before it starts, when counting at the Resolution would need more memory than a computation may use on this computer (and stopped as soon as its mesh passes that memory, where the estimate made before the start fell short), and before each finer look when those looks would; the message names a Resolution that fits. Computes in the background.

Inputs

Solid Solid

The Solid whose loose pieces are removed. Required.

Takes: any block that gives Solid (102 blocks)
Keep Choice

Which pieces stay: every piece of at least Smallest piece, only the largest, or every piece that touches the Anchor.

Smallest piece Number

The smallest piece that stays, in percent of the largest piece's volume (default 1 %). Relative, so it fits a part of any size: it keeps a second real body and removes crumbs.

Anchor Solid

A piece stays when it comes within one resolution step of this Solid.

Takes: any block that gives Solid (102 blocks)
Resolution Number

The size in mm a separate bit must reach to count as a piece. Empty: the part's longest side divided by 500; the Resolution row shows the value used.

Output

Solid

Used by: any block that takes Solid (95 blocks)

Properties

Values the block gives besides its output. The editor lists them under Properties, and an input can read one by reference.

BoundingBox Bounding Box

The axis-aligned extent of the Solid.

Pieces Number

How many pieces are kept.

Removed Number

How many pieces were removed.

RemovedVolume Number · mm³

The removed pieces' volume together.

BelowResolution Number

Separate bits thinner than the resolution that stay: never counted as pieces; a bit confirmed separate is removed when Keep does not keep it.

Resolution Number · mm

The resolution the pieces were found at.

ResolutionCoarse Yes/No

True when the resolution is coarser than parts of the Solid: pieces found at it are joined at a finer look, or pieces Keep would remove could not be confirmed separate and were kept. A smaller Resolution counts them right; nothing is removed on the strength of a coarse look alone.

In the demos

What implicit modeling is

Clever Design GmbH · Einsiedeln, SwitzerlandPrivacy · Imprint