|
|
|
@@ -1066,6 +1066,12 @@ local function MakeOneFaceByMill( Proc, nPhase, nRawId, nPartId)
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- eventuale segnalazione ingombro di testa o coda
|
|
|
|
|
UpdateEncumbrance( Proc, nRawId, b3Raw, b3Solid)
|
|
|
|
@@ -1203,6 +1209,12 @@ local function MakeTwoFacesByMill( Proc, nPhase, nRawId, nPartId, bDownHead)
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@@ -1238,6 +1250,12 @@ local function MakeTwoFacesByMill( Proc, nPhase, nRawId, nPartId, bDownHead)
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- eventuale segnalazione ingombro di testa o coda
|
|
|
|
|
UpdateEncumbrance( Proc, nRawId, b3Raw, b3Solid)
|
|
|
|
@@ -1407,6 +1425,12 @@ local function MakeByMill( Proc, nPhase, nRawId, nPartId, nFacInd, rfFac, dH, dV
|
|
|
|
|
_, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
return true, '', dTDiam
|
|
|
|
|
end
|
|
|
|
@@ -2458,6 +2482,83 @@ local function MakeContourByMill( Proc, idContourPath, vtTunnelDirection, dTunne
|
|
|
|
|
|
|
|
|
|
local bOppositMillingReachesHalfDepth = ToolOpposite.MaxDepth > dTunnelDepth / 2 + dCollSic - dDimStrip / 2
|
|
|
|
|
|
|
|
|
|
-- eventuale lavorazione opposta
|
|
|
|
|
local bMillingOppositeOk
|
|
|
|
|
if bOppositeMillingNeeded then
|
|
|
|
|
local sName = 'ContourOppo_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id))
|
|
|
|
|
local idMachining = EgtAddMachining( sName, sMillingOpposite)
|
|
|
|
|
if not idMachining then
|
|
|
|
|
local sErr = 'Error : impossible add machining ' .. sName .. '-' .. sMilling
|
|
|
|
|
return false, sErr
|
|
|
|
|
end
|
|
|
|
|
-- geometria
|
|
|
|
|
EgtSetMachiningGeometry( {{ idContourPath, -1}})
|
|
|
|
|
-- lato di lavoro sinistro
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.WORKSIDE, MCH_MILL_WS.RIGHT)
|
|
|
|
|
-- inversione direzione utensile
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.TOOLINVERT, true)
|
|
|
|
|
-- SCC
|
|
|
|
|
local nSCC = MCH_SCC.NONE
|
|
|
|
|
if not BD.C_SIMM then
|
|
|
|
|
if AreSameOrOppositeVectorApprox( vtTunnelDirection, Z_AX()) then
|
|
|
|
|
nSCC = MCH_SCC.ADIR_YM
|
|
|
|
|
elseif abs( vtTunnelDirection:getX()) < 0.1 then
|
|
|
|
|
nSCC = EgtIf( BL.IsPartFinalPhase( nPhase), MCH_SCC.ADIR_XM, MCH_SCC.ADIR_XP)
|
|
|
|
|
elseif vtTunnelDirection:getY() < GEO.EPS_SMALL then
|
|
|
|
|
nSCC = MCH_SCC.ADIR_YM
|
|
|
|
|
else
|
|
|
|
|
nSCC = MCH_SCC.ADIR_YP
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.SCC, nSCC)
|
|
|
|
|
-- gestione attacco e uscita
|
|
|
|
|
if EgtCurveIsClosed( idContourPath) then
|
|
|
|
|
-- attacco e uscita a quarto di cerchio senza allungamenti a inizio e fine
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_MILL_LI.TANGENT)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MCH_MILL_LO.AS_LI)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LITANG, 0)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LIPERP, 0.5 * Tool.Diameter)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LIELEV, 0)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.STARTADDLEN, 0)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.ENDADDLEN, 0)
|
|
|
|
|
else
|
|
|
|
|
-- nessun attacco e uscita, allungo inizio e fine di raggio utensile + 5mm (per evitare controllo collisioni)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_MILL_LI.NONE)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MCH_MILL_LO.AS_LI)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.STARTADDLEN, Tool.Diameter / 2 + 5)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.ENDADDLEN, Tool.Diameter / 2 + 5)
|
|
|
|
|
end
|
|
|
|
|
-- affondamento - la curva è a metà tasca quindi affondamento 0 significa che la lavorazione arriva a metà tasca
|
|
|
|
|
local dDepth
|
|
|
|
|
-- si arriva a metà tasca
|
|
|
|
|
if bOppositMillingReachesHalfDepth then
|
|
|
|
|
dDepth = -dDimStrip / 2
|
|
|
|
|
-- si arriva al massimo raggiungibile
|
|
|
|
|
else
|
|
|
|
|
dDepth = Tool.MaxDepth - dTunnelDepth / 2 - dCollSic
|
|
|
|
|
bIncomplete = true
|
|
|
|
|
end
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.DEPTH, dDepth)
|
|
|
|
|
-- Note utente con dichiarazione nessuna generazione sfridi per Vmill e massima elevazione
|
|
|
|
|
local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES) or ''
|
|
|
|
|
sUserNotes = EgtSetValInNotes( sUserNotes, 'VMRS', 0)
|
|
|
|
|
sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', EgtNumToString( dTunnelDepth / 2 + dDepth, 1))
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes)
|
|
|
|
|
-- eseguo
|
|
|
|
|
if ML.ApplyMachining( true, false) then
|
|
|
|
|
_, sApplyWarning = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( idMachining, false)
|
|
|
|
|
end
|
|
|
|
|
bMillingOppositeOk = true
|
|
|
|
|
-- altrimenti lavorazione non applicata
|
|
|
|
|
else
|
|
|
|
|
_, sApplyWarning = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( idMachining, false)
|
|
|
|
|
bMillingOppositeOk = false
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- applicazione lavorazione lato principale
|
|
|
|
|
local sName = 'Contour_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id))
|
|
|
|
|
local idMachining = EgtAddMachining( sName, sMilling)
|
|
|
|
@@ -2546,83 +2647,6 @@ local function MakeContourByMill( Proc, idContourPath, vtTunnelDirection, dTunne
|
|
|
|
|
bMillingOk = false
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- eventuale lavorazione opposta
|
|
|
|
|
local bMillingOppositeOk
|
|
|
|
|
if bOppositeMillingNeeded then
|
|
|
|
|
local sName = 'ContourOppo_' .. ( EgtGetName( Proc.Id) or tostring( Proc.Id))
|
|
|
|
|
local idMachining = EgtAddMachining( sName, sMillingOpposite)
|
|
|
|
|
if not idMachining then
|
|
|
|
|
local sErr = 'Error : impossible add machining ' .. sName .. '-' .. sMilling
|
|
|
|
|
return false, sErr
|
|
|
|
|
end
|
|
|
|
|
-- geometria
|
|
|
|
|
EgtSetMachiningGeometry( {{ idContourPath, -1}})
|
|
|
|
|
-- lato di lavoro sinistro
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.WORKSIDE, MCH_MILL_WS.RIGHT)
|
|
|
|
|
-- inversione direzione utensile
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.TOOLINVERT, true)
|
|
|
|
|
-- SCC
|
|
|
|
|
local nSCC = MCH_SCC.NONE
|
|
|
|
|
if not BD.C_SIMM then
|
|
|
|
|
if AreSameOrOppositeVectorApprox( vtTunnelDirection, Z_AX()) then
|
|
|
|
|
nSCC = MCH_SCC.ADIR_YM
|
|
|
|
|
elseif abs( vtTunnelDirection:getX()) < 0.1 then
|
|
|
|
|
nSCC = EgtIf( BL.IsPartFinalPhase( nPhase), MCH_SCC.ADIR_XM, MCH_SCC.ADIR_XP)
|
|
|
|
|
elseif vtTunnelDirection:getY() < GEO.EPS_SMALL then
|
|
|
|
|
nSCC = MCH_SCC.ADIR_YM
|
|
|
|
|
else
|
|
|
|
|
nSCC = MCH_SCC.ADIR_YP
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.SCC, nSCC)
|
|
|
|
|
-- gestione attacco e uscita
|
|
|
|
|
if EgtCurveIsClosed( idContourPath) then
|
|
|
|
|
-- attacco e uscita a quarto di cerchio senza allungamenti a inizio e fine
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_MILL_LI.TANGENT)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MCH_MILL_LO.AS_LI)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LITANG, 0)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LIPERP, 0.5 * Tool.Diameter)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LIELEV, 0)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.STARTADDLEN, 0)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.ENDADDLEN, 0)
|
|
|
|
|
else
|
|
|
|
|
-- nessun attacco e uscita, allungo inizio e fine di raggio utensile + 5mm (per evitare controllo collisioni)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_MILL_LI.NONE)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MCH_MILL_LO.AS_LI)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.STARTADDLEN, Tool.Diameter / 2 + 5)
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.ENDADDLEN, Tool.Diameter / 2 + 5)
|
|
|
|
|
end
|
|
|
|
|
-- affondamento - la curva è a metà tasca quindi affondamento 0 significa che la lavorazione arriva a metà tasca
|
|
|
|
|
local dDepth
|
|
|
|
|
-- si arriva a metà tasca
|
|
|
|
|
if bOppositMillingReachesHalfDepth then
|
|
|
|
|
dDepth = -dDimStrip / 2
|
|
|
|
|
-- si arriva al massimo raggiungibile
|
|
|
|
|
else
|
|
|
|
|
dDepth = Tool.MaxDepth - dTunnelDepth / 2 - dCollSic
|
|
|
|
|
bIncomplete = true
|
|
|
|
|
end
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.DEPTH, dDepth)
|
|
|
|
|
-- Note utente con dichiarazione nessuna generazione sfridi per Vmill e massima elevazione
|
|
|
|
|
local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES) or ''
|
|
|
|
|
sUserNotes = EgtSetValInNotes( sUserNotes, 'VMRS', 0)
|
|
|
|
|
sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', EgtNumToString( dTunnelDepth / 2 + dDepth, 1))
|
|
|
|
|
EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes)
|
|
|
|
|
-- eseguo
|
|
|
|
|
if ML.ApplyMachining( true, false) then
|
|
|
|
|
_, sApplyWarning = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( idMachining, false)
|
|
|
|
|
end
|
|
|
|
|
bMillingOppositeOk = true
|
|
|
|
|
-- altrimenti lavorazione non applicata
|
|
|
|
|
else
|
|
|
|
|
_, sApplyWarning = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( idMachining, false)
|
|
|
|
|
bMillingOppositeOk = false
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
if bMillingOk or ( bOppositeMillingNeeded and bMillingOppositeOk) then
|
|
|
|
|
local sWarning = ''
|
|
|
|
|
if bIncomplete then
|
|
|
|
@@ -2977,6 +3001,12 @@ local function MakeChamfer( Proc, bIs3Faces, nAddGrpId, vtOrtho, b3Solid, nSurfI
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchId, false)
|
|
|
|
|
return -1, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- se non perpendicolare emetto un warning
|
|
|
|
|
-- else
|
|
|
|
@@ -3130,6 +3160,12 @@ local function MakeByMillAsSaw( Proc, nPhase, nRawId, nPartId, nFacInd,
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- in base all'elevazione calcolo l'impronta della lama
|
|
|
|
@@ -3852,6 +3888,12 @@ local function MakePocket( Proc, nPartId, b3Solid, ptPs, tvtN, nFaceRef, sMchFin
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- se la lavorazione rovina il pezzo successivo emetto warning
|
|
|
|
|
if ( not Proc.Tail or Proc.AdvTail) and Proc.AffectedFaces.Left and dDistToNextPiece < dDiamTool / 2 then
|
|
|
|
@@ -3969,6 +4011,12 @@ local function MachineByMill( Proc, nPhase, nRawId, nPartId, b3Solid, tvtN, nBas
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
return false, sWarn
|
|
|
|
@@ -4096,6 +4144,12 @@ local function MachineByMill( Proc, nPhase, nRawId, nPartId, b3Solid, tvtN, nBas
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@@ -4539,6 +4593,12 @@ local function MakeByPockets( Proc, nPhase, nRawId, nPartId, nChamfer, dDepthCha
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return -1, sErr
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- se non completo e U, cerco di lavorare anche la faccia di fondo (con il massimo affondamento possibile)
|
|
|
|
@@ -4610,6 +4670,12 @@ local function MakeByPockets( Proc, nPhase, nRawId, nPartId, nChamfer, dDepthCha
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return -1, sErr
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@@ -4722,6 +4788,12 @@ local function ManageAntiSplintBySaw( Proc, b3Raw, b3Solid, bIsU, vtN, nFacInd,
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nIdMach, false)
|
|
|
|
|
return false, false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nIdMach, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@@ -7163,6 +7235,12 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- se divisa in due metà
|
|
|
|
|
if bDouble then
|
|
|
|
@@ -7183,6 +7261,12 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchFNId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFNId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@@ -7263,6 +7347,12 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- CASO SPECIALE 3 FACCE (se rimane esclusa molta sezione trasversale complessiva della feature, solo per feature 20)
|
|
|
|
@@ -7378,6 +7468,12 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- se abilitato dal parametro Q inserisco foro sullo spigolo
|
|
|
|
|
if EgtGetInfo( Proc.Id, Q_BORE_ON_CORNER, 'i') == 1 then
|
|
|
|
@@ -8559,6 +8655,12 @@ local function MakeStaircaseStep( Proc, nRawId, b3Raw, nPartId)
|
|
|
|
|
local _, sErr = EgtGetLastMachMgrError()
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sErr
|
|
|
|
|
else
|
|
|
|
|
local _, sWarn = EgtGetMachMgrWarning( 0)
|
|
|
|
|
if EgtIsMachiningEmpty() then
|
|
|
|
|
EgtSetOperationMode( nMchFId, false)
|
|
|
|
|
return false, sWarn
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
-- eventuale segnalazione ingombro di testa o coda
|
|
|
|
|
UpdateEncumbrance( Proc, nRawId, b3Raw, b3Solid)
|
|
|
|
|