Planarize control points

is there a tool that reorganizes control points to make the curve or surface control points planar? as in this video

if there is not it is a wish for next SR or rhino6

thank you


If you want to set a curve or surface planar in one of the principal planes or to a custom CPlane, you can use SetPt. Or, if it’s to be projected to 0, you can use ProjectToCPlane.

If you want to planarize a near planar curve in an arbitrary plane, you can try the following script…

HTH, --Mitch

PlanarizeCurves.rvb (2.8 KB)

1 Like

thank you Mitch,

set point is only x,y and z, creating a cplane is time consuming for me. But the script you send is what i want (except i need to create a curve from a surface control points then planarize it and finaly modify surface points to be same as planarized curve points).

thanks again and if it is possible i want a better and also one works with suface points as a default tool in rhino.

Are you using all of the surface control points to create the curve? If so, I guess that’s the equivalent of planarizing the surface itself directly… Is that what you’re looking for?

no, only a row of the surface points.

OK, so you are trying to set a row of surface control points planar then…

exactly :smile:

OK, that can be done, I think…

So are you willing to accept the best fit plane for the control points under any condition? For example if the row of control points is lined up along X (all y = same value) but vary in Z, the points will already be “planar” parallel to the ZX plane, and thus will not move. Projecting to the best fit plane will only modify the points if they are not already planar somewhere.



Mitch, are you using PlaneThroughPt for the best fit plane?

Yes, or to be more specific, the rhinoscriptsyntax equivalent, rs.PlaneFitThroughPoints()

Here is a quick prototype… Can be added to or modified. --Mitch (658 Bytes)

Hi mitch,

i tried your the script thank you but i realized that it changes the start and end points this should not happen they need to be static in this process. Also to prevent further misunderstandings i created a model.

surfaces have curves which has same points as surfaces and at red side they have S shapes in curvature graph, but green side dont have those S shapes

planarize.3dm (171.6 KB)

OK, the script does something completely different than what you are asking… --Mitch

Looks like Blastered wants to move the control points to the plane defined by two end points and the average location of the other control points.

Yes, at some point I’ll try to see if I can modify the script to do that… Too late tonight. --Mitch

Hi Blastered, try: Select the four points in the middle of the red surface. Start MoveUVN and twiddle the sliders at the bottom of the dialog for ‘Smoothing’ in V. Does that do anything you like?


Hi Pascal,

i tried MoveUVN, “smoothing V” direction. it moves them to a straight line and completly flattens the geometry to achieve the planarization. “Smoothing U” did a better job but not perfect as at green surface.

@Helvetosaur’s “PlanarizeCurves” script is more like what i want but it should work for selected surface points row and both end points should be fixed.

i am thinking of a method. i am not a programmer just thinking with rhino tools so here what i thought…

create an imaginary curve from sellected surface points by “control point curve” but it should be a bezier (degree+1=point count)

rebuild it to 3 point 2 degree curve (which gives us 3 points, using those 3 points, script can create a planar surface/cplane which i presume is best fitting one… )

move points xyz/uvn or project/pull points to that surface/cplane

and we achieve a planar row of surface points

By the way “move UVN” would be the best option since it changes surface geometry minimum.

Thank you.

Hi Blastered - here is a quick RhinoScript - Unzip, Save and thenb Drag and drop onto Rhino to add this alias that will run the script:


It’s a quick trial - it assumes one entire row and only one entire row of points is selected - it does not do any checking yet so it’s up to you to select correctly. (517 Bytes)


Hi Pascal,

and thank you, i think rhino is getting a very usefull tool in near future :slight_smile:

Your script keeps both ends where they are, and make the points planar that is good but if the script could move selected points in “U,V,N” directions it would be better. Why? see attached image