In need of updated link for planarize curve script

Hi all,

A bit of an odd question. There is an existing post here from November 2014, initially created by the user “Blastered”. He was in need of a script to planarize curves, and somewhere in the thread, Helvetosaur posted a script that does just that. I think this is the script that I use regularly, but the machine I am currently on is not my own, and that post is not allowing me to download the script/rvb file.

When I click it, I get this error:

Is anyone else able to download that rvb script, or is the link somehow just expired? If it does indeed still work, could anyone please try uploading it and sending it to me as a message via my profile?

Thanks in advance for any help!

Hello - can you describe what it does? Finds a best-fit plane from a non-planar curve and squashes the curve onto that, is what I’m guessing…

Here’s a quick and dirty test (646 Bytes)

To use the Python script use RunPythonScript, or a macro:

_-RunPythonScript "Full path to py file inside double-quotes"


Could be one of these…
From 2015 (3.4 KB)

More recent revision (2020) that does both curves and surfaces and even meshes: (5.1 KB)

This is the old .rvb I think - just in case:
PlanarizeCurves.rvb (2.8 KB)

The original thread is 112 posts long with lots of scripts by Pascal and others to planarize surface control points…

It could be that I’m simply thinking of a different script? The one I am accustomed to using essentially “flattens” all of the control points so that they are on the same plane. So for example if I begin with a rectangle polyline:


And then I raise one of the control pts so it is no longer planar:


Then normally the “planarize” script I am thinking of would project all of those points back to one plane/the c-plane.

The one you posted produced this:

Thanks for your help, Mitch.

I don’t think those are what I’m looking for either… do the screenshots I posted provide any clarity?

The ones you gave just then produce similar results to the last screenshot.

The script I am thinking of would essentially make a flat rectangle again when viewed in elevation.

This can be achieved with SetPt or ProjectToCPlane essentially. Otherwise, the script I posted has an option to use a plane parallel to the current CPlane, but it will still average the points.

Oh, yeah, there is also this one I guess, but it is currently locked to a plane parallel to World XY. It could be modified to use the current CPlane. (1.5 KB)

Ok good point, I can try this one when I have time, the project was a good idea (I don’t know why I didn’t try that from the get-go :roll_eyes:)

Thanks again to both you and pascal!

I entertained myself yesterday making an uber-planarizer, just to work with dynamic previewing and command line option ordering and command flow and such - no idea if it is helpful or just dumb but I’ll post here in case it might help. I think it mostly works. (11.7 KB)

To use the Python script use RunPythonScript, or a macro:

_-RunPythonScript "Full path to py file inside double-quotes"


1 Like

Pascal, I really appreciate you taking the time to do this! I’m actually working on physics HW at the moment so I’ll try it out when I get time😅

@pascal - do you have an updated version of this? This iteration seems to have a few issues running in V8 that I can’t solve.

Hi Peter - I’ll check.
@phcreates - no idea how that one ever worked - - updated above, let me know if I messed it up.


Well, now that it functions, I see that it’s not what I’m looking for. I was looking for an updated version of your ancient PlanarizeCurve rhinoscript which averaged out points and flattened the curve onto a 3-point plane.

I’m thinking the MakePlanar script above will do what I need - I’ll try it out & see.

I’d asked ChatGPT to update your Rhinoscript, and it came out pretty well (haven’t extensively tried it out though) But then I thought this thread had a newer better version which is why I asked you about it. I’ll attach it here fwiw.

Thanks! (2.2 KB)

Hi Peter - there is a command line option does what you want, I think. (Plane=BestFit)


Maybe something like this? (6.1 KB)

Oh yes - bestfit seems excellent! Thanks.

Thanks Mitch - is that different from MakePlanar higher up in the thread?

Just a small revision, I added a selection filter and I check the results for validity before adding them to the document. Otherwise essentially the same.

Great - that’ll come in handy.