Move relative to a point

Is is possible to do something like this:

Click a point to move from
_Reference (made up command)
Click a reference point

And it moves the object, not relative from the ‘point to move from’ but from the reference point.


As an example:

I have here a lamp that I’ve drawn just anywhere. Now I want it to be suspended exactly 300mm from the ceiling. My current workflow would be to:
ortho on (it usually is), select sphere, _move, snap to top quad of sphere, click, snap to Perp osnap on ceiling, click, then _move again, type 300, enter, click.

It would be great to be able to:
ortho on (it usually is), select sphere, _move, snap to top quad of sphere, click, hold down CTRL or something, snap to Perp osnap on ceiling, click, type 300, enter, click.

It may seem a minor thing, but when you are moving a LOT of geometry, saving a step can save a few seconds of waiting.

In addition there are times when you can’t use my current workflow - when the first move would mangle the object(s) beyond repair (although I’ve tried some things that I’m sure didn’t work in v4, like a moveface that goes beyond some other faces of a solid, and then movefacing back again - it seems quite robust now)

If you know its 231 mm from the top. just click the gumbal arrow of the correct direction and move it by -69. But otherwise 2x move with snapping to the ceiling first and then to the correct distance with the arrow is what I use a lot of the times too.

Hi Gavin- the From osnap should do what you are asking, if I get you.


Gavin, the From osnap combined with SmartTrack being on is exactly what you are looking for here. Make sure you have the osnap control toolbar showing:

click quad on circle
ctrl-click on the osnap bar for oneshot From
click your wall edge
type your distance
(if you have ortho on, then mouse down)


1 Like

Awesome, thanks guys! I never knew about holding down CTRL for oneshot osnaps!

This is going to make my life so much easier!

Hi Gavin

try the below Python script:

#****** placing the object at a predetermined distance  ###
#***** write by ing. Vittorio Carlotto
import rhinoscriptsyntax as rs
def place_object():
    dist=rs.GetReal(" distance where to place the Object")
    while True:
        c1=rs.GetObject("select reference curve <Enter for End>")
        if c1==None:break
        c2=rs.GetObject("select object to place <Enter for End>")
        if c2==None:break
        dist_temp=rs.Distance (p1,p2)

Ciao Vittorio