Sweep 1 fails


I am a Grasshopper newbie. I am trying to sweep a closed planar curve around a circle with Sweep 1, but it fails.

Any idea what’s going wrong here?

sweep circle.gh (11.3 KB)

don’t really know why it’s failing, the RhinoCommon equivalent works like a charm:

by the way, if you are sweeping a single section along a circle I’d rather go for Revolve as it produces the same result:

sweep circle_Re.gh (19.4 KB)


Yup - you beat me by 11 min. Surface of Revolution is definitely the way to go here.


But why doesn’t Sweep1 work straight from GH?

1 Like

Ok, so actually it should work, this is good to know.

Unfortunately, I have no Python skills and I hear the term ‘RhinoCommon’ for the first time. I guess what you do is calling sweep from Rhino via a Python component or something – interesting! Something I might look into in the future.

Ok, I’ll go with revolve then.

Thank you for your swift reply!

ohh silly me, here is the culprit:


Ahh, I see this has to be 0, now it works. Thanks!

1 Like

exactly, you’re sampling the end-point of the curve (t=1 on a reparametrized curve) so either you reverse the curve direction and keep t=1, ore use the original curve direction and use t=0

by the way, I didn’t think Sweep1 was so “sensible” to that, given t=0 and t=1 are the same plane on a closed curve, that’s why it took a while to figure out :slight_smile:

on a side note, if you’re using a slider to sample t, then it’s sort-of expected that the value of t could change (or be manipulated)
if that is the case, then also these construction planes should be created in such a way they will follow the initial Frame where the whole section is created (no XZ planes, because those will always be oriented XZ)


Regarding Inno’s side note – I’ve tinkered a bit and found I can use the components Deconstruct Plane + Plane Normal instead of the XZ Plane to keep the frames oriented to the circles as I move the circles around.

Is there a better way to do this?

tinkered around.gh (18.1 KB)emphasized text

I think you are good to go :slight_smile:

this is more of a shortcut thingy:

Plane Normal wants a Point and a Vector to build a plane, so you’re taking the plane in (A), deconstructing it to get its Z-axis in B and plugging it to the Z-axis direction, all is good and correct

if you connect the plane (A) to a Vector Parameter (D) you’ll see that it automatically takes the plane Z-axis vector

so if you want to shortcut, you could pass the plane in (A) directly into a Vector (D), and plug that vector directly to (C)

but HEY!
we just said that C wants a Vector!
this means that whatever you pass into C, it will betransformed into a Vector
so you can directly connect A to C and it will work :slight_smile:

this saves you a component in the definition, but does not make any change whatsoever to your workflow :+1:

if, instead, you are looking for a different way to get to the very same result, one option could be to build the section curves on XY plane, for instance centered on point {0,0,0} and then Orient the section curve on the Perpendicular Frame of interest to create the Sweep/Revolve

there is no particular benefit, it just allows you to model the section curve on XY without thinking of creating additional planes (like the ones you tinkered about) because if the section curve is flat then you can just entriely model it on XY

section created on XY plane:

then oriented on the Perpendicular Frame:

tinkered around_Orient_Option.gh (17.2 KB)

but again, it’s the very same

1 Like

Awesome answer, very clear and instructive!

I’ll implement your suggestions in the evening.

Thank you very much!

1 Like