Recently I received question from professors from mathematics department on university about strange results in surface construction in Rhino.

To describe problem, I prepare simple Rhino file trying to describe results on two sets of starting curves (circle segment or parabola) for two surface construction (edge surface or loft).

To make this short, construction from parabola curve result with correct surface creation which can be checked on cross section curves (straight lines), what is not case when circle or ellipse segment is used.

Any ideas or suggestion how to get correct cross sections when arc is used? Any explanation? 

Views: 2633


Replies to This Discussion

Another strange in creation is that edgesurface construction started with arc curve is created as polysurface :)

Arcs in Rhino of more than 90° are composed of multiple spans joined by fully multiple knots (kink joints).  If you turn on control points for the half circle, you will see 5 control points, try pulling the middle one upward.

Under some conditions, Rhino will create polysurfaces when it sees curves with fully multiple knots. 


This has to do with the particularity of arc and ellipse segments in Rhino.  They are rational (the control points do not all have a weight of 1), and segments of more than 90° are multi-span - they have fully multiple knots (kinks) at the joints between the spans.  Try turning on control points for a circle (4 90° arc spans) and moving some to see.

I believe what's causing your flow (isocurve) lines to be not straight when you loft  an arc together with a line together is the rationality of the circle curve - it's parametrization is not even all along the curve, which results in the parts being connected to the line being spaced differently.  If you run Rebuild on the circle with a goodly number of points and re-run Loft it should look a lot better - but of course, you now have an approximation of your arc with a uniform, non-rational NURBS curve.

The parabola does not have this problem because it's non-rational.

I have complained about this problem before in the sense that it also can produce unexpected results with other commands depending on curve parametrization, like mapping; but currently, that's just the way it is...


Thanks for your extensive replay.

I was playing around this and make experiments, rebuilding curves, changing degree, playing with control points, etc. For 3D modeling and sculpting it is not problem, but to make mathematical correct ruled surface, approximation is not an option :)

Since Rhino is used from various application I was show this situation in construction of ruled surfaces.


Actually in looking at this again (being less tired) I see that Rhino is actually doing the Loft correctly.  It is connecting the line with the arc with straight lines in equally spaced intervals along both curves, which is what it's designed to do.  For me this fits the description of a ruled surface, but I'm not a mathematician.  It is not however, a developable surface.

Wikipedia: "In geometry, a surface S is ruled (also called a scroll) if through every point of S there is a straight line that lies on S." 

This is true of the loft, although the lines forming the surface are not all parallel.


I am tired :) but I checked and cross sections from loft surface made from arc are not straight lines. eside that, they are not same like from edge surface construction, zoom in (?!?).

On other hand, edge surface and loft construction from parabola curve are both same and correct (straight cross sections). 


Hi Roberto- I am not sure what is 'correct' as opposed to wished.... The ruled surface has straight lines that lie in the surface, but there is no requirement that these are parallel in any view, or the same for any given shape as straight sections from any particular view; in fact it would be surprising, to me, if two different 3d shapes contained linear cross sections in the same places and orientations.


Below is the result of extracting the lofted surface wireframe (density 8) and running SelLine...



I think your test is wrong. Instead of intersecting the surfaces with your parallel surfaces, select the surfaces in in object Properties, crank up the isocurve density to 7 or 8. These curves ARE straight but not parallel. You can ExtractIsocurve, SimplifyCrv, and check to verify they are lines.

Loft is capable of returning an Orthographically Parallel ruled surface between an arc segment and a straight curve given the appropriate setup. 


The attached example has been simplified to use just an arc quadrant.  Notice how the setup of the straight curve here allows for a coordinated parametric match similar to that of your parabola/straight loft.


Nice example, thanks!




© 2018   Created by McNeel Admin.   Powered by

Badges  |  Report an Issue  |  Terms of Service