DataBeam :
- T010 se troppo inclinati verso il basso e di dimensioni non compatibili ora sono dichiarati non lavorabili causa orientamento - T138/L138 corretti tagli di lama errati - L030 ora si usa il truciolatore dove richiesto e compatibilmente con la sua profondità massima di lavorazione - L020 con Q03=1 ora si inserisce il truciolatore come richiesto - L012 corretti attacchi e uscite quando rivolto verso il basso, concavo e facce molto inclinate.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
-- ProcessLapJoint.lua by Egaltech s.r.l. 2020/07/23
|
||||
-- ProcessLapJoint.lua by Egaltech s.r.l. 2020/07/31
|
||||
-- Gestione calcolo mezzo-legno per Travi
|
||||
-- 2019/10/08 Agg. gestione OpenPocket.
|
||||
|
||||
@@ -2390,10 +2390,11 @@ local function CheckDiamToolByFaces( Proc, nFacInd, dH, dV, bIsU, bIsL, dElev)
|
||||
local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, nFacInd, GDB_ID.ROOT)
|
||||
-- Cerco le facce adiacenti alla principale con angolo concavo >= 90
|
||||
local tWidth = {}
|
||||
local tExtremPt = {}
|
||||
for i = 1, #vAdj do
|
||||
if vAdj[i] >= 0 then
|
||||
-- verifico l'angolo tra le facce
|
||||
local bAdj, _, _, dAng = EgtSurfTmFacetsContact( Proc.Id, nFacInd, vAdj[i], GDB_ID.ROOT)
|
||||
-- verifico l'angolo tra le facce ( esco se angolo compreso < 90)
|
||||
local bAdj, pPt1, pPt2, dAng = EgtSurfTmFacetsContact( Proc.Id, nFacInd, vAdj[i], GDB_ID.ROOT)
|
||||
if bAdj and dAng < -90 - 20 * GEO.EPS_ANG_SMALL then
|
||||
return false
|
||||
end
|
||||
@@ -2404,6 +2405,7 @@ local function CheckDiamToolByFaces( Proc, nFacInd, dH, dV, bIsU, bIsL, dElev)
|
||||
local b3Ref = EgtSurfTmGetFacetBBoxRef( Proc.Id, nFacInd, GDB_BB.STANDARD, frRef)
|
||||
if b3Ref then
|
||||
table.insert( tWidth, b3Ref:getDimY())
|
||||
table.insert( tExtremPt, { pPt1, pPt2})
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -2415,11 +2417,36 @@ local function CheckDiamToolByFaces( Proc, nFacInd, dH, dV, bIsU, bIsL, dElev)
|
||||
for i = 1, #tWidth do
|
||||
dLargeVal = max( dLargeVal, tWidth[i])
|
||||
end
|
||||
-- se facce U verifico se le distanze tra i punti sono maggiori delle distanze tra le facce
|
||||
if bIsU then
|
||||
local dLargeValU = 999999
|
||||
for i = 1, #tExtremPt do
|
||||
local dLenPoint = dist( EgtIf( i == 1, tExtremPt[i][1], tExtremPt[1][2]), EgtIf( i == 1, tExtremPt[2][1], tExtremPt[i][2]))
|
||||
-- prendo la distanza minore tra le maggiori ma solo se la distanza tra i punti non è minore della distanza tra le facce
|
||||
if dLenPoint < dLargeVal then
|
||||
dLargeValU = dLargeVal
|
||||
break
|
||||
else
|
||||
dLargeValU = min( dLargeValU, dLenPoint)
|
||||
end
|
||||
-- inverto i punti e ricalcolo le distanze
|
||||
dLenPoint = dist( EgtIf( i == 1, tExtremPt[i][1], tExtremPt[1][2]), EgtIf( i == 1, tExtremPt[2][2], tExtremPt[i][1]))
|
||||
-- prendo la distanza minore tra le maggiori ma solo se la distanza tra i punti non è minore della distanza tra le facce
|
||||
if dLenPoint < dLargeVal then
|
||||
dLargeValU = dLargeVal
|
||||
break
|
||||
else
|
||||
dLargeValU = min( dLargeValU, dLenPoint)
|
||||
end
|
||||
|
||||
end
|
||||
dLargeVal = dLargeValU
|
||||
end
|
||||
-- per essere accettabile, il diametro massimo deve essere minore della larghezza della faccia
|
||||
if dMaxDiam < dLargeVal + 20 * GEO.EPS_SMALL then
|
||||
return dMaxDiam, 'OpenPocket', 1
|
||||
return dMaxDiam, 'OpenPocket', 1, dMaxDiam
|
||||
else
|
||||
return false
|
||||
return false, '', 0, dMaxDiam
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3062,10 +3089,11 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, bSinglePart)
|
||||
local sMchFind = EgtIf( bSinglePart, 'Pocket', 'OpenPocket')
|
||||
local nUseRoughTool = EgtIf( bSinglePart, 0, 1)
|
||||
local dDiam = min( dH, dV)
|
||||
local dDiamMax
|
||||
-- verifico dalla forma se non posso prendere utensile grande
|
||||
if ( Proc.Fct == 3 and bIsU) or ( Proc.Fct == 2 and bIsL) or Proc.Fct == 1 then
|
||||
--verifico dimensioni con facce adiacenti
|
||||
dDiam, sMchFind, nUseRoughTool = CheckDiamToolByFaces( Proc, nFacInd, dH, dV, bIsU, bIsL, ( dFacElev + dCollSic))
|
||||
dDiam, sMchFind, nUseRoughTool, dDiamMax = CheckDiamToolByFaces( Proc, nFacInd, dH, dV, bIsU, bIsL, ( dFacElev + dCollSic))
|
||||
if not dDiam then
|
||||
sMchFind = 'Pocket'
|
||||
nUseRoughTool = 0
|
||||
@@ -3079,6 +3107,9 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, bSinglePart)
|
||||
if nUseRT and nUseRT ~= 0 then
|
||||
sMchFind = 'OpenPocket'
|
||||
nUseRoughTool = 1
|
||||
if dDiamMax and Proc.Fct == 2 and bIsL then
|
||||
dDiam = dDiamMax
|
||||
end
|
||||
end
|
||||
end
|
||||
--EgtOutLog( 'Mortise Find Diam =' .. EgtNumToString( dDiam))
|
||||
|
||||
Reference in New Issue
Block a user