DataBeam :

- si saltano le feature senza geometria
- le marcature doppie si dividono in due lavorazioni.
This commit is contained in:
Dario Sassi
2019-11-05 18:33:10 +00:00
parent a7cce952e2
commit 1441b8ad1f
2 changed files with 69 additions and 36 deletions
+36 -32
View File
@@ -1,4 +1,4 @@
-- BeamExec.lua by Egaltech s.r.l. 2019/10/22
-- BeamExec.lua by Egaltech s.r.l. 2019/11/04
-- Libreria esecuzione lavorazioni per Travi
-- 2019/07/11 Aggiunta gestione stato rotazione di feature per TS3.
-- 2019/09/04 Corretto controllo feature di testa e coda con sovramateriale di testa elevato.
@@ -291,44 +291,48 @@ local function CollectFeatures( PartId, b3Raw, dCurrOvmH)
Proc.Grp = nGrp
Proc.Prc = nPrc
Proc.Flg = 1
Proc.Box = EgtGetBBoxGlob( ProcId, GDB_BB.STANDARD)
Proc.Fct = EgtSurfTmFacetCount( ProcId) or 0
Proc.Head = IsHeadFeature( Proc, b3Raw, dCurrOvmH)
Proc.Tail = IsTailFeature( Proc, b3Raw, dCurrOvmH)
Proc.Diam = 0
Proc.Fcs = 0
Proc.Fce = 0
Proc.CutId = nCutId
Proc.TaskId = nTaskId
table.insert( vProc, Proc)
-- se foro
if Drill.Identify( Proc) then
-- assegno diametro
Proc.Diam = EgtGetInfo( Proc.Id, 'P12', 'd') or 0
-- assegno faccia di entrata e uscita (dati tabelle sempre per riferimento)
Proc.Fcs = EgtGetInfo( Proc.Id, 'FCS', 'i') or 0
Proc.Fce = EgtGetInfo( Proc.Id, 'FCE', 'i') or 0
-- verifico se necessaria seconda lavorazione da parte opposta per foro più lungo della punta
if Drill.Split( Proc, b3Raw) then
-- aggiorno flag prima parte foro (dati tabelle sempre per riferimento)
Proc.Flg = 2
-- definisco dati seconda parte
local Proc2 = {}
Proc2.Id = ProcId
Proc2.Grp = nGrp
Proc2.Prc = nPrc
Proc2.Flg = -2
Proc2.Box = BBox3d( Proc.Box)
Proc2.Fct = Proc.Fct
Proc2.Diam = Proc.Diam
Proc2.Head = Proc.Head
Proc2.Tail = Drill.IsTailFeature( Proc2, b3Raw, dCurrOvmH)
Proc2.Fcs = Proc.Fce
Proc2.Fce = Proc.Fcs
Proc2.CutId = Proc.CutId
Proc2.TaskId = Proc.TaskId
table.insert( vProc, Proc2)
Proc.Box = EgtGetBBoxGlob( ProcId, GDB_BB.STANDARD)
if Proc.Box and not Proc.Box:isEmpty() then
Proc.Head = Proc.Box and IsHeadFeature( Proc, b3Raw, dCurrOvmH)
Proc.Tail = Proc.Box and IsTailFeature( Proc, b3Raw, dCurrOvmH)
table.insert( vProc, Proc)
-- se foro
if Drill.Identify( Proc) then
-- assegno diametro
Proc.Diam = EgtGetInfo( Proc.Id, 'P12', 'd') or 0
-- assegno faccia di entrata e uscita (dati tabelle sempre per riferimento)
Proc.Fcs = EgtGetInfo( Proc.Id, 'FCS', 'i') or 0
Proc.Fce = EgtGetInfo( Proc.Id, 'FCE', 'i') or 0
-- verifico se necessaria seconda lavorazione da parte opposta per foro più lungo della punta
if Drill.Split( Proc, b3Raw) then
-- aggiorno flag prima parte foro (dati tabelle sempre per riferimento)
Proc.Flg = 2
-- definisco dati seconda parte
local Proc2 = {}
Proc2.Id = ProcId
Proc2.Grp = nGrp
Proc2.Prc = nPrc
Proc2.Flg = -2
Proc2.Box = BBox3d( Proc.Box)
Proc2.Fct = Proc.Fct
Proc2.Diam = Proc.Diam
Proc2.Head = Proc.Head
Proc2.Tail = Drill.IsTailFeature( Proc2, b3Raw, dCurrOvmH)
Proc2.Fcs = Proc.Fce
Proc2.Fce = Proc.Fcs
Proc2.CutId = Proc.CutId
Proc2.TaskId = Proc.TaskId
table.insert( vProc, Proc2)
end
end
else
EgtOutLog( ' Feature ' .. tostring( Proc.Id) .. ' is empty (no geometry)')
end
end
end