Nine wish: set center of rotation

Would sure like to be able to set the center of rotation point and have it stay there until I place it in a new location and maybe be able to turn it on or off.

Thanks, Buddy.

It already does that though - after you used Rotate once, you can select UseLastCenter in the command line?

But if you know you’ll need a particular coordinate again, why not just place a point there? (then you can come back to it after closing the file as well)

Shift + ctrl + RMB Drag also helps to temporarly set center of rotation .. Just wanted to point this out since many people are not aware of this

Thanks to all, not sure about the UseLastCenter I did not see it in the command line.

Shift + ctrl + RMB DRAG seems to set the point temporaly.

I am used to NX where you hold the middle mouse button for less than or about 1 second and it sets the point and even highlights it so you can see it briefly, very useful when you have to work on a small area and then go back to work on a larger area, Also Alias where you can set the point, useful for the same reason and last Geomagic Design X also right click and set the rotation center.

Thanks again.

You need to rotate an object once first - after that, subsequent runs of the command will have “UseLastCenter” in the command line

But you can also make your own buttons - I’ve created a rough version - if you run Toolbar, then select File > Open inside the dialog that opens - you should be able to import this toolbar (make sure you turn on the checkbox)

RMB to set anchor
LMB to rotate around anchor

You can also make an alias/shortcut

TransformPlus.rui (4.0 KB)

The commands are as follows:


# Create Anchor

_-RunPythonScript (
import rhinoscriptsyntax as rs
import scriptcontext as sc
pt = rs.GetPoint("Pick a point to store")
if pt: sc.sticky["CustomAnchorPoint"] = pt
)

# Anchor Rotate

_-RunPythonScript (
import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino
if "CustomAnchorPoint" in sc.sticky:
    pt = sc.sticky["CustomAnchorPoint"]
    pt_str = "{},{},{}".format(pt.X, pt.Y, pt.Z)
    selected_objects = rs.SelectedObjects()
    if not selected_objects:
        selected_objects = rs.GetObjects("Select objects to rotate")
        if not selected_objects:
            print("Command cancelled: No objects selected.")
        else:
            rs.SelectObjects(selected_objects)
            rs.Command("_Rotate _Center {}".format(pt_str))
    else:
        rs.Command("_Rotate _Center {}".format(pt_str))
else:
    print("Error: No anchor point set yet. Run 'CreateAnchor' first.")
)

@Edwin_Akers are you asking about the center of rotation for the view / camera, or the center of rotation for the _Rotate command, which rotates objects?

My favorite way of changing the view target to a precise location (the center of rotation for the camera with RMB drag) is with the _Zoom _Target command. Shift-Ctrl-RMB is also useful, and the Gumball option “Rotate view around gumball” is always on for me.

If you like Shift-Ctrl-RMB drag, you can make it the behavior of the normal RMB drag by changing the Rhino.Options.View.RotateViewAroundObjectAtMouseCursor advanced option.

Apart from that, Rhino 7+ will, by default, reset the view target to the screen center anytime you zoom or pan (or change the gumball when “Rotate view around gumball” is enabled). If you want to change that behavior, this thread has all the answers I know about:

Basically, check off “Auto adjust camera target after pan and zoom” in “Options → View”.

PS: if you start a RMB drag, then hold shift+ctrl, the view rotation will snap to orthographic axis-aligned views. Pretty neat too!