Not sure if this helps, but the move() method can be used in different ways depending on the parameters (the API docs are a bit confusing on the usage). The move can be relative to the page or spread, or it can be relative to the current position—like this:
//sets the units this script will use
app.scriptPreferences.measurementUnit = MeasurementUnits.MILLIMETERS;
var d = app.activeDocument
//save the zero point
var zp = d.zeroPoint;
//current selection
var s = app.activeDocument.selection[0]
d.zeroPoint = [0, 0];
d.viewPreferences.rulerOrigin = RulerOrigin.PAGE_ORIGIN;
//move to a new x,y position relative to the ruler origin
//s.move([-120 , 0 ])
//move to a new postion relative to the current position, 0,0 in this case
s.move([ 0 , 0 ] , [ -120 , 0 ])
//reset
d.zeroPoint = zp;
app.scriptPreferences.measurementUnit = AutoEnum.AUTO_VALUE;
... View more