Efficient Curve Tools?

I’m trying to create a blade like object. Both sweep 2 and Edge Crvs product a surface with a bulge in the middle. There’s no option to control this. Maintain height I would think should but doesn’t.

I would like to +1. I have yet to find a video demonstrating the use of the handle curve in Rhino that demonstrates the ability to go from a straight segment, to a tangent arc to a kink, to a non tangent arc. I am guessing that last part is possible, but I have fiddled with using alt, ctrl, and can only get certain kinks to happen without ending the line. It is also a lot less intuitive IMO than other 2D bezier software. A slightly altered handle curve tool that more closely replicates other bezier software, in addition to the existing one that other people prefer, would be much appreciated

Again, it all depends on what workflow you’re used to. If you are used to the Illustrator style of working with connected Béziers, Rhino’s curve tools will make you crazy. If you are used to Rhino-style NURBS curve modeling, working in Illustrator will make you crazy (it does me).

Mostly when people want to introduce kinks or corners à la Illustrator, in Rhino I suggest simply ending the current curve and starting a new one. You keep the various segments you draw separate until the end, then you join them into one curve at the end. You can still edit them afterwards, joined or not.

The existing handle curve tool in Rhino is so close though, that with a few tweaks in a second version of it you could onboard a lot of people coming from other 2D vector software. I cant even find a single vid of someone using the handle curve in a remotely efficient manner. Plus I would challenge anyone to accurately trace a complex profile in rhino, using any combination of curve tools more quickly than an avid user of Illustrator using the pen tool. I am not opposed to being wrong, but I would be shocked if anyone could keep up with all the extra clicking and post control point editing necessary.

And we all know that Rhino is the best software with the most features. Illustrator cant compete. But Illustrators pen tool is better. Why not crush them on that front as well by having the best and fastest handle curve tool, so people like me can leave them behind forever? Well, I already left them behind and use Affinity Designer, but the point remains.

1 Like

Recent posts by @hunterstabler in this thread are a continuation of Bezier Pen tool similar to Illustrator? - #14 by jespizua

This thread here is a great illustration (heyooooo!) of why importing Bezier handle curves from AI into Rhino and then making surfaces from them is problematic:

Your wish for curve creation in Rhino to be more like AI is definitely shared by more than a few people, but it’s setting yourself up for failure down the road if the goal is to make nice surfaces.

1 Like

Hey, I’m famous.

Anyway, I tried rebuilding the body by generally tracing the original imported line work. I am ending up with separate edges, even once they’re joined & extruded.

I’m drawing this in separate segment and snapping to the segment ends, but it’s not working. You can see that after extruding, the edges separate into their original pieces. I’m sure I’m doing something “wrong” but am pretty new to Rhino, so not sure what to look for.

separate-edges-after-join

gitar whatever.3dm (75.1 KB)

1 Like

Actually you’re doing it right! Rhino will create one surface for each curve that gets extruded. In NURBS modeling, your curve layout matters because it leads to your surface (patch) layout. Joining doesn’t unify geometry, it just tells the program “hey these two things are one”.

Your curve is actually a polycurve, made up of 13 individual curves joined together. When a polycurve is extruded the result is a polysurface, which is individual surfaces joined together.

What tools are you using to create the curves? HandleCurves inherently creates polycurves, not a single curve.

I split your polycurve at what appears to be intentional kinks. Then I rebuilt the curved sections using RebuildCrvNonUniform with a tolerance of 0.05 and a maximum of 60 points. The results are single degree 3 multi-span curves. These curves have continuous curvature which means reflections in the sides will not have kinks. The original curves had curvature discontinuity which means reflections would have kinks.

The shape of the rebuilt curves can be refined by moving control points, and adding control points where needed using InsertKnot. (InsertKnot is preferred for adding control points instead of InsertControlPoint because InsertKnot does not change the shape of the curve.) It may be possible to simplify the curve without changing the shape too much by using RemoveKnot.

gitar whatever DC01.3dm (1.6 MB)

Thanks David -

Just using control point curves with a few lines for the straight parts.

With your rebuild, I’m still getting significant artifacts:

I believe it’s being caused by the radius of the fillet, since reducing it to .1 seems to work:

Increasing the radius to .2 breaks it:


larger radius2

The radius of the fillet needs to be larger than the minimum radius of the edge for the fillet surface to be smooth.

Thanks David -

The radius here seems to be ok, but am going to look more closely. It seems that this curve is fairly smooth as you can see above, so I suspect something else is going on with the curve geometry.

Does Rhino have any kind of continuity / tangency check?

CurvatureGraph for curves and surfaces Rhinoceros Help
GCon for curves. Only works for continuity between curves. Does not show continuity between spans of multi-span curves. Rhinoceros Help
EdgeContinuity for surfaces Rhinoceros Help
Zebra for surfaces. Rhinoceros Help

1 Like

Use Curvature to check the radius. You can use it with CurvatureGraph. CurvatureGraph to identify where the curvature is the largest and the radius is the smallest, and Curvature to see the numerical value of the curvature and radius.

For the curves I uploaded the minimum radius of the curved portion is 0.177 at one location and 0.187 at another. That is why FilletEdge with radius of 0.2 did not work as expected.

1 Like

Excellent, thanks.