DataBeam :

- in LapJoint migliorato controllo affondamento utensile in U lavorato da 3 parti (anche da sotto).
This commit is contained in:
DarioS
2021-10-21 14:42:08 +02:00
parent 95bc46e2ae
commit 3589349ed2
+16 -6
View File
@@ -1,4 +1,4 @@
-- ProcessLapJoint.lua by Egaltech s.r.l. 2021/10/19
-- ProcessLapJoint.lua by Egaltech s.r.l. 2021/10/21
-- Gestione calcolo mezzo-legno per Travi
-- 2019/10/08 Agg. gestione OpenPocket.
-- 2021/01/24 Con sega a catena ora sempre impostato asse A.
@@ -27,6 +27,7 @@
-- migliorata applicazione lavorazioni BH su feature lunghe lavorte a passi
-- 2021/10/06 Ad antischeggia con lama in presenza di testa da sotto aggiunta preferenza a testa da sopra.
-- 2021/10/19 Corretta gestione inversione per Tunnel. OpenPocket anche se spezzato ma 1 o 2 facce. Introdotta lunghezza minima per lamello.
-- 2021/10/21 Migliorato controllo affondamento utensile in U lavorato da 3 parti (anche da sotto).
-- Tabella per definizione modulo
local ProcessLapJoint = {}
@@ -3542,7 +3543,7 @@ local function MakeByPockets( Proc, nPhase, nRawId, nPartId, nChamfer, dDepthCha
-- se smusso non è esclusivo
if nChamfer < 2 then
-- ricalcolo se è lavorabile da sotto
bMillDown = ( BD.DOWN_HEAD and abs( vtOrtho:getZ()) >= 0.707)
bMillDown = ( BD.DOWN_HEAD == true)
-- verifico se può essere fatto con svuotatura
local bMakePocket, sPocketing, dMaxDepth, dDiamTool = VerifyPocket( Proc, dDimMin, dDepth / 2, nil, sMchFind)
local bMakePocketDn, sPocketingDn, dMaxDepthDn, dDiamToolDn
@@ -3761,17 +3762,21 @@ local function MakeByPockets( Proc, nPhase, nRawId, nPartId, nChamfer, dDepthCha
-- se non completo e U, cerco di lavorare anche la faccia di fondo (con il massimo affondamento possibile)
if not bComplete and bIs3Faces then
-- recupero la faccia da lavorare
local nFacInd = BL.GetFaceWithMostAdj( Proc.Id, nPartId)
local nFacInd, dFacElev = BL.GetFaceWithMostAdj( Proc.Id, nPartId)
local vtN
local bPock3rd = false
if nFacInd then
vtN = EgtSurfTmFacetNormVersor( Proc.Id, nFacInd, GDB_ID.ROOT)
bPock3rd = ( vtN and vtN:getZ() >= BD.NZ_MINA)
bPock3rd = ( vtN and ( vtN:getZ() >= BD.NZ_MINA or bMakePocketDn))
end
if bPock3rd then
-- recupero la distanza di sicurezza aggiuntiva
local dFacCollSic = CalcCollisionSafety( vtN)
-- scelgo se lavorare da sotto
local bFacPocketDn = ( bMakePocketDn and vtN:getZ() < -0.174)
-- inserisco la lavorazione di svuotatura
local sName = EgtIf( bDoubleSide, 'Pock3rd_', 'Pock2nd_') .. ( EgtGetName( Proc.Id) or tostring( Proc.Id))
local nMchFId = EgtAddMachining( sName, sPocketing)
local nMchFId = EgtAddMachining( sName, EgtIf( bFacPocketDn, sPocketingDn, sPocketing))
if not nMchFId then
local sErr = 'Error adding machining ' .. sName .. '-' .. sPocketing
EgtOutLog( sErr)
@@ -3804,7 +3809,12 @@ local function MakeByPockets( Proc, nPhase, nRawId, nPartId, nChamfer, dDepthCha
-- inverto il percorso di lavorazione per lavorare sinistro
EgtSetMachiningParam( MCH_MP.INVERT, true)
-- imposto affondamento
EgtSetMachiningParam( MCH_MP.DEPTH, 0)
local dDepth = 0
local dActMaxDepth = EgtIf( bFacPocketDn, dMaxDepthDn, dMaxDepth)
if dActMaxDepth < dFacElev + dFacCollSic then
dDepth = dActMaxDepth - ( dFacElev + dFacCollSic)
end
EgtSetMachiningParam( MCH_MP.DEPTH, dDepth)
-- dichiaro non si generano sfridi per VMill
local sNotes = 'VMRS=0;'
EgtSetMachiningParam( MCH_MP.USERNOTES, sNotes)