Timber Plate Structures

TPS by C.Robeller is a Grasshopper Plugin for the design of freeform Timber Plate Structures.this plugin has been developped within IBOIS laboratory, in 2017, in collaboration with prof. Yves Weinand, head of IBOIS.

The “TPS_DiamondMesh” component lets you quickly generate diamond folds (also called Yoshimura folds) based on freeform surfaces. Note that this tool is meant for discrete (timber) plate structures, built from separate pieces which are connected with joints. The resulting meshes can be, but are not necessarily flat-foldable as in Origami.

  • Input Surface “S”: Connect your Rhino Surface. If you want to use Grasshopper Breps, you will have to deconstruct them first into individual surfaces.
  • Input division “U” and “V”: Set the division in the U and V direction. To swap U/V, use the _dir command in Rhino and select “swap UV”
  • Output “M”: outputs the diamond mesh.

The “TPS_AnalyzeMesh” component can display essential information, such as the dihedral angles* between neighboring plates. This is important for the joining and fabrication of plates, depending on the material, assembly and production methods.

  • Input Mesh “M”: Connect your Rhino Mesh.
  • Output edge points “Ep”: Edge mid points
  • Output edge IDs”Ei”: Edge ID numbers
  • Output dihedral angles “Da”: Edge dihedral angles
  • Output face points “Fp”: Face center points
  • Output face IDs “Fi”: Face IDs

The “TPS_MiterJoints” component creates 3D plates which are connected with miter joints:

  • Input Mesh “M”: Connect your Rhino Mesh. Works with closed or open meshes and with triangles and planar quads.
  • Input thickness of plates “Tp”: Set the plate thickness. Only positive values are possible.
  • Input length of chamfers “Lc”: Set the length of chamfers ate the plate edges. This is necessary for most freeform plates to avoid collisions. When not needed, set zero. The plugin limits this value to max 30% of the edge lengths automatically.
  • Create flat contours “Fc”: Layout flattened versions of all plates on the world XY plane. Spacing depends on max plate size. Text ID numbers are added as curves on the Pl output.
  • Output plate polylines “Pl”: plate polylines, bake for polylines
  • Output plate meshes “Pm”: plate meshes, bake for closed meshes

The “TPS_MTSJoints” component creates 3D plates which are connected with dovetails, fingerjoints or miter joints:

  • Input Mesh “M”: Connect your Rhino Mesh. Note that dovetail joints will only be added for edges with a fold angle up to 140°. For more obtuse angles, miter joints will be applied automatically. Works with open or closed meshes, triangular faces and planar quad faces. The edge lengths of the mesh must be at least 4x as long as the selected plate thickness. Plates with shorter edges will be skipped.
  • Input Joint tab length “L1”: Set the desired length of the dovetail or fingerjoint tabs. Minimum 3 and maximum 50 joints are allowed per edge, otherwise miter joints will be created. To obtain miter joints for all edges, simply set a high tab length.
  • Input thickness of plates “Tp”: Set the plate thickness. Only positive values are possible. Note that plates will only be generated when all edges are at least 4x as long as the plate thickness (very short edges or very thick plates wont work, the plates will be skipped).

  • Input joint rotation angle theta “”: The theta angle adjusts the dovetail joint angles in degrees. Set this to 0 for finger joints.
  • Input insertion vectors “Vi”: Joint assembly directions can be set manually as a string list of 3D vectors, such as (Edge ID, X, Y, Z). Invert vector directions to invert the joint angle rotation sequence. When multiple edges on a plate must be joined simultaneously, the vectors must be the same for those edges, otherwise the plate cannot be inserted.
  • Input transition segment length “L2”: this parameter adjusts the length of the miter joint segments at the start and end of joints, from 0.0 up to 0.1 of the total edge length.
  • Input Mesh output “M”: creates Meshsolids when set to true. Bake the meshes to obtain solids (closed meshes) for all 3D plates.
  • Input vertex holes “Vh”: this creates chamfers (holes) at all vertices. You will need to turn this on for most freeform meshes.

  • Input flatten contours “Fc”: If set to true (default), all valid plates will be laid out on the world XY plane. Mesh solids are added if the mesh bollean input is set to true.
  • Output plate polylines “Pl”: plate polylines, bake for polylines
  • Output plate meshes “Pm”: plate meshes, bake for closed meshes
  • Output insertion vector points “Vp”: insertion vector display points
  • Output insertion vectors “Vv”: insertion vector display vectors

PH Newsletter

Free Weekly Scripts

Join our exclusive email newsletter and be the first to receive our free, useful Grasshopper scripts every week!