|
|
|
@@ -21,13 +21,16 @@ function OnStart()
|
|
|
|
|
EMT.USETO1 = false -- abilitazione uso origine tavola
|
|
|
|
|
EMT.MODAL = true -- abilitazione emissione modale
|
|
|
|
|
EMT.INCHES = false -- unità di misura mm/inches
|
|
|
|
|
EMT.DECNUM = 5 -- numero di decimali dopo la virgola
|
|
|
|
|
EMT.DECNUM = 4 -- numero di decimali dopo la virgola
|
|
|
|
|
EMT.DECVERS = 6 -- numero di decimali dopo la virgola per versori
|
|
|
|
|
EMT.DECRAD = 4 -- numero di decimali dopo la virgola per raggio
|
|
|
|
|
EMT.DECMACRO = 3 -- numero di decimali dopo la virgola per macro
|
|
|
|
|
EMT.NUM = false -- abilitazione numerazione linee
|
|
|
|
|
--EMT.Nt = 'N' -- token per la numerazione di linea
|
|
|
|
|
--EMT.LINENBR = 0 -- numero di linea
|
|
|
|
|
--EMT.LINEINC = 1 -- incremento numerazione linee
|
|
|
|
|
--EMT.Ft = 'F' -- token per feed
|
|
|
|
|
--EMT.St = 'S' -- token per speed
|
|
|
|
|
--EMT.Nt = 'N' -- token per la numerazione di linea
|
|
|
|
|
--EMT.LINENBR = 0 -- numero di linea
|
|
|
|
|
--EMT.LINEINC = 1 -- incremento numerazione linee
|
|
|
|
|
--EMT.Ft = 'F' -- token per feed
|
|
|
|
|
--EMT.St = 'S' -- token per speed
|
|
|
|
|
EMT.FMAXPINZE = 154000 -- feed massima pinze
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@@ -116,8 +119,8 @@ end
|
|
|
|
|
function OnToolData()
|
|
|
|
|
-- emissione dati utensili
|
|
|
|
|
if EMT.HEAD == 'H1' then
|
|
|
|
|
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, 3) .. ' P3=' .. EmtLenToString( EMT.TDIAM, 3) ..
|
|
|
|
|
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, 3)
|
|
|
|
|
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.TDIAM, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EmtLenToString( EMT.SMAX, EMT.DECMACRO) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, EMT.DECMACRO)
|
|
|
|
|
ParkLine( sOut)
|
|
|
|
|
-- cerco posizione di attrezzaggio del primo utensile di lavorazione
|
|
|
|
|
if EMT.TOOL == EMT.TOOL_1 and EMT.TLEN_1 < LONG_TOOL_MINLEN then
|
|
|
|
@@ -125,14 +128,14 @@ function OnToolData()
|
|
|
|
|
end
|
|
|
|
|
-- emissione dati lama
|
|
|
|
|
elseif EMT.HEAD == 'H2' then
|
|
|
|
|
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, 3) .. ' P3=' .. EmtLenToString( EMT.TDIAM, 3) ..
|
|
|
|
|
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, 3)
|
|
|
|
|
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.TDIAM, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EmtLenToString( EMT.SMAX, EMT.DECMACRO) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, EMT.DECMACRO)
|
|
|
|
|
ParkLine( sOut)
|
|
|
|
|
-- emissione dati sega a catena
|
|
|
|
|
elseif EMT.HEAD == 'H3' then
|
|
|
|
|
if EMT.TDIST and abs( EMT.TDIST) < 0.1 then EMT.TDIST = nil end
|
|
|
|
|
local sData = ' P2=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), 3) .. ' P3=' .. EmtLenToString( EMT.TLEN, 3) ..
|
|
|
|
|
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), 3)
|
|
|
|
|
local sData = ' P2=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.TLEN, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EmtLenToString( EMT.SMAX, EMT.DECMACRO) .. ' P5=' .. EmtLenToString( ( EMT.TDIST or ChSawLen), EMT.DECMACRO)
|
|
|
|
|
if EMT.TCPOS == 'T101' then
|
|
|
|
|
ParkLine( 'M992 P1=101' .. sData)
|
|
|
|
|
ParkLine( 'M992 P1=102' .. sData)
|
|
|
|
@@ -148,13 +151,13 @@ function OnToolData()
|
|
|
|
|
elseif EMT.HEAD == 'H5' or EMT.HEAD == 'H6' then
|
|
|
|
|
local nPos = EgtIf( EMT.HEAD == 'H5', 91, 93)
|
|
|
|
|
if EMT.EXIT == 2 then nPos = nPos + 1 end
|
|
|
|
|
local sOut = 'M992 P1=' .. EgtNumToString( nPos, 0) .. ' P2=' .. EmtLenToString( EMT.TLEN, 3) .. ' P3=' .. EmtLenToString( EMT.TDIAM, 3) ..
|
|
|
|
|
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, 3)
|
|
|
|
|
local sOut = 'M992 P1=' .. EgtNumToString( nPos, 0) .. ' P2=' .. EmtLenToString( EMT.TLEN, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.TDIAM, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EmtLenToString( EMT.SMAX, EMT.DECMACRO) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, EMT.DECMACRO)
|
|
|
|
|
ParkLine( sOut)
|
|
|
|
|
-- emissione dati sega a catena
|
|
|
|
|
elseif EMT.HEAD == 'H7' then
|
|
|
|
|
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, 3) .. ' P3=' .. EmtLenToString( EMT.TDIAM, 3) ..
|
|
|
|
|
' P4=' .. EmtLenToString( EMT.SMAX, 3) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, 3)
|
|
|
|
|
local sOut = 'M992 P1=' .. EMT.TCPOS:gsub( 'T', '') .. ' P2=' .. EmtLenToString( EMT.TLEN, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.TDIAM, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EmtLenToString( EMT.SMAX, EMT.DECMACRO) .. ' P5=' .. EmtLenToString( EMT.TTOTLEN, EMT.DECMACRO)
|
|
|
|
|
ParkLine( sOut)
|
|
|
|
|
-- altro non previsto
|
|
|
|
|
else
|
|
|
|
@@ -224,8 +227,8 @@ function OnDispositionEnd()
|
|
|
|
|
|
|
|
|
|
if IdTrave >= 0 then
|
|
|
|
|
local sPrt = '( *** Part '.. EgtNumToString( IdTrave, 0) ..' ***)'
|
|
|
|
|
local sOut = '( SN=' .. IdTrave .. ' LBarra=' .. EmtLenToString( LBarra, 3) .. ' L='..EmtLenToString( LTrave, 3) ..
|
|
|
|
|
' H=' .. EmtLenToString( HTrave, 3) .. ' S=' .. EmtLenToString( STrave, 3) .. ' )'
|
|
|
|
|
local sOut = '( SN=' .. IdTrave .. ' LBarra=' .. EmtLenToString( LBarra, EMT.DECMACRO) .. ' L='..EmtLenToString( LTrave, EMT.DECMACRO) ..
|
|
|
|
|
' H=' .. EmtLenToString( HTrave, EMT.DECMACRO) .. ' S=' .. EmtLenToString( STrave, EMT.DECMACRO) .. ' )'
|
|
|
|
|
EMT.PRODID = EgtGetInfo( BtlInfoId, 'PRODID', 'i') or 0
|
|
|
|
|
EMT.PATTID = EgtGetInfo( BtlInfoId, 'PATTID', 'i') or 0
|
|
|
|
|
EMT.CUTID = EgtGetInfo( EMT.IDT, 'CUTID', 'i') or 0
|
|
|
|
@@ -656,9 +659,9 @@ function OnRapid()
|
|
|
|
|
local bZmax = ( #EMT.AUXSTR > 0 or EMT.TOOL ~= EMT.PREVTOOL or EMT.L3 > -1)
|
|
|
|
|
-- se avevo motosega, torno in zona sicura senza ruotare assi rotanti
|
|
|
|
|
if EMT.PREVHEAD == 'H3' and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
|
|
|
|
local sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, 3) .. ' P3=' .. EmtLenToString( MyZHome, 3) ..
|
|
|
|
|
' P4=' .. EgtNumToString( EMT.R2pp, 3) .. ' P5=' .. EgtNumToString( EMT.R1pp, 3) ..
|
|
|
|
|
' P6=' .. EgtNumToString( EMT.PREVTCPOS, 3) .. ' P7=' .. EgtNumToString( EMT.PREVS, 0) ..
|
|
|
|
|
local sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZHome, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EgtNumToString( EMT.R2pp, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1pp, EMT.DECMACRO) ..
|
|
|
|
|
' P6=' .. EgtNumToString( EMT.PREVTCPOS, EMT.DECMACRO) .. ' P7=' .. EgtNumToString( EMT.PREVS, 0) ..
|
|
|
|
|
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
|
|
|
|
EmtOutput( sOutPreMove)
|
|
|
|
|
EmtOutput( 'M101 P1=2')
|
|
|
|
@@ -672,8 +675,8 @@ function OnRapid()
|
|
|
|
|
|
|
|
|
|
-- se carico motosega, ruoto in zona sicura prima di approcciare la lavorazione
|
|
|
|
|
if ( EMT.HEAD == 'H3' or ( bZmax and EMT.TTOTLEN > 200)) and EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
|
|
|
|
local sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, 3) .. ' P3=' .. EmtLenToString( MyZHome, 3) ..
|
|
|
|
|
' P4=' .. EgtNumToString( EMT.R2, 3) .. ' P5=' .. EgtNumToString( EMT.R1, 3) ..
|
|
|
|
|
local sOutPreMove = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZHome, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EgtNumToString( EMT.R2, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1, EMT.DECMACRO) ..
|
|
|
|
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
|
|
|
|
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
|
|
|
|
EmtOutput( sOutPreMove)
|
|
|
|
@@ -687,8 +690,8 @@ function OnRapid()
|
|
|
|
|
if EMT.ST > BeamHeightForFixRot and EMT.FLAG2 == 1 then
|
|
|
|
|
MyZPos = MyZHome
|
|
|
|
|
end
|
|
|
|
|
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, 3) .. ' P3=' .. EmtLenToString( MyZPos, 3) ..
|
|
|
|
|
' P4=' .. EgtNumToString( EMT.R2, 3) .. ' P5=' .. EgtNumToString( EMT.R1, 3) ..
|
|
|
|
|
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( MyZPos, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EgtNumToString( EMT.R2, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1, EMT.DECMACRO) ..
|
|
|
|
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
|
|
|
|
' P8=0' .. ' P9=0' .. ' P10=' .. EgtIf( bZmax, '3', '4')
|
|
|
|
|
if EMT.LOAD then
|
|
|
|
@@ -738,7 +741,7 @@ function OnRapid()
|
|
|
|
|
sV = EmtLenToString( ParkV)
|
|
|
|
|
sB = '2'
|
|
|
|
|
end
|
|
|
|
|
sOut = 'M112 P1='..EmtLenToString( EMT.L1, 3)..' P3='..sA..' P4='..sB..' P5=0 P6='..sY..' P7='..sV..' P9='..GetFmaxClamp()
|
|
|
|
|
sOut = 'M112 P1='..EmtLenToString( EMT.L1, EMT.DECMACRO)..' P3='..sA..' P4='..sB..' P5=0 P6='..sY..' P7='..sV..' P9='..GetFmaxClamp()
|
|
|
|
|
ParkLine( sOut)
|
|
|
|
|
EMT.LOAD = false
|
|
|
|
|
-- emissione prime linee speciali e linee parcheggiate
|
|
|
|
@@ -789,7 +792,7 @@ function OnRapid()
|
|
|
|
|
sOut = 'M101 P1=3'
|
|
|
|
|
EmtOutput( sOut)
|
|
|
|
|
end
|
|
|
|
|
sOut = 'M112 P1=' .. EmtLenToString( EMT.L1, 3) ..' P3='..sA..' P4='..sB..' P6='..sY..' P7='..sV..' P9=' .. GetFmaxClamp()
|
|
|
|
|
sOut = 'M112 P1=' .. EmtLenToString( EMT.L1, EMT.DECMACRO) ..' P3='..sA..' P4='..sB..' P6='..sY..' P7='..sV..' P9=' .. GetFmaxClamp()
|
|
|
|
|
EmtOutput( sOut)
|
|
|
|
|
if not bHeadFirst then
|
|
|
|
|
sOut = 'M101 P1=2'
|
|
|
|
@@ -861,15 +864,15 @@ function OnRapid()
|
|
|
|
|
if EMT.ST > BeamHeightForFixRot and EMT.HEAD == 'H1' and EMT.TOOL ~= EMT.NEXTTOOL and EMT.NEXTHEAD ~= 'H2' then
|
|
|
|
|
local dBAxis = 90
|
|
|
|
|
local dCAxis = EgtIf( BD.RIGHT_LOAD, 90, -90)
|
|
|
|
|
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, 3) .. ' P3=' .. EmtLenToString( EMT.L3, 3) ..
|
|
|
|
|
' P4=' .. EgtNumToString( dBAxis, 3) .. ' P5=' .. EgtNumToString( dCAxis, 3) ..
|
|
|
|
|
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.L3, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EgtNumToString( dBAxis, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( dCAxis, EMT.DECMACRO) ..
|
|
|
|
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
|
|
|
|
' P8=0' .. ' P9=0' .. ' P10=3'
|
|
|
|
|
EmtOutput( sOut)
|
|
|
|
|
EmtOutput( 'M101 P1=2')
|
|
|
|
|
EmtOutput( 'M101 P1=3')
|
|
|
|
|
sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, 3) .. ' P3=' .. EmtLenToString( EMT.L3, 3) ..
|
|
|
|
|
' P4=' .. EgtNumToString( dBAxis, 3) .. ' P5=' .. EgtNumToString( dCAxis, 3) ..
|
|
|
|
|
sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( -SafeXRotAxes, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.L3, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EgtNumToString( dBAxis, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( dCAxis, EMT.DECMACRO) ..
|
|
|
|
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
|
|
|
|
' P8=0' .. ' P9=0' .. ' P10=3'
|
|
|
|
|
EmtOutput( sOut)
|
|
|
|
@@ -886,8 +889,8 @@ function OnRapid()
|
|
|
|
|
MyAdjustLinearAxes()
|
|
|
|
|
EmtAdjustRotaryAxes()
|
|
|
|
|
EmtResetPrev()
|
|
|
|
|
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, 3) .. ' P3=' .. EmtLenToString( EMT.L3, 3) ..
|
|
|
|
|
' P4=' .. EgtNumToString( EMT.R2, 3) .. ' P5=' .. EgtNumToString( EMT.R1, 3) ..
|
|
|
|
|
local sOut = 'M101 P1=1' .. ' P2=' .. EmtLenToString( EMT.L2, EMT.DECMACRO) .. ' P3=' .. EmtLenToString( EMT.L3, EMT.DECMACRO) ..
|
|
|
|
|
' P4=' .. EgtNumToString( EMT.R2, EMT.DECMACRO) .. ' P5=' .. EgtNumToString( EMT.R1, EMT.DECMACRO) ..
|
|
|
|
|
' P6=' .. AdjustTcPos( false) .. ' P7=' .. EgtNumToString( EMT.S, 0) ..
|
|
|
|
|
' P8=0' .. ' P9=0' .. ' P10=3'
|
|
|
|
|
EmtOutput( sOut)
|
|
|
|
@@ -1007,7 +1010,7 @@ function OnArc()
|
|
|
|
|
--local sCen = ' ' .. EMT.C1t .. EmtLenToString(EMT.C1,3) ..
|
|
|
|
|
-- ' ' .. EMT.C2t .. EmtLenToString(EMT.C2,3)
|
|
|
|
|
-- raggio
|
|
|
|
|
local sRad = ' ' .. EMT.RRt .. EmtLenToString( EMT.RR, EMT.DECNUM)
|
|
|
|
|
local sRad = ' ' .. EMT.RRt .. EmtLenToString( EMT.RR, EMT.DECRAD)
|
|
|
|
|
-- aggiungo feed
|
|
|
|
|
local sFeed = EmtGetFeed()
|
|
|
|
|
-- tipo arco
|
|
|
|
@@ -1767,9 +1770,9 @@ function CalcInterpPlane()
|
|
|
|
|
local vtY = EMT.IPLGLFR:getVersY()
|
|
|
|
|
local vtZ = EMT.IPLGLFR:getVersZ()
|
|
|
|
|
EMT.IPLGLSTR = ' X0 Y' .. EmtLenToString( xS, EMT.DECNUM) .. ' Z0' ..
|
|
|
|
|
' A' .. EgtNumToString( - vtX:getY(), 6) .. ' B' .. EgtNumToString( vtX:getX(), 6) .. ' C' .. EgtNumToString( vtX:getZ(), 6) ..
|
|
|
|
|
' I' .. EgtNumToString( - vtY:getY(), 6) .. ' J' .. EgtNumToString( vtY:getX(), 6) .. ' K' .. EgtNumToString( vtY:getZ(), 6) ..
|
|
|
|
|
' P' .. EgtNumToString( - vtZ:getY(), 6) .. ' Q' .. EgtNumToString( vtZ:getX(), 6) .. ' R' .. EgtNumToString( vtZ:getZ(), 6)
|
|
|
|
|
' A' .. EgtNumToString( - vtX:getY(), EMT.DECVERS) .. ' B' .. EgtNumToString( vtX:getX(), EMT.DECVERS) .. ' C' .. EgtNumToString( vtX:getZ(), EMT.DECVERS) ..
|
|
|
|
|
' I' .. EgtNumToString( - vtY:getY(), EMT.DECVERS) .. ' J' .. EgtNumToString( vtY:getX(), EMT.DECVERS) .. ' K' .. EgtNumToString( vtY:getZ(), EMT.DECVERS) ..
|
|
|
|
|
' P' .. EgtNumToString( - vtZ:getY(), EMT.DECVERS) .. ' Q' .. EgtNumToString( vtZ:getX(), EMT.DECVERS) .. ' R' .. EgtNumToString( vtZ:getZ(), EMT.DECVERS)
|
|
|
|
|
EMT.IPLGL = true
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|