DataBeam :
- correzione lavorazione LapJoint con due facce sotto con macchina PF1250.
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
-- ProcessLapJoint.lua by Egaltech s.r.l. 2021/03/01
|
||||
-- ProcessLapJoint.lua by Egaltech s.r.l. 2021/03/04
|
||||
-- Gestione calcolo mezzo-legno per Travi
|
||||
-- 2019/10/08 Agg. gestione OpenPocket.
|
||||
-- 2021/01/24 Con sega a catena ora sempre impostato asse A.
|
||||
-- 2021/02/03 Corretto riconoscimento feature di coda.
|
||||
-- 2021/02/04 Razionalizzata gestione forzatura lama. Corretta gestione diametro minimo utensile per svuotatura.
|
||||
-- 2021/03/04 Due facce con testa da sotto.
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
local ProcessLapJoint = {}
|
||||
@@ -528,6 +529,7 @@ function ProcessLapJoint.Classify( Proc, b3Raw)
|
||||
local bDown = ( vtN[1]:getZ() < BD.NZ_MINB and vtN[2]:getZ() < BD.NZ_MINB) or
|
||||
( vtN[1]:getZ() < BD.NZ_MINA and ( vtN[2]:getZ() < -0.1 or not bSmall)) or
|
||||
( vtN[2]:getZ() < BD.NZ_MINA and ( vtN[1]:getZ() < -0.1 or not bSmall))
|
||||
bDown = ( bDown and not BD.DOWN_HEAD)
|
||||
return true, bDown
|
||||
-- se più di 2 facce
|
||||
else
|
||||
@@ -610,7 +612,7 @@ function ProcessLapJoint.Classify( Proc, b3Raw)
|
||||
local nFaceAdj = GetFaceAdj( Proc, nFacInd, dH, dV) or -1
|
||||
local bIsL = ( Proc.Fct == 2 or TestElleShape3( Proc) or TestElleShape4( Proc) == 2)
|
||||
-- verifico se è lavorabile solo dal basso
|
||||
local bDown = ( vtN:getZ() < BD.NZ_MINA)
|
||||
local bDown = ( vtN:getZ() < BD.NZ_MINA and not BD.DOWN_HEAD)
|
||||
-- se verso il basso, verifico se utilizzabile seconda faccia
|
||||
if bDown then
|
||||
if nFacInd2 and dElev2 < 2 * dElev then
|
||||
@@ -3862,10 +3864,20 @@ function ProcessLapJoint.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
|
||||
end
|
||||
-- due facce
|
||||
elseif Proc.Fct == 2 then
|
||||
-- verifico se da lavorare con testa da sotto
|
||||
local bDownHead = false
|
||||
if BD.DOWN_HEAD then
|
||||
local ptC = {}
|
||||
local vtN = {}
|
||||
ptC[1], vtN[1] = EgtSurfTmFacetCenter( Proc.Id, 0, GDB_ID.ROOT)
|
||||
ptC[2], vtN[2] = EgtSurfTmFacetCenter( Proc.Id, 1, GDB_ID.ROOT)
|
||||
local vtNm = ( vtN[1] + vtN[2]) ; vtNm:normalize()
|
||||
bDownHead = vtNm:getZ() < -0.5
|
||||
end
|
||||
-- determino l'angolo tra le facce
|
||||
local bAdj, _, _, dAng = EgtSurfTmFacetsContact( Proc.Id, 0, 1, GDB_ID.ROOT)
|
||||
-- se ortogonali e non forzata lama, con fresa
|
||||
if not bUseBlade and bAdj and abs( dAng + 90) < 1 then
|
||||
-- se ortogonali e non forzata lama oppure con testa da sotto, con fresa
|
||||
if ( not bUseBlade and bAdj and abs( dAng + 90) < 1) or bDownHead then
|
||||
-- se piccole
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user