- Creazione lista MACHINING
- STR0002 adeguata a nuovo standard - MachiningLib.AddNewMachining salva lavorazione in lista MACHINING - MachiningLib.AddOperations inseriwsce effettivamente lavorazione
This commit is contained in:
+11
-4
@@ -29,6 +29,7 @@ EgtMdbSave()
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
TOOLS = nil
|
||||
STRATEGIES = nil
|
||||
MACHININGS = nil
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- *** COSTANTI *** TODO -> DA SPOSTARE IN BEAMDATA???
|
||||
@@ -825,7 +826,9 @@ end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- esegue le strategie migliori che ha precedentemente scelto
|
||||
local function ExecPieceFeatures( vProc, Part)
|
||||
local function CalculateMachinings( vProc, Part)
|
||||
local bAreAllApplyOk = true
|
||||
MACHININGS = {}
|
||||
-- applico le strategie scelte
|
||||
for i = 1, #vProc do
|
||||
-- processo tutte le feature attive applicando le lavorazioni
|
||||
@@ -835,7 +838,7 @@ local function ExecPieceFeatures( vProc, Part)
|
||||
local StrategyScriptName = Proc.ChosenStrategy.sStrategyId .. '\\' .. Proc.ChosenStrategy.sStrategyId
|
||||
local StrategyScript = require( StrategyScriptName)
|
||||
-- eseguo la strategia e si applicano le lavorazioni. Si passa la Proc e i parametri personalizzati
|
||||
Proc = StrategyScript.Make( true, Proc, Part, Proc.ChosenStrategy.Parameters)
|
||||
bAreAllApplyOk, _ = StrategyScript.Make( true, Proc, Part, Proc.ChosenStrategy.Parameters)
|
||||
end
|
||||
end
|
||||
return vProc
|
||||
@@ -959,13 +962,17 @@ end
|
||||
vProc = OrderFeatures( vProc)
|
||||
|
||||
-- TODO da fare
|
||||
-- esegue le strategie migliori che ha precedentemente scelto
|
||||
ExecPieceFeatures( vProc, Part)
|
||||
MACHININGS = {}
|
||||
-- esegue le strategie migliori che ha precedentemente scelto e salva le lavorazioni nella lista globale
|
||||
CalculateMachinings( vProc, Part)
|
||||
|
||||
-- TODO riordinare lavorazioni ottimizzando cambio utensile/spezzone ecc..., mantenendo dipendenze definite prima
|
||||
-- ordino le lavorazioni
|
||||
-- OrderMachining( vProc, Part)
|
||||
|
||||
-- aggiunge effettivamente le lavorazioni
|
||||
MachiningLib.AddOperations( vProc, Part)
|
||||
|
||||
|
||||
-- TODO da rimuovere o lasciare solo per debug
|
||||
if EgtGetDebugLevel() >= 3 then
|
||||
|
||||
+162
-153
@@ -291,192 +291,201 @@ function MachiningLib.FindChainSaw( Proc, ToolSearchParameters)
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- funzione per aggiungere una nuova lavorazione
|
||||
-- TODO da fare
|
||||
function MachiningLib.AddNewMachining( Proc, Machining)
|
||||
local nErr
|
||||
local sErr = ''
|
||||
|
||||
-- salva in lista globale la lavorazione appena calcolata
|
||||
function MachiningLib.AddNewMachining( ProcToAdd, MachiningToAdd)
|
||||
-- Controllo parametri obbligatori
|
||||
if not Machining.nType or not Machining.nToolIndex or not Machining.Geometry or not Proc.id then
|
||||
return false, sErr
|
||||
if not MachiningToAdd.nType or not MachiningToAdd.nToolIndex or not MachiningToAdd.Geometry or not ProcToAdd.id then
|
||||
return false
|
||||
end
|
||||
|
||||
-- Drilling
|
||||
if Machining.nType == MCH_MY.DRILLING then
|
||||
Machining.sTypeName = 'Drill_'
|
||||
if MachiningToAdd.nType == MCH_MY.DRILLING then
|
||||
MachiningToAdd.sTypeName = 'Drill_'
|
||||
-- Milling
|
||||
elseif Machining.nType == MCH_MY.MILLING then
|
||||
elseif MachiningToAdd.nType == MCH_MY.MILLING then
|
||||
-- se utensile lama
|
||||
if TOOLS[Machining.nToolIndex].sFamily == 'SAWBLADE' then
|
||||
Machining.sTypeName = 'Cut_'
|
||||
if TOOLS[MachiningToAdd.nToolIndex].sFamily == 'SAWBLADE' then
|
||||
MachiningToAdd.sTypeName = 'Cut_'
|
||||
else
|
||||
Machining.sTypeName = 'Mill_'
|
||||
MachiningToAdd.sTypeName = 'Mill_'
|
||||
end
|
||||
-- Pocketing
|
||||
elseif Machining.nType == MCH_MY.POCKETING then
|
||||
Machining.sTypeName = 'Pocket_'
|
||||
elseif MachiningToAdd.nType == MCH_MY.POCKETING then
|
||||
MachiningToAdd.sTypeName = 'Pocket_'
|
||||
-- Mortising
|
||||
elseif Machining.nType == MCH_MY.MORTISING then
|
||||
Machining.sTypeName = 'ChSaw_'
|
||||
elseif MachiningToAdd.nType == MCH_MY.MORTISING then
|
||||
MachiningToAdd.sTypeName = 'ChSaw_'
|
||||
end
|
||||
|
||||
-- se nome non definito, assegno alla lavorazioen un nome standard
|
||||
if not Machining.sOperationName then
|
||||
Machining.sOperationName = Machining.sTypeName .. ( EgtGetName( Proc.id) or tostring( Proc.id)) .. '_' .. tostring( Machining.idFaceToMachine)
|
||||
if not MachiningToAdd.sOperationName then
|
||||
MachiningToAdd.sOperationName = MachiningToAdd.sTypeName .. ( EgtGetName( ProcToAdd.id) or tostring( ProcToAdd.id)) .. '_' .. tostring( MachiningToAdd.idFaceToMachine)
|
||||
end
|
||||
if not Machining.sToolName then
|
||||
Machining.sToolName = TOOLS[Machining.nToolIndex].sName
|
||||
if not MachiningToAdd.sToolName then
|
||||
MachiningToAdd.sToolName = TOOLS[MachiningToAdd.nToolIndex].sName
|
||||
end
|
||||
local MachiningAppo = {}
|
||||
MachiningAppo.Proc = ProcToAdd
|
||||
MachiningAppo.Machining = MachiningToAdd
|
||||
table.insert( MACHININGS, MachiningAppo)
|
||||
return true
|
||||
end
|
||||
|
||||
-- creazione lavorazione
|
||||
local nOperationId = EgtCreateMachining( Machining.sOperationName, Machining.nType, Machining.sToolName)
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
-- funzione per aggiungere una nuova lavorazione
|
||||
function MachiningLib.AddOperations( vProc, Part)
|
||||
local nErr
|
||||
local sErr = ''
|
||||
|
||||
if nOperationId then
|
||||
-- impostazione geometria
|
||||
EgtSetMachiningGeometry( Machining.Geometry)
|
||||
for i = 1, #MACHININGS do
|
||||
-- creazione lavorazione
|
||||
local nOperationId = EgtCreateMachining( MACHININGS[i].Machining.sOperationName, MACHININGS[i].Machining.nType, MACHININGS[i].Machining.sToolName)
|
||||
|
||||
-- impostazione parametri lavorazione
|
||||
if Machining.sDepth then
|
||||
EgtSetMachiningParam( MCH_MP.DEPTH_STR, Machining.sDepth)
|
||||
end
|
||||
if Machining.bInvert then
|
||||
EgtSetMachiningParam( MCH_MP.INVERT, Machining.bInvert)
|
||||
end
|
||||
if Machining.nWorkside then
|
||||
EgtSetMachiningParam( MCH_MP.WORKSIDE, Machining.nWorkside)
|
||||
end
|
||||
if Machining.nFaceuse then
|
||||
EgtSetMachiningParam( MCH_MP.FACEUSE, Machining.nFaceuse)
|
||||
end
|
||||
if Machining.nSCC then
|
||||
EgtSetMachiningParam( MCH_MP.SCC, Machining.nSCC)
|
||||
end
|
||||
if Machining.bToolInvert then
|
||||
EgtSetMachiningParam( MCH_MP.TOOLINVERT, Machining.bToolInvert)
|
||||
end
|
||||
if Machining.sBlockedAxis then
|
||||
EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, Machining.sBlockedAxis)
|
||||
end
|
||||
if Machining.sInitialAngles then
|
||||
EgtSetMachiningParam( MCH_MP.INITANGS, Machining.sInitialAngles)
|
||||
end
|
||||
if Machining.nHeadSide then
|
||||
EgtSetMachiningParam( MCH_MP.HEADSIDE, Machining.nHeadSide)
|
||||
end
|
||||
if Machining.nSubType then
|
||||
EgtSetMachiningParam( MCH_MP.SUBTYPE, Machining.nSubType)
|
||||
end
|
||||
if Machining.dOverlap then
|
||||
EgtSetMachiningParam( MCH_MP.OVERL, Machining.dOverlap)
|
||||
end
|
||||
if nOperationId then
|
||||
-- impostazione geometria
|
||||
EgtSetMachiningGeometry( MACHININGS[i].Machining.Geometry)
|
||||
|
||||
-- step
|
||||
if Machining.Steps then
|
||||
if Machining.Steps.dStepType then
|
||||
EgtSetMachiningParam( MCH_MP.STEPTYPE, Machining.Steps.dStepType)
|
||||
-- impostazione parametri lavorazione
|
||||
if MACHININGS[i].Machining.sDepth then
|
||||
EgtSetMachiningParam( MCH_MP.DEPTH_STR, MACHININGS[i].Machining.sDepth)
|
||||
end
|
||||
if Machining.Steps.dStep then
|
||||
EgtSetMachiningParam( MCH_MP.STEP, Machining.Steps.dStep)
|
||||
if MACHININGS[i].Machining.bInvert then
|
||||
EgtSetMachiningParam( MCH_MP.INVERT, MACHININGS[i].Machining.bInvert)
|
||||
end
|
||||
if Machining.Steps.dSideStep then
|
||||
EgtSetMachiningParam( MCH_MP.SIDESTEP, Machining.Steps.dSideStep)
|
||||
if MACHININGS[i].Machining.nWorkside then
|
||||
EgtSetMachiningParam( MCH_MP.WORKSIDE, MACHININGS[i].Machining.nWorkside)
|
||||
end
|
||||
if MACHININGS[i].Machining.nFaceuse then
|
||||
EgtSetMachiningParam( MCH_MP.FACEUSE, MACHININGS[i].Machining.nFaceuse)
|
||||
end
|
||||
if MACHININGS[i].Machining.nSCC then
|
||||
EgtSetMachiningParam( MCH_MP.SCC, MACHININGS[i].Machining.nSCC)
|
||||
end
|
||||
if MACHININGS[i].Machining.bToolInvert then
|
||||
EgtSetMachiningParam( MCH_MP.TOOLINVERT, MACHININGS[i].Machining.bToolInvert)
|
||||
end
|
||||
if MACHININGS[i].Machining.sBlockedAxis then
|
||||
EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, MACHININGS[i].Machining.sBlockedAxis)
|
||||
end
|
||||
if MACHININGS[i].Machining.sInitialAngles then
|
||||
EgtSetMachiningParam( MCH_MP.INITANGS, MACHININGS[i].Machining.sInitialAngles)
|
||||
end
|
||||
if MACHININGS[i].Machining.nHeadSide then
|
||||
EgtSetMachiningParam( MCH_MP.HEADSIDE, MACHININGS[i].Machining.nHeadSide)
|
||||
end
|
||||
if MACHININGS[i].Machining.nSubType then
|
||||
EgtSetMachiningParam( MCH_MP.SUBTYPE, MACHININGS[i].Machining.nSubType)
|
||||
end
|
||||
if MACHININGS[i].Machining.dOverlap then
|
||||
EgtSetMachiningParam( MCH_MP.OVERL, MACHININGS[i].Machining.dOverlap)
|
||||
end
|
||||
end
|
||||
|
||||
if Machining.dStartPos then
|
||||
EgtSetMachiningParam( MCH_MP.STARTPOS, Machining.dStartPos)
|
||||
end
|
||||
if Machining.dReturnPos then
|
||||
EgtSetMachiningParam( MCH_MP.RETURNPOS, Machining.dReturnPos)
|
||||
end
|
||||
-- step
|
||||
if MACHININGS[i].Machining.Steps then
|
||||
if MACHININGS[i].Machining.Steps.dStepType then
|
||||
EgtSetMachiningParam( MCH_MP.STEPTYPE, MACHININGS[i].Machining.Steps.dStepType)
|
||||
end
|
||||
if MACHININGS[i].Machining.Steps.dStep then
|
||||
EgtSetMachiningParam( MCH_MP.STEP, MACHININGS[i].Machining.Steps.dStep)
|
||||
end
|
||||
if MACHININGS[i].Machining.Steps.dSideStep then
|
||||
EgtSetMachiningParam( MCH_MP.SIDESTEP, MACHININGS[i].Machining.Steps.dSideStep)
|
||||
end
|
||||
end
|
||||
|
||||
if Machining.dRadialOffset then
|
||||
EgtSetMachiningParam( MCH_MP.OFFSR, Machining.dRadialOffset)
|
||||
end
|
||||
if Machining.dLongitudinalOffset then
|
||||
EgtSetMachiningParam( MCH_MP.OFFSL, Machining.dLongitudinalOffset)
|
||||
end
|
||||
if MACHININGS[i].Machining.dStartPos then
|
||||
EgtSetMachiningParam( MCH_MP.STARTPOS, MACHININGS[i].Machining.dStartPos)
|
||||
end
|
||||
if MACHININGS[i].Machining.dReturnPos then
|
||||
EgtSetMachiningParam( MCH_MP.RETURNPOS, MACHININGS[i].Machining.dReturnPos)
|
||||
end
|
||||
|
||||
-- paraemtri attacco
|
||||
if Machining.LeadIn then
|
||||
if Machining.LeadIn.nType then
|
||||
EgtSetMachiningParam( MCH_MP.LEADINTYPE, Machining.LeadIn.nType)
|
||||
if MACHININGS[i].Machining.dRadialOffset then
|
||||
EgtSetMachiningParam( MCH_MP.OFFSR, MACHININGS[i].Machining.dRadialOffset)
|
||||
end
|
||||
if Machining.LeadIn.dStartAddLength then
|
||||
EgtSetMachiningParam( MCH_MP.STARTADDLEN, Machining.LeadIn.dStartAddLength)
|
||||
if MACHININGS[i].Machining.dLongitudinalOffset then
|
||||
EgtSetMachiningParam( MCH_MP.OFFSL, MACHININGS[i].Machining.dLongitudinalOffset)
|
||||
end
|
||||
if Machining.LeadIn.dTangentDistance then
|
||||
EgtSetMachiningParam( MCH_MP.LITANG, Machining.LeadIn.dTangentDistance)
|
||||
end
|
||||
if Machining.LeadIn.dPerpDistance then
|
||||
EgtSetMachiningParam( MCH_MP.LIPERP, Machining.LeadIn.dPerpDistance)
|
||||
end
|
||||
if Machining.LeadIn.dElevation then
|
||||
EgtSetMachiningParam( MCH_MP.LIELEV, Machining.LeadIn.dElevation)
|
||||
end
|
||||
if Machining.LeadIn.dCompLength then
|
||||
EgtSetMachiningParam( MCH_MP.LICOMPLEN, Machining.LeadIn.dCompLength)
|
||||
end
|
||||
end
|
||||
-- parametri uscita
|
||||
if Machining.LeadOut then
|
||||
if Machining.LeadOut.nType then
|
||||
EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, Machining.LeadOut.nType)
|
||||
end
|
||||
if Machining.LeadOut.dEndAddLength then
|
||||
EgtSetMachiningParam( MCH_MP.ENDADDLEN, Machining.LeadOut.dEndAddLength)
|
||||
end
|
||||
if Machining.LeadOut.dTangentDistance then
|
||||
EgtSetMachiningParam( MCH_MP.LOTANG, Machining.LeadOut.dTangentDistance)
|
||||
end
|
||||
if Machining.LeadOut.dPerpDistance then
|
||||
EgtSetMachiningParam( MCH_MP.LOPERP, Machining.LeadOut.dPerpDistance)
|
||||
end
|
||||
if Machining.LeadOut.dElevation then
|
||||
EgtSetMachiningParam( MCH_MP.LOELEV, Machining.LeadOut.dElevation)
|
||||
end
|
||||
if Machining.LeadOut.dCompLength then
|
||||
EgtSetMachiningParam( MCH_MP.LOCOMPLEN, Machining.LeadOut.dCompLength)
|
||||
end
|
||||
end
|
||||
|
||||
if Machining.dStartSlowLen then
|
||||
EgtSetMachiningParam( MCH_MP.STARTSLOWLEN, Machining.dStartSlowLen)
|
||||
end
|
||||
if Machining.dEndSlowLen then
|
||||
EgtSetMachiningParam( MCH_MP.ENDSLOWLEN, Machining.dEndSlowLen)
|
||||
end
|
||||
if Machining.dThrouAddLen then
|
||||
EgtSetMachiningParam( MCH_MP.THROUADDLEN, Machining.dThrouAddLen)
|
||||
end
|
||||
-- paraemtri attacco
|
||||
if MACHININGS[i].Machining.LeadIn then
|
||||
if MACHININGS[i].Machining.LeadIn.nType then
|
||||
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MACHININGS[i].Machining.LeadIn.nType)
|
||||
end
|
||||
if MACHININGS[i].Machining.LeadIn.dStartAddLength then
|
||||
EgtSetMachiningParam( MCH_MP.STARTADDLEN, MACHININGS[i].Machining.LeadIn.dStartAddLength)
|
||||
end
|
||||
if MACHININGS[i].Machining.LeadIn.dTangentDistance then
|
||||
EgtSetMachiningParam( MCH_MP.LITANG, MACHININGS[i].Machining.LeadIn.dTangentDistance)
|
||||
end
|
||||
if MACHININGS[i].Machining.LeadIn.dPerpDistance then
|
||||
EgtSetMachiningParam( MCH_MP.LIPERP, MACHININGS[i].Machining.LeadIn.dPerpDistance)
|
||||
end
|
||||
if MACHININGS[i].Machining.LeadIn.dElevation then
|
||||
EgtSetMachiningParam( MCH_MP.LIELEV, MACHININGS[i].Machining.LeadIn.dElevation)
|
||||
end
|
||||
if MACHININGS[i].Machining.LeadIn.dCompLength then
|
||||
EgtSetMachiningParam( MCH_MP.LICOMPLEN, MACHININGS[i].Machining.LeadIn.dCompLength)
|
||||
end
|
||||
end
|
||||
-- parametri uscita
|
||||
if MACHININGS[i].Machining.LeadOut then
|
||||
if MACHININGS[i].Machining.LeadOut.nType then
|
||||
EgtSetMachiningParam( MCH_MP.LEADOUTTYPE, MACHININGS[i].Machining.LeadOut.nType)
|
||||
end
|
||||
if MACHININGS[i].Machining.LeadOut.dEndAddLength then
|
||||
EgtSetMachiningParam( MCH_MP.ENDADDLEN, MACHININGS[i].Machining.LeadOut.dEndAddLength)
|
||||
end
|
||||
if MACHININGS[i].Machining.LeadOut.dTangentDistance then
|
||||
EgtSetMachiningParam( MCH_MP.LOTANG, MACHININGS[i].Machining.LeadOut.dTangentDistance)
|
||||
end
|
||||
if MACHININGS[i].Machining.LeadOut.dPerpDistance then
|
||||
EgtSetMachiningParam( MCH_MP.LOPERP, MACHININGS[i].Machining.LeadOut.dPerpDistance)
|
||||
end
|
||||
if MACHININGS[i].Machining.LeadOut.dElevation then
|
||||
EgtSetMachiningParam( MCH_MP.LOELEV, MACHININGS[i].Machining.LeadOut.dElevation)
|
||||
end
|
||||
if MACHININGS[i].Machining.LeadOut.dCompLength then
|
||||
EgtSetMachiningParam( MCH_MP.LOCOMPLEN, MACHININGS[i].Machining.LeadOut.dCompLength)
|
||||
end
|
||||
end
|
||||
|
||||
-- parametri da settare nelle note di sistema
|
||||
-- TODO da decidere quali sono le note da salvare qui. Probabilmente tutte quelle relative all'ordine delle lavorazioni
|
||||
local sSystemNotes = EgtGetMachiningParam( MCH_MP.SYSNOTES)
|
||||
--if Machining.nMachiningOrder then
|
||||
-- sSystemNotes = EgtSetValInNotes( sSystemNotes, 'MachiningOrder', Machining.nMachiningOrder)
|
||||
--end
|
||||
EgtSetMachiningParam( MCH_MP.SYSNOTES, sSystemNotes)
|
||||
if MACHININGS[i].Machining.dStartSlowLen then
|
||||
EgtSetMachiningParam( MCH_MP.STARTSLOWLEN, MACHININGS[i].Machining.dStartSlowLen)
|
||||
end
|
||||
if MACHININGS[i].Machining.dEndSlowLen then
|
||||
EgtSetMachiningParam( MCH_MP.ENDSLOWLEN, MACHININGS[i].Machining.dEndSlowLen)
|
||||
end
|
||||
if MACHININGS[i].Machining.dThrouAddLen then
|
||||
EgtSetMachiningParam( MCH_MP.THROUADDLEN, MACHININGS[i].Machining.dThrouAddLen)
|
||||
end
|
||||
|
||||
-- parametri da settare nelle note utente
|
||||
local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES)
|
||||
if Machining.dMaxElev then
|
||||
sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', Machining.dMaxElev)
|
||||
end
|
||||
EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes)
|
||||
-- parametri da settare nelle note di sistema
|
||||
-- TODO da decidere quali sono le note da salvare qui. Probabilmente tutte quelle relative all'ordine delle lavorazioni
|
||||
local sSystemNotes = EgtGetMachiningParam( MCH_MP.SYSNOTES)
|
||||
--if MACHININGS[i].Machining.nMachiningOrder then
|
||||
-- sSystemNotes = EgtSetValInNotes( sSystemNotes, 'MachiningOrder', MACHININGS[i].Machining.nMachiningOrder)
|
||||
--end
|
||||
EgtSetMachiningParam( MCH_MP.SYSNOTES, sSystemNotes)
|
||||
|
||||
local bIsApplyOk = MachiningLib.ApplyMachining( true, false)
|
||||
if not bIsApplyOk then
|
||||
nErr, sErr = EgtGetLastMachMgrError()
|
||||
EgtSetOperationMode( nOperationId, false)
|
||||
-- parametri da settare nelle note utente
|
||||
local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES)
|
||||
if MACHININGS[i].Machining.dMaxElev then
|
||||
sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', MACHININGS[i].Machining.dMaxElev)
|
||||
end
|
||||
EgtSetMachiningParam( MCH_MP.USERNOTES, sUserNotes)
|
||||
|
||||
local bIsApplyOk = MachiningLib.ApplyMachining( true, false)
|
||||
if not bIsApplyOk then
|
||||
nErr, sErr = EgtGetLastMachMgrError()
|
||||
EgtSetOperationMode( nOperationId, false)
|
||||
return false, sErr
|
||||
end
|
||||
else
|
||||
return false, sErr
|
||||
end
|
||||
else
|
||||
return false, sErr
|
||||
end
|
||||
|
||||
return true, sErr
|
||||
end
|
||||
return true, sErr
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -91,7 +91,7 @@ local function GetBestPocketingStrategy( Proc)
|
||||
ToolSearchParameters.dMaxToolDiameter = min( Strategy.Parameters.dMaxCornerRadius * 2, dFaceHeight, dFaceWidth)
|
||||
-- cerco fresa che può anche non lavorare di testa
|
||||
elseif Proc.Topology.sName == 'Groove-4-Blind' then
|
||||
local dFaceWidth = Proc.MainFaces.BottomFaces[1].MainEdges.LongEdges[1].dLength
|
||||
local dFaceWidth = Proc.MainFaces.BottomFaces[2].MainEdges.BottomEdge.dLength
|
||||
ToolSearchParameters.sType = 'MILL_NOTIP'
|
||||
ToolSearchParameters.dMaxToolDiameter = min( Strategy.Parameters.dMaxCornerRadius * 2, dFaceWidth)
|
||||
elseif Proc.Topology.sName == 'Groove-3-Through' then
|
||||
@@ -154,7 +154,14 @@ local function GetBestPocketingStrategy( Proc)
|
||||
Milling = {}
|
||||
Milling.bIsApplicable = false
|
||||
if Proc.Topology.sName ~= 'Pocket-5-Blind' then
|
||||
if Proc.Topology.sName == 'Groove-4-Blind' or Proc.Topology.sName == 'Groove-3-Blind' then
|
||||
if Proc.Topology.sName == 'Groove-4-Blind' then
|
||||
ToolSearchParameters.dElevation = Proc.MainFaces.BottomFaces[2].dElevation
|
||||
ToolSearchParameters.vtToolDirection = Proc.MainFaces.BottomFaces[2].vtN
|
||||
Milling.vtFaceNormal = Proc.MainFaces.BottomFaces[2].vtN
|
||||
Milling.idFaceToMachine = Proc.MainFaces.BottomFaces[2].id
|
||||
Milling.idProc = Proc.id
|
||||
Milling.dElevation = Proc.MainFaces.BottomFaces[2].dElevation
|
||||
elseif Proc.Topology.sName == 'Groove-3-Blind' then
|
||||
ToolSearchParameters.dElevation = Proc.MainFaces.LongFaces[1].dElevation
|
||||
ToolSearchParameters.vtToolDirection = Proc.MainFaces.LongFaces[1].vtN
|
||||
Milling.vtFaceNormal = Proc.MainFaces.LongFaces[1].vtN
|
||||
@@ -340,7 +347,7 @@ function STR0002.Make( bAddMachining, Proc, Part, CustomParameters)
|
||||
return false, Strategy.Result
|
||||
end
|
||||
|
||||
local bApplyMachiningOK = true
|
||||
local bAreAllApplyOk = true
|
||||
local ToolInfo = {}
|
||||
local Pocketing = {}
|
||||
Pocketing.Steps = {}
|
||||
@@ -439,7 +446,7 @@ function STR0002.Make( bAddMachining, Proc, Part, CustomParameters)
|
||||
_, vtNSplitFace = EgtSurfTmFacetCenter( vAddId[i], k - 1, GDB_ID.ROOT)
|
||||
if vtNSplitFace and AreSameVectorApprox( vtNSplitFace, Strategy.Machining[j].vtFaceNormal) then
|
||||
Pocketing.Geometry = {{ vAddId[i], k - 1}}
|
||||
bApplyMachiningOK, Strategy.Result.sInfo = MachiningLib.AddNewMachining( Proc, Pocketing)
|
||||
bAreAllApplyOk = MachiningLib.AddNewMachining( Proc, Pocketing)
|
||||
break
|
||||
end
|
||||
end
|
||||
@@ -462,15 +469,15 @@ function STR0002.Make( bAddMachining, Proc, Part, CustomParameters)
|
||||
Pocketing.bToolInvert = true
|
||||
end
|
||||
Pocketing.Geometry = {{ Strategy.Machining[i].idProc, Strategy.Machining[i].idFaceToMachine}}
|
||||
bApplyMachiningOK, Strategy.Result.sInfo = MachiningLib.AddNewMachining( Proc, Pocketing)
|
||||
bAreAllApplyOk = MachiningLib.AddNewMachining( Proc, Pocketing)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
bApplyMachiningOK = false
|
||||
bAreAllApplyOk = false
|
||||
end
|
||||
|
||||
return bApplyMachiningOK, Strategy.Result
|
||||
return bAreAllApplyOk, Strategy.Result
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user