DataBeam :
- in LongCut e LongDoubleCut lunghi migliorata suddivisione in parti.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
-- ProcessLongCut.lua by Egaltech s.r.l. 2020/10/07
|
||||
-- ProcessLongCut.lua by Egaltech s.r.l. 2020/10/08
|
||||
-- Gestione calcolo taglio longitudinale per Travi
|
||||
|
||||
-- Tabella per definizione modulo
|
||||
@@ -164,19 +164,19 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId)
|
||||
bLimXmax = true
|
||||
end
|
||||
end
|
||||
-- Verifico lato di lavorazione
|
||||
-- Verifico lato di lavorazione (limite di lato a 45deg per pinze che schiacciano)
|
||||
local nSide = 1
|
||||
if vtN:getZ() < - 0.5 then
|
||||
nSide = -1
|
||||
elseif vtN:getY() < -0.7071 then
|
||||
elseif vtN:getY() < -0.7072 then
|
||||
nSide = -2
|
||||
elseif vtN:getY() > 0.7071 then
|
||||
elseif vtN:getY() > 0.7072 then
|
||||
nSide = 2
|
||||
end
|
||||
-- determino se lavorazione da davanti o da dietro
|
||||
local bFront = ( vtN:getY() < 0)
|
||||
-- ottengo la distanza tra la fine del pezzo e il pezzo successivo
|
||||
local dDistToNextPiece = EgtGetInfo( nRawId, 'BDST', 'd') or 5
|
||||
local dDistToNextPiece = EgtGetInfo( nRawId, 'BDST', 'd') or 5.4
|
||||
local bForcedLim
|
||||
local sWarn
|
||||
----------------------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -187,7 +187,7 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId)
|
||||
-- fino al punto più vicino della faccia laterale (prima l'arretramento era sempre del rggio utensile).
|
||||
-- Questo viene fatto se Q07=1 o fresa da sotto
|
||||
----------------------------------------------------------------------------------------------------------------------------------------
|
||||
local bUseBlade = EgtGetInfo( Proc.Id, 'Q05', 'i') == 1
|
||||
local bUseBlade = ( EgtGetInfo( Proc.Id, 'Q05', 'i') == 1)
|
||||
local nUseMillOnSide = EgtGetInfo( Proc.Id, 'Q07', 'i') or 0
|
||||
-- se entrambe i Q sono attivi, disabilito lama
|
||||
if nUseMillOnSide > 0 then bUseBlade = false end
|
||||
@@ -222,9 +222,12 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId)
|
||||
local nC = ceil( ( dLen - dStartAccDist - dEndAccDist) / BD.LONGCUT_MAXLEN)
|
||||
local dC = 0
|
||||
if nC > 0 then
|
||||
dC = dLen / ( nC + 2)
|
||||
dStartAccDist = dC
|
||||
dEndAccDist = dC
|
||||
dC = ( dLen - dStartAccDist - dEndAccDist) / nC
|
||||
if dC < min( dStartAccDist, dEndAccDist) then
|
||||
dC = dLen / ( nC + 2)
|
||||
dStartAccDist = dC
|
||||
dEndAccDist = dC
|
||||
end
|
||||
nC = nC + 2
|
||||
else
|
||||
if dLen > min( dStartAccDist, dEndAccDist) then
|
||||
@@ -341,12 +344,27 @@ function ProcessLongCut.Make( Proc, nPhase, nRawId, nPartId)
|
||||
if nC > 0 then
|
||||
if bStartFixed and bEndFixed then
|
||||
dC = ( dLen - dStartAccDist - dEndAccDist) / nC
|
||||
if dC < min( dStartAccDist, dEndAccDist) then
|
||||
dC = dLen / ( nC + 2)
|
||||
dStartAccDist = dC
|
||||
dEndAccDist = dC
|
||||
end
|
||||
elseif bStartFixed then
|
||||
dC = ( dLen - dStartAccDist) / ( nC + 1)
|
||||
dEndAccDist = dC
|
||||
if dC < dStartAccDist then
|
||||
dC = dLen / ( nC + 2)
|
||||
dStartAccDist = dC
|
||||
dEndAccDist = dC
|
||||
end
|
||||
elseif bEndFixed then
|
||||
dC = ( dLen - dEndAccDist) / ( nC + 1)
|
||||
dStartAccDist = dC
|
||||
if dC < dEndAccDist then
|
||||
dC = dLen / ( nC + 2)
|
||||
dStartAccDist = dC
|
||||
dEndAccDist = dC
|
||||
end
|
||||
else
|
||||
dC = dLen / ( nC + 2)
|
||||
dStartAccDist = dC
|
||||
|
||||
Reference in New Issue
Block a user