Unable to make basic ridge tent structure

I’m trying to make tent structure as seen on the right. The right one was already there in the demo file that I downloaded. Now I’m trying to use the same method on a quadrilateral on the left, but nothing happens. Not even an error. What am I doing wrong?

ridge_cable_SEPARATE ATTEMP.gh (32.6 KB)

You could do like this but I think your initial mesh is too coarse to ge a decent result. More subdivision would be better.

ridge_cable_SEPARATE ATTEMP_re.gh (39.3 KB)

I know very little about meshes or Kangaroo… Still, I can compare working code to broken code and the obvious first thing was that you didn’t internalize (or initialize?) the ‘RIDGE ANCHORS’:


The following shows my first (failed) and second (successful) efforts at defining those points:

Point On Curve failed because it isn’t one of the mesh points while End Points ‘S’ (Start) works. But it’s not parametric, so here’s a third method using Curve CP that responds well when the Mesh ‘S’ (Settings) input is changed:

ridge_cable_2019Jul23a.gh (46.5 KB)

The second one uses 140 instead of the default 16 for ‘Base Sampling Grid | Mininum’:


The BouncySolver in your copy is much slower than the regular Solver used in the original.

So sorry for not posting the 3dm file.

Here it is.


Yeah, my bad totally. I forgot to attach the 3dm file.


In this anchor component, the target ones are the upper ones. The point ones are on the ground plane that need to go up.


This looks more complicated than the original completed sample posted. Surely I agree that my mesh is very rigid. So is that the only problem with my script besides my data not referenced and missing?

p.s. I get this block quote button whenever I try to quote by pressing the quotes button. What am I doing wrong while posting?

ridge_cable_SEPARATE ATTEMP.gh (28.9 KB)

Okay, I increased the mesh parameters. I set the minimum base sampling to 150. Still not getting the result. I’m trying to directly mimic the one on the right, just on a quadrilateral instead of rectangle.

Check this if it helps.

And your ridge curve should be placed on the interior edges of your base mesh.

Please look at my model, I don’t need the .3dm file.

ridge_cable_SEPARATE ATTEMP_reV2.gh (39.5 KB)

ridge_cable.gh (18.0 KB)

I am confused about comparison to this original downloaded demo one (earlier mentioned in the original post as the tensile structure on the right’) which has the least number of components and therefore least complex. It does not use any cull component , cull pattern, smaller than component. Moreover,what are 7 those values on the left panel? The original one does not have that component.

So, you don’t want to know how the definition works? You can simplify it as you say anyway, the content is almost the same. But my previous posting only gives you a further explanation of how which edges were chosen for specific cable(?) control.

ridge_cable_SEPARATE ATTEMP_reV3.gh (35.7 KB)

1 Like

Of course, I do want to understand how this is working. So please correct me if I’m wrong. The ridge and the ridge anchor points that are defined for the kangaroo component has to be extracted from the base original mesh. Correct? I cannot draw line in Rhino from two short opposite edges of the quadrilateral in order to define that ridge?

Another query,

16, 23 for ridge anchors

19, 20, 22, 24, etc. for the ridge cable in your post marked with red doodles. How is the decision made to enter those specific numbers only?

Another question, the points are not baked in the ridge anchor points . How does gumball appear on them when they aren’t baked inside rhino and are purely inside grasshopper?

Absolutely. And you’ll need to prepare line segments(which means exact the same portion of the mesh edges,Not a long single curve)for the Lengthgoal.
In my prevoius posting, I used a single line like cuve with Curve closest point to get the edges nearby that curve.

You can use Deconstruct Mesh to get your mesh vertices and by using Point List(Display–>Vector–>Point List) you can visualize the order of mesh vertices and choose the index of the anchor point position.

You can internalise points referenced from rhino by RMB pop up and choose “Internalise Data” on the point parameter and use gumball in GH if your gumball option is enabled(Display–>Gumballs).

1 Like

For whatever it’s worth (not much if you don’t look at this model), here is a way to pick any two points from the mesh as the basis for your ‘RIDGE ANCHOR’ points. It uses two MD Sliders that refer to the Boundary surface defined by the mesh.

It works independently of Custom Mesh Settings in the cyan group.

Kangaroo appears to respond when these two points are moved, horizontally or vertically, but I’m not sure if the result is different than what happens when the ‘RESET’ button is clicked?

ridge_cable_2019Jul24a.gh (41.8 KB)

1 Like

You can use Deconstruct Mesh to get your mesh vertices and by using Point List(Display–>Vector–>Point List) you can visualize the order of mesh vertices and choose the index of the anchor point position.

Isn’t there a way I can directly pick lines from the Rhino interface by manually clicking on the edges or a selection window? Right now on a basic practice for understanding the fundamentals, this is just a rectangle and numbers have to be picked and entered into the panel. I wonder how will I enter so many entries when structures become complex and the number of subdivisions of the shapes increase.

Okay, I will check this one too. Right now I’m understanding the functioning of HS_Kim’s model.

@HS_Kim, is this curve made up of 7 segments which were specified from list item component and panel? Can you attach 3dm file also please?

Another query, the ridge curve is input and in the output after cull pattern, ‘curve closest point’, ‘smaller than’ calculations, we get the same curve. What is the purpose of the green encircled components if we get the same curve after so much of computation of components?

You’re asking me again what I’ve already told you.
Bake your mesh edges and choose your mesh edges you want if that’s an easy way for you…