Though this discussion never really took off, the challenge I’ve described here was fully explored and resolved in a conversation in the Grasshopper forums. There were two outcomes that we arrived at that I’ll convey briefly here…
Intersect Shouldn’t Punt
The unexpected behavior I’ve been having with Rhino, and by extension Grasshopper, is that the current implementation of the Rhino Intersect command is generating an incomplete network of curves when given 2 surfaces having regions that are (almost) coincident. When Intersect determines that there’s no single curve to represent the intersection in those areas, there is in fact an area of intersection, Intersect currently doesn’t generate any curve to represent that portion of the intersection. This decision to “punt” in these situations renders the generated results to not be useful for subsequent steps, such as splitting one or both of the input surfaces.
Through the tech support team, I’ve conveyed the observation to developers that Intersect should generate any non-kinky curve(s) through a region of intersection that connects with all other intersection curves adjacent to the region. Any valid curve is far more useful than no curve through these regions.
Mill Rather Than Construct
After some discussion and exploration, it was suggested that I create a solid having the desired surface texture by “milling” the bounding box of the interlaced surfaces, rather than fighting with R/GH in feeble attempts to construct a closed volume from a set of surfaces. Milling is a much more straightforward method to generate the desired shapes that doesn’t involve those areas of Rhino where it’s currently “getting confused” (read: Intersect). As an added bonus, the full milling process can be implemented using standard Grasshopper components. My sample GH document for doing so can be found here.
- Bob