Catenary columns in Kangaroo

New to Grasshopper and Kangaroo and having trouble finding a solution, though I’m thinking I can’t be too far off.

I’m trying to create catenary columns that extend to a common height, as seen in this first image:

The following axonometric, shows a worm’s-eye view of what I’m referring to, as these are columns, and not simply extruded arches.

My initial attempts utilizing tutorials on youtube have involved creating anchor points around the edge of roof. This first attempt, in section, simply offset anchor points for the columns. Whilst these appear to be catenary arches, the peaks of the arches are extremely low.

With my second attempt, I tried to ‘button’ to the tops of the lower arches to the correct elevation with anchor-points at their pinnacle. Evidently, however, it didn’t work, and I was left with these bizarre forms.

My most recent attempt, is getting closer but not quite there. I isolated the tributary area of each column, as shown below, and focused on one column at a time. Anchoring the edges of its span, I once again anchored the column at a lower elevation. I figured that halfway between columns is where the highest point would need to be.

While this got me much closer, this section shows that these aren’t the catenary arches that I was looking for. The larger spans are nearly horizontal as they rise, and the more narrow spans meet at a point as opposed to a more rounded curve as seen in the first image.

If anyone could provide some feedback or point me in the right direction, it would be very much appreciated! This is my first time using grasshopper and kangaroo, so advice might have to be in layman’s terms.

Here’s what I’m working with in Grasshopper

Welcome @at00,

Which YouTube tutorial are you referring to?

It appears that the anchor points are simply fixing in place individual mesh vertices, which probably is not a good idea here, since the columns of the vaulted structure all start/end at basically an apex point, and would need to get chopped off later?

Look, without at least seeing the topology of the mesh that you’re feeding into Kangaroo, it’s really hard to say what’s going on here. It would be best if you could at least upload a relevant example file!

For Kangaroo, your mesh topology matters a lot. The cleaner, the better!
By “clean”, I mean a quad or tri mesh with rather equally sized faces and a neat, continuous edge/face flow, probably something akin to this:

Pinching individual mesh vertices to form columns frankly doesn’t seem like a sound idea, unless they’re explicitly your goal, but then I wouldn’t stick their peaks into the foundation. :wink:

Thanks for the quick reply!

Which YouTube tutorial are you referring to?

I’ve been using a number of different tutorials, though the most recent one I’ve been trying to understand would be this one. It wasn’t exactly what I was looking for, though I did my best to adapt it for my needs.

It appears that the anchor points are simply fixing in place individual mesh vertices, which probably is not a good idea here, since the columns of the vaulted structure all start/end at basically an apex point, and would need to get chopped off later?

That’s correct. I wasn’t sure how to create circular points as opposed to single points, and thought I would tackle that once I resolved the basics. I had had considered offsetting the surface at the end, which would also account for the material thickness.

Look, without at least seeing the topology of the mesh that you’re feeding into Kangaroo, it’s really hard to say what’s going on here. It would be best if you could at least upload a relevant example file!

My apologies! I wasn’t sure exactly would be most useful.

Below is an example of one of the curved areas I fed into Kangaroo with surrounding anchor points around the edge. I then converted this curve into a mesh. The point at the converging lines is the location of the column. As I divided the roof into surfaces of single columns (which you can see connecting on the right and lower portions,) I created a grid for my own reference, so that I could sub-divide each surface at identical intervals. I understand this is probably an extremely primitive way of accomplishing this, though it was the only way I knew how.

This is the top-left most of the following, which is corresponds to the final layout.

Pinching individual mesh vertices to form columns frankly doesn’t seem like a sound idea, unless they’re explicitly your goal, but then I wouldn’t stick their peaks into the foundation.

You’re absolutely right! I simply am not sure the best way to tackle this, so I suppose I’m ‘Macgyvering’ it a bit.

I appreciate your feedback. Hopefully what I’ve provided will give you some more insight. If there’s anything else I can provide which might help, I would be happy to provide it!

GH file (with only the mesh and grid that you show above)!

GH file (with only the mesh and grid that you show above)!

Hopefully these work, as the GH file references points on the rhino file. I’m not sure how to export them in tandem, so hopefully they work!

catenary 2.3dm (3.4 MB) catenary-kangaroo.gh (17.2 KB)

Here’s a quick an dirty example!

The easiest thing is probably to draw the base mesh by hand, like I did. I did a quick example that can still be optimized, but should give you an idea. Doing it parametrically in Grasshopper would also work but be a bit tedious and time consuming to implement!

This is how it looks, the base mesh:

After that it gets refined, because further subdivisions make for a better simulation, and relaxed with Kangaroo.

One thing to note is that you work pretty far away from the origin, which is not a good idea especially when working with Kangaroo, since tolerance issues can arise.
I’ve thus moved everything to the origin for simulating and then back to the original location!

relax.gh (16.7 KB)

2 Likes