DataBeam :
- migliorata riconoscimento necessità rotazione per taglio doppio convesso - modifiche per tagli lunghi con lama.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
-- ProcessDoubleCut.lua by Egaltech s.r.l. 2021/11/05
|
||||
-- ProcessDoubleCut.lua by Egaltech s.r.l. 2021/11/25
|
||||
-- Gestione calcolo doppi tagli di lama per Travi
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
@@ -32,6 +32,8 @@ function ProcessDoubleCut.Classify( Proc, b3Raw)
|
||||
if BD.C_SIMM and BD.DOWN_HEAD then
|
||||
return true
|
||||
end
|
||||
-- limite per facce da sotto
|
||||
local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw)
|
||||
-- verifico se convesso
|
||||
local bAdj, _, _, dAng = EgtSurfTmFacetsContact( Proc.Id, 0, 1, GDB_ID.ROOT)
|
||||
local bConvex = ( not bAdj or ( dAng > 0))
|
||||
@@ -46,10 +48,19 @@ function ProcessDoubleCut.Classify( Proc, b3Raw)
|
||||
return true, true
|
||||
end
|
||||
end
|
||||
local bDownCut = ( vtN:getZ() <= dNzLimDwnUp)
|
||||
if bDownCut then
|
||||
local _, DimH, DimV = BL.GetFaceHvRefDim( Proc.Id, nFac)
|
||||
-- confronto anche qua la distanza maggiore della faccia con la massima distanza del DiceCut
|
||||
-- e se il rapporto supera il 2 (implica che genera 3 tagli) dichiaro impossibile la lavorazione
|
||||
if DimH and BD.MAX_DIM_DICE and abs( BD.MAX_DIM_DICE) > 20 * GEO.EPS_SMALL and abs( DimH / BD.MAX_DIM_DICE) > 2 then
|
||||
return true, true
|
||||
end
|
||||
end
|
||||
end
|
||||
return true, false
|
||||
end
|
||||
-- verifico le normali delle facce per tagli da sotto
|
||||
local dNzLimDwnUp = BL.GetNzLimDownUp( b3Raw)
|
||||
-- altrimenti concavo, verifico le normali delle facce per tagli da sotto
|
||||
for i = 1, 2 do
|
||||
local ptC, vtN = EgtSurfTmFacetCenter( Proc.Id, i-1, GDB_ID.ROOT)
|
||||
local bDownCut = ( vtN:getZ() <= dNzLimDwnUp)
|
||||
|
||||
Reference in New Issue
Block a user