DataBeam :

- in Tenoni DT angolo limite per testa sotto portato a +10 gradi
- in LapJoint migliorato controllo diametro frese per svuotature, con testa sotto non si controlla vtNz per cambiare faccia, migliorata scelta utensile per svuotatura.
This commit is contained in:
Dario Sassi
2021-03-02 09:57:58 +00:00
parent f90f1f3809
commit d585a45b18
2 changed files with 27 additions and 22 deletions
+25 -20
View File
@@ -1,4 +1,4 @@
-- ProcessLapJoint.lua by Egaltech s.r.l. 2021/02/23
-- ProcessLapJoint.lua by Egaltech s.r.l. 2021/03/01
-- Gestione calcolo mezzo-legno per Travi
-- 2019/10/08 Agg. gestione OpenPocket.
-- 2021/01/24 Con sega a catena ora sempre impostato asse A.
@@ -2697,7 +2697,7 @@ local function CheckPocketTool( sMchFind, dDiam, dElev)
end
---------------------------------------------------------------------
local function CheckDiamToolByFaces( Proc, nFacInd, dH, dV, bIsU, bIsL, dElev, nUseRoughTool)
local function CheckToolDiamByFaces( Proc, nFacInd, dH, dV, bIsU, bIsL, dElev, nUseRoughTool)
local dMaxDimFace = max( dH, dV)
-- verifico che diametro utensile prende con la openpocket con la massima dimensione faccia
local bUseMaxTool, dMaxDiam
@@ -2756,8 +2756,8 @@ local function CheckDiamToolByFaces( Proc, nFacInd, dH, dV, bIsU, bIsL, dElev, n
local dLen22 = dist( tExtremPt[1][2], tExtremPt[2][2])
dLargeVal = min( dLargeVal, dLen11, dLen12, dLen21, dLen22)
end
-- se forma a l e flag uso truciolatore, favorisco il suo utilizzo
if bIsL and nUseRoughTool == 1 then
-- se forma a L, raggio inferiore alla dimensione minima e flag uso truciolatore, favorisco il suo utilizzo
if bIsL and nUseRoughTool == 1 and dMaxDiam / 2 < dLargeVal then
return dMaxDiam, 'OpenPocket', nUseRoughTool, dMaxDiam
else
-- per essere accettabile, il diametro massimo deve essere minore della larghezza della faccia
@@ -3301,8 +3301,8 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
-- altrimenti lavorazione di svuotatura o contornatura
else
local bUseOtherFace
-- se orientata verso il basso, verifico l'alternativa
if vtN:getZ() < BD.NZ_MINA and nFacInd2 then
-- se orientata verso il basso e non c'è testa da sotto, verifico l'alternativa
if vtN:getZ() < BD.NZ_MINA and not BD.DOWN_HEAD and nFacInd2 then
ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, nFacInd2, GDB_ID.ROOT)
nFacInd, nFacInd2 = nFacInd2, nFacInd
dFacElev, dFacElev2 = dFacElev2, dFacElev
@@ -3401,7 +3401,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
if ( Proc.Fct == 3 and bIsU and bSinglePart) or ( Proc.Fct == 2 and bIsL) or Proc.Fct == 1 then
sMchFindBackUp = sMchFind
--ottengo un diametro utensile opportuno
dDiam, sMchFind, nUseRoughTool, dDiamMax = CheckDiamToolByFaces( Proc, nFacInd, dH, dV, bIsU, bIsL, ( dFacElev + dCollSic), nUseRoughTool)
dDiam, sMchFind, nUseRoughTool, dDiamMax = CheckToolDiamByFaces( Proc, nFacInd, dH, dV, bIsU, bIsL, ( dFacElev + dCollSic), nUseRoughTool)
if not dDiam then
if nUseRoughTool == 0 then
sMchFind = 'OpenPocket'
@@ -3419,23 +3419,28 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
end
end
end
-- abilitazione lavorazione da sotto
local bMillUp = ( BD.DOWN_HEAD and vtN:getZ() > -0.259)
local bMillDown = ( BD.DOWN_HEAD and vtN:getZ() < 0.342)
--EgtOutLog( 'Mortise Find Diam =' .. EgtNumToString( dDiam))
-- ricerca lavorazione
local sPocketing
if BD.DOWN_HEAD and sMchFind and vtN:getZ() < 0.174 then sMchFind = sMchFind .. '_H2' end
if nUseRoughTool == 1 then
sMyPocketing, dMyTDiam, dMyTMaxDepth = ML.FindPocketing( sMchFind, dDiam)
if sMyPocketing and dMyTMaxDepth > 0.8 * dFacElev + dCollSic then
sPocketing = sMyPocketing
end
else
sPocketing = ML.FindPocketing( sMchFind, dDiam, dFacElev + dCollSic)
local sMyPocketing, dMyTDiam, dMyTMaxDepth = ML.FindPocketing( sMchFind .. EgtIf( bMillDown, '_H2', ''), dDiam, dFacElev + dCollSic)
if not sMyPocketing then
sMyPocketing, dMyTDiam, dMyTMaxDepth = ML.FindPocketing( sMchFind .. EgtIf( bMillDown, '_H2', ''), dDiam)
end
-- se non trovata verifico affondamento
if not sPocketing and nUseRoughTool == 0 then
local sMyPocketing, dMyTDiam, dMyTMaxDepth = ML.FindPocketing( sMchFind, dDiam)
if sMyPocketing and ( dMyTMaxDepth > 0.8 * dFacElev + dCollSic or bIsL) then
sPocketing = sMyPocketing
if not sMyPocketing and bMillUp then
sMyPocketing, dMyTDiam, dMyTMaxDepth = ML.FindPocketing( sMchFind, dDiam, dFacElev + dCollSic)
if not sMyPocketing then
sMyPocketing, dMyTDiam, dMyTMaxDepth = ML.FindPocketing( sMchFind, dDiam)
end
bMillDown = false
end
if sMyPocketing and ( dMyTMaxDepth > 0.8 * dFacElev + dCollSic or ( bIsL and nUseRoughTool == 0)) then
sPocketing = sMyPocketing
end
if bMillDown then
sMchFind = sMchFind ..'_H2'
end
-- se feature 16 o 17 e forzata lama e forma ad U, annulla la svuotatura
if ( Proc.Prc == 16 or Proc.Prc == 17) and bForceUseBlade and Proc.Fct == 3 and bIsU then