Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5de2fd1b45 | |||
| 264c78d8df | |||
| 8e39bc08a8 | |||
| e3082d52c4 | |||
| 3810893c36 | |||
| 55fde8526a | |||
| ae7e96aa7c | |||
| 3db37e9c19 | |||
| 86ca749635 | |||
| 19ae66b5bd | |||
| 758893afdb |
+25
-6
@@ -6,6 +6,7 @@ EgtOutLog( ' FAST-BeamData started', 1)
|
||||
-- Tabella per definizione modulo
|
||||
local BeamData = {
|
||||
GO_FAST = 0, -- flag abilitazione modalità veloce (0=no, 1=carrelli, 2=anche cambio utensili)
|
||||
RIGHT_LOAD = false, -- flag carico da destra
|
||||
ROT90 = false, -- flag abilitazione rotazione 90 gradi
|
||||
MIN_WIDTH = 40, -- larghezza minima del grezzo
|
||||
MIN_HEIGHT = 40, -- altezza minima del grezzo
|
||||
@@ -70,7 +71,7 @@ local BeamData = {
|
||||
|
||||
-- Aggiornamento con dati da TechnoEssetre7
|
||||
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-Fast.data"
|
||||
local sData = EgtGetSourceDir().."\\Ts3Data.lua"
|
||||
local sData = EgtGetCurrMachineDir().."\\Beam\\Ts3Data.lua"
|
||||
if EgtExistsFile( sTs3Data) then
|
||||
EgtCopyFile( sTs3Data, sData)
|
||||
local sTs3DataOld = sTs3Data..'.old'
|
||||
@@ -115,14 +116,32 @@ if EgtExistsFile( sData) then
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function GetChainSawBlockedAxis( nInd)
|
||||
if nInd == 1 then
|
||||
return 'A=90'
|
||||
local function GetBlockedAxis( sHead, nToolType, sBlockedAxis)
|
||||
-- lama
|
||||
if nToolType == MCH_TY.SAW_STD or nToolType == MCH_TY.SAW_FLAT then
|
||||
return ''
|
||||
-- sega a catena
|
||||
elseif nToolType == MCH_TY.MORTISE_STD then
|
||||
if sHead == 'H3' then
|
||||
if sBlockedAxis == 'parallel' then
|
||||
return 'A=0'
|
||||
elseif sBlockedAxis == 'perpendicular' then
|
||||
return 'A=90'
|
||||
end
|
||||
else
|
||||
return ''
|
||||
end
|
||||
-- fresa
|
||||
elseif nToolType == MCH_TY.MILL_STD or nToolType == MCH_TY.MILL_NOTIP then
|
||||
return ''
|
||||
-- punta
|
||||
elseif nToolType == MCH_TY.DRILL_STD or nToolType == MCH_TY.DRILL_LONG then
|
||||
return ''
|
||||
else
|
||||
return 'A=0'
|
||||
return ''
|
||||
end
|
||||
end
|
||||
BeamData.GetChainSawBlockedAxis = GetChainSawBlockedAxis
|
||||
BeamData.GetBlockedAxis = GetBlockedAxis
|
||||
|
||||
---------------------------------------------------------------------
|
||||
local function GetMaxLenRidgeLapFromBottom( dHRaw)
|
||||
|
||||
@@ -1,21 +1,12 @@
|
||||
-- Processore macchina Essetre-FAST by EgalTech s.r.l. 2023/10/18
|
||||
-- Processore standard macchine FAST by EgalWare s.r.l. 2024/02/23
|
||||
-- Con controllo numerico NUM
|
||||
-- 2021/04/23 DS ver 2.3d3 Se non c'è BtlInfo cerco il gruppo di lavoro corrente.
|
||||
-- 2021/07/21 DS ver 2.3g5 Modifiche varie da TPA.
|
||||
-- 2021/07/23 DS ver 2.3g6 Corretta gestione LOAD90.
|
||||
-- 2021/07/23 DS ver 2.3g7 Completamento allineamento con TPA.
|
||||
-- 2021/07/27 DS ver 2.3g8 Corretto carico senza taglio di testa per salto G79 N9.
|
||||
-- 2021/07/27 DS ver 2.3g9 Nome in testa a CN (%NNNN.0) da PATTID di BtlInfo.
|
||||
-- 2021/07/29 DS ver 2.3g10 Con testa H2 (lama) non si emettono assi rotanti nel corso della lavorazione.
|
||||
-- 2021/08/03 DS ver 2.3h2 Nei commenti le parentesi sono sostituite con il carattere -.
|
||||
-- 2021/08/05 DS ver 2.3h4 Nel rapido se non bHeadFirst ritardo anche l'emissione di G101 a dopo G112.
|
||||
-- 2021/11/17 DS ver 2.3k1 Correzioni di Nicola su rotazioni verificate da GCT.
|
||||
-- 2021/12/28 DS ver 2.3l2 Correzioni a G101 (ora sempre con EE ed ET).
|
||||
-- 2021/12/29 DS ver 2.3l3 Altre correzioni a G101 (se già in alto EE3 e sempre ES).
|
||||
-- 2023/04/19 DS ver 2.5d1 Al carico dopo rotazione su linea con EA75 messo EB110 invece di 112.
|
||||
|
||||
-- carico librerie
|
||||
local INFO_STD_PP = require( 'Version')
|
||||
|
||||
-- Variabili di modulo
|
||||
local MLE_INFO = 'Essetre-FAST.NUM.mlpe ver.'..PP_VER..' by EgalTech s.r.l.'
|
||||
local CSP_INFO = INFO_STD_PP.NAME..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.'
|
||||
local MACHINE_INFO = 'PP_VER ver.'..PP_VER
|
||||
local TEST_USE = false
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -55,7 +46,8 @@ function OnProgramStart()
|
||||
else
|
||||
EmtOutput( '(Program Start)')
|
||||
end
|
||||
EmtOutput( '('.. MLE_INFO..')\n')
|
||||
EmtOutput( '('.. CSP_INFO..')')
|
||||
EmtOutput( '('.. MACHINE_INFO..')\n')
|
||||
-- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente)
|
||||
if TEST_USE then
|
||||
EmtOutput( 'M28')
|
||||
@@ -1,10 +1,12 @@
|
||||
-- Processore macchina Essetre-FAST by EgalTech s.r.l. 2023/10/18
|
||||
-- Processore standard macchine FAST by EgalWare s.r.l. 2024/02/23
|
||||
-- Con controllo numerico NUM FlexiumPlus
|
||||
-- 2022/09/20 DS ver 2.4i1 Prima versione.
|
||||
-- 2023/04/19 DS ver 2.5d1 Al carico dopo rotazione su linea con EA75 messo EB110 invece di 112.
|
||||
|
||||
-- carico librerie
|
||||
local INFO_STD_PP = require( 'Version')
|
||||
|
||||
-- Variabili di modulo
|
||||
local MLE_INFO = 'Essetre-FAST.NUM_PLUS.mlpe ver.'..PP_VER..' by EgalTech s.r.l.'
|
||||
local CSP_INFO = INFO_STD_PP.NAME..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.'
|
||||
local MACHINE_INFO = 'PP_VER ver.'..PP_VER
|
||||
local TEST_USE = false
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -44,7 +46,8 @@ function OnProgramStart()
|
||||
else
|
||||
EmtOutput( '(Program Start)')
|
||||
end
|
||||
EmtOutput( '('.. MLE_INFO..')\n')
|
||||
EmtOutput( '('.. CSP_INFO..')')
|
||||
EmtOutput( '('.. MACHINE_INFO..')\n')
|
||||
-- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente)
|
||||
if TEST_USE then
|
||||
EmtOutput( 'M28')
|
||||
@@ -1,29 +1,12 @@
|
||||
-- Processore macchina Essetre-FAST by EgalTech s.r.l. 2023/10/18
|
||||
-- Processore standard macchine FAST by EgalWare s.r.l. 2024/02/23
|
||||
-- Con controllo numerico TPA
|
||||
-- 2020/03/23 DS ver.2.2c3 Nei movimenti interpolati si usano 5 decimali, nei G24 6 decimali.
|
||||
-- 2020/04/27 DS ver.2.2d3 Aggiunta gestione scarico speciale senza spostamento finale pezzo.
|
||||
-- 2020/04/30 DS ver.2.2d5 Modifiche a scarico manuale.
|
||||
-- 2020/05/19 DS ver.2.2e2 Modifiche per rotazione 90 gradi.
|
||||
-- 2020/05/27 DS ver.2.2e6 Aggiunta gestione ordine posizionamento iniziale testa e carrelli quando non è Zmax.
|
||||
-- 2020/06/10 DS ver.2.2f1 Aggiunta emissione di pezzo finito (M113..) dopo pezzo caduto (M155).
|
||||
-- 2020/06/11 DS ver 2.2f2 Nel contenuto dei commenti si sostituiscono le parentesi tonde con le quadre.
|
||||
-- 2020/09/03 DS ver 2.2i1 A M114 aggiunti P11 e P12. Modificato M102 P1=. Modificati commenti.
|
||||
-- 2020/09/16 DS ver 2.2i2 OFFSETX e OFFSETZ da TS3v7 ora devono contenere tutto lo spiazzamento non più solo il delta dal nominale.
|
||||
-- 2020/09/17 DS ver 2.2i3 Correzione per il segno di OFFSETX.
|
||||
-- 2021/01/08 DS ver 2.3a1 M115 esteso con P6 e usato per ogni pezzo. Eliminati 0 inutili.
|
||||
-- 2021/04/07 DS ver 2.3d2 Gestione risalita Zmax (M116) anche allo scarico.
|
||||
-- 2021/04/23 DS ver 2.3d3 Se non c'è BtlInfo cerco il gruppo di lavoro corrente.
|
||||
-- 2021/05/25 DS ver 2.3e3 Aggiunta gestione rapido con Flag=5.
|
||||
-- 2021/06/04 DS ver 2.3f2 Gestione parametro P12=1 su M101 per ruotare in alto quando necessario.
|
||||
-- 2021/07/21 DS ver 2.3g5 Si imposta LOAD90 su tutti i pezzi di una barra tramite M115. Aggiunto M29 prima di taglio di pezzo a caduta.
|
||||
-- 2021/08/03 DS ver 2.3h3 Aggiunto arresto preciso negli angoli (G9) in fresature con utensili di piccolo diametro.
|
||||
-- 2022/01/21 DS ver 2.4a1 In V07 si imposta nLoad90.
|
||||
-- 2022/04/14 DS ver 2.4d2 Si programma G9 (arresto preciso) in fondo al foro.
|
||||
-- 2023/03/20 DS ver 2.5c1 Modifiche a AdjustTcPos per utensile BH su T42 e lama su T111.
|
||||
-- 2023/04/19 DS ver 2.5d1 Al carico dopo rotazione su linea con P4=75 messo P5=110 invece di 112.
|
||||
|
||||
-- carico librerie
|
||||
local INFO_STD_PP = require( 'Version')
|
||||
|
||||
-- Variabili di modulo
|
||||
local MLE_INFO = 'Essetre-FAST.TPA.mlpe ver.'..PP_VER..' by EgalTech s.r.l.'
|
||||
local CSP_INFO = INFO_STD_PP.NAME..' ver.'..INFO_STD_PP.VERSION..' by EgalWare s.r.l.'
|
||||
local MACHINE_INFO = 'PP_VER ver.'..PP_VER
|
||||
local TEST_USE = false
|
||||
|
||||
---------------------------------------------------------------------
|
||||
@@ -61,7 +44,9 @@ function OnProgramStart()
|
||||
else
|
||||
ParkLine( '(Program Start)')
|
||||
end
|
||||
ParkLine( '('.. MLE_INFO..')')
|
||||
ParkLine( '('.. CSP_INFO..')')
|
||||
ParkLine( '('.. MACHINE_INFO..')')
|
||||
|
||||
-- Se modalità test, aggiungo linee per muovere tappeto e alzare la testa (in automatico viene fatto dal main residente)
|
||||
if TEST_USE then
|
||||
ParkLine( 'M199')
|
||||
@@ -161,6 +146,9 @@ function OnToolData()
|
||||
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)
|
||||
ParkLine( sOut)
|
||||
-- altro non previsto
|
||||
else
|
||||
EmtSetLastError( 1211, 'Head not allowed ' .. EMT.HEAD)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -432,7 +420,7 @@ function OnMachiningStart()
|
||||
EMT.MCHNAME = EgtGetOperationName( EMT.MCHID)
|
||||
EMT.MCHTYPE = EgtGetMachiningParam( MCH_MP.TYPE)
|
||||
EMT.MCHUSERNOTES = EgtGetMachiningParam( MCH_MP.USERNOTES)
|
||||
-- sistemazione speed
|
||||
-- sistemazione speed (la speed della lama va moltiplicata per 6)
|
||||
if EMT.HEAD == 'H2' then
|
||||
EMT.S = EMT.S * 6
|
||||
elseif EMT.HEAD == 'H5' and EMT.EXIT == 1 then
|
||||
@@ -1535,12 +1523,14 @@ function MyAdjustLinearAxes()
|
||||
local LenRef = MillOffs
|
||||
local vtAux = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2, EMT.R3)
|
||||
vtE = vtAux * LenAux - Z_AX() * LenRef
|
||||
else -- 'H5'
|
||||
elseif EMT.HEAD == 'H5' then
|
||||
local Len = EMT.TLEN + AngTr1Len
|
||||
local LenAux = MillOffs + AngTr1Offs
|
||||
local LenRef = MillOffs
|
||||
local vtAux = EgtGetCalcAuxDirFromAngles( EMT.R1, EMT.R2)
|
||||
vtE = Vector3d( EMT.EXTR) * Len + 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()
|
||||
@@ -1556,7 +1546,7 @@ function MyAdjustLinearAxes()
|
||||
EMT.L3o = MyL3o
|
||||
|
||||
if not EMT.REFLOC then
|
||||
EMT.L2 = - EMT.L2
|
||||
EMT.L2 = -EMT.L2
|
||||
EMT.L1t = 'Y'
|
||||
EMT.L2t = 'X'
|
||||
else
|
||||
@@ -1576,7 +1566,7 @@ function AdjustToolKinematic()
|
||||
elseif EMT.HEAD == 'H6' then
|
||||
return EgtIf( EMT.EXIT == 1, '21', '22')
|
||||
else
|
||||
EmtSetLastError( 1211, 'Head not allowed')
|
||||
EmtSetLastError( 1211, 'Head not allowed ' .. EMT.HEAD)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,34 +1,25 @@
|
||||
-- Processore macchina Essetre-FAST by EgalTech s.r.l. 2023/01/23
|
||||
-- Funzioni generiche indipendenti dal controllo
|
||||
-- 2020/09/22 DS ver 2.2i4 Distanza di sicurezza per collisioni da 2 a 4mm (inoltre allontanata flangia lama e aggiunto cilindro asse Z)
|
||||
-- 2020/09/26 DS ver 2.2i5 Gestione cambio presa sega a catena tra due lavorazioni successive.
|
||||
-- 2020/10/06 DS ver 2.2j1 Punta lunga da togliere basata su sua lunhezza totale e non più su T111.
|
||||
-- 2021/01/08 DS ver 2.3a1 Gestione utensile di default da posizione e non da nome.
|
||||
-- 2021/01/24 DS ver 2.3a2 Correzione deposito sega a catena con ripresa della stessa per angola A diverso.
|
||||
-- 2021/01/31 DS ver 2.3a3 Altre correzioni per sega a catena.
|
||||
-- 2021/03/15 DS ver 2.3c2 Aggiunta gestione lama su testa H1 e verifica collisione relativa (COLLISION3).
|
||||
-- 2021/06/28 DS ver 2.3f5 Correzioni per scarico punte lunghe con pezzi alti.
|
||||
-- 2021/07/12 DS ver 2.3g2 Correzioni per verifica collisioni durante scarico utensili.
|
||||
-- 2021/07/20 DS ver 2.3g4 Aggiunta gestione rinvio angolare H5 (previsto anche H6).
|
||||
-- 2021/12/01 DS ver 2.3l1 Corrette stime tempi per rotazione pezzi.
|
||||
-- Processore macchina Essetre-FAST by EgalWare s.r.l. 2024/02/23
|
||||
|
||||
-- Intestazioni
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
-- carico librerie
|
||||
local BD = require( 'BeamData')
|
||||
|
||||
LONG_TOOL_MINLEN = 221
|
||||
BIG_TOOL_DIAM = 300
|
||||
|
||||
---------------------------------------------------------------------
|
||||
-- *** GENERATION ***
|
||||
---------------------------------------------------------------------
|
||||
local sBaseDir = EgtGetSourceDir()
|
||||
local sBaseDir = EgtGetCurrMachineDir()
|
||||
if NumericalControl == 'NUM' then
|
||||
dofile( sBaseDir .. 'Essetre-FAST.NUM.mlpe')
|
||||
dofile( sBaseDir .. '\\Common-FAST.NUM.mlpe')
|
||||
elseif NumericalControl == 'TPA' then
|
||||
dofile( sBaseDir .. 'Essetre-FAST.TPA.mlpe')
|
||||
dofile( sBaseDir .. '\\Common-FAST.TPA.mlpe')
|
||||
elseif NumericalControl == 'NUM_PLUS' then
|
||||
dofile( sBaseDir .. 'Essetre-FAST.NUM_PLUS.mlpe')
|
||||
dofile( sBaseDir .. '\\Common-FAST.NUM_PLUS.mlpe')
|
||||
else
|
||||
EmtSetLastError( 1201, 'Numerical Control error : unkwnown type')
|
||||
end
|
||||
@@ -38,6 +29,45 @@ end
|
||||
---------------------------------------------------------------------
|
||||
local COLL_SAFE_DIST = 3
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulInit()
|
||||
-- se macchina con carico destro, imposto offset direzioni di vista standard
|
||||
if BD.RIGHT_LOAD then
|
||||
local nOrigViewOffs = EgtGetViewOrizzOffsStep()
|
||||
local dOrigViewAngV, dOrigViewAngH = EgtGetGenericView()
|
||||
if nOrigViewOffs ~= 2 then
|
||||
EgtSetViewOrizzOffsStep( 2)
|
||||
if dOrigViewAngV < 0.1 then
|
||||
EgtSetView( SCE_VD.TOP, false)
|
||||
elseif dOrigViewAngV > 179.9 then
|
||||
EgtSetView( SCE_VD.BOTTOM, false)
|
||||
else
|
||||
local dViewAngH = dOrigViewAngH + EgtIf( dOrigViewAngH > 180, 2 * 90, 0)
|
||||
EgtSetGenericView( dOrigViewAngV, dViewAngH, false)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulExit()
|
||||
-- se macchina con carico destro, annullo offset direzioni di vista standard
|
||||
if BD.RIGHT_LOAD then
|
||||
local nOrigViewOffs = EgtGetViewOrizzOffsStep()
|
||||
local dOrigViewAngV, dOrigViewAngH = EgtGetGenericView()
|
||||
if nOrigViewOffs == 2 then
|
||||
EgtSetViewOrizzOffsStep( 0)
|
||||
if dOrigViewAngV < 0.1 then
|
||||
EgtSetView( SCE_VD.TOP, false)
|
||||
elseif dOrigViewAngV > 179.9 then
|
||||
EgtSetView( SCE_VD.BOTTOM, false)
|
||||
else
|
||||
EgtSetGenericView( dOrigViewAngV, dOrigViewAngH - 2 * 90, false)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------------------------------------------
|
||||
function OnSimulStart()
|
||||
-- controllo versione programma
|
||||
@@ -510,9 +540,9 @@ function OnSimulToolDeselect()
|
||||
if EMT.HEAD == 'H3' then
|
||||
local dPosA = EgtGetAxisPos( 'A')
|
||||
if abs( dPosA) < 0.1 then
|
||||
SimulMoveAxes( 'B', 0, CollSimRotStep, 'C', 0, CollSimRotStep)
|
||||
SimulMoveAxes( 'B', 0, CollSimRotStep, 'C', EgtIf( RIGHT_LOAD, 180, 0), CollSimRotStep)
|
||||
else
|
||||
SimulMoveAxes( 'B', 0, CollSimRotStep, 'C', -90, CollSimRotStep)
|
||||
SimulMoveAxes( 'B', 0, CollSimRotStep, 'C', EgtIf( RIGHT_LOAD, 90, -90), CollSimRotStep)
|
||||
end
|
||||
SimulMoveAxis( 'X', 0, RapSimStep)
|
||||
-- movimento scarico rinvio
|
||||
@@ -534,7 +564,7 @@ function OnSimulToolDeselect()
|
||||
else
|
||||
local dPosB = EgtGetAxisPos( 'B')
|
||||
local dNewB = EgtIf( dPosB < 0, -90, 90)
|
||||
SimulMoveAxes( 'B', dNewB, CollSimRotStep, 'C', 0, CollSimRotStep)
|
||||
SimulMoveAxes( 'B', dNewB, CollSimRotStep, 'C', EgtIf( RIGHT_LOAD, 180, 0), CollSimRotStep)
|
||||
SimulMoveAxis( 'X', 0, RapSimStep)
|
||||
end
|
||||
-- breve pausa
|
||||
@@ -544,9 +574,9 @@ function OnSimulToolDeselect()
|
||||
ShowToolInTcPos( EMT.TCPOS_1, true)
|
||||
-- movimento per carico utensile
|
||||
if EMT.NEXTHEAD ~= 'H3' and EMT.NEXTHEAD ~= 'H5' then
|
||||
SimulMoveAxes( 'B', 90, RapSimRotStep, 'C', -90, RapSimRotStep)
|
||||
SimulMoveAxes( 'B', 90, RapSimRotStep, 'C', EgtIf( RIGHT_LOAD, 90, -90), RapSimRotStep)
|
||||
else
|
||||
SimulMoveAxes( 'B', 0, RapSimRotStep, 'C', -90, RapSimRotStep)
|
||||
SimulMoveAxes( 'B', 0, RapSimRotStep, 'C', EgtIf( RIGHT_LOAD, 90, -90), RapSimRotStep)
|
||||
end
|
||||
-- se segue lama, carico utensile di default
|
||||
if EMT.NEXTHEAD == 'H2' then
|
||||
@@ -566,7 +596,7 @@ function OnSimulToolDeselect()
|
||||
local RapSimRotStep = RapSimStep / 10
|
||||
local CollSimRotStep = min( RapSimRotStep, 10)
|
||||
-- simulo movimento
|
||||
SimulMoveAxes( 'B', 90, CollSimRotStep, 'C', -90, CollSimRotStep)
|
||||
SimulMoveAxes( 'B', 90, CollSimRotStep, 'C', EgtIf( RIGHT_LOAD, 90, -90), CollSimRotStep)
|
||||
SimulMoveAxis( 'X', 0, RapSimStep)
|
||||
-- breve pausa
|
||||
EgtPause( 100)
|
||||
@@ -578,7 +608,7 @@ function OnSimulToolDeselect()
|
||||
EgtSetStatus( EgtGetHeadId( EMT.HEAD), GDB_ST.OFF)
|
||||
end
|
||||
-- eseguo movimento opportuno
|
||||
SimulMoveAxes( 'B', 0, RapSimRotStep, 'C', -90, RapSimRotStep)
|
||||
SimulMoveAxes( 'B', 0, RapSimRotStep, 'C', EgtIf( RIGHT_LOAD, 90, -90), RapSimRotStep)
|
||||
-- se altrimenti lama su cambio utensile
|
||||
elseif EMT.NEXTHEAD == 'H1' and SpecialBH and EMT.NEXTTCPOS == 'T111' then
|
||||
-- se non lama, nascondo l'utensile corrente
|
||||
@@ -873,14 +903,14 @@ function ExecUnloading()
|
||||
-- li sposto per lasciare spazio al nuovo pezzo
|
||||
local nId = EgtGetFirstInGroup( nVmGrpId)
|
||||
while nId do
|
||||
EgtMove( nId, Vector3d( 0, -( EMT.SB + 50.0), 0), GDB_RT.GLOB)
|
||||
EgtMove( nId, Vector3d( 0, EgtIf( RIGHT_LOAD, ( EMT.SB + 50.0), -( EMT.SB + 50.0)), 0), GDB_RT.GLOB)
|
||||
nId = EgtGetNext( nId)
|
||||
end
|
||||
-- creo un nuovo layer e vi inserisco il nuovo pezzo
|
||||
local nLayId = EgtGroup( nVmGrpId, EgtGetGlobFrame( vMillId))
|
||||
EgtRelocate( vMillId, nLayId)
|
||||
local vtMove = Vector3d( 0, -450, 0)
|
||||
if EMT.FALL then vtMove = Vector3d( -500, 0, -750) end
|
||||
local vtMove = Vector3d( 0, EgtIf( RIGHT_LOAD, 450, -450), 0)
|
||||
if EMT.FALL then vtMove = Vector3d( -500, 0, EgtIf( RIGHT_LOAD, 750, -750)) end
|
||||
EgtMove( nLayId, vtMove, GDB_RT.GLOB)
|
||||
EgtSetLevel( vMillId, GDB_LV.USER)
|
||||
-- aggiungo gli spigoli
|
||||
@@ -1,42 +1,11 @@
|
||||
-- Special Operations macchina Essetre-FAST by EgalTech s.r.l. 2023/12/14
|
||||
-- 2020/05/15 DS ver.2.2e1 Correzione a SpecAdjustCarrC3 per bFixedDelta.
|
||||
-- 2020/05/16 DS ver 2.2e2 Aggiunta gestione rotazione 90deg.
|
||||
-- 2020/05/21 DS ver 2.2e3 Aggiunto a SpecAdjustCarrC3 parametro bFixedPos (per lavorazioni Split e Cut precedute da Pre).
|
||||
-- 2020/05/26 DS ver 2.2e4 Nuova gestione dei pezzi a caduta.
|
||||
-- 2020/05/27 DS ver 2.2e5 Corretto blocco pinza V su presplit e precut.
|
||||
-- 2020/05/28 DS ver 2.2e7 Correzione per mancanza EMC.HOVM allo scarico.
|
||||
-- 2020/06/18 DS ver 2.2f3 Aumento ingombro fresatura opposta a cerrello per evitare extracorsa.
|
||||
-- 2020/07/02 DS ver 2.2g1 Correzione quota di presa al carico per casi senza tagli in testa e lavorazioni solo in coda.
|
||||
-- 2020/09/03 DS ver 2.2i1 Correzione in Load dopo rotazione deve tener conto dell'ingombro delle lavorazioni in coda.
|
||||
-- 2020/09/09 DS ver 2.2i2 Nel calcolo pinzaggi ora si tiene conto anche della larghezza della sezione della barra.
|
||||
-- 2020/09/25 DS ver 2.2i5 Migliorato calcolo ingombro lama con testa opposta al carrello.
|
||||
-- 2020/09/29 DS ver 2.2i6 Migliorato calcolo ingombro fresa su tagli longitudinali di fianco.
|
||||
-- 2020/10/13 DS ver 2.2j2 Aggiunta gestione sezione molto piccola (Very Small) per presa minima. Corretta gestione ingombri con fori a 30 deg.
|
||||
-- 2020/12/09 DS ver 2.2l1 Migliorato calcolo ingombro con lama verticale inclinata di +/-45deg rispetto a X.
|
||||
-- 2021/01/24 DS ver 2.3a2 Migliorato controllo assi rotanti definiti con sega a catena per SpecialCalcMachiningEncumbrance.
|
||||
-- 2021/02/02 DS ver 2.3b1 Migliorato calcolo ingombro tagli di lama quasi verticale angolata.
|
||||
-- 2021/02/17 DS ver 2.3b2 Corretta B3Ys-xs1 per accentrare V e T bisogna sottrarre dExtraY che è negativo e non sommare.
|
||||
-- 2021/04/02 DS ver 2.3d1 Corretto calcolo ingombro con lama per non andare in extracorsa con le pinze quando lavorazione vicino a Y0.
|
||||
-- 2021/06/01 DS ver 2.3f1 Aggiunta segnalazione pezzo scaricato a caduta.
|
||||
-- 2021/06/25 DS ver 2.3f5 Corretta segnalazione tipo di scarico del pezzo.
|
||||
-- 2021/07/20 DS ver 2.3g4 Aggiunta gestione rinvio per lavorazioni da sotto.
|
||||
-- 2021/08/02 DS ver 2.3h1 Per spessori piccoli ridotta tolleranza di presa (limiti _V).
|
||||
-- 2021/10/12 DS ver 2.3j1 Lame standard (Lt > L) gestite come lame piatte (MCH_TY.SAW_STD e MCH_TY.SAW_FLAT).
|
||||
-- 2021/10/12 DS ver 2.4c3 Corretti errori di scrittura nomi variabili alle linee 2714 (YDeltaTol) e 2717 (dCorsaYTr e dCorsaVr).
|
||||
-- 2022/04/07 DS ver 2.4d1 Aumentato ingombro lavorazione per evitare extracorsa interno Y e V (da 260 a 280).
|
||||
-- 2023/01/10 SM ver 2.5a1 Affinato calcolo ingombro lavorazione con fresa quasi verticale.
|
||||
-- 2023/06/14 DS ver 2.5f1 Corretto calcolo dDistBack allo Split.
|
||||
-- 2023/08/11 DS ver 2.5h1 Modifica calcolo ingombro per frese dirette circa come Y+/-.
|
||||
-- Special Operations macchina Essetre-FAST by EgalWare s.r.l. 2024/02/23
|
||||
|
||||
-- Intestazioni
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
-- Carico i dati globali
|
||||
local sBaseDir = EgtGetSourceDir()
|
||||
local BD = dofile( sBaseDir .. 'Beam\\BeamData.lua')
|
||||
|
||||
EgtOutLog ( '** Essetre-FAST '..PP_VER..' **', 1)
|
||||
-- carico librerie
|
||||
local BD = require( 'BeamData')
|
||||
|
||||
---------------------- OnSpecialMoveZup -----------------------------
|
||||
---------------------------------------------------------------------
|
||||
@@ -49,8 +18,7 @@ function OnSpecialMoveZup()
|
||||
|
||||
-- se sega a catena
|
||||
if EMC.HEAD == 'H3' then
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
@@ -995,7 +963,8 @@ function SpecCalcEncumbrance( vtTool, vtArm, ptMin, ptMax, bSaw, bChain, dTLen,
|
||||
dHeadBack = EgtIf( EMC.CNT == 1, 180, 130)
|
||||
end
|
||||
-- per interferenza con triangolo di rinforzo sulla pinza Y
|
||||
if vtTool:getZ() < 0.25 and vtTool:getX() < 0.10 and vtTool:getY() > 0 and vtArm:getX() < -0.707 then
|
||||
if ( vtTool:getZ() < 0.25 and vtTool:getX() < 0.10 and vtTool:getY() > 0 and vtArm:getX() < -0.707 and not BD.RIGHT_LOAD) or
|
||||
( vtTool:getZ() < 0.25 and vtTool:getX() < 0.10 and vtTool:getY() < 0 and vtArm:getX() < -0.707 and BD.RIGHT_LOAD)then
|
||||
dHeadBack = dHeadBack + 90
|
||||
end
|
||||
end
|
||||
@@ -1087,7 +1056,8 @@ function SpecCalcEncumbrance( vtTool, vtArm, ptMin, ptMax, bSaw, bChain, dTLen,
|
||||
dHeadFront = 130
|
||||
end
|
||||
-- per interferenza con triangolo di rinforzo sulla pinza V
|
||||
if vtTool:getZ() < 0.25 and vtTool:getX() > -0.10 and vtTool:getY() > 0 and vtArm:getX() > 0.707 then
|
||||
if ( vtTool:getZ() < 0.25 and vtTool:getX() > -0.10 and vtTool:getY() > 0 and vtArm:getX() > 0.707 and not BD.RIGHT_LOAD) or
|
||||
( vtTool:getZ() < 0.25 and vtTool:getX() > -0.10 and vtTool:getY() < 0 and vtArm:getX() > 0.707 and BD.RIGHT_LOAD) then
|
||||
dHeadFront = dHeadFront + 90
|
||||
end
|
||||
end
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
|
||||
REM Compilazione degli script macchina Egaltech 2024.02.22
|
||||
REM Per togliere info di debug aggiungere flag -s prima del nome del file di input
|
||||
|
||||
REM Compilazione 32 bit e copia file da non compilare
|
||||
|
||||
@echo off
|
||||
|
||||
REM chiedo all'utente la versione da assegnare alla macchina da compilare
|
||||
set /p "machineVersion=Inserisci versione: "
|
||||
|
||||
REM variabili per costruire i percorsi delle cartelle
|
||||
set "machineName=Essetre-FAST"
|
||||
set "deployFolder=C:\MachinesDeploy"
|
||||
set "machinePath=%deployFolder%\%machineName%\"
|
||||
set "fullPathSource=%deployFolder%\%machineName%\%machineVersion%\%machineName%"
|
||||
set "fullPathZip=%deployFolder%\%machineName%\%machineVersion%"
|
||||
|
||||
REM elimino eventuale cartella esistente
|
||||
rmdir /s /Q %fullPathZip%
|
||||
|
||||
REM copio i sorgenti nel percorso di destinazione
|
||||
ROBOCOPY . %fullPathSource%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt"
|
||||
REM copio i sorgenti nel percorso temporaneo per i compilati
|
||||
ROBOCOPY . %fullPathSource%\bin\%machineName%\ /E /XF "Compile.bat" /XF ".gitignore" /XD ".git" /XF "UpdateLog.txt"
|
||||
|
||||
REM copio i file compilati nel percorso temporaneo per i compilati
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-FAST.mlpe Common-FAST.mlpe
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-FAST.mlse Common-FAST.mlse
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-FAST.NUM.mlpe Common-FAST.NUM.mlpe
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-FAST.NUM_PLUS.mlpe Common-FAST.NUM_PLUS.mlpe
|
||||
\EgtProg\Dll32\luac54 -o %fullPathSource%\bin\%machineName%\Common-FAST.TPA.mlpe Common-FAST.TPA.mlpe
|
||||
|
||||
REM comprimo i file compilati in uno zip pronto per essere distribuito
|
||||
tar.exe acvf %fullPathZip%\%machineName%.zip -C %fullPathSource%\bin\ %machineName%\*.*
|
||||
|
||||
REM elimino il percorso temporaneo
|
||||
rmdir /s /Q %fullPathSource%\bin\
|
||||
+33
-13
@@ -1,4 +1,4 @@
|
||||
-- Descrizione macchina Essetre-FAST by EgalTech s.r.l. 2023/11/04
|
||||
-- Descrizione macchina Essetre-FAST by EgalTech s.r.l. 2024/01/19
|
||||
-- 2021/12/29 DS ver 2.3l4 Per NUM non va considerato MillOffs negli offset in Z.
|
||||
-- 2022/01/27 DS ver 2.4a2 Modifiche per tagli testa/coda su pezzi alti.
|
||||
-- 2022/02/10 DS ver 2.4a3 Ridotto di 10mm pinzaggio con pezzi alti ma sottili.
|
||||
@@ -31,13 +31,37 @@
|
||||
-- 2023/12/13 AV ver.2.5l1 Piccola correzione per errore digitazione variabile in calcolo riposizionamento carrelli (SpecAdjustCarrB3)
|
||||
-- Corretto segno di una variabile in calcolo posizionamento carrelli
|
||||
-- 2023/12/15 AV ver.2.5l2 Migliorato calcolo stima tempi di lavorazione
|
||||
-- 2024/01/19 DS ver 2.6a1 Piccola modifica per direzione preferenziale rinvio da sotto (per evitare di accedere dal lato della barra).
|
||||
-- 2024/01/29 DS ver 2.6a2 In portautensili per mortasa e sega a catena aggiunti ingombri dello stesso.
|
||||
-- 2024/02/09 LM ver 2.6b1 In BeamData aggiunta funzione GetBlockedAxis che sostituisce la GetChainSawBlockedAxis.
|
||||
-- 2024/02/23 AV ver 2.6c1 Prima versione con post-processore common
|
||||
-- Allineamento con common ver. 2.6c1
|
||||
-- 2024/02/23 AV ver 2.6c2 Rimossa chiamata funzione EgtGetSourceDir
|
||||
-- Allineamento con common ver. 2.6c2
|
||||
|
||||
require( 'EmtGenerator')
|
||||
EgtEnableDebug( false)
|
||||
|
||||
PP_VER = '2.5l2'
|
||||
PP_VER = '2.6c2'
|
||||
MIN_MACH_VER = '2.5k1'
|
||||
|
||||
|
||||
-- Carico i dati globali
|
||||
local sMachDir = EgtGetCurrMachineDir()
|
||||
-- Elimino direttori altre macchine e imposto direttorio macchina corrente per ricerca librerie
|
||||
EgtRemoveBaseMachineDirFromPackagePath()
|
||||
EgtAddToPackagePath( sMachDir .. '\\Beam\\?.lua')
|
||||
EgtAddToPackagePath( sMachDir .. '\\?.lua')
|
||||
local BD = require( 'BeamData')
|
||||
local INFO_STD_PP = require( 'Version')
|
||||
|
||||
-- prendo la versione kernel minima necessaria più nuova tra macchina e script comuni
|
||||
if INFO_STD_PP.MIN_MACH_VER_PP_COMMON > MIN_MACH_VER then
|
||||
MIN_MACH_VER = INFO_STD_PP.MIN_MACH_VER_PP_COMMON
|
||||
end
|
||||
|
||||
EgtOutLog ( '**PP_VER ver.'..PP_VER..'**'..INFO_STD_PP.NAME..' ver.'..INFO_STD_PP.VERSION, 1)
|
||||
|
||||
-- Parametri macchina
|
||||
NumericalControl = 'TPA' -- NUM o TPA o NUM_PLUS
|
||||
MinX = 0
|
||||
@@ -81,18 +105,14 @@ BeamHeightForFixRot = 9999 -- per abilitare assegnare 500
|
||||
CoeffVM = 0.5
|
||||
NewTopC = true
|
||||
|
||||
-- Aggiornamento con dati da BeamData.lua
|
||||
local sBeamData = EgtGetSourceDir().."\\Beam\\BeamData.lua"
|
||||
if EgtExistsFile( sBeamData) then
|
||||
local BD = dofile( sBeamData)
|
||||
if BD then
|
||||
BeamHeightForFixRot = BD.MAX_HEIGHT_ROT_B_ABOVE or BeamHeightForFixRot
|
||||
end
|
||||
-- leggo e aggiorno con parametri da BeamData
|
||||
if BD then
|
||||
BeamHeightForFixRot = BD.MAX_HEIGHT_ROT_B_ABOVE or BeamHeightForFixRot
|
||||
end
|
||||
|
||||
-- Aggiornamento con dati da TechnoEssetre7
|
||||
local sTs3Data = EgtGetStringFromIni( 'Beam', 'DATA_DIR', "C:\\TechnoEssetre7\\EgtData", EgtGetIniFile()).."\\Essetre-Fast.data"
|
||||
local sData = EgtGetSourceDir().."\\Beam\\Ts3Data.lua"
|
||||
local sData = sMachDir .. "\\Beam\\Ts3Data.lua"
|
||||
if EgtExistsFile( sTs3Data) then
|
||||
EgtCopyFile( sTs3Data, sData)
|
||||
local sTs3DataOld = sTs3Data..'.old'
|
||||
@@ -155,8 +175,8 @@ EmtGeneral {
|
||||
ExitMaxAdjust = 30,
|
||||
ExitMaxRotAdj = 0.5,
|
||||
AngDeltaMinForHome = 165,
|
||||
Special = 'Essetre-FAST.mlse',
|
||||
Processor = 'Essetre-FAST.mlpe'}
|
||||
Special = 'Common-FAST.mlse',
|
||||
Processor = 'Common-FAST.mlpe'}
|
||||
local BaseId = EmtBase {
|
||||
Name = 'Base',
|
||||
Geo='BASE/GEO',
|
||||
@@ -292,7 +312,7 @@ if SecondSupport >= 3 then
|
||||
EgtSetInfo( H5Id, 'AGB_DMAX', 240)
|
||||
EgtSetInfo( H5Id, 'AGB_ENCH', 44)
|
||||
EgtSetInfo( H5Id, 'AGB_ENCV', 380)
|
||||
EgtSetInfo( H5Id, 'AGB_MDIR', -Y_AX())
|
||||
EgtSetInfo( H5Id, 'AGB_MDIR', X_AX())
|
||||
EgtSetInfo( H5Id, 'ZMAXONROT', '1,15')
|
||||
end
|
||||
-- Morse
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
==== Common_FAST Update Log ====
|
||||
|
||||
Versione 2.6c1 (23/02/2024)
|
||||
- (ALL) Prima versione post-proc comune FAST e FASTrl
|
||||
- (ALL) "BeamData" caricato come libreria con 'require' anziché come file con 'dofile'
|
||||
- (SIM) Aggiunta funzioni "OnSimulInit" e "OnSimulExit" per orientare vista corretta in caso di macchina con carico destro. N.B.= serve CAM5 2.6b4
|
||||
- (ALL) In BeamData aggiunto flag per direzione carico RIGHT_LOAD
|
||||
- (ALL) Aggiornamento 'Compile.bat' con nuovi nomi file
|
||||
|
||||
Versione 2.6c2 (23/02/2024)
|
||||
- (ALL) Rimossa chiamata funzione EgtGetSourceDir
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
-- Version.lua by EgalWare s.r.l. 2024/02/23
|
||||
-- Gestione della versione dei file comuni post-processori macchine FAST e FASTrl di Essetre
|
||||
|
||||
local InfoCommon_STD_PP = {
|
||||
NAME = 'Common-FAST', -- nome script PP standard
|
||||
VERSION = '2.6c1', -- versione script
|
||||
MIN_MACH_VER_PP_COMMON = '2.5k1' -- versione minima kernel
|
||||
}
|
||||
|
||||
return InfoCommon_STD_PP
|
||||
Reference in New Issue
Block a user