Sweep or Loft in Arc Pattern

Hello,

I’m currently working on a problem in Grasshopper and can’t seem to find a solution. Any help would be greatly appreciated.

I am trying to create a circular shape around a rail that varies in size—alternating between larger and smaller. The pitch of the circles should follow an arc shape.

I’ve attached my attempt at solving this issue. Unfortunately, I’m unable to achieve a sharp corner, as the Sweep command consistently smooths the form. Would the Loft command be a better approach?

Additionally, I’m not sure if the Graph Mapper is the right tool for this task. How can I accurately calculate the scale of the circular profiles between the largest and smallest circles?

I’ve also included a screenshot of the profile I’m trying to create in Grasshopper. I’ve tried using Revolve and Bend, but neither produced the desired shape.

Thank you in advance for your help!

Best regards,
Jasper


250223_Circle_Along_Curve.gh (13.5 KB)

There’s a huge topic about how to best model a showerhose. This could be helpful in your situation…

Need optimization for very heavy (shower)hose - Rhino / Rhino for Windows - McNeel Forum

what is the final data used for ?
rendering ?
a 3d-printed mock up ?

what should the data demonstrate / show / lock like ?
what s the physical, real world reference ?

if you want a more or less precise surface, a tri-tangent-Fillet (between a pipe and the planar sections) would be a great approach - but we miss this functionality.

see this topic

The final data will be used for some mock ups which are getting 3d printed.
So it would be nice to get as close as possible to the desired form.

Thanks for linking the threads @martinsiegrist and @Tom_P !

Do you know if there is a way to “simulate” the pitch of a circle in the graph mapper or maybe as an expression. Then I think my grasshopper definition would be sufficient of what I’m planning to do.

all points x,y of a 2d circle

x = ctrx + r * cos(t)
y = ctry + r * sin(t)

Where:
ctrx,ctry is the center of the circle.
r is the radius of the circle.
t is the (variable) angle in radians 0…2Pi

pass as many t into above formula as you need to sample a circle.

modelling

a fast why for a mock up would be to look at each section more like this:
the green surfaces belong to the overall “tube/pipe”.
with this setup the searched surface can be approximated with a sweep2 that is tangent to both green surfaces and uses 2 more or less quater-arcs as shapes.

but not 100% what a perfect tritangent fillet will offer:

maybe a torus that is build deformable and cage edit (preserve structure) will allow a nice approximation…
then boolean union all the torus’s (tori ? = plural of turos ?)

1 Like

@Jasper_rh I wouldn’t bother about unioning the tori. If at all make them slightly overlapping. I’ve had hundreds of parts printed this way.


deformed tori…

they will not have this nice geometric “half circle” appearance - and i did not find a fast method on how to handle inclination points / positions…

how many different “donuts” do you need for your print ?
(if you are doing a quater-arc - you only weed need 2 different ones… one for the straight section, and one for the quater arc)…
the multiplied donuts (deformed tori…) will then form the final geometry…

2 Likes

Maybe the Flow component can be useful.
250223_Circle_Along_Curve a.gh (15.5 KB)

3 Likes

That is a nice script, thank you. Unfortunately the arcs - especially when you’re getting smaller are getting deformed like in the deformed Torus example by @Tom_P

I really like this solution. Trying at the moment to implement this into grasshopper. Two different arcs and two rails gave me the best outcome so far!
Appreciate your help, thank you!