Recursive Loop with Anemone for Reciprocal-type Frame Column

Hello,

I am trying to model a reciprocal-type frame over a column, and am running into a recursive loop problem. From what I can find out, it seems that a loop with Anemone may be able to solve my issue, but I am having some trouble figuring out how to implement it. I hope I can resolve the issue without Python/C# or Kangaroo. I would like to keep the geometry of the frame linked to the surface so that I can modify the surface later and the frame will adapt, as opposed to ‘growing’ the frame up from the bottom. Images below show where the recursive problem arises when endpoints are relocated to points on curves. Also pictured is an idea of how the frame should look if it is unrolled.

Any help would be greatly appreciated. Thanks in advance!


RecursiveColumn.gh (34.5 KB)

RecursiveColumn.gh (19.4 KB)
I don’t think you need any recursion to generate this pattern. Attached is an example that just uses the UV grid of a surface to generate a similar pattern (assuming I understand the design intent properly).

I do think, if you want to use linear elements or elements with specific physical properties, you may want to simulate those properties using Kangaroo. In the attached example you can see how replacing curving structural elements (that run through the point grid) with straight elements causes them to deviate at the joints based on the relationship between the radius of the circle and the frequency of the structural pattern.

Thanks @wzesk for the help, this is a great start. I am working on a structure that will eventually have joints milled in linear wood sticks, so it is important that the elements remain linear. It is also important that the lines intersect one another directly, unlike the offset based on element diameter for stacked reciprocal frame structures. I am new to Kangaroo and am working on figuring this out. It seems like I may need to use selected anchor points to make sure the lines intersect, and use springs to keep the elements straight as well as a pull to surface to keep the geometry near the original surface. Any advice or direction to existing examples would be appreciated. Thanks!

So it sounds like kangaroo may be the best path forward. You can represent the joints as small line segments – you probably don’t want then to actually intersect, just be at a constrained distance based on the joint geometry.

I think there is a great discussion of a similar strategy here: https://discourse.mcneel.com/t/reciprocal/73990/13

The examples are not columns, but the challenges+solutions are similar.

Alternatively, you could calculate the # of the framing elements in plan based on the requires chord height of the corresponding arc segment so that chord heigh matches the desired joint width (more framing elements, the shorter the chord height). I will try to find some time to illustrate that…