Hello all,
I just can’t get this curve to sweep correctly. One rail is a straight curve and the other is curved. Rhino widens the swept curve no matter what I try (see screenshots):
Any help is greatly appreciated. Happy new year!
Tom
Hello all,
I just can’t get this curve to sweep correctly. One rail is a straight curve and the other is curved. Rhino widens the swept curve no matter what I try (see screenshots):
Any help is greatly appreciated. Happy new year!
Tom
Can you post the .3dm with your curves, etc? That will give potential helpers something to analyze instead of making guesses from your pictures. Also, in general it’s also helpful to include the output of the rhino SystemInfo command in a request for help, although it looks like the .3dm will provide everything needed in this case.
yep - please post a 3dm file.
don t expect to much magic from a surface command. - maybe you have to build 4 surfaces: edges/profiles, top, bottom.
Here is the 3dm file:
sweep2.3dm (199.9 KB)
Hi Tom, I do not see that here so far.
-Pascal
Thanks for looking at it, Pascal. I can’t get it to do anything but what I’ve posted. It widens the profile as it sweeps to the other end. It’s supposed to maintain a 1-1/2" overhang, but it widens it to 2-3/16" every time, like it’s scaling it up as it goes along.
Tom
Hi Tom - make sure to give it both profiles - one at each end - and make sure to align the direction arrows to corresponding points on the profiles.
-Pascal
Thank you, Pascal! I’m still very new to Rhino. I didn’t realize that I could pick more that 1 shape to sweep and I have never messed with the alignment direction yet. Still learning…
Tom
for simple control I would recommend a setup of curves like above for a sweep2, then build the bottom as loft or planarSrf.
but check the variable width / length of this isocurve:
@Tom_Haws
this approach will give you most control on how the shape varies:
4 surfaces (sweep1,spwee2,loft) and join.
One of your rails has a knot in the middle, which is why “Sweep 2 rails” created a less than optimal output. I recommend you to use single rail curves with degree 4 or 5, instead of joined curves with different degree each. Also, when you have profile curves with sharp corners like in your case, I recommend you to place the end points of the rails there, in order to minimize the complexity of the output surfaces.
Here are two possible solutions. Note that I converted your rails to degree 5 and this gave a much cleaner and uniform result. I also exploded the polysurface and applied the ! _RemoveMultiKnot
command to each of them, in order to get rid of the unnecessary control points. Note that this particular “Sweep 2 rail” surface required to use the “Maintain height” option, otherwise the top of the output model becomes wavy.
Input rails with degree 4 and 5 control points:
Resulting “Sweep 2 rails” model:
Exploded model and applied ! _RemoveMultiKnot
command:
The other solution is the absolute best way to create such extrusions. It’s about using “Loft” with the “Loose” option. When the History recording is turned on, this is a very powerful approach to adjust the shape subsequently while keeping the control points at the bare minimum. This way, you even don’t need any rails. To make the two inner profiles, I simply copied your smaller end profile. Once I built the lofted surface, I adjusted the two inner profiles in such way that the overall shape closely resembles the desired output of your original rails.
Loft with Loose option.3dm (715.3 KB)
Using “Loft” with the “Loose” option":
Here are some videos that show various examples of using “Loft” with the “Loose” option:
The rail is a polycurve (not a multi-span single curve) comprised of two arcs. The point where the two arcs meet could be described as a joint. It is not a “knot” which has a specific meaning in conjunction with NURBS curves. (Use What
or List
to see what type of the geometry the rails are.)
Whether replacing the polycurve with one single span curve would be more “optimal” depends on the project objectives and and adjacent geometry which needs to be matched.
The fact that one rail is a polycurve has nothing to do with the difficulty the original poster asked about.
The original poster’s desire is to maintain a constant overhang on either side of the rails while the distance between the rails changes. That is not how Sweep2
works. Sweep2
varies the width of the entire section including the overhangs as the distance between the rails varies. This happens completely independent of whether the rails are straight lines, single span curves, multi-span curves, polycurves, etc. Changing the rail to a single span curve will not solve this problem. A different approach than a single use of Sweep2
is needed. Tom_P has shown a good approach to accomplish what the original poster wants without any need to change the rails.
This can a useful approach in some situations. But it does not ensure that the resulting surface exactly matches the give rails with constant overhang if that is required.
I believe that the design intent is to build a nice, smooth and relatively uniform shape free of sudden kink in the middle or other irregularities.