Prima bozza gestione aggregato foratore multiplo
This commit is contained in:
@@ -97,10 +97,10 @@ ParkCSaw0Z1 = -400
|
||||
ParkCSawC1 = -90
|
||||
ParkCSaw0C1 = 0
|
||||
ParkCSawB1 = 0
|
||||
MinLengthLongCSaw = 580 -- gestione speciale per motosega molto lunga. Lunghezza al di sopra della quale e' considerata motosega lunga
|
||||
ParkLongCSawZ1 = -50 -- gestione speciale per motosega molto lunga. Parcheggio asse Z
|
||||
ParkLongCSawC1 = 0 -- gestione speciale per motosega molto lunga. Parcheggio asse C
|
||||
ParkLongCSawB1 = -90 -- gestione speciale per motosega molto lunga. Parcheggio asse B
|
||||
MinLengthLongCSaw = 580 -- gestione speciale per motosega molto lunga. Lunghezza al di sopra della quale e' considerata motosega lunga
|
||||
ParkLongCSawZ1 = -50 -- gestione speciale per motosega molto lunga. Parcheggio asse Z
|
||||
ParkLongCSawC1 = 0 -- gestione speciale per motosega molto lunga. Parcheggio asse C
|
||||
ParkLongCSawB1 = -90 -- gestione speciale per motosega molto lunga. Parcheggio asse B
|
||||
LongTool = 390
|
||||
MinLongTc1C1 = -91
|
||||
MaxLongTc1C1 = 91
|
||||
@@ -110,6 +110,11 @@ MaxLongTc2C1 = -89
|
||||
ParkLongTc2C1 = -180
|
||||
ParkLongB1 = 0
|
||||
MinZ1ToChangeH2 = -1400
|
||||
ParkMultiDrillX1 = ParkCSawX1 -- posizione parcheggio asse X per aggregato forature multiplo
|
||||
ParkMultiDrillC1 = 0 -- posizione parcheggio asse C per aggregato forature multiplo
|
||||
ParkMultiDrill0C1 = -90 -- posizione parcheggio asse C per aggregato forature multiplo
|
||||
ParkMultiDrillB1 = 0 -- posizione parcheggio asse B per aggregato forature multiplo
|
||||
ParkMultiDrillZ1 = 0 -- posizione parcheggio asse Z per aggregato forature multiplo
|
||||
MinZ3 = -1550
|
||||
MaxZ3 = 0
|
||||
MinX3 = 0
|
||||
@@ -1153,6 +1158,17 @@ function OnSetHead()
|
||||
EmtModifyAxisHome( 'C1', GetChainSawCHomeFromVirtualAxis( CSawPosA, EMC.TOTLEN))
|
||||
EmtModifyAxisHome( 'B1', EgtIf( EMC.TOTLEN < MinLengthLongCSaw, ParkCSawB1, ParkLongCSawB1))
|
||||
EmtModifyAxisDirection( 'B1', X_AX())
|
||||
-- se testa H14 (aggregato forature multiplo)
|
||||
elseif EMC.HEAD == 'H14' then
|
||||
-- recupero il valore dell'asse virtuale bloccato A
|
||||
local MultiDrillPosA = GetCurrMultiDrillVirtualAxis()
|
||||
EmtModifyAxisHome( 'X1', ParkMultiDrillX1)
|
||||
EmtModifyAxisHome( 'Z1', ParkMultiDrillZ1)
|
||||
EmtModifyAxisStroke( 'Z1', {MinZ1, MaxZ1})
|
||||
EmtModifyAxisStroke( 'C1', {MinC1, MaxC1})
|
||||
EmtModifyAxisHome( 'C1', GetMultiDrillCHomeFromVirtualAxis( MultiDrillPosA, EMC.TOTLEN))
|
||||
EmtModifyAxisHome( 'B1', EgtIf( EMC.TOTLEN < MinLengthLongCSaw, ParkCSawB1, ParkLongCSawB1))
|
||||
EmtModifyAxisDirection( 'B1', X_AX())
|
||||
-- se testa H16 ( seconda lama)
|
||||
elseif EMC.HEAD == 'H16' then
|
||||
EmtModifyAxisHome( 'X1', ParkTc2X1)
|
||||
@@ -1286,6 +1302,8 @@ function HeadIsChainSaw( sHead)
|
||||
return ( sHead == 'H13' or sHead == 'H15')
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
--- FUNZIONI PER MOTOSEGA -------------------------------------------
|
||||
---------------------------------------------------------------------
|
||||
function GetCurrChainSawingVirtualAxis()
|
||||
-- recupero il valore dell'asse virtuale bloccato A
|
||||
@@ -1349,6 +1367,37 @@ function GetSawCHomeFromVirtualAxis( dPosA)
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
--- FUNZIONI PER AGGREGATO FORATORE MULTIPLO ------------------------
|
||||
---------------------------------------------------------------------
|
||||
---------------------------------------------------------------------
|
||||
function GetCurrMultiDrillVirtualAxis()
|
||||
-- recupero il valore dell'asse virtuale bloccato A
|
||||
local sVal = EgtGetMachiningParam( MCH_MP.BLOCKEDAXIS)
|
||||
if not sVal or sVal == '' then
|
||||
if EMC then
|
||||
sVal = EMC.BLOCKEDAXIS or 'A1=0'
|
||||
else
|
||||
sVal = 'A1=0'
|
||||
end
|
||||
end
|
||||
local dPosA = tonumber( sVal:sub( 4)) or 0
|
||||
return dPosA
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- Funzione che calcola l'angolo Home di C per l'aggregato foratore mutliplo dal valore dell'asse virtuale
|
||||
---------------------------------------------------------------------
|
||||
function GetMultiDrillCHomeFromVirtualAxis( dPosA)
|
||||
-- se A1=0 -> T121 -> HomeC = 0
|
||||
if abs( dPosA) < 0.1 then
|
||||
return ParkMultiDrill0C1
|
||||
-- altrimenti A1=90 -> T124 -> HomeC = -90
|
||||
else
|
||||
return ParkMultiDrillC1
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- Funzione che ritorna ZExtra partendo dalla testa e dall'angolo verticale
|
||||
function GetZExtra( sHead, dAngV)
|
||||
@@ -1378,6 +1427,19 @@ function GetZExtra( sHead, dAngV)
|
||||
else
|
||||
return 0
|
||||
end
|
||||
-- se aggregato foratore multiplo
|
||||
elseif sHead == 'H14' then
|
||||
if abs( dAngV) < 30.1 then
|
||||
return 400
|
||||
elseif abs( dAngV) < 45.1 then
|
||||
return 300
|
||||
elseif abs( dAngV) < 60.1 then
|
||||
return 200
|
||||
elseif abs( dAngV) < 90.1 then
|
||||
return 10
|
||||
else
|
||||
return 0
|
||||
end
|
||||
-- altri casi
|
||||
else
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user