Ivy mesh segment by rows?

Hey there, I can almost always find what I need on here but I’m striking out hard on information regarding Ivy and mesh flattening. My goal is to assemble this model out of laser cut paper with glue tabs, and to have each row of the mesh as a different piece of paper…Screenshot attached, but I can’t use the pictured method because it requires separating the mesh, so I lose the ability to create glue tabs between rows.

It seems like there should be an easy way to segment by rows, rather than some funky tree structure.

Another random problem I’m having is joining mesh faces in each branch. Mesh join wants to automatically flatten, has anyone experienced this problem?

Many thanks!

ivy-row-segmentation.gh (22.4 KB)

missing
Caveats:

  • I know very little about meshes.
  • I don’t have Ivy or the older (0.099) version of Kangaroo.
  • This model works only on square meshes and depends on a “magic number” for the ‘C’ (Count) input to Series, which controls the Partition sizes.

Even so, I can imagine ways of extending the idea to handle meshes that aren’t square and don’t depend on a “magic number”…


ivy-row-segmentation_2019Jul24a.gh (24.2 KB)

This model doesn’t depend on a “magic number” or a square mesh or the mesh being “co-planar” with World XY:


ivy-row-segmentation_2019Jul25a.gh (36.8 KB)

My first useful Python script! Because I don’t know how to do this with Anemone:

import rhinoscriptsyntax as rs

pLen = 0
partLen = []

for i in x:
    pLen += 1
    if (i == False):
        partLen.append(pLen)
        pLen = 0

In a way, this is a combination of the first two methods, yet entirely different. It uses RelItem to compare mid-points of mesh face edges. When they are equal, the edges (and faces) are adjacent. The Python transforms the list of Boolean values into a list of partition lengths and voila, “Bob’s your uncle”!


ivy-row-segmentation_2019Jul25b.gh (38.1 KB)

P.S. How do you create a mesh like this?

Ask your Uncle?