DataBeam :

- modifiche a BatchProcess per gestire verifica collisioni in cieco
- copia TASKID dalle geometrie feature alle geometrie di lavorazione
- imposto non controllare separazione pezzi in svuotature di LapJoint
- migliorie varie.
This commit is contained in:
Dario Sassi
2019-07-22 08:04:47 +00:00
parent 8f475ad061
commit 35782ae142
10 changed files with 75 additions and 17 deletions
+34 -6
View File
@@ -1,17 +1,16 @@
-- BatchProcess.lua by Egaltech s.r.l. 2019/07/12
-- BatchProcess.lua by Egaltech s.r.l. 2019/07/19
-- Gestione calcolo batch disposizione e lavorazioni per Travi
-- 2019/07/11 Aggiunta gestione stato rotazione di feature per TS3.
-- 2019/07/16 Aggiunta gestione modalità oltre 10 per impostazione macchina e uscita.
-- 2019/07/19 Aggiunta gestione collisioni.
-- Intestazioni
require( 'EgtBase')
_ENV = EgtProtectGlobal()
EgtEnableDebug( false)
-- Per test
--BEAM = {}
--BEAM.FILE = 'c:\\TechnoEssetre7\\EgtBtl\\Part_15_116.btl'
--BEAM.MACHINE = 'FAST'
--BEAM.FLAG = 3
-- Flag abilitazione controllo collisione
local bVerifyCollision = true
-- Log dati di generazione
local sLog = 'BatchProcess : ' .. BEAM.FILE .. ', ' .. BEAM.MACHINE .. ', ' .. tostring( BEAM.FLAG)
@@ -84,6 +83,12 @@ end
EgtRemoveBaseMachineDirFromPackagePath()
EgtAddToPackagePath( sMachDir .. '\\Beam\\?.lua')
-- Se modalità visualizzazione finestre per DB esco
if BEAM.FLAG > 10 then
BEAM.ERR = 0
return
end
-- Segnalazione avvio
EgtOutLog( '*** Beam BatchProcess Start ***', 1)
@@ -293,6 +298,29 @@ local Ttot = EgtGetInfo( EgtGetCurrMachGroup(), 'Ttot')
local sTime = 'Total Time = ' .. EgtNumToString( Ttot, 1)
EgtOutLog( sTime)
-- Se verifica, eseguo simulazione in cieco
if BEAM.FLAG == 3 and bVerifyCollision then
local bSimOk, nErr, sErr = EgtSimulate()
if not bSimOk then
BEAM.ERR = 22
BEAM.MSG = 'Head-Part Collision'
BEAM.ROT = 0
BEAM.CUTID = 0
BEAM.TASKID = 0
local vItem = EgtSplitString( sErr, ';') or {}
for i = 1, #vItem do
vItem[i] = EgtTrim( vItem[i] or '')
if string.find( vItem[i], 'CUTID', 1, true) then
BEAM.CUTID = EgtGetVal( vItem[i], 'CUTID', 'i') or 0
elseif string.find( vItem[i], 'TASKID', 1, true) then
BEAM.TASKID = EgtGetVal( vItem[i], 'TASKID', 'i') or 0
end
end
WriteErrToLogFile( BEAM.ERR, BEAM.MSG, BEAM.ROT, BEAM.CUTID, BEAM.TASKID)
return
end
end
-- Imposto la vista ISO 3d, se richiesto
if BEAM.FLAG == 1 or BEAM.FLAG == 2 then
EgtSetView( SCE_VD.ISO_SW, false)