Grasshopper: Generate Ruled Surfaces from a surface-UV-grid for Lasercutting

This is my version of something i have seen on www.liftarchitects.com. In addition to their solution, i come up with the possibility to choose my own vector for loft-rulings. I use one C# script component for the separation of lofts, along with another which just lets me choose between three methods (see below) of providing a generic list of vectors defining the directions of rulings, before they are passed through the component based on the status of an integer-slider. I didn’t find an easier way to do this, although the script itself is piece of cake 😉


rulings are parallel to global z-direction (developable)


an appropriate ruling-direction can be chosen explicitly (developable)


rulings are surface-normals. general ruled surfaces. (non-developable)

Note that the third variant, the one based on surface normals, consists of non-torsal ruled surfaces, which in general are non-developable, meaning that they cannot be projected to a plane without distortion, and one will get some irregularities when trying to produce the structure this way.

What i didn’t add yet is a method for the production of vertical slots at intersections of struts, but since i am going to lasercut such a construction soon, i will have to add it within the next days. I’m also planning to add a fourth method which will average rulings for each loft individually. This could come in handy if the input-surface is not too twisted. Watch out for that.

source: FreeFormForever