Are Ruled and edge surfaces necessary?

This line :

rg.Brep.CreateEdgeSurface(crvs)

work like in Rhino (Surface from 2,3 or 4 edge curves), no need to 4 inputs or caring about curves direction like in ruled surface.
Are Ruled and edge surfaces really necessary?

1 Like

Yes.

Why?

You get different results with different tools… your idea seems to be it doesn’t matter which command’s you use? Of course it does.

No , i get the right and the fast result with the script.
Try it

Brep.CreateEdgeSurface() is what the [Edge Surface] component does, as you can check in the SDK, you can only feed 2, 3 or 4 curves.

https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_Brep_CreateEdgeSurface.htm

Ruled surface is a specific type of surface.
https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Geometry_NurbsSurface_CreateRuledSurface.htm

You can check that they works different if you use polycurves (use filleted polylines to test it). [Ruled surface] give you a surface, [Edge Surface] a brep.

1 Like

The script also give a surface and can replace both of them

@seghierkhaled What is your goal?

You didn’t read the posts?

Yes I read the posts. Then I asked a question.

What is the goal of your question?

Yes, seems like the [Edge Surface] component calls SplitKinkyFaces(). But! the CreateEdgeSurface() returns a Brep, and the CreateRuledSurface() returns a surface. A brep can be a single surface but a surface never will be a brep/polysurface. That is other main difference.

But anyway, I don’t see your point. You can also create a sphere using a loose loft, this means that we don’t need the [Sphere] component? You can do all from code, that means that components and commands are not necessary? :man_shrugging:

1 Like

No your philosophy is wrong because when we want create something we choose the fastest and the easiest way. Creating sphere using a loose loft do you think this a better way than sphere component ?!
And don’t forget that scripts are from the developers and do the same things like Rhino and there are a lot of commands which can converted to components and make Grasshopper better.
If we can put all edges in one input why we need 4 inputs?
If i can get ruled surface without caring about curve direction why we need a component with 2 inputs and always check curves direction without forget the weird result.
My point is very clear , you can see it better when you try and save time and clicks.

Speak for yourself. I, as a developer, tend to generalize as much as possible to offer more possibilities of use with the same tool, and this is proportionally against it being quick and easy. The middle ground is better, but hard to find sometimes.

It can be if you already have, for other step of your process, the curves to do them. You’re forgetting the context and looking at it in an atomized way.

Because you can not use that tool with more that 4 curves, it can be confusing to have a list access. For some cases are best to have 4 inputs and for other cases is better to have a list as in the scripting version of the tool. All depends how do you have structured your source curves. Complaining about this is a little, I don’t know, whiny.

Because you can have an algorithm that only works for surfaces (and not for breps), and you feed it two curves that make a brep using CreateEdgeSurface() you broke your algorithm. And if that commponent doesn’t split the kinky faces, you will miss that for other cases.

Usually yes, do it. Use the fastest and easiest tool and stop crying because you have more options for very specific cases. :man_shrugging:

2 Likes

If you are really a developer so you don’t speak like that and you must understand the point but from what i see you are so far, and please don’t cry :smile:
And again try to understand without wasting time talking.
Finally this thread is not for you or for a software made by you !

@seghierkhaled all the points @Dani_Abalde made seems logic and reasonable.

I, too, can’t understand what is your problem here.

  • Loft is a very specific function, no other functions do the same.
  • Ruled surface take into account the direction of the curve (while EdgeSurface or the .CreateEdgeSurface not).
  • Edge Surface component has 4 inputs for the inputs curves, i’d say that is a practical way to avoid having to merge curves from different part of the canvas or to exclude list with more than 4 curves.
    If you have branches with 4 curve each, just use list item. Very simple.
  • Lastly, .CreateEdgeSurface code works like Edge Surface component but, as it take all the curves in a single list, it will ignore any curve object past the 4th… leading in incomprehension if one is not expecting that.

Out of them all, the last seems to be the less useful, without control.

You didn’t mention Network Surface, which is the best, in my opinion.

Also, we are not taking into account the resulting surface topology (U and V orientation and direction) which is really important, imho.

1 Like

Sorry he has no logic in his points.

  • Loft is a very specific function, no other functions do the same.
    It not about loft
  • Ruled surface take into account the direction of the curve (while EdgeSurface or the .CreateEdgeSurface not).
    Why we need curve direction?
  • Edge Surface component has 4 inputs for the inputs curves, i’d say that is a practical way to avoid having to merge curves from different part of the canvas or to exclude list with more than 4 curves.
    If you have branches with 4 curve each, just use list item. Very simple.
    Can you try that with CreateEdgeSurface and Edge Surface component?
  • Lastly, .CreateEdgeSurface code works like Edge Surface component but, as it take all the curves in a single list, it will ignore any curve object past the 4th… leading in incomprehension if one is not expecting that.
    It’s clear that we need 2 to 4 curves not more like in Rhino

Different branches with different curves count this will make a problem with Edge Surface


Different tools, different results.

1 Like

I tried before my first reply, when words aren’t enough, let’s use pictures:


Curve order do matter, and in-between List Item and Edge Surface you have a nice place where to fix the order (in a very simple way!) or to flip some curve, to fix UV topology.


For the same reason we all use rhino. We need to draw and design.


In Ruled Surface, flipping the curve do matter. It’s actually useful, isn’t it?
Control.


I have no idea what you mean with this…

Exactly , why you switch between A and B without doing the same for the script?

Who need this in real designs? maybe you or someone else but personally i will never think to use this shape


How you can solve this when you have a tree with many branches with different curves count between 2 and 4 and you want create edge surface or ruled surfaces? and some curves need flipped?

Maybe you find ruled surface and edge surface useful but right now i think the script is better until i find when i need them exactly.
Another example , in Rhino we can split Brep with curves but split component can’t do it;
and this command can: Brep.Split


Finally my point is that Brep.CreateEdgeSurface very useful and better than ruled surface and edge surface, and it must be available as component, if you people have different opinion you are free and you are not obliged to proof anything