DataBeam :

- prime modifiche per lavorazione fori in Doppio
- correzione a attacchi/uscite dei profili di Testa
- modifiche a punto di attacco tenone se lavorato con testa da sotto.
This commit is contained in:
Dario Sassi
2020-12-31 11:31:27 +00:00
parent b7133b5ffd
commit a8a97eae97
8 changed files with 138 additions and 173 deletions
+6 -4
View File
@@ -1,4 +1,4 @@
-- ProcessTenon.lua by Egaltech s.r.l. 2020/12/17
-- ProcessTenon.lua by Egaltech s.r.l. 2020/12/30
-- Gestione calcolo tenone per Travi
-- Tabella per definizione modulo
@@ -150,8 +150,10 @@ function ProcessTenon.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
local dPockX = max( b3Ten:getMax():getX() - b3Aux:getMax():getX(), b3Aux:getMin():getX() - b3Ten:getMin():getX())
local dPockY = max( b3Ten:getMax():getY() - b3Aux:getMax():getY(), b3Aux:getMin():getY() - b3Ten:getMin():getY())
local dPockL = sqrt( dPockX * dPockX + dPockY * dPockY)
-- abilitazione lavorazione da sotto
local bMillDown = ( BD.DOWN_HEAD and vtExtr:getZ() < 0.1)
-- porto inizio curva il più possibile sul bordo
BL.PutStartNearestToEdge( AuxId, b3Solid)
BL.PutStartNearestToEdge( AuxId, b3Solid, bMillDown)
-- se vero tenone inclinato o non esattamente alle estremità, necessario taglio di lama sulla testa
if Proc.Prc ~= 52 and
( not AreSameOrOppositeVectorApprox( vtN, X_AX()) or
@@ -171,7 +173,7 @@ function ProcessTenon.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
EgtSetInfo( AddId, 'TASKID', Proc.TaskId)
-- se pezzo piccolo, in coda e piano inclinato attorno a Z applico svuotatura
if b3Solid:getDimX() < BD.LEN_SHORT_PART and vtExtr:getX() < 0 and abs( vtExtr:getX()) < 0.985 then
local sPockType = EgtIf( vtExtr:getZ() < 0.1 and BD.DOWN_HEAD, 'OpenPocket_H2', 'OpenPocket')
local sPockType = EgtIf( bMillDown, 'OpenPocket_H2', 'OpenPocket')
local sPocketing = ML.FindPocketing( sPockType)
local dMaxDepth = 100
local dStep = 30
@@ -223,7 +225,7 @@ function ProcessTenon.Make( Proc, nPhase, nRawId, nPartId, dOvmHead)
end
end
-- recupero la lavorazione
local sMillType = EgtIf( vtExtr:getZ() < 0.1 and BD.DOWN_HEAD, 'Tenon_H2', 'Tenon')
local sMillType = EgtIf( bMillDown, 'Tenon_H2', 'Tenon')
local sMilling = ML.FindMilling( sMillType, dTenH) or ML.FindMilling( sMillType)
if not sMilling then
local sErr = 'Error on process ' .. tostring( Proc.Id) .. ' milling not found in library'