I have three DRO's; one for X move value, one for Y move, and one for feed rate. The feed rate entered is an absolute feed rate so the feed rate is determined as a percentage of 150in/min(100% jog speed on my setup)

After calculating the diagonal distance needed to travel, feed rate values are calculated for the X and Y so that the motors move together and arrive at the same point at the same time. the values are factors of the Hypotenuse so as to create the right triangle.

For some reason I was originally having issues with setting slow feed rates because the motors were running at rapid feed rates and the PMDX BOB was sending strange signals resulting in the motors moving abnormally slowly(up to 10x slower than was entered). After the jog rate was corrected in the configurations it ran smoothly.

The script is all in the "left up" section, there are probably more tonumber() functions than are necessary, but I was having some problems and haven't gone back to remove extras as they don't cause any issues.

`--"Move To" Script`

local inst = mc.mcGetInstance()

local hypLength = 0

local rateH = scr.GetProperty("droSpeed", "Value") --Requires DRO named "droSpeed"

local rateX = 0

local rateY = 0

local xJog = scr.GetProperty("droXmove", "Value") --Requires DRO named "droXmove"

local yJog = scr.GetProperty("droYmove", "Value") --Requires DRO named "droYmove"

local xNeg = 1

local yNeg = 1

hypLength = tonumber(hypLength)

rateH = tonumber(rateH)

rateX = tonumber(rateX)

rateY = tonumber(rateY)

xJog = tonumber(xJog)

yJog = tonumber(yJog)

xNeg = tonumber(xNeg)

yNeg = tonumber(yNeg)

--Determining if negative values

if(xJog < 0) then

xNeg = -1

math.abs(xJog)

end

if(yJog < 0) then

yNeg = -1

math.abs(yJog)

end

--X Y Rates Calc

hypLength = math.sqrt((xJog^2)+(yJog^2))

rateX = xJog/hypLength

rateX = rateH*rateX

rateY = yJog/hypLength

rateY = rateH*rateY

--Feed rate calcs if single asix travel(100% = 150in/min)

if(xJog or yJog == 0) then

rateH = rateH/1.50

rateH = tonumber(rateH)

rateX = rateH

rateY = rateH

end

--Set jog rate for each axis

rateX = tonumber(rateX)

rateY = tonumber(rateY)

mc.mcJogSetRate(inst, 0, rateX)

mc.mcJogSetRate(inst, 1, rateY)

--Input distance to travel for each axis

xJog = tonumber(xJog)

yJog = tonumber(yJog)

xJog = xJog*xNeg

yJog = yJog*yNeg

mc.mcJogIncStart(inst, 0, xJog)

mc.mcJogIncStart(inst, 1, yJog)

Thanks again for all the help, I hope this can be of use to others as well