Sweeping multiple curves in one go along a rail


#1

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?

Thanks


(Pascal Golay) #2

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.

-Pascal


#3

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.

Cheers
rabbit


#4

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.


#5

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

hth,

Jarek


(Pascal Golay) #6

Right, thanks Jarek, I should have mentioned that.

-Pascal


#7

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.


#8

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


(Przemysław Doliwa) #9

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
Next
Call Rhino.enableredraw(True)

End Sub


#10

I think you want this:

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

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

HTH, --Mitch


(Przemysław Doliwa) #11

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

Thanks Mitch!