Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f1b64b1496 | |||
| 69ab03f3ec | |||
| 3b86cd9633 | |||
| 56fc63d5ff | |||
| f27eeb9c3d | |||
| 5d603a57db | |||
| 6f45e63f11 | |||
| eb8c78b7b1 | |||
| 4eefdf0842 | |||
| b536c30a88 | |||
| 9a0ea2e431 | |||
| d61a47755c | |||
| c6b8b74f26 | |||
| 53cd49bed1 | |||
| 2f4a77c73e | |||
| 64a3f75b31 | |||
| 000358b6a6 | |||
| 6c16e7b70a | |||
| 1ae32451e5 | |||
| 4c68955ba2 | |||
| dd80929ae1 | |||
| af80170976 | |||
| bf2742c6c7 | |||
| ec09b3f70c | |||
| 952d40cb2b |
+16
-2
@@ -59,9 +59,23 @@ end
|
|||||||
local sLog = 'BatchProcess : ' .. BEAM.FILE .. ', ' .. BEAM.MACHINE .. ', ' .. sFlag
|
local sLog = 'BatchProcess : ' .. BEAM.FILE .. ', ' .. BEAM.MACHINE .. ', ' .. sFlag
|
||||||
EgtOutLog( sLog)
|
EgtOutLog( sLog)
|
||||||
|
|
||||||
-- Cancello file di log specifico
|
|
||||||
local sLogFile = EgtChangePathExtension( BEAM.FILE, '.txt')
|
local sLogFile = EgtChangePathExtension( BEAM.FILE, '.txt')
|
||||||
EgtEraseFile( sLogFile)
|
-- in caso sia richiesta generazione senza check, verifico prima che il file log specifico non contenga errori: se sì, forzo il check
|
||||||
|
if BEAM.FLAG == 0 then
|
||||||
|
local hLogFile = io.open( sLogFile, 'r')
|
||||||
|
if hLogFile then
|
||||||
|
for line in hLogFile:lines() do
|
||||||
|
if EgtStartsWith( line, 'ERR') and tonumber( EgtSplitString( line, '=')[2] or 0) > 0 then
|
||||||
|
BEAM.FLAG = 4
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
hLogFile:close()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Cancello file di log specifico
|
||||||
|
EgtEraseFile( sLogFile)
|
||||||
|
|
||||||
-- Funzioni per scrittura su file di log specifico
|
-- Funzioni per scrittura su file di log specifico
|
||||||
local function WriteErrToLogFile( nErr, sMsg, nRot, nCutId, nTaskId)
|
local function WriteErrToLogFile( nErr, sMsg, nRot, nCutId, nTaskId)
|
||||||
|
|||||||
+16
-2
@@ -45,9 +45,23 @@ end
|
|||||||
local sLog = 'BatchProcess : ' .. BEAM.FILE .. ', ' .. BEAM.MACHINE .. ', ' .. sFlag
|
local sLog = 'BatchProcess : ' .. BEAM.FILE .. ', ' .. BEAM.MACHINE .. ', ' .. sFlag
|
||||||
EgtOutLog( sLog)
|
EgtOutLog( sLog)
|
||||||
|
|
||||||
-- Cancello file di log specifico
|
|
||||||
local sLogFile = EgtChangePathExtension( BEAM.FILE, '.txt')
|
local sLogFile = EgtChangePathExtension( BEAM.FILE, '.txt')
|
||||||
EgtEraseFile( sLogFile)
|
-- in caso sia richiesta generazione senza check, verifico prima che il file log specifico non contenga errori: se sì, forzo il check
|
||||||
|
if BEAM.FLAG == 0 then
|
||||||
|
local hLogFile = io.open( sLogFile, 'r')
|
||||||
|
if hLogFile then
|
||||||
|
for line in hLogFile:lines() do
|
||||||
|
if EgtStartsWith( line, 'ERR') and tonumber( EgtSplitString( line, '=')[2] or 0) > 0 then
|
||||||
|
BEAM.FLAG = 4
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
hLogFile:close()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Cancello file di log specifico
|
||||||
|
EgtEraseFile( sLogFile)
|
||||||
|
|
||||||
-- Funzioni per scrittura su file di log specifico
|
-- Funzioni per scrittura su file di log specifico
|
||||||
local function WriteErrToLogFile( nErr, sMsg, nRot, nCutId, nTaskId)
|
local function WriteErrToLogFile( nErr, sMsg, nRot, nCutId, nTaskId)
|
||||||
|
|||||||
+14
-8
@@ -29,6 +29,7 @@
|
|||||||
-- 2024/02/22 Migliorato calcolo area non pinzabile in testa HCING e coda TCING
|
-- 2024/02/22 Migliorato calcolo area non pinzabile in testa HCING e coda TCING
|
||||||
-- 2024/03/27 In MakeTwo rimossa gestione calcolo differente su ultima passata in caso di macchina FAST
|
-- 2024/03/27 In MakeTwo rimossa gestione calcolo differente su ultima passata in caso di macchina FAST
|
||||||
-- 2024/06/18 In MakeOne in caso di inversione del percorso, si scambia anche accorciamento start con end
|
-- 2024/06/18 In MakeOne in caso di inversione del percorso, si scambia anche accorciamento start con end
|
||||||
|
-- 2024/09/12 In MakeOne per settare il FaceUse si usa il versore nelle UserNotes
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local FacesBySaw = {}
|
local FacesBySaw = {}
|
||||||
@@ -232,8 +233,8 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw
|
|||||||
if not dVzLimDwnUp then dVzLimDwnUp = BL.GetNzLimDownUp( b3Raw, vtN, vtOrthO) end
|
if not dVzLimDwnUp then dVzLimDwnUp = BL.GetNzLimDownUp( b3Raw, vtN, vtOrthO) end
|
||||||
local bDownHead = ( dVzLimDwnUp and dVzLimDwnUp < - 1.5)
|
local bDownHead = ( dVzLimDwnUp and dVzLimDwnUp < - 1.5)
|
||||||
local bDownUp = ( vtN:getZ() < dVzLimDwnUp)
|
local bDownUp = ( vtN:getZ() < dVzLimDwnUp)
|
||||||
-- linea o bilinea di lavorazione (qui uso nOrthoOpposite per ripetere esattamente il calcolo del Mach)
|
-- linea o bilinea di lavorazione
|
||||||
local ptP1, ptPm, ptP2, vtV1, vtV2, dLen, dWidth = EgtSurfTmFacetOppositeSide( nSurfId, nFacet, BL.GetVersRef( nOrthoOpposite), GDB_ID.ROOT)
|
local ptP1, ptPm, ptP2, vtV1, vtV2, dLen, dWidth = EgtSurfTmFacetOppositeSide( nSurfId, nFacet, vtOrthO, GDB_ID.ROOT)
|
||||||
if not dLen or dLen < 1.1 or not dWidth or dWidth < 1.1 then
|
if not dLen or dLen < 1.1 or not dWidth or dWidth < 1.1 then
|
||||||
local sWarn = 'Face ' .. string.format( '%d,%d', nSurfId, nFacet) .. ' skipped : too small'
|
local sWarn = 'Face ' .. string.format( '%d,%d', nSurfId, nFacet) .. ' skipped : too small'
|
||||||
EgtOutLog( sWarn, 1)
|
EgtOutLog( sWarn, 1)
|
||||||
@@ -247,12 +248,12 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw
|
|||||||
local bIsSawCCW = ( EgtMdbGetCurrMachiningParam( MCH_MP.SPEED) < 0)
|
local bIsSawCCW = ( EgtMdbGetCurrMachiningParam( MCH_MP.SPEED) < 0)
|
||||||
local bInvert = bForceInvert
|
local bInvert = bForceInvert
|
||||||
-- l'inversione può essere comandata da rotazione lama (direzione concorde, legata anche a DownUp) oppure da direzione Z del percorso (si preferisce lavorare dal basso verso l'alto per limitare le corse)
|
-- l'inversione può essere comandata da rotazione lama (direzione concorde, legata anche a DownUp) oppure da direzione Z del percorso (si preferisce lavorare dal basso verso l'alto per limitare le corse)
|
||||||
-- se c'è disaccordo tra rotazione e direzione si cambia il lato di lavoro, se possibile. Se ciò non è possbile comanda la direzione.
|
-- se c'è disaccordo tra rotazione e direzione si cambia il lato di lavoro, se possibile. Se ciò non è possbile comanda la direzione. Se percorso orizzontale comanda la rotazione.
|
||||||
if bInvert == nil then
|
if bInvert == nil then
|
||||||
if not BD.TURN or abs( ptP2:getY() - ptP1:getY()) < 250 then
|
if not BD.TURN or abs( ptP2:getY() - ptP1:getY()) < 250 then
|
||||||
local bIsMachiningDownwards = ( ptP2:getZ() < ptP1:getZ() - 100 * GEO.EPS_SMALL)
|
local bIsMachiningDownwards = ( ptP2:getZ() < ptP1:getZ() - 100 * GEO.EPS_SMALL)
|
||||||
local bIsMachiningUpwards = ( ptP2:getZ() > ptP1:getZ() + 100 * GEO.EPS_SMALL)
|
local bIsMachiningUpwards = ( ptP2:getZ() > ptP1:getZ() + 100 * GEO.EPS_SMALL)
|
||||||
if ( bIsSawCCW ~= bDownUp) and bIsMachiningDownwards then
|
if ( bIsSawCCW ~= bDownUp) and ( bIsMachiningDownwards or not ( bIsMachiningDownwards or bIsMachiningUpwards)) then
|
||||||
bInvert = true
|
bInvert = true
|
||||||
elseif ( ( bIsSawCCW ~= bDownUp) ~= bIsMachiningDownwards) then
|
elseif ( ( bIsSawCCW ~= bDownUp) ~= bIsMachiningDownwards) then
|
||||||
if Par5Alternative then
|
if Par5Alternative then
|
||||||
@@ -260,7 +261,7 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw
|
|||||||
nOrthoOpposite = nOrthoOppositeAlternative
|
nOrthoOpposite = nOrthoOppositeAlternative
|
||||||
vtOrthO = vtOrthOAlternative
|
vtOrthO = vtOrthOAlternative
|
||||||
-- avendo riassegnato la direzione di lavoro, i dati della linea vanno ricalcolati
|
-- avendo riassegnato la direzione di lavoro, i dati della linea vanno ricalcolati
|
||||||
ptP1, ptPm, ptP2, vtV1, vtV2, dLen, dWidth = EgtSurfTmFacetOppositeSide( nSurfId, nFacet, BL.GetVersRef( nOrthoOpposite), GDB_ID.ROOT)
|
ptP1, ptPm, ptP2, vtV1, vtV2, dLen, dWidth = EgtSurfTmFacetOppositeSide( nSurfId, nFacet, vtOrthO, GDB_ID.ROOT)
|
||||||
if not dLen or dLen < 1.1 or not dWidth or dWidth < 1.1 then
|
if not dLen or dLen < 1.1 or not dWidth or dWidth < 1.1 then
|
||||||
local sWarn = 'Face ' .. string.format( '%d,%d', nSurfId, nFacet) .. ' skipped : too small'
|
local sWarn = 'Face ' .. string.format( '%d,%d', nSurfId, nFacet) .. ' skipped : too small'
|
||||||
EgtOutLog( sWarn, 1)
|
EgtOutLog( sWarn, 1)
|
||||||
@@ -283,7 +284,10 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw
|
|||||||
if bInvert then
|
if bInvert then
|
||||||
ptP1, ptP2 = ptP2, ptP1
|
ptP1, ptP2 = ptP2, ptP1
|
||||||
vtV1, vtV2 = vtV2, vtV1
|
vtV1, vtV2 = vtV2, vtV1
|
||||||
dAccStart, dAccEnd = dAccEnd, dAccStart
|
-- se l'inversione è forzata dall'esterno, anche gli accorciamenti che arrivano dall'esterno si prendono per buoni
|
||||||
|
if bForceInvert == nil then
|
||||||
|
dAccStart, dAccEnd = dAccEnd, dAccStart
|
||||||
|
end
|
||||||
end
|
end
|
||||||
local vtTg = ptP2 - ptP1 ; vtTg:normalize()
|
local vtTg = ptP2 - ptP1 ; vtTg:normalize()
|
||||||
local dAllStart = 0
|
local dAllStart = 0
|
||||||
@@ -422,14 +426,14 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw
|
|||||||
local bLioTang
|
local bLioTang
|
||||||
local Ktp = 1.1
|
local Ktp = 1.1
|
||||||
if BD.KIOTP then Ktp = BD.KIOTP end
|
if BD.KIOTP then Ktp = BD.KIOTP end
|
||||||
if ( not bDownUp or abs( vtTg:getY()) > 0.5) and
|
if ( bForceTangentLeadInOut or ( not bDownUp or abs( vtTg:getY()) > 0.5) and
|
||||||
( not bDownHead or abs( vtTg:getZ()) < 0.51) and
|
( not bDownHead or abs( vtTg:getZ()) < 0.51) and
|
||||||
abs( vtTg:getX()) < 0.9848 and
|
abs( vtTg:getX()) < 0.9848 and
|
||||||
( ( abs( vtTg:getZ()) < 0.17 and ( vtV1:getZ() < -0.5 or vtV2:getZ() < -0.5) and not bDownHead) or
|
( ( abs( vtTg:getZ()) < 0.17 and ( vtV1:getZ() < -0.5 or vtV2:getZ() < -0.5) and not bDownHead) or
|
||||||
( abs( vtTg:getZ()) < 0.51 and b3Box:getDimZ() > 300 and BD.C_SIMM and BD.MAX_HEIGHT > 450 and b3Box:getDimX() > BD.LEN_SHORT_PART) or
|
( abs( vtTg:getZ()) < 0.51 and b3Box:getDimZ() > 300 and BD.C_SIMM and BD.MAX_HEIGHT > 450 and b3Box:getDimX() > BD.LEN_SHORT_PART) or
|
||||||
( abs( vtTg:getZ()) < 0.51 and ( dLenLi2 + dLenLo2) < ( dLenLi + dLenLo)) or
|
( abs( vtTg:getZ()) < 0.51 and ( dLenLi2 + dLenLo2) < ( dLenLi + dLenLo)) or
|
||||||
Ktp * ( dLenLi2 + dLenLo2) < ( dLenLi + dLenLo) or
|
Ktp * ( dLenLi2 + dLenLo2) < ( dLenLi + dLenLo) or
|
||||||
( BD.TURN == 2 and vtRef:getZ() < -0.1)) then
|
( BD.TURN == 2 and vtRef:getZ() < -0.1))) then
|
||||||
if BD.TURN == 2 then
|
if BD.TURN == 2 then
|
||||||
if vtTg:getY() < -0.1 then
|
if vtTg:getY() < -0.1 then
|
||||||
bLioTang = 1
|
bLioTang = 1
|
||||||
@@ -512,6 +516,8 @@ function FacesBySaw.MakeOne( nSurfId, nFacet, sCutting, dSawDiam, Par5, dVzLimDw
|
|||||||
EgtSetMachiningGeometry( {{ nSurfId, nFacet}})
|
EgtSetMachiningGeometry( {{ nSurfId, nFacet}})
|
||||||
-- imposto uso faccia
|
-- imposto uso faccia
|
||||||
EgtSetMachiningParam( MCH_MP.FACEUSE, nFaceUse)
|
EgtSetMachiningParam( MCH_MP.FACEUSE, nFaceUse)
|
||||||
|
local sNoteVtFaceUse = 'VtFaceUse=' .. EgtNumToString( vtOrthO:getX(),3) .. ',' .. EgtNumToString( vtOrthO:getY(),3) .. ',' .. EgtNumToString( vtOrthO:getZ(),3) .. ';'
|
||||||
|
EgtSetMachiningParam( MCH_MP.USERNOTES, sNoteVtFaceUse)
|
||||||
-- imposto posizione braccio porta testa
|
-- imposto posizione braccio porta testa
|
||||||
EgtSetMachiningParam( MCH_MP.SCC, nSCC)
|
EgtSetMachiningParam( MCH_MP.SCC, nSCC)
|
||||||
-- imposto inversione e lato correzione
|
-- imposto inversione e lato correzione
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ end
|
|||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- Applicazione della lavorazione con testa da sopra
|
-- Applicazione della lavorazione con testa da sopra
|
||||||
local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom, bCustDiceCut, bForced, b3Raw, sNotes, nLimitingSurf)
|
local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom, bCustDiceCut, bForced, b3Raw, sNotes, nLimitingSurf, bForceTangentLeadInOut)
|
||||||
-- ingombro del grezzo
|
-- ingombro del grezzo
|
||||||
b3Raw = b3Raw or EgtGetRawPartBBox( nRawId)
|
b3Raw = b3Raw or EgtGetRawPartBBox( nRawId)
|
||||||
-- ingombro del pezzo
|
-- ingombro del pezzo
|
||||||
@@ -581,7 +581,8 @@ local function MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, b
|
|||||||
if ( i % 2 == 0) and ( Proc.Fct == 1) and bNoPerpCuts then
|
if ( i % 2 == 0) and ( Proc.Fct == 1) and bNoPerpCuts then
|
||||||
vtOrthoOAlternative = - vtOrthoO
|
vtOrthoOAlternative = - vtOrthoO
|
||||||
end
|
end
|
||||||
local bOk, sErr = Fbs.MakeOne( vCuts[i][j], 0, sCutting, dSawDiam, vtOrthoO, dVzLimDwnUp, dExtraCut, BD.CUT_SIC, 0, 0, 0, sNotes, b3Raw, nil, nil, bSpecialTangentLeadInOut, nil, vtOrthoOAlternative)
|
bForceTangentLeadInOut = bForceTangentLeadInOut and ( ( i % 2) ~= 0)
|
||||||
|
local bOk, sErr = Fbs.MakeOne( vCuts[i][j], 0, sCutting, dSawDiam, vtOrthoO, dVzLimDwnUp, dExtraCut, BD.CUT_SIC, 0, 0, 0, sNotes, b3Raw, nil, nil, bSpecialTangentLeadInOut, bForceTangentLeadInOut, vtOrthoOAlternative)
|
||||||
if not bOk then return bOk, sErr end
|
if not bOk then return bOk, sErr end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -821,7 +822,7 @@ end
|
|||||||
|
|
||||||
---------------------------------------------------------------------
|
---------------------------------------------------------------------
|
||||||
-- Applicazione della lavorazione
|
-- Applicazione della lavorazione
|
||||||
function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom, bCustDiceCut, bForced, b3Raw, sNotes, dOvmTail, bUpdateIng, nLimitingSurf)
|
function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom, bCustDiceCut, bForced, b3Raw, sNotes, dOvmTail, bUpdateIng, nLimitingSurf, bForceTangentLeadInOut)
|
||||||
-- sovramateriale di coda
|
-- sovramateriale di coda
|
||||||
dOvmTail = dOvmTail or BD.OVM_MID
|
dOvmTail = dOvmTail or BD.OVM_MID
|
||||||
-- ingombro del grezzo
|
-- ingombro del grezzo
|
||||||
@@ -860,7 +861,7 @@ function ProcessCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom,
|
|||||||
local bNoDicing = false
|
local bNoDicing = false
|
||||||
-- se taglio con testa da sopra
|
-- se taglio con testa da sopra
|
||||||
if not bDownHead and not bDownTurn then
|
if not bDownHead and not bDownTurn then
|
||||||
local bOk, sErr, bNoDicing2 = MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom, bCustDiceCut, bForced, b3Raw, sNotes, nLimitingSurf)
|
local bOk, sErr, bNoDicing2 = MakeFromTop( sCutting, Proc, nPhase, nRawId, nPartId, dOvmHead, bFromBottom, bCustDiceCut, bForced, b3Raw, sNotes, nLimitingSurf, bForceTangentLeadInOut)
|
||||||
bNoDicing = bNoDicing2
|
bNoDicing = bNoDicing2
|
||||||
if not bOk then return false, sErr end
|
if not bOk then return false, sErr end
|
||||||
-- altrimenti taglio con testa da sotto
|
-- altrimenti taglio con testa da sotto
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
-- 2024/03/13 Aggiunta gestione Predrill
|
-- 2024/03/13 Aggiunta gestione Predrill
|
||||||
-- 2024/03/18 Per Predrill corretta direzione estrusione per fori con direzione verso il basso
|
-- 2024/03/18 Per Predrill corretta direzione estrusione per fori con direzione verso il basso
|
||||||
-- 2024/09/04 Gestione dipendenza foro-tasca in caso di fase con pezzo ribaltato
|
-- 2024/09/04 Gestione dipendenza foro-tasca in caso di fase con pezzo ribaltato
|
||||||
|
-- 2024/09/10 In GetData corretta gestione modifica diametro foro
|
||||||
|
|
||||||
-- Tabella per definizione modulo
|
-- Tabella per definizione modulo
|
||||||
local ProcessDrill = {}
|
local ProcessDrill = {}
|
||||||
@@ -102,9 +103,10 @@ function ProcessDrill.GetData( Proc, b3Raw)
|
|||||||
local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i')
|
local AuxId = EgtGetInfo( Proc.Id, 'AUXID', 'i')
|
||||||
-- verifico se foro da adattare
|
-- verifico se foro da adattare
|
||||||
if EgtExistsInfo( Proc.Id, 'DiamUser') then
|
if EgtExistsInfo( Proc.Id, 'DiamUser') then
|
||||||
if AuxId then AuxId = AuxId + Proc.Id end
|
local nNewAuxId
|
||||||
if AuxId and EgtGetType( AuxId) == GDB_TY.CRV_ARC and BD.USER_HOLE_DIAM and BD.USER_HOLE_DIAM > 1 then
|
if AuxId then nNewAuxId = AuxId + Proc.Id end
|
||||||
EgtModifyArcRadius( AuxId, BD.USER_HOLE_DIAM / 2)
|
if AuxId and EgtGetType( nNewAuxId) == GDB_TY.CRV_ARC and BD.USER_HOLE_DIAM and BD.USER_HOLE_DIAM > 1 then
|
||||||
|
EgtModifyArcRadius( nNewAuxId, BD.USER_HOLE_DIAM / 2)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- recupero diametro e lunghezza
|
-- recupero diametro e lunghezza
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ local function AddVerticalPreCuts( Proc, sCutting, dCutXOffset, b3Raw)
|
|||||||
for j = nVerticalCuts, 1, -1 do
|
for j = nVerticalCuts, 1, -1 do
|
||||||
local nFaceUse = MCH_MILL_FU.PARAL_FRONT
|
local nFaceUse = MCH_MILL_FU.PARAL_FRONT
|
||||||
local dVerticalCutOffset = dVerticalSliceHeight * -j
|
local dVerticalCutOffset = dVerticalSliceHeight * -j
|
||||||
local bForceTangentLeadInOut = BD.PRESS_ROLLER
|
local bForceTangentLeadInOut = BD.PRESS_ROLLER and not BD.DOWN_HEAD
|
||||||
bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nFaceUse, nil, -0.1 -dCutXOffset, BD.CUT_SIC, dVerticalCutOffset, 0, 0, '', b3Raw, nil, nil, nil, bForceTangentLeadInOut)
|
bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nFaceUse, nil, -0.1 -dCutXOffset, BD.CUT_SIC, dVerticalCutOffset, 0, 0, '', b3Raw, nil, nil, nil, bForceTangentLeadInOut)
|
||||||
if not bOk then return bOk, sErr end
|
if not bOk then return bOk, sErr end
|
||||||
end
|
end
|
||||||
@@ -252,7 +252,7 @@ local function MakeStandardCuts( Proc, b3Raw, nCuts, dOffsetBetweenCuts, HeadCut
|
|||||||
if not bOk then return false, sErr end
|
if not bOk then return false, sErr end
|
||||||
end
|
end
|
||||||
-- taglio verticale
|
-- taglio verticale
|
||||||
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, Cutting1Data.sCutting, Cutting1Data.dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutXOffset, dAccStart, dAccEnd, '', b3Raw)
|
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, Cutting1Data.sCutting, Cutting1Data.dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutXOffset, dAccStart, dAccEnd, '', b3Raw, true)
|
||||||
if not bOk then return bOk, sErr end
|
if not bOk then return bOk, sErr end
|
||||||
end
|
end
|
||||||
return true, sWarn
|
return true, sWarn
|
||||||
@@ -290,7 +290,7 @@ local function MakeStandardCuts( Proc, b3Raw, nCuts, dOffsetBetweenCuts, HeadCut
|
|||||||
if i == 1 and HeadCutType.sType =='Precut' then
|
if i == 1 and HeadCutType.sType =='Precut' then
|
||||||
dCutOffset = dStartOffset
|
dCutOffset = dStartOffset
|
||||||
end
|
end
|
||||||
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, Cutting1Data.sCutting, Cutting1Data.dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, '', b3Raw)
|
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, Cutting1Data.sCutting, Cutting1Data.dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, '', b3Raw, true)
|
||||||
if not bOk then return false, sErr end
|
if not bOk then return false, sErr end
|
||||||
end
|
end
|
||||||
-- altrimenti necessari tagli da sopra e sotto con testa opportuna
|
-- altrimenti necessari tagli da sopra e sotto con testa opportuna
|
||||||
@@ -494,7 +494,11 @@ function ProcessHeadCut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, bNeedHCut
|
|||||||
end
|
end
|
||||||
-- tagli aggiuntivi non necessari
|
-- tagli aggiuntivi non necessari
|
||||||
else
|
else
|
||||||
bOk, sErr = Cut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, nil, false, true)
|
local bForceTangentLeadInOut = false
|
||||||
|
if BD.PRESS_ROLLER then
|
||||||
|
bForceTangentLeadInOut = true
|
||||||
|
end
|
||||||
|
bOk, sErr = Cut.Make( Proc, nPhase, nRawId, nPartId, dOvmHead, nil, false, true, nil, nil, nil, nil, nil, bForceTangentLeadInOut)
|
||||||
end
|
end
|
||||||
return bOk, sErr
|
return bOk, sErr
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -781,7 +781,7 @@ function ProcessLapJoint.IsTailFeature( Proc, b3Raw)
|
|||||||
-- verifico se è in coda
|
-- verifico se è in coda
|
||||||
local dEndDist = Proc.Box:getMin():getX() - b3Solid:getMin():getX()
|
local dEndDist = Proc.Box:getMin():getX() - b3Solid:getMin():getX()
|
||||||
if dEndDist > BD.MAX_DIST_HTFEA then
|
if dEndDist > BD.MAX_DIST_HTFEA then
|
||||||
if bUseBHSideMill and ( Proc.Box:getMax():getX() - b3Solid:getMin():getX()) < 400 then
|
if not( BD.BH_MACHINE) and bUseBHSideMill and ( Proc.Box:getMax():getX() - b3Solid:getMin():getX()) < 400 then
|
||||||
return true
|
return true
|
||||||
else
|
else
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -1393,7 +1393,7 @@ function ProcessLong2Cut.Make( Proc, nPhase, nRawId, nPartId, bForcedBladeMaster
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if not Proc.MoveAfterSplit and not bEndFixed and not bConvex then
|
if not Proc.bMoveAfterSplit and not bEndFixed and not bConvex then
|
||||||
-- recupero gruppo per geometria addizionale
|
-- recupero gruppo per geometria addizionale
|
||||||
local nAddGrpId = BL.GetAddGroup( nPartId)
|
local nAddGrpId = BL.GetAddGroup( nPartId)
|
||||||
if not nAddGrpId then
|
if not nAddGrpId then
|
||||||
|
|||||||
@@ -352,7 +352,7 @@ local function AddVerticalPreCuts( Proc, sCutting, dCutXOffset, b3Raw, sNotes)
|
|||||||
for j = nVerticalCuts, 1, -1 do
|
for j = nVerticalCuts, 1, -1 do
|
||||||
local nFaceUse = MCH_MILL_FU.PARAL_FRONT
|
local nFaceUse = MCH_MILL_FU.PARAL_FRONT
|
||||||
local dVerticalCutOffset = dVerticalSliceHeight * -j
|
local dVerticalCutOffset = dVerticalSliceHeight * -j
|
||||||
local bForceTangentLeadInOut = BD.PRESS_ROLLER
|
local bForceTangentLeadInOut = BD.PRESS_ROLLER and not BD.DOWN_HEAD
|
||||||
bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nFaceUse, nil, -0.1 -dCutXOffset, BD.CUT_SIC, dVerticalCutOffset, 0, 0, sNotes, b3Raw, nil, nil, nil, bForceTangentLeadInOut)
|
bOk, sErr = Fbs.MakeOne( Proc.Id, 0, sCutting, dSawDiam, nFaceUse, nil, -0.1 -dCutXOffset, BD.CUT_SIC, dVerticalCutOffset, 0, 0, sNotes, b3Raw, nil, nil, nil, bForceTangentLeadInOut)
|
||||||
if not bOk then return bOk, sErr end
|
if not bOk then return bOk, sErr end
|
||||||
end
|
end
|
||||||
@@ -438,7 +438,7 @@ local function MakeStandardCuts( Proc, b3Raw, nCuts, dOffsetBetweenCuts, TailCut
|
|||||||
if i == 1 and TailCutType.sType ~= 'Precut' then
|
if i == 1 and TailCutType.sType ~= 'Precut' then
|
||||||
sInfo = 'Cut'
|
sInfo = 'Cut'
|
||||||
end
|
end
|
||||||
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, Cutting1Data.sCutting, Cutting1Data.dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutXOffset, dAccStart, dAccEnd, sInfo, b3Raw)
|
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, Cutting1Data.sCutting, Cutting1Data.dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutXOffset, dAccStart, dAccEnd, sInfo, b3Raw, true)
|
||||||
if not bOk then return false, sErr end
|
if not bOk then return false, sErr end
|
||||||
end
|
end
|
||||||
return true, sWarn
|
return true, sWarn
|
||||||
@@ -488,7 +488,7 @@ local function MakeStandardCuts( Proc, b3Raw, nCuts, dOffsetBetweenCuts, TailCut
|
|||||||
if i == nCuts and TailCutType.bHorizCut and BD.C_SIMM and not BD.DOWN_HEAD then
|
if i == nCuts and TailCutType.bHorizCut and BD.C_SIMM and not BD.DOWN_HEAD then
|
||||||
sNotes = EgtSetValInNotes( sNotes, 'StartZmax', 2)
|
sNotes = EgtSetValInNotes( sNotes, 'StartZmax', 2)
|
||||||
end
|
end
|
||||||
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, Cutting1Data.sCutting, Cutting1Data.dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, sNotes, b3Raw)
|
local bOk, sErr = Fbs.MakeOne( Proc.Id, 0, Cutting1Data.sCutting, Cutting1Data.dSawDiam, nOrthoOpposite, nil, dCutExtra, BD.CUT_SIC, dCutOffset, dAccStart, dAccEnd, sNotes, b3Raw, true)
|
||||||
if not bOk then return false, sErr end
|
if not bOk then return false, sErr end
|
||||||
end
|
end
|
||||||
-- altrimenti necessari tagli da sopra e sotto con testa opportuna
|
-- altrimenti necessari tagli da sopra e sotto con testa opportuna
|
||||||
@@ -766,7 +766,11 @@ function ProcessSplit.Make( Proc, nPhase, nRawId, nPartId, nOrd, sDownOrSideOrSt
|
|||||||
end
|
end
|
||||||
-- tagli aggiuntivi non necessari
|
-- tagli aggiuntivi non necessari
|
||||||
else
|
else
|
||||||
bOk, sErr = Cut.Make( Proc, nNewPhase, nRawId, nPartId, dMaxElev, nil, false, true, b3Raw, sNotes, dCurrOvmT)
|
local bForceTangentLeadInOut = false
|
||||||
|
if BD.PRESS_ROLLER then
|
||||||
|
bForceTangentLeadInOut = true
|
||||||
|
end
|
||||||
|
bOk, sErr = Cut.Make( Proc, nNewPhase, nRawId, nPartId, dMaxElev, nil, false, true, b3Raw, sNotes, dCurrOvmT, nil, nil, bForceTangentLeadInOut)
|
||||||
end
|
end
|
||||||
if sNotesFinal then
|
if sNotesFinal then
|
||||||
EgtSetMachiningParam( MCH_MP.USERNOTES, sNotesFinal)
|
EgtSetMachiningParam( MCH_MP.USERNOTES, sNotesFinal)
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ EgtEnableDebug( false)
|
|||||||
--NEST.MACHINE = 'Essetre-90480019_MW'
|
--NEST.MACHINE = 'Essetre-90480019_MW'
|
||||||
--NEST.FLAG = 3
|
--NEST.FLAG = 3
|
||||||
|
|
||||||
local sLog = ' +++ BeamNestProcess : ' .. NEST.FILE .. ', ' .. NEST.MACHINE .. ', ' .. LEN["1"]
|
local sLog = ' +++ BeamNestProcess : ' .. NEST.FILE .. ', ' .. NEST.MACHINE .. ', ' .. LEN[1]
|
||||||
EgtOutLog( sLog)
|
EgtOutLog( sLog)
|
||||||
|
|
||||||
-- flag per abilitare statistiche in log
|
-- flag per abilitare statistiche in log
|
||||||
|
|||||||
@@ -1,5 +1,23 @@
|
|||||||
==== Beam Update Log ====
|
==== Beam Update Log ====
|
||||||
|
|
||||||
|
Versione 2.6i2 (13/09/2024)
|
||||||
|
- Modif : in FacesBySaw si invertono gli accorciamenti solo se l'inversione del percorso non è forzata dall'esterno; adeguati HeadCut e Split
|
||||||
|
- Modif : in nesting correzione in lettura array per cambio dll di lettura
|
||||||
|
- Modif : in BatchProcess e New, in caso sia richiesta generazione senza check, verifico prima che il file log specifico non contenga errori: se sì, forzo il check
|
||||||
|
- Modif : in FacesBySaw per settare il FaceUse si usa il versore nelle UserNotes
|
||||||
|
- Modif : in HeadCut, Split modifiche ai tagli aggiuntivi orizzontali e verticali; disattivati attacchi tangenziali per tagli aggiuntivi verticali in PF1250
|
||||||
|
- Fixed : in ProcessDrill In GetData corretta gestione modifica diametro foro
|
||||||
|
|
||||||
|
Versione 2.6i1 (09/09/2024)
|
||||||
|
- Added : refactoring e modifiche a HeadCut e Split per introduzione pretagli a zero sul grezzo, per evitare problemi con pezzi non lunghi quanto ci si aspetta
|
||||||
|
- Added : in Mark, gestita la lavorazione del testo
|
||||||
|
- Modif : gestione dipendenza foro-tasca in caso di fase con pezzo ribaltato
|
||||||
|
- Modif : in Headcut e Split aggiunta gestione parametro MIN_HEIGHT_ADDED_CUTS da BeamData per scegliere l'altezza minima per cui devono essere aggiunti i tagli orizzontali supplementari
|
||||||
|
- Modif : se Lapjoint attraversata da L055, la lapjoint viene fatta prima
|
||||||
|
- Modif : in ScarfJoint, in dicing, tagli paralleli fatti con unico passaggio di fianco per evitare che il cubetto rimanga appoggiato al motore
|
||||||
|
- Fixed : corretto caso di groove lunga passante a 3 facce che non veniva lavorata
|
||||||
|
- Fixed : in FacesBySaw -> MakeOne corretta gestione lato di lavoro quando il percorso è orizzontale
|
||||||
|
|
||||||
Versione 2.6h2 (26/08/2024)
|
Versione 2.6h2 (26/08/2024)
|
||||||
- Added : in BatchProcess e New si verifica l'abilitazione alla generazione con EgtVerifyKeyOption
|
- Added : in BatchProcess e New si verifica l'abilitazione alla generazione con EgtVerifyKeyOption
|
||||||
- Modif : in FacesBySaw introdotti attacchi tangenziali solo da un lato, limitati a facce con Z negative
|
- Modif : in FacesBySaw introdotti attacchi tangenziali solo da un lato, limitati a facce con Z negative
|
||||||
|
|||||||
+2
-2
@@ -2,5 +2,5 @@
|
|||||||
-- Gestione della versione di Beam
|
-- Gestione della versione di Beam
|
||||||
|
|
||||||
NAME = 'Beam'
|
NAME = 'Beam'
|
||||||
VERSION = '2.6h2'
|
VERSION = '2.6i2'
|
||||||
MIN_EXE = '2.6h1'
|
MIN_EXE = '2.6e5'
|
||||||
|
|||||||
Reference in New Issue
Block a user