|
|
|
@@ -43,7 +43,7 @@ function OnProgramStart()
|
|
|
|
|
EmtOutput( '%'..EgtNumToString( nPatt, 0)..'.0')
|
|
|
|
|
|
|
|
|
|
-- aggiungo prefisso per commentae commenti iniziali se la macchina è utilizzata per fare i test
|
|
|
|
|
local sPrefixCommentLine = '' ; if IS_TEST_MACHINE then sPrefixCommentLine = '//' end
|
|
|
|
|
local sPrefixCommentLine = '' ; if IS_TEST_MACHINE or EgtEndsWith( EgtGetCurrMachineDir(), '.TEST') then sPrefixCommentLine = '//' end
|
|
|
|
|
|
|
|
|
|
if EMT.INFO then
|
|
|
|
|
EmtOutput( sPrefixCommentLine..'('..EMT.INFO..')')
|
|
|
|
@@ -137,6 +137,14 @@ function OnToolData()
|
|
|
|
|
if EMT.TDIST and abs( EMT.TDIST) < 0.1 then EMT.TDIST = nil end
|
|
|
|
|
local sOut = 'L11='..EgtNumToString( EMT.SMAX, 0)..' L12='..EmtLenToString( ( EMT.TDIST or ChSawLen), 1)..' G76H9998.1N301N304'
|
|
|
|
|
EmtOutput( sOut)
|
|
|
|
|
-- emissione dati rinvio
|
|
|
|
|
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 sPos = 'N2' .. tostring(nPos)
|
|
|
|
|
local sOut = 'L11=' .. EmtLenToString( EMT.SMAX, 3) .. ' L12=' .. EmtLenToString( AngTr1Offs, 1)..' G76H9998.1'..sPos..sPos
|
|
|
|
|
EmtOutput( sOut)
|
|
|
|
|
-- altro non previsto
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@@ -155,7 +163,7 @@ function OnDispositionStart()
|
|
|
|
|
' EG'..EmtLenToString( SawOffs, 2)..' EI'..EmtLenToString( ParkY, 2)..' EL'..EmtLenToString( ParkV, 2)..
|
|
|
|
|
' EM'..EmtLenToString( TurnerOffs, 2)..' EN'..EmtLenToString( -DeltaTabY, 2)..' EO'..EmtLenToString( DeltaTabZ, 2)
|
|
|
|
|
if SecondSupport >= 3 then
|
|
|
|
|
sOut = sOut ..' EP'..EmtLenToString( AngTr1Len, 2) ..' EQ'..EmtLenToString( AngTr1Offs + MillOffs,2)
|
|
|
|
|
sOut = sOut ..' EP'..EmtLenToString( AngTr1Len, 2) ..' EQ'..EmtLenToString( AngTr1Offs,2)
|
|
|
|
|
end
|
|
|
|
|
EmtOutput( '\n' .. sOut .. '\n')
|
|
|
|
|
-- carico barra
|
|
|
|
@@ -422,6 +430,10 @@ function OnMachiningStart()
|
|
|
|
|
-- sistemazione speed
|
|
|
|
|
if EMT.HEAD == 'H2' then
|
|
|
|
|
EMT.S = EMT.S * 6
|
|
|
|
|
elseif EMT.HEAD == 'H5' and EMT.EXIT == 1 then
|
|
|
|
|
EMT.S = -EMT.S
|
|
|
|
|
elseif EMT.HEAD == 'H6' and EMT.EXIT == 1 then
|
|
|
|
|
EMT.S = -EMT.S
|
|
|
|
|
end
|
|
|
|
|
-- determino subito se taglio di separazione di pezzo a caduta
|
|
|
|
|
EMT.PREFALLCUT = nil
|
|
|
|
@@ -672,8 +684,31 @@ function OnRapid()
|
|
|
|
|
|
|
|
|
|
-- ricavo i dati per la lavorazione
|
|
|
|
|
local sEE = ' EE' .. EgtIf( bZmax, '3', '4')
|
|
|
|
|
local sEL = ' EL' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TLEN, ( EMT.TDIST or ChSawLen)), 3)
|
|
|
|
|
local sER = ' ER' .. EmtLenToString( EgtIf( EMT.HEAD ~= 'H3', EMT.TDIAM / 2, EMT.TLEN), 3)
|
|
|
|
|
|
|
|
|
|
local sEL = ' EL'
|
|
|
|
|
-- se motosega
|
|
|
|
|
if EMT.HEAD == 'H3' then
|
|
|
|
|
sEL = sEL..EmtLenToString( ( EMT.TDIST or ChSawLen), 3)
|
|
|
|
|
-- se aggregato
|
|
|
|
|
elseif EMT.HEAD == 'H5' or EMT.HEAD == 'H6' then
|
|
|
|
|
sEL = sEL..EmtLenToString( AngTr1Offs, 3)
|
|
|
|
|
-- se testa normale ( H1 or H2)
|
|
|
|
|
else
|
|
|
|
|
sEL = sEL..EmtLenToString( EMT.TLEN, 3)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local sER = ' ER'
|
|
|
|
|
-- se motosega
|
|
|
|
|
if EMT.HEAD == 'H3' then
|
|
|
|
|
sER = sER..EmtLenToString( EMT.TLEN, 3)
|
|
|
|
|
-- se aggregato
|
|
|
|
|
elseif EMT.HEAD == 'H5' or EMT.HEAD == 'H6' then
|
|
|
|
|
sER = sER..EmtLenToString( EMT.TLEN + AngTr1Len, 3)
|
|
|
|
|
-- se testa normale ( H1 or H2)
|
|
|
|
|
else
|
|
|
|
|
sER = sER..EmtLenToString( EMT.TDIAM / 2, 3)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local sET = GetET( EMT.HEAD, EMT.TCPOS, EMT.R3)
|
|
|
|
|
local sES = ' ES'..EgtNumToString( EMT.S, 0)
|
|
|
|
|
|
|
|
|
@@ -943,6 +978,11 @@ end
|
|
|
|
|
|
|
|
|
|
---------------------------------------------------------------------
|
|
|
|
|
function OnArc()
|
|
|
|
|
-- con aggregato non si possono fare archi. Deve essere tutto spezzato
|
|
|
|
|
if EMT.HEAD == 'H5' or EMT.HEAD == 'H6' then
|
|
|
|
|
EmtSetLastError( 1211, "With aggregate, the arcs must be splitted")
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
MyBackupAxes()
|
|
|
|
|
EMT.TLAST = EMT.L1
|
|
|
|
|
-- non modale su archi
|
|
|
|
@@ -1522,16 +1562,24 @@ function MyAdjustLinearAxes()
|
|
|
|
|
|
|
|
|
|
if EMT.REFLOC then
|
|
|
|
|
local vtE
|
|
|
|
|
if EMT.HEAD ~= 'H3' then
|
|
|
|
|
if EMT.HEAD == 'H1' or EMT.HEAD == 'H2' then
|
|
|
|
|
local Len = EMT.TLEN + EgtIf( EMT.HEAD == 'H1', MillOffs, abs( SawOffs))
|
|
|
|
|
local LenRef = MillOffs
|
|
|
|
|
vtE = Vector3d( EMT.EXTR) * Len - Z_AX() * LenRef
|
|
|
|
|
else
|
|
|
|
|
elseif EMT.HEAD == 'H3' then
|
|
|
|
|
local LenAux = ( EMT.TDIST or ChSawLen) + MillOffs
|
|
|
|
|
local LenRef = MillOffs
|
|
|
|
|
local vtAux = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2, EMT.R3)
|
|
|
|
|
vtE = vtAux * LenAux - Z_AX() * LenRef
|
|
|
|
|
elseif EMT.HEAD == 'H5' then
|
|
|
|
|
local LenAux = AngTr1Offs + MillOffs
|
|
|
|
|
local LenRef = MillOffs
|
|
|
|
|
local vtAux = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2, EMT.R3)
|
|
|
|
|
vtE = vtAux * LenAux - Z_AX() * LenRef
|
|
|
|
|
else
|
|
|
|
|
EmtSetLastError( 1211, 'Head not allowed ' .. EMT.HEAD)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
EMT.L1 = EMT.L1 - vtE:getX()
|
|
|
|
|
EMT.L2 = EMT.L2 - DeltaTabY - vtE:getY()
|
|
|
|
|
EMT.L3 = EMT.L3 - DeltaTabZ - vtE:getZ()
|
|
|
|
@@ -1571,7 +1619,7 @@ function CalcInterpPlane()
|
|
|
|
|
local ptS = Point3d( xS, 0, 0)
|
|
|
|
|
-- calcolo per piano generico
|
|
|
|
|
local vtE
|
|
|
|
|
if EMT.HEAD ~= 'H3' then
|
|
|
|
|
if EMT.HEAD == 'H1' or EMT.HEAD == 'H2' then
|
|
|
|
|
vtE = Vector3d( EMT.EXTR)
|
|
|
|
|
else
|
|
|
|
|
vtE = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2, EMT.R3)
|
|
|
|
@@ -1622,7 +1670,7 @@ end
|
|
|
|
|
|
|
|
|
|
---------------------------------------------------------------------
|
|
|
|
|
function GetET( sHead, sTcPos, dAxR3)
|
|
|
|
|
if sHead == 'H1' then
|
|
|
|
|
if sHead == 'H1' or sHead == 'H5' or sHead == 'H6' then
|
|
|
|
|
return ' E'..sTcPos
|
|
|
|
|
elseif sHead == 'H2' then
|
|
|
|
|
return ' ET42'
|
|
|
|
|