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 @@
|
||||
-- ProcessDoubleCut.lua by Egaltech s.r.l. 2021/12/25
|
||||
-- ProcessDoubleCut.lua by Egaltech s.r.l. 2021/22/02
|
||||
-- Gestione calcolo doppi tagli di lama per Travi
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
@@ -266,7 +266,7 @@ function ProcessDoubleCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
|
||||
end
|
||||
-- altrimenti, tagli diretti delle facce
|
||||
else
|
||||
local bOk, sErr = Fbs.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, EgtIf( bHead, 'HeadSide', 'TailSide'))
|
||||
local bOk, sErr = Fbs.MakeTwo( Proc, nPhase, nRawId, nPartId, dOvmHead, EgtIf( bHead, 'HeadSide', 'TailSide'), false)
|
||||
if not bOk then
|
||||
return bOk, sErr
|
||||
end
|
||||
@@ -275,14 +275,23 @@ function ProcessDoubleCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
|
||||
-- eventuale segnalazione ingombro di testa o coda (se non convesso, altrimenti già fatto nei tagli singoli)
|
||||
if not bConvex then
|
||||
if Proc.Head then
|
||||
local dOffs = b3Raw:getMax():getX() - dOvmHead - Proc.Box:getMin():getX()
|
||||
if vtNm:getZ() > 0.5 then
|
||||
dOffs = 0.4 * dOffs
|
||||
elseif abs( vtNm:getZ()) > 0.35 then
|
||||
dOffs = 0.75 * dOffs
|
||||
-- intersezioni con linee a metà altezza appena dentro dal davanti e dal dietro
|
||||
local ptRef = b3Raw:getCenter() - 0.5 * b3Raw:getDimX() * X_AX()
|
||||
local ptL1 = ptRef - ( 0.5 * b3Raw:getDimY() - 0.1) * Y_AX()
|
||||
local ptL2 = ptRef + ( 0.5 * b3Raw:getDimY() - 0.1) * Y_AX()
|
||||
local bInt1, IntTy1, IntPar1 = EgtLineSurfTmInters( ptL1, X_AX(), Proc.Id, GDB_ID.ROOT)
|
||||
local bInt2, IntTy2, IntPar2 = EgtLineSurfTmInters( ptL2, X_AX(), Proc.Id, GDB_ID.ROOT)
|
||||
local dMinPar = b3Raw:getDimX()
|
||||
if IntPar1 and #IntPar1 > 0 then
|
||||
dMinPar = min( dMinPar, IntPar1[1])
|
||||
end
|
||||
if IntPar2 and #IntPar2 > 0 then
|
||||
dMinPar = min( dMinPar, IntPar2[1])
|
||||
end
|
||||
local dOffs = b3Raw:getDimX() - dMinPar
|
||||
BL.UpdateHCING( nRawId, dOffs)
|
||||
elseif Proc.Tail then
|
||||
-- accetto approssimazione più grezza
|
||||
local dOffs = Proc.Box:getMax():getX() - b3Solid:getMin():getX()
|
||||
if vtNm:getZ() > 0.5 then
|
||||
dOffs = 0.4 * dOffs
|
||||
|
||||
Reference in New Issue
Block a user