Rotate 3D to specific z coord

Hi, I am pretty new to Rhino 3D drawing, so I have what may be a rather simple problem.
I need to relocate a triangle, having its vertices placed at specific Z coordinates (e.g. z=5.1m), but without changing the edges lengths. It doesn’t matter at this point what will happen to XY. I tried Rotate 3D but couldn’t position the vertices at my target Zs precisely. Is there a better way to solve this problem?

hi Kalunga, my imagination is currently a little weak to unriddle this without an image or a file… (the flue is hitting me hard). without cracking my head further to pieces maybe you can quickly make one from this situation or throw an abstracted file in.

my first guess would be to use smarttrack if you have dots on the exact coordinates, you can then use Orient3Pt to align it but its just wild guessing for now.

Simply select all, issue command ‘move’. When prompted, enter 0 for where to move from, at where to move to enter 0, 0, Zcoordyouwant.

Hi RichardZ, thanks for your interest. I need to transform the triangle by entering the 3 vertices Z coord alone (z coords are different for each vertice). I don’t have the destination’s XYs, and I need to keep edges lengths. In fact, my goal is to retrieve the XYs once the triangle is relocated to given Zs, for referencing an underwater photogrammetry model. The att print shows the original black triangle and the yellow one was transformed using Rotate 3D, but I can’t get the vertices to precise Zs.

Hi Chris, thanks for you reply. In this case I suspect I would have it changing the edges length, right? But I don’t want it to change the edges lengths after all… Furthermore, the Zs I need to move to are different for each of the 3 vertices.

Hello - Orient3Pt should do this. (Vertex OSnap)


Hi Pascal. My problem with Orient 3pt is that I don’t have the destination XYZs (only Zs). In the att picture, the yellow triangle is not my " destination", just shows the kind of transformation I want (translation to specific Zs, no change in edges length). But using Rotate 3D I can’t get the vertices to pin point Zs.

Hello - what I’d do is set the CPlane to the required Z,(CPlane > Elevelation) then start Orient3Pt. Snap to the vertices for the first three points and then turn on Project in OSnaps and snap the same three vertices in the same order.
@kalunga_br -


In Rhino can I enter something like @x,y,-5.1, for example, to have a entity going to an specific z, but letting XY flexible? Or, in other words, 3D move a vertex without changing the triangle edges length?

Orient3Pt will do that. Note that in general only one vertex may be aligned vertically with the original triangle, and it will be the one you use as Point 1. That is a result of preserving object size and shape.

I will work on this a bit more David and let you guys know. I see a series of step by steps tutorials out there for Rhino. Is there one in particular you would recommend for a beginner but with some mapping/GIS background? I know it is a different mindset… but I reckon I need to grasp the basics of digital 3d drawing before going much further.

Can you upload a simple .3dm file with a triangle and let us know the z value(s) you want the vertices to be located at? If so I should be able to provide a simple step-by-step procedure for moving the triangle without changing it’s size or shape with the vertices at the desired value(s).

Hello - take a look at the clip linked in my post above - does that cover what you need to do?


Hi David, I would very much appreciate it. Here it is the .3dm file. I wrote on the triangle corners the depths (Zs) I need to have them located at.
Thanks a lot for your time!
Transform (5.9 KB)

Dear Pascal, tks for the clip. However I need the 3 vertices positioned at different Zs.

Well, the only way I know how do do this without distorting the triangle is to use some construction geometry and two successive 3D rotations. Below is a step-by step… Let me know if it’s not clear.
(The trick I use for creating the intersections in the file is to make a small plane at the correct Z height and intersect it with the circle to create a point.)

Transform TRI_construction.3dm (81.8 KB)


Mitch’s method looks good to me.