This component iteratively samples a surface, mesh, or polysurface to find the most vertical flow path along a geometry. It is based on the method laid out by Woojae Sung in this Blog Article. It takes the approach of using the surface normal and Rhino’s z direction to create vector cross product which is multiplied to a sample distanced, whose closest point to the test surface becomes the next step. This component adds several new options to this approach such as the ability to use it on a mesh, polysurface (brep), and a surface. It also adds a new option to refine the samples around each test point to give a more accurate path within the specified tolerance, a limit on the shallowness that the path can traverse, and an optional sample limit. Samples are cut off when no more vertical change occurs from step to step, or two iterative sample points are identical.
INPUT Geometry (Mesh, Brep, Surface) Item G A Mesh, Brep, or Surface input.
INPUT Point3d Item P The starting point of the flow path
INPUT Double Item D The Rhino based step size for each successive sample point
INPUT Integer Item S An optional input for the total number of potential sample points
INPUT Double Item R An optional input for a radial step size to test for a lower sectional point. The default of 0 uses the cross product and is sigificantly faster
INPUT Double List T An optional input to place a shallowness of angle limit, which if passed, ends the flow path
OUTPUT Point3d Item A The list of sample points along the flow path
gha | Download User Objects
gh | Download Grasshopper Sample Files
Platform | Rhino 5, Grasshopper
Version | Grasshopper 0.9.0075
Type | Visual Basic Component