Files
2021-08-09 11:24:55 +02:00

88 lines
2.9 KiB
Lua

-- 2016/03/14
-- Comando muovi un asse
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Tavola di passaggio valori
local CMD = {}
CMD.CMDSTRING = ""
_G.CMD = CMD
function CmdString()
-- Modo di funzionamento
local bNewMode = true
-- Nuovo modo
if bNewMode then
local sMove
-- se movimento assi lineari
if CMD.AXISNAME == 'X' or CMD.AXISNAME == 'Y' or CMD.AXISNAME == 'Z' then
-- se modalità 3 assi
if not CMD.G24 then
-- movimento lungo l'asse indicato
local dMove = 0
if CMD.AXISNAME == 'X' then
dMove = CMD.L1o + CMD.AXISMOVE
elseif CMD.AXISNAME == 'Y' then
dMove = CMD.L2o + CMD.AXISMOVE
else -- 'Z'
dMove = CMD.L3o + CMD.AXISMOVE
end
sMove = CMD.AXISNAME..EgtNumToString(dMove,3)
-- altrimenti modalità 5 assi
else
-- vettore movimento
local vtMove
if CMD.AXISNAME == 'X' then
vtMove = Vector3d( CMD.AXISMOVE, 0, 0)
elseif CMD.AXISNAME == 'Y' then
vtMove = Vector3d( 0, CMD.AXISMOVE, 0)
else -- 'Z'
vtMove = Vector3d( 0, 0, CMD.AXISMOVE)
end
-- porto il movimento in riferimento macchina
vtMove:rotate( Y_AX(), CMD.R2 - 90)
vtMove:rotate( Z_AX(), CMD.R1)
sMove = 'X' .. EgtNumToString( CMD.L1o + vtMove:getX(), 3) ..
' Y' .. EgtNumToString( CMD.L2o + vtMove:getY(), 3) ..
' Z' .. EgtNumToString( CMD.L3o + vtMove:getZ(), 3)
end
-- altrimenti movimento assi rotanti
else
sMove = CMD.AXISNAME..EgtNumToString(CMD.AXISMOVE,3)
end
-- comando
if CMD.G0 then
CMD.CMDSTRING = "G24- G52 G0 G71 "..sMove
else
CMD.CMDSTRING = "G24- G52 G1 G71 "..sMove.." F"..EgtNumToString(CMD.F,0)
end
-- Vecchio modo
else
-- assegno pre-comando
local sPre = ""
-- assegno il valore dell'asse
local dVal = 0
-- gli assi lineari sono in incrementale : aggiungo il movimento al valore corrente
if CMD.AXISNAME == 'X' then
dVal = CMD.L1 + CMD.AXISMOVE
elseif CMD.AXISNAME == 'Y' then
dVal = CMD.L2 + CMD.AXISMOVE
elseif CMD.AXISNAME == 'Z' then
dVal = CMD.L3 + CMD.AXISMOVE
-- gli assi rotanti disabilitano il piano di lavoro generico e sono in assoluto rispetto a 0M
elseif CMD.AXISNAME == 'C' or CMD.AXISNAME == 'B' then
sPre = "G24- G52 "
end
-- comando
if CMD.G0 then
CMD.CMDSTRING = sPre.."G0 G71 "..CMD.AXISNAME..EgtNumToString(dVal,3)
else
CMD.CMDSTRING = sPre.."G1 G71 "..CMD.AXISNAME..EgtNumToString(dVal,3).." F"..EgtNumToString(CMD.F,0)
end
end
end
_G.CmdString=CmdString