Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d72560241b | |||
| 0689328082 | |||
| a1a6f2243a |
+79
-56
@@ -49,6 +49,7 @@
|
|||||||
-- 2022/06/29 Migliorate lavorazioni con fresatura di lato per L30 se parametro Q03=2. Ora con 4 facce / 3 facce a L può entrare una fresa grande fino al doppio dell'altezza della tasca / doppio della dimensione minima.
|
-- 2022/06/29 Migliorate lavorazioni con fresatura di lato per L30 se parametro Q03=2. Ora con 4 facce / 3 facce a L può entrare una fresa grande fino al doppio dell'altezza della tasca / doppio della dimensione minima.
|
||||||
-- 2022/07/05 Modifiche per sega a catena di testa e relativa MaxElev.
|
-- 2022/07/05 Modifiche per sega a catena di testa e relativa MaxElev.
|
||||||
-- 2022/07/12 In MakeByChainOrSaw aggiunto check per feature L20 usata in modo improprio e, nel caso, si passa a una lavorazione tasca.
|
-- 2022/07/12 In MakeByChainOrSaw aggiunto check per feature L20 usata in modo improprio e, nel caso, si passa a una lavorazione tasca.
|
||||||
|
-- 2022/08/11 Aggiunta lavorazione tunnel splittata con sega a catena per tutte le macchine ad esclusione della Fast.
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessLapJoint = {}
|
local ProcessLapJoint = {}
|
||||||
@@ -4349,6 +4350,53 @@ local function ManageAntiSplintByMill( Proc, nPhase, nRawId, nPartId, b3Raw,
|
|||||||
return true, sMyWarn
|
return true, sMyWarn
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---------------------------------------------------------------------
|
||||||
|
local function MakeTunnelByChainSaw( Proc, sSawing, nLundIdFace, vtOrtho, dWorkDepth, dMaxMat, nStep, dStep, sFaceUse)
|
||||||
|
for i = 1, nStep do
|
||||||
|
-- inserisco la lavorazione di sawing
|
||||||
|
local sName = 'Csaw_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id)) .. '_' .. tostring( i)
|
||||||
|
local nMchFId = EgtAddMachining( sName, sSawing)
|
||||||
|
if not nMchFId then
|
||||||
|
local sErr = 'Error adding machining ' .. sName .. '-' .. sSawing
|
||||||
|
EgtOutLog( sErr)
|
||||||
|
return false, sErr
|
||||||
|
end
|
||||||
|
-- aggiungo geometria
|
||||||
|
EgtSetMachiningGeometry( {{ Proc.Id, nLundIdFace}})
|
||||||
|
local vtN = EgtSurfTmFacetNormVersor( Proc.Id, nLundIdFace, GDB_ID.ROOT)
|
||||||
|
-- imposto angolo 3° asse rot
|
||||||
|
EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetChainSawBlockedAxis( 1))
|
||||||
|
EgtSetMachiningParam( MCH_MP.INITANGS, BL.GetChainSawInitAngs( vtN, vtOrtho, 1))
|
||||||
|
-- imposto offset radiale
|
||||||
|
local dOffs = ( i - 1) * dStep
|
||||||
|
EgtSetMachiningParam( MCH_MP.OFFSR, dOffs)
|
||||||
|
EgtSetMachiningParam( MCH_MP.FACEUSE, sFaceUse)
|
||||||
|
EgtSetMachiningParam( MCH_MP.DEPTH, dWorkDepth)
|
||||||
|
EgtSetMachiningParam( MCH_MP.STARTPOS, 50)
|
||||||
|
-- eseguo
|
||||||
|
if not ML.ApplyMachining( true, false) then
|
||||||
|
if EgtGetOutstrokeInfo() then
|
||||||
|
local _, sErr = EgtGetLastMachMgrError()
|
||||||
|
EgtSetOperationMode( nMchFId, false)
|
||||||
|
return false, sErr
|
||||||
|
end
|
||||||
|
EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetChainSawBlockedAxis( 2))
|
||||||
|
EgtSetMachiningParam( MCH_MP.INITANGS, BL.GetChainSawInitAngs( vtN, vtOrtho, 2))
|
||||||
|
if not ML.ApplyMachining( true, false) then
|
||||||
|
local _, sErr = EgtGetLastMachMgrError()
|
||||||
|
EgtSetOperationMode( nMchFId, false)
|
||||||
|
return false, sErr
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if EgtIsMachiningEmpty() then
|
||||||
|
_, sWarn = EgtGetMachMgrWarning( 0)
|
||||||
|
EgtSetOperationMode( nMchFId, false)
|
||||||
|
return false, sWarn
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePart, bPrevBhSideMill, bAllWithEndCap)
|
local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePart, bPrevBhSideMill, bAllWithEndCap)
|
||||||
if not BD.MAXDIAM_POCK_CORNER then
|
if not BD.MAXDIAM_POCK_CORNER then
|
||||||
@@ -4470,63 +4518,38 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|||||||
if nStep > 1 then
|
if nStep > 1 then
|
||||||
dStep = ( dDimMin - dSawThick) / ( nStep - 1)
|
dStep = ( dDimMin - dSawThick) / ( nStep - 1)
|
||||||
end
|
end
|
||||||
for i = 1, nStep do
|
local bSplit = false
|
||||||
-- inserisco la lavorazione di sawing
|
local sFaceUse, sFaceUseOtherSide
|
||||||
local sName = 'Csaw_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id)) .. '_' .. tostring( i)
|
-- imposto il lato di lavorazione, da sopra oppure di fronte
|
||||||
local nMchFId = EgtAddMachining( sName, sSawing)
|
-- se è di fronte, non è una Fast e il tagliente non arriva splitto la lavorazione
|
||||||
if not nMchFId then
|
-- Questa feature non è applicata su facce di testa e quindi non controllo l'entrata in X
|
||||||
local sErr = 'Error adding machining ' .. sName .. '-' .. sSawing
|
if abs(vtOrtho:getZ()) >= 0.707 then
|
||||||
EgtOutLog( sErr)
|
sFaceUse = MCH_MILL_FU.PARAL_DOWN
|
||||||
return false, sErr
|
else
|
||||||
end
|
sFaceUse = MCH_MILL_FU.PARAL_BACK
|
||||||
-- aggiungo geometria
|
-- per escludere la Fast controllo C_SIMM
|
||||||
EgtSetMachiningGeometry( {{ Proc.Id, nLundIdFace}})
|
if BD.C_SIMM and dMaxMat < dDepth then
|
||||||
-- imposto uso del lato faccia
|
bSplit = true
|
||||||
-- al momento, dato che la fessura è passante da parte a parte, gestisco solo la lavorazione
|
sFaceUseOtherSide = MCH_MILL_FU.PARAL_FRONT
|
||||||
-- dall'alto e di fronte (da dietro è disabilitata perchè ho extracorsa con la FAST).
|
dDepth = dDepth / 2 + BD.CUT_EXTRA
|
||||||
-- Questa feature non è applicata su facce di testa e quindi non controllo l'entrata in X
|
|
||||||
if abs(vtOrtho:getZ()) >= 0.707 then
|
|
||||||
EgtSetMachiningParam( MCH_MP.FACEUSE, MCH_MILL_FU.PARAL_DOWN)
|
|
||||||
else
|
|
||||||
EgtSetMachiningParam( MCH_MP.FACEUSE, MCH_MILL_FU.PARAL_BACK)
|
|
||||||
end
|
|
||||||
local vtN = EgtSurfTmFacetNormVersor( Proc.Id, nLundIdFace, GDB_ID.ROOT)
|
|
||||||
-- imposto angolo 3° asse rot
|
|
||||||
EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetChainSawBlockedAxis( 1))
|
|
||||||
EgtSetMachiningParam( MCH_MP.INITANGS, BL.GetChainSawInitAngs( vtN, vtOrtho, 1))
|
|
||||||
-- imposto offset radiale
|
|
||||||
local dOffs = ( i - 1) * dStep
|
|
||||||
EgtSetMachiningParam( MCH_MP.OFFSR, dOffs)
|
|
||||||
-- se possibile aumento l'affondamento pari al raggio corner + 1
|
|
||||||
if dMaxMat > (dDepth + dSawCornerRad + 1) then
|
|
||||||
EgtSetMachiningParam( MCH_MP.DEPTH, (dDepth + dSawCornerRad + 1))
|
|
||||||
-- se massimo affondamento utensile inferiore fessura, setto affondamento ed emetto warning
|
|
||||||
elseif dMaxMat < dDepth then
|
|
||||||
EgtSetMachiningParam( MCH_MP.DEPTH, dMaxMat)
|
|
||||||
sWarn = 'Warning : elevation bigger than max tool depth'
|
|
||||||
EgtOutLog( sWarn)
|
|
||||||
end
|
|
||||||
-- eseguo
|
|
||||||
if not ML.ApplyMachining( true, false) then
|
|
||||||
if EgtGetOutstrokeInfo() then
|
|
||||||
local _, sErr = EgtGetLastMachMgrError()
|
|
||||||
EgtSetOperationMode( nMchFId, false)
|
|
||||||
return false, sErr
|
|
||||||
end
|
|
||||||
EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetChainSawBlockedAxis( 2))
|
|
||||||
EgtSetMachiningParam( MCH_MP.INITANGS, BL.GetChainSawInitAngs( vtN, vtOrtho, 2))
|
|
||||||
if not ML.ApplyMachining( true, false) then
|
|
||||||
local _, sErr = EgtGetLastMachMgrError()
|
|
||||||
EgtSetOperationMode( nMchFId, false)
|
|
||||||
return false, sErr
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if EgtIsMachiningEmpty() then
|
|
||||||
_, sWarn = EgtGetMachMgrWarning( 0)
|
|
||||||
EgtSetOperationMode( nMchFId, false)
|
|
||||||
return false, sWarn
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
local dWorkDepth = dDepth
|
||||||
|
if dMaxMat > dDepth + dSawCornerRad + 1 then
|
||||||
|
dWorkDepth = dDepth + dSawCornerRad + 1
|
||||||
|
-- se massimo affondamento utensile inferiore alla profondità da lavorare, setto la profondità di lavoro e emetto warning
|
||||||
|
elseif dMaxMat < dDepth then
|
||||||
|
dWorkDepth = dMaxMat
|
||||||
|
sWarn = 'Warning : elevation bigger than max tool depth'
|
||||||
|
EgtOutLog( sWarn)
|
||||||
|
end
|
||||||
|
local bOk, sErr = MakeTunnelByChainSaw( Proc, sSawing, nLundIdFace, vtOrtho, dWorkDepth, dMaxMat, nStep, dStep, sFaceUse)
|
||||||
|
if not bOk then return false, sErr end
|
||||||
|
-- se è da lavorare anche dall'altro lato
|
||||||
|
if bSplit then
|
||||||
|
bOk, sErr = MakeTunnelByChainSaw( Proc, sSawing, nLundIdFace, vtOrtho, dWorkDepth, dMaxMat, nStep, dStep, sFaceUseOtherSide)
|
||||||
|
if not bOk then return false, sErr end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- altrimenti non è una fessura
|
-- altrimenti non è una fessura
|
||||||
@@ -5147,7 +5170,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|||||||
-- 3 facce non a L ma con una faccia favorevole a Y, oppure
|
-- 3 facce non a L ma con una faccia favorevole a Y, oppure
|
||||||
-- 4 facce
|
-- 4 facce
|
||||||
-- lancio la MakePocket ( lavorazione solo da un lato, fondo della tasca la faccia più favorevole a Y)
|
-- lancio la MakePocket ( lavorazione solo da un lato, fondo della tasca la faccia più favorevole a Y)
|
||||||
if bForceSideMill and (( Proc.Fct == 3 and bIsL) or ( Proc.Fct == 3 and abs( vtNFacApproxY:getY()) >= 0.707 ) or Proc.Fct == 4) then
|
if bForceSideMill and (( Proc.Fct == 3 and bIsL) or ( ( Proc.Fct == 3 or Proc.Fct == 2) and abs( vtNFacApproxY:getY()) >= 0.707 ) or Proc.Fct == 4) then
|
||||||
nFacInd, vtN, ptC = nFacApproxY, vtNFacApproxY, ptCFacApproxY
|
nFacInd, vtN, ptC = nFacApproxY, vtNFacApproxY, ptCFacApproxY
|
||||||
local tvtNx = {}
|
local tvtNx = {}
|
||||||
tvtNx[2] = vtN
|
tvtNx[2] = vtN
|
||||||
|
|||||||
Reference in New Issue
Block a user