DataBeam :

- aggiunta gestione tagli in FrontMortise e FrontDtMortise
- completata gestione tagli lunghi per non rovinare i pezzi successivi
- aggiunte a tutte le chiamate di Cut.Make e DoubleCut.Make il passaggio del sovramateriale di testa.
This commit is contained in:
Dario Sassi
2020-10-14 09:44:57 +00:00
parent 8d59402134
commit 0a5c8a146b
19 changed files with 241 additions and 66 deletions
+14 -14
View File
@@ -1,4 +1,4 @@
-- ProcessLapJoint.lua by Egaltech s.r.l. 2020/09/19
-- ProcessLapJoint.lua by Egaltech s.r.l. 2020/10/14
-- Gestione calcolo mezzo-legno per Travi
-- 2019/10/08 Agg. gestione OpenPocket.
@@ -854,7 +854,7 @@ local function MakeTwoFacesByMill( Proc, nPhase, nRawId, nPartId)
end
---------------------------------------------------------------------
local function MakePreCuts( Proc, nPhase, nRawId, nPartId, b3Raw, nChamfer)
local function MakePreCuts( Proc, nPhase, nRawId, nPartId, dOvmHead, b3Raw, nChamfer)
-- se interessa l'intera sezione della trave, necessaria sgrossatura
if nChamfer < 2 and Proc.Box:getDimY() > 0.9 * b3Raw:getDimY() and Proc.Box:getDimZ() > 0.9 * b3Raw:getDimZ() then
-- recupero gruppo per geometria addizionale
@@ -873,9 +873,9 @@ local function MakePreCuts( Proc, nPhase, nRawId, nPartId, b3Raw, nChamfer)
Head = Proc.Head, Tail = Proc.Tail, CutId = Proc.CutId, TaskId = Proc.TaskId}
local nCutFacet = EgtSurfTmFacetCount( AddId)
if nCutFacet == 1 then
return Cut.Make( CutProc, nPhase, nRawId, nPartId, 0)
return Cut.Make( CutProc, nPhase, nRawId, nPartId, dOvmHead)
elseif nCutFacet == 2 then
return DoubleCut.Make( CutProc, nPhase, nRawId, nPartId, 0)
return DoubleCut.Make( CutProc, nPhase, nRawId, nPartId, dOvmHead)
end
end
end
@@ -2879,7 +2879,7 @@ local function MakeByPockets( Proc, nPhase, nRawId, nPartId, nChamfer, dDepthCha
end
---------------------------------------------------------------------
local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, bSinglePart)
local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePart)
local sWarn
-- recupero l'ingombro del grezzo di appartenenza
local b3Raw = EgtGetRawPartBBox( nRawId)
@@ -3091,7 +3091,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, bSinglePart)
rfFac2, dH2, dV2 = EgtSurfTmFacetMinAreaRectangle( Proc.Id, nFacInd2, GDB_ID.ROOT)
-- eventuali tagli preliminari
do
local bOk, sErr = MakePreCuts( Proc, nPhase, nRawId, nPartId, b3Raw, nChamfer)
local bOk, sErr = MakePreCuts( Proc, nPhase, nRawId, nPartId, dOvmHead, b3Raw, nChamfer)
if not bOk then return false, sErr end
end
-- Recupero la lavorazione di fresa
@@ -3232,7 +3232,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, bSinglePart)
end
-- eventuali tagli preliminari
do
local bOk, sErr = MakePreCuts( Proc, nPhase, nRawId, nPartId, b3Raw, nChamfer)
local bOk, sErr = MakePreCuts( Proc, nPhase, nRawId, nPartId, dOvmHead, b3Raw, nChamfer)
if not bOk then return false, sErr end
end
-- imposto altezza aggiuntiva di elevazione
@@ -3577,7 +3577,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, bSinglePart)
end
---------------------------------------------------------------------
local function MakeLongMoreFaces( Proc, nPhase, nRawId, nPartId)
local function MakeLongMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead)
-- recupero gruppo per geometria addizionale
local nAddGrpId = BL.GetAddGroup( nPartId)
if not nAddGrpId then
@@ -3612,7 +3612,7 @@ local function MakeLongMoreFaces( Proc, nPhase, nRawId, nPartId)
local b3Box = EgtGetBBoxGlob( vAddId[i], GDB_BB.STANDARD)
local nFct = EgtSurfTmFacetCount( vAddId[i])
local AddProc = { Id = vAddId[i], Grp = Proc.Grp, Prc = Proc.Prc, Box = b3Box, Fct = nFct, Flg = Proc.Flg}
local bOk, sMyWarn = MakeMoreFaces( AddProc, nPhase, nRawId, nPartId, false)
local bOk, sMyWarn = MakeMoreFaces( AddProc, nPhase, nRawId, nPartId, dOvmHead, false)
if not sWarn then sWarn = sMyWarn end
if not bOk then return bOk, sWarn end
end
@@ -3655,12 +3655,12 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
if bForcedBlade then
return Fbs.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, 'HeadSide')
else
return MakeLongMoreFaces( Proc, nPhase, nRawId, nPartId)
return MakeLongMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead)
end
end
-- tre o più facce
else
return MakeLongMoreFaces( Proc, nPhase, nRawId, nPartId)
return MakeLongMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead)
end
-- altrimenti lavorazione unica
@@ -3672,7 +3672,7 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
return MakeOneFaceByMill( Proc, nPhase, nRawId, nPartId)
-- altrimenti, con lama
else
return Cut.Make( Proc, nPhase, nRawId, nPartId, 0)
return Cut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
end
-- due facce
elseif Proc.Fct == 2 then
@@ -3684,7 +3684,7 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
if ( Proc.Box:getDimX() < MAX_MILL_LIN and ( Proc.Box:getDimZ() < MAX_MILL_LIN or Proc.Box:getDimY() < MAX_MILL_LIN)) then
return MakeTwoFacesByMill( Proc, nPhase, nRawId, nPartId)
else
return MakeMoreFaces( Proc, nPhase, nRawId, nPartId, true)
return MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, true)
end
-- altrimenti, con lama
else
@@ -3717,7 +3717,7 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
end
-- tre o più facce
else
return MakeMoreFaces( Proc, nPhase, nRawId, nPartId, true)
return MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, true)
end
end
end