Building your model perfectly orthogonal

As an architect and a set designer most of my models are large enough and complicated enough to get into trouble with keeping my curves and surfaces perfectly parallel. In this respect, I am wondering if it’s conceivable to be able to immediately know when a curve or surface is not parallel to the world planes. For example, horizontal surfaces should be absolutely horizontal… vertical surfaces perfectly vertical, and the rest, of course, (sloping surfaces) would be whatever we wanted them to be. I know it is easy to say that it is up to us to make sure that everything is orthogonal as we build it, but mistakes do happen (sometimes one accidentally shifts a curve or surface and not be aware of it), then once you’ve built your whole model you end up having to take it apart to make it perfect – if you have time to do it, and if you don’t have time, you try to cover it up in your layout drawings.

It seems like maybe one could set a “mode on” where when one draws a curve or generates a surface in one of the ortho views you would be told if it was off-kilter. Like the program tells you of bad objects. Or it could be one of the analyze modes where you select a line, surface or polysurface and it would shade every element that is not parallel to one of the world planes.

Wondering if anyone else out there would find this useful?

Does DraftAngleAnalysis help? Apply it with a range of 0 to a few degrees to check for surfaces which are not quite vertical. Apply with a range from 90 to a few degrees less than 90 to check for surfaces which are not quite horizontal.

Hi Cosmas - using Project on Osnaps and the Planar setting can help; SetPt also helps in truing up off-kilter things. I don’t know of a way to verify this stuff automatically though.


Hi Pascal,

I definitely use the Project osnap-- in fact I’ve got it on an alias so I can toggle it easily. Will have to check the DraftAngle Analysis. Didn’t know about that . Thanks.

SolidPointsOn along with SetPt is a great combo to sweetening geometry.

Ortho snaps and the shift key.

Any way to make DraftAngle Analysis more automated?

If I understand your question correctly the function Display By Axis command in SketchUp is what you’re looking for and it would be a useful function to have in Rhino. Display By Axis shows all vertical lines in blue, and lines parallel to the two horizontal axis in green and red. Any line that doesn’t align to one of the 3 primary axis remains black.

I have often wanted an expansion of that function to show any line that was horizontal to the base plane but not aligned to the X or Y axis as a fourth color but no such luck. Maybe one of the great Rhino programmers could do SU one better?

Hi Cosmas- one possibility, and unfortunately I cannot test it right this second because on this little machine the video does not seem to support it, is TestShowNormalMap. It won’t help for curves but it might identify skewed surfaces viewed in the ortho viewports.


That’s right, Arail. It doesn’t seem that difficult for the program to determine when a curve or surface is perfectly vertical or horizontal. Maybe the command line would say “1 vertical surface” when you select it, or “1 vertical curve”. That way if it doesn’t say “vertical” or “horizontal” you would know that it’s a little off and you stop right there and correct it.

Or maybe you run a command like “find orthogonal” and it would highlight every suface or curve that’s parallel to the world axes or planes. Everything that’s not highlighted is at an angle.


" one possibility, and unfortunately I cannot test it right this second because on this little machine the video does not seem to support it, is TestShowNormalMap. It won’t help for curves but it might identify skewed surfaces viewed in the ortho viewports."

Sounds intriguing, Pascal. I tried it and it turned the background of the orthogonal viewport purple. How does it work?


Hi Cosmas- make a box that is skewed to the view and see what that looks like next to one that is squared up to the view (ortho)


You’ve probably figured it out by now, but you also have to set the display mode to rendered…

This (Testshownormalmap)-- thanks Pascal-- is very intriguing. I see how it works with display set to rendered mode (thanks Wim).

Is there any way to adjust its sensitivity? I drew a perfectly horizontal surface in top view, ran the command, set display to Rendered and noted that the surface now looked like a slightly lighter shade of purple. When I skewed it 1/2 a degree – it’s color did not change. I then skewed it several degrees and the color changed. This is obviously a test command – but is potentially VERY useful.

Thank you.


Hi Cosmas- Yeah, I’ve been fooling with it a little this morning - as is, I don’t think it will be sensitive enough to be really useful, but it might point at a possible analysis mode- I’m really not sure. The problem is, something like this has to be pretty much 100% reliable or it is useless for the purposes you have in mind.

Correct. Any chance that the command line report can be modified to say “1 vertical surface” or “1 horizontal surface” or “1 vertical curve” etc when you select an object? This would be a subtle and unobtrusive way to solve the problem.

Or would that lead to a performance hit?

If a curve or surface was not perfectly vertical or horizontal then the command line would leave out the qualifier.