Twisting a bent bar

I want to take a semicircular bar, .25" x 1" that is bent on edge and twist it at a rate of so many degrees per unit rotation. (hope that makes sense). I started trying in the gh file (10.5 KB)
but don’t understand how to get my arc segments converted to lines. Is there some gh object to accomplish this? I want the twist axis to be an arc right down the center of the cross section of the bar.

Moved to Grasshopper category

Here is one option which might help you as a place to start. (10.3 KB)

Thanks, Adam. I see what you did. It gives me some ideas on things to try. But what I want to ultimately do is edge bend the piece first, then twist having the twist axis be only a small portion of the arc, then step through the arc. What you’ve done is to twist first and then bend the entire thing. But I appreciate your feedback because it does give me some more ideas to play with. For instance if I make the line segment small enough and let the tangent direction be dependent on the position on the arc, I might make it work the way I want. No time to play at the moment, but will post another attempt tonight.

I’m not sure I fully understand, if you have any drawings it would be helpful.

On the Twist component there is an Infinite (I) input, I currently have it set to true. If you set it to false the twist starts more gradually. Is this the kind of thing you are talking about?

It’s a little complicated. I am wanting to understand how to create a right helicoid in steel. I am an artist blacksmith. This thing would look like an expanded slinky toy, a spring, or a spiral staircase. I include a sketch to hopefully convey what I mean. Now, I can easily draw such a thing in Rhino and I can program gh to draw one. However, what I am currently trying to do is build a tool in gh that will allow me the following. In my shop I know that I can bend a flat piece of steel on edge into a curve, then be judicial amounts of twisting I can “raise” the planar circular structure into a spiral. I have been studying differential geometry to try to find a way to calculate how much twist to get such and such a spiral. The tool I want to build in gh would allow me to test various amounts of twisting that I have calculated without going into the shop and wasting fuel and metal. Here’s a pic of a simple helicoid around a cylinder.helicoid-surface-color
Hope this helps you understand what I am trying to do. The reason I want to twist the bent object a little at a time using short arc segments as the twist axis is because that is how I would do it eventually in the shop. A little at a time. I have tried a simplistic effort in Rhino and was successful enough to think that it could be done in GH which would give me programatic control.

I thought this might be useful. It lets you generate the helicoid and examine the inner, mid, and outer lengths. If you’re starting out with a straight bar, you’d probably be interest in the amount of deformation required, and since you’re a metalsmith, you’re aware of the limits. The center length is probably closest to the original length of the bar. If you were Superman though, you probably wouldn’t care.

wrap a (22.4 KB)

Taking it a bit further, lets say you first took the bar and first bent it into a circular arc (probably wrapping around itself a few times), then pulled the two ends apart in the z direction like a slinky, the radius would constrict and you’d get your helicoid. What would the radius and angular width of that circle have to be?

If L1 is the inner length and L3 is the outer length, the width of the bar is w, “a” is the total angle of the arc, and R the radius of the arc, then:

(R+w) = L3
so, a = (L3-L1)/w
and R = L1*w/(L3-L1)

I suggest you first try this out with something other than a piece of steel, like a strand of al dente linguine.

1 Like

Ethan beat me to it, so my only addition to his good work is to add the helix angle and height difference for a smaller segment of a specific arc length you might be pulling/twisting up.

wrap a (19.6 KB)

1 Like

Thanks Adam! I’m sure he’s working on the metal locally, section by section, and not pulling apart a chunk of steel with his bare hands as I implied - though I’d certainly enjoy seeing that.

1 Like

You never know with these Smithies: arms like bears, and hard as nails. There was a blacksmith in the town I grew up, I reckon he did the bending using his teeth.

And he shaved by hammering in his whiskers and biting them off from the inside.

Hi @akilli, Sorry, but I haven’t had any coffee yet this morning, can you explain what “slider B” represents?

Sorry, B is the height of the helicoid, or at least of the defining curve.

Thanks, Coffee’s kicking in: I now notice Length only applies to the cylinder.

Hi folks,
I appreciate the interest and I see what Ethan has done, I think. But as I mentioned, I know how to draw a helicoid and have done that in Rhino and also in GH. I’m trying to discover something that is related to how I would build a handrail for a spiral staircase. And as I said, in my shop I will bend the metal on edge into a circular shape, then twist it a little at a time which because of the cross sectional shape of the metal, it will rise into some form of spiral. In order to form a classic right helicoid I must know how much twist. I think this can be determined from the derivative of the binormal vector of a Frenet Frame (I am a blacksmith these days, but was an engineer for 30+ years). The tool I want to build in GH would let me verify what I think about the angle of twist. I can’t get an arc cast as a line segment. I think I’ll have to build an arc our of small line segments. Got to give that a try and will post if it works.
Oh yeah, if any of you need teeth pulled, I’ve got an assortment of tongs for the purpose. ha ha.


Here is maybe a simpler request referring back to my quest to twist a bent bar. How is an easy way in GH to generate an arc using short line segments? I can generate vectors for a circle for example but GH is not good for doing loops where I subtract one value from a previous one. So how do I take my generated vectors and subtract the ith+1 value from the ith value?

Hi Joe,

[Ignore the following, for reasons explained in the following post by Gijs]

Forget GH for a moment and think about the object. Then twist is easy. If you have a helix that completes one full turn of the cylinder then the cross section of the bar is in the same plane as it was at the start so the twist must be 360 degrees. And because the pitch of a helix is constant, so the twist is constant. For your semi-circular bar, the twist will be 180 degrees, for a quarter turn, 90 degrees. You know how to calculate the length of the helical path around a half turn of the cylinder: spread your 180 degree twist out evenly along that length. It’s easier to hammer out than it is to model in GH!


Yes in the same plane, but it will also be rotated in that plane… look at the link I posted above :wink:
In there at the bottom of the thread there is another link where the same question was solved.

example: a 1000mm diameter helix, with height of 1000mm, will need total twist of 109.2 degrees. For a 2000mm height 193.3 degrees of twist is needed

Argh! Shows the stupidity of ignoring a factor because one cannot get one’s head around it. Thank you for demonstrating forbearance by omitting the words “foolish boy!” from your justified rebuttal :flushed:

And thanks for the link to the other thread - looks like some meaty reading to be done there.


1 Like