Move relative to a point


#1

Is is possible to do something like this:

_Move
Click a point to move from
_Reference (made up command)
Click a reference point
r50,0,0

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)


#2

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.


(Pascal Golay) #3

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

-Pascal


#4

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:

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

done


#5

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

This is going to make my life so much easier!


#6

Hi Gavin

try the below Python script:

#****** placing the object at a predetermined distance  ###
#***** write by ing. Vittorio Carlotto  carlottovittorio@gmail.com
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
        lp=rs.CurveClosestObject(c1,c2)
        p1=lp[1]
        p2=lp[2]
        dist_temp=rs.Distance (p1,p2)
        dif=dist-dist_temp
        vect=p1-p2
        tras=vect/dist_temp*dif
        rs.MoveObject(c2,tras)
place_object()

Ciao Vittorio