Sweeping multiple curves in one go along a rail

I am trying to sweep 19 circles along one central curve. I can’t get to work to sweep it. Is there any way to group the curves to sweep them together or have I reached the bounds of the possible?


Hi Elmar - since Sweep1 accepts multiple cross section curves per rail, there is no way for it to understand that you want multiple sweeps. ExtrudeCrvAlongCrv will make one per circle, but the shape does not track the ‘rail’ in the same way as Sweep1, so it may not get you the right thing.


If you had got this to work, then you would never see the inner circles (extrusions) in the final shape…?
So if this is correct, you might just make a single curve from the outer boundaries, and sweep that, or use the extrude curve…command as pascal suggested.


That’s right, however I wanted to later be able to make sections where they show up individually. I guess I’ll have to make a compromise.

Hi Elmar,

This would be possible with Grasshopper (if you are know the basics of it).
Also, you can sweep multiple profiles along multiple curves using ArrayCrVPLUS (Free) or Armadillo



Right, thanks Jarek, I should have mentioned that.


I’ve attempted that which you have some years ago. It’s too difficult for Rhino to figure out all the curves that are to sweep but one rail. Your hexagonal arrangement, much like 1x19 wire rope will extrude comfortably.

Thanks for the tips Jarek! Seems like they could be a solution.

I know it is old thread but i wanted to write simple script for multi sweep with one rail and one profile each and i’m stuck - when i pass string it wants array when i make array it want string ??

Sub Main()
Dim profiles, arrProfile, rail, object
profiles = Rhino.GetObjects("Select Profiles", 0, 0, 1)
If isNull(profiles) Then Exit Sub
rail = Rhino.GetObject("Select Rail", 0, 0, 1)
If isNull(rail) Then Exit Sub
Call Rhino.enableredraw(False)
For Each object In profiles
	arrProfile = Rhino.MakeArray(object)
	Rhino.AddSweep1 rail, arrProfile
Call Rhino.enableredraw(True)

End Sub

I think you want this:

	For Each object In profiles
		arrProfile = Array(object)
		Rhino.AddSweep1 rail, arrProfile

i.e. Array(object) and not Rhino.MakeArray(object)

HTH, --Mitch

1 Like

Hehehe i probably tried ArrayList and new Array but missed only Array() :slight_smile:

Thanks Mitch!

May I ask if you solve this? I also wanna know the answer! I would really appreciate if you could let me know if you did. :slight_smile: