DataBeam :
- in LapJoint e assimilati correzioni per riconoscimento feature di coda - corretti tagli di lama lunghi da testa a coda su pezzi piccoli (Egger) - corretto orientamento tagli ortogonali in DiceCut di una sola faccia - corretto calcolo ingombro taglio doppio concavo in testa.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
-- ProcessCut.lua by Egaltech s.r.l. 2021/01/20
|
||||
-- ProcessCut.lua by Egaltech s.r.l. 2021/02/02
|
||||
-- Gestione calcolo singoli tagli di lama per Travi
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
@@ -188,13 +188,13 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom,
|
||||
EgtOutLog( sErr)
|
||||
return false, sErr
|
||||
end
|
||||
local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw)
|
||||
-- dati geometrici del taglio
|
||||
local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT)
|
||||
-- limiti di taglio (se molto di lato e inclinati sono permessi fino a -45deg)
|
||||
local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw)
|
||||
if not BD.C_SIMM and abs( vtN:getX()) < 0.5 then dNzLimDwnUp = -0.707 end
|
||||
local bDownCut = ( vtN:getZ() <= dNzLimDwnUp)
|
||||
if bFromBottom == nil then bFromBottom = ( b3Solid:getDimX() < BD.LEN_SHORT_PART and vtN:getZ() > 0.25) end
|
||||
local bFillAreaPiece
|
||||
local bFillTail
|
||||
-- se taglio di testa
|
||||
if Proc.Head then
|
||||
-- se coincide con il taglio di separazione precedente, non va fatto
|
||||
@@ -213,6 +213,8 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom,
|
||||
return true
|
||||
end
|
||||
-- se pezzo ancora attaccato alla trave, per non rovinare quello successivo
|
||||
local bFillAreaPiece
|
||||
local bFillTail
|
||||
if not BL.IsSplittedPartPhase( nPhase) then
|
||||
-- se non da sotto
|
||||
if not bDownCut then
|
||||
@@ -294,7 +296,8 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom,
|
||||
local dMaxVertDepth = dMaxDepth - ( BD.DECR_VERT_CUT or 0)
|
||||
-- determino la direzione di taglio preferenziale
|
||||
local _, dCutH, dCutV = BL.GetFaceHvRefDim( Proc.Id, 0)
|
||||
local bHorizCut = (( dCutV < dMaxVertDepth - BD.CUT_EXTRA and dCutH > dMaxDepth - BD.CUT_EXTRA) and not bDownCut)
|
||||
local bHorizCut = ( dCutV < dMaxVertDepth - BD.CUT_EXTRA and not bDownCut)
|
||||
--local bHorizCut = (( dCutV < dMaxVertDepth - BD.CUT_EXTRA and dCutH > dMaxDepth - BD.CUT_EXTRA) and not bDownCut)
|
||||
-- verifico se necessari tagli supplementari
|
||||
EgtOutLog( string.format( 'MaxDepth=%.1f MaxVertDepth=%.1f CutH=%.1f CutV=%.1f', dMaxDepth, dMaxVertDepth, dCutH, dCutV), 3)
|
||||
local vCuts = {}
|
||||
@@ -432,8 +435,6 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom,
|
||||
end
|
||||
-- altrimenti tagli diretti della faccia
|
||||
else
|
||||
-- tagli molto di lato e inclinati sono permessi fino a -45deg
|
||||
if abs( vtN:getX()) < 0.5 then dNzLimDwnUp = -0.707 end
|
||||
-- lavoro la faccia
|
||||
local vtOrthoO
|
||||
if bFromBottom and dCutV < dMaxVertDepth - BD.CUT_EXTRA and vtN:getZ() > 0 then
|
||||
|
||||
Reference in New Issue
Block a user