Hi,
As I want to generate a ship hull surface as a 5-degree surface with Grasshopper, I am curious what possibilities there are. I cannot find 5x5 degree surface components.
I have a lot of experience with the 3-degree loft option but like to explore the 5-degree realm in Grasshopper.
Can you please help me with some input?
Most surfaces are derived from curves. When using the Nurbs Curve component, you will be asked for a degree. This, in turn, will affect the degree of the generated surfaces. You’re question is too vague to get any answers here. Also, I am an idiot, so maybe there are tools directly built into surface components that influence surface degree.
Also… work with 3 degree curves. Especially when when doing rough shaping for things like the hull of a ship! The larger the degree, the more localized the changes of the individual control points, which is counterproductive to what you are doing.
Thank you Volker,
No one is an idiot. Especially not when you are a Rhino user
Clever Rhino users however also use this Rhino forum to increase their knowledge.
And yes, the Loft component can be fed with 5-degree curves. This results in a U-3 x V-5 degree surface as there’s no option to create a U-5 x V-5 degree loft.
Isn’t that dependent on the number of curves you feed the loft? The degree in one direction is dictated the degree of the curves. The degree in the other direction is dictated by the number of curves you feed loft. Try lofting five five-degree curves.
Nope,
The V-degree of a loft is fed with curves of a certain degree. So that can be 5-degree loft curves. However, the resulting loft is always a 3-degree object in U-direction. It can also be a 1-degree surface in U-direction when the loft option is set to “Staight”.
Well, shucks. Dunno then. Maybe Network Surface, as it let’s you define the U and V curves?
Also the Rebuild input of the Loft Options component which is used in conjunction with Loft might do the trick. Nope.
Is this not a five degree loft? Do I misunderstand?
I do misunderstand. Checked the baked version with ChangeDegree in Rhino. U is 3.
hi
mybee use Rebuild Surface and change Degree in flexibility
Hi Volker,
The CPLoft component does the job!
Thank you very much.
Gerard
Hi Ethan,
Thank you for your input.
However, the rebuild component will mess up my desired control point distribution of the input.
Best,
Gerard
I spent some time investigating how you would create or rebuild surfaces to five by five degree.
Rebuild Surface Degree 5.gh (42.8 KB)
What I found out, was that the two components that you can reliably count on to create five by five degree surfaces are Control Point Loft and Edge Surface. The former can be used to create a surface from curves perpendicular to loft direction while the later creates a surface from bounding edges. In both cases, the inputed curves have to be of the degree you want the surface to be; in the case of CPLoft, the degree of the surface in loft direction is given by the degree input D.
Network Surface and Surface From Points always create 3 degree surfaces. Fit Loft will create a surface of desired degree differentiated between the U and V directions, but the result differs wildly from the surface you would expect if you simply lofted the original curves. What Fit Loft essentially does is take the original curves and rebuild them before lofting for a surface. The higher the control point count, the more accurate the result becomes.
In the bottom left of the GH file I worked on a generalized surface rebuilding script. I know that there are plug-ins that provide a single component to do this, but this is how it would be done in vanilla GH. It’s not that complicated or requires many components. You basically just break down the surface into curves with isolines, rebuild those curves and recreate the surface with CPLoft
Rebuilding a surface results in an approximation of the original surface, so I understand why it is better to create the surface with the desired degree from the get go.
Write a script component, convert the “Surface” instance to a “NurbsSurface” by calling .ToNurbsSurface() and call .IncreaseDegreeU(5) and .IncreaseDegreeV(5).
Degree Elevation is what you looking for, and this is also what you should do in Rhino when directly modelling it.
Alternatively you can also create a “NurbsSurface” from scratch, but I think going from a 3x3 surface to a 5x5 is generally the way to go for.
@TomTom Does this work? I’m not doubting you, I am just very uninformed and confused.
I read the RhinoScript Fundamentals page on Nurbs Geometry and also this forum thread How to increase control points without changing shape? which deals with adding control points to a curve while maintaining degree and curve shape… What I gleaned from these two sources is that “inserting knots is the only method of increasing the number of control points without changing the shape of the curve in general”. So given a curve (or surface in one direction) of degree 3 and the minimum of 4 controls points to satisfy, I would have to add knots, which would in turn add control points, to my curve (surface) until I reach degree 5.
Using either InsertKnot or ChangeDegree, the position of existing control points move. It seems impossible to preserve the existing control point positions and curve/surface shape while increasing degree.
Degree elevation will no change the location of the shape. This is the reason why it should be prefered over rebuild if you want to add more controlpoints. You can try it by using the _IncreaseDegree (?) command in Rhino.
If you want to understand the math and why degree elevation does not change the shape,
see A Primer on BĂ©zier Curves in chapter 12
There is no _IncreaseDegree command in Rhino. Is ChangeDegree equivalent?
I’m currently not on a PC with Rhino installed. Yes you are right. Also check the deform option.
But look at the Pomax Primer example. There is also an applet showing you this in action.
Thanks Tom.
The primer is a long read and I doubt my ability to understand it, but I will try as time permits. I think I have the answer to my question though. Elevating degree will not change location or shape of a curve/surface. It will, however, redistribute the control points so that none of them will share the same locations as those of the control points before the degree change; which was more my contention.