DataBeam :

- in LongCut e LongDoubleCut lunghi migliorata suddivisione in parti.
This commit is contained in:
Dario Sassi
2020-10-08 17:56:27 +00:00
parent 8a9faf298d
commit 8d59402134
2 changed files with 52 additions and 16 deletions
+25 -7
View File
@@ -1,4 +1,4 @@
-- ProcessLongDoubleCut.lua by Egaltech s.r.l. 2020/10/07
-- ProcessLongDoubleCut.lua by Egaltech s.r.l. 2020/10/08
-- Gestione calcolo doppio taglio longitudinale per Travi
-- Tabella per definizione modulo
@@ -253,7 +253,7 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId)
_, _, vWidth[2] = BL.GetFaceHvRefDim( Proc.Id, tFaceLong[2])
-- 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
----------------------------------------------------------------------------------------------------------------------------------------
@@ -290,7 +290,7 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId)
dToolThick = EgtTdbGetCurrToolParam(MCH_TP.THICK) or dToolThick
end
end
-- se la distanza dal pezzo successivo è inferiore della metà lama, dò un warning
-- se la distanza dal pezzo successivo è inferiore della metà lama, do un warning
if dDistToNextPiece < dToolDiam/2 then
sWarn = 'Warning on saw cut : Cut machining can damage next piece'
EgtOutLog( sWarn .. ' (process ' .. tostring( Proc.Id) .. ')')
@@ -301,14 +301,17 @@ function ProcessLong2Cut.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
nC = 2
dStartAccDist = dLen/2
dStartAccDist = dLen / 2
dEndAccDist = dStartAccDist
else
nC = 1
@@ -499,12 +502,27 @@ function ProcessLong2Cut.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