-- 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