Merge remote-tracking branch 'origin/develop' into STR0003_BladePlusChainsaw
This commit is contained in:
@@ -121,6 +121,8 @@ function BeamExec.GetToolsFromDB()
|
||||
Tool.Feeds.dTipFeed = EgtTdbGetCurrToolParam( MCH_TP.TIPFEED)
|
||||
-- TODO serve funzione in BeamData che data la posizione dell'utensile e della testa, capisca il montaggio (testa sopra - testa sotto - aggregato - ecc...)
|
||||
Tool.sHead = EgtTdbGetCurrToolParam( MCH_TP.HEAD)
|
||||
Tool.SetupInfo = {}
|
||||
Tool.SetupInfo = BeamData.GetSetupInfo( Tool.sHead)
|
||||
Tool.sUUID = EgtTdbGetCurrToolParam( MCH_TP.UUID)
|
||||
Tool.sUserNotes = EgtTdbGetCurrToolParam( MCH_TP.USERNOTES)
|
||||
Tool.dMaxDepth = EgtTdbGetCurrToolMaxDepth() or Tool.dMaxMaterial
|
||||
|
||||
@@ -276,6 +276,186 @@ end
|
||||
-- funzione per aggiungere una nuova lavorazione
|
||||
-- TODO da fare
|
||||
function MachiningLib.AddNewMachining( Machining)
|
||||
local nErr
|
||||
local sErr
|
||||
|
||||
-- Controllo parametri obbligatori
|
||||
if not Machining.nType or not Machining.nToolIndex or not Machining.idProc or not Machining.idFaceToMachine then
|
||||
return false
|
||||
end
|
||||
|
||||
-- Drilling
|
||||
if Machining.nType == MCH_MY.DRILLING then
|
||||
Machining.sTypeName = 'Drill_'
|
||||
-- Milling
|
||||
elseif Machining.nType == MCH_MY.MILLING then
|
||||
-- se utensile lama
|
||||
if TOOLS[Machining.nToolIndex].sFamily == 'SAWBLADE' then
|
||||
Machining.sTypeName = 'Cut'
|
||||
else
|
||||
Machining.sTypeName = 'Milling'
|
||||
end
|
||||
-- Pocketing
|
||||
elseif Machining.nType == MCH_MY.POCKETING then
|
||||
Machining.sTypeName = 'Pocketing'
|
||||
-- Mortising
|
||||
elseif Machining.nType == MCH_MY.MORTISING then
|
||||
Machining.sTypeName = 'Mortising'
|
||||
end
|
||||
|
||||
-- se nome non definito, assegno alla lavorazioen un nome standard
|
||||
if not Machining.sOperationName then
|
||||
Machining.sOperationName = Machining.sTypeName .. ( EgtGetName( Machining.idProc) or tostring( Machining.idProc)) .. '_' .. tostring( Machining.idFaceToMachine)
|
||||
end
|
||||
if not Machining.sToolName then
|
||||
Machining.sToolName = TOOLS[Machining.nToolIndex].sName
|
||||
end
|
||||
|
||||
-- creazione lavorazione
|
||||
local nOperationId = EgtCreateMachining( Machining.sOperationName, Machining.nType, Machining.sToolName)
|
||||
|
||||
if nOperationId then
|
||||
-- impostazione geometria
|
||||
EgtSetMachiningGeometry( {{ Machining.idProc, Machining.idFaceToMachine}})
|
||||
|
||||
-- impostazione parametri lavorazione
|
||||
if Machining.dDepth then
|
||||
EgtSetMachiningParam( MCH_MP.DEPTH, Machining.dDepth)
|
||||
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
|
||||
|
||||
-- step
|
||||
if Machining.Steps then
|
||||
if Machining.Steps.dStepType then
|
||||
EgtSetMachiningParam( MCH_MP.STEPTYPE, Machining.Steps.dStepType)
|
||||
end
|
||||
if Machining.Steps.dStep then
|
||||
EgtSetMachiningParam( MCH_MP.STEP, Machining.Steps.dStep)
|
||||
end
|
||||
if Machining.Steps.dSideStep then
|
||||
EgtSetMachiningParam( MCH_MP.SIDESTEP, Machining.Steps.dSideStep)
|
||||
end
|
||||
end
|
||||
|
||||
if Machining.dStartPos then
|
||||
EgtSetMachiningParam( MCH_MP.STARTPOS, Machining.dStartPos)
|
||||
end
|
||||
if Machining.dReturnPos then
|
||||
EgtSetMachiningParam( MCH_MP.RETURNPOS, Machining.dReturnPos)
|
||||
end
|
||||
|
||||
if Machining.dRadialOffset then
|
||||
EgtSetMachiningParam( MCH_MP.OFFSR, Machining.dRadialOffset)
|
||||
end
|
||||
if Machining.dLongitudinalOffset then
|
||||
EgtSetMachiningParam( MCH_MP.OFFSL, Machining.dLongitudinalOffset)
|
||||
end
|
||||
|
||||
-- paraemtri attacco
|
||||
if Machining.LeadIn then
|
||||
if Machining.LeadIn.nType then
|
||||
EgtSetMachiningParam( MCH_MP.LEADINTYPE, Machining.LeadIn.nType)
|
||||
end
|
||||
if Machining.LeadIn.dStartAddLength then
|
||||
EgtSetMachiningParam( MCH_MP.STARTADDLEN, Machining.LeadIn.dStartAddLength)
|
||||
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
|
||||
-- parametri da settare nelle note
|
||||
local sUserNotes = EgtGetMachiningParam( MCH_MP.USERNOTES)
|
||||
if Machining.dMaxElev then
|
||||
sUserNotes = EgtSetValInNotes( sUserNotes, 'MaxElev', 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
|
||||
end
|
||||
else
|
||||
return false
|
||||
end
|
||||
|
||||
return true, sErr
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
function MachiningLib.ApplyMachining( bRecalc, bApplyPost)
|
||||
local bResult = EgtApplyMachining( bRecalc, bApplyPost)
|
||||
return bResult
|
||||
end
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
+2
-2
@@ -322,10 +322,10 @@ end
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
if not MyProcessInputData() then return end
|
||||
|
||||
if not GetDataConfig() then return end
|
||||
|
||||
if not MyProcessBeams() then return end
|
||||
|
||||
if not GetDataConfig() then return end
|
||||
|
||||
-- Abilito Vmill
|
||||
EgtSetInfo( EgtGetCurrMachGroup(), 'Vm', '1')
|
||||
|
||||
|
||||
@@ -48,6 +48,10 @@ function STR0002.Make( bAddMachining, Proc, Part, CustomParameters)
|
||||
end
|
||||
|
||||
local ToolInfo = {}
|
||||
local Pocketing = {}
|
||||
Pocketing.Steps = {}
|
||||
Pocketing.LeadIn = {}
|
||||
Pocketing.LeadOut = {}
|
||||
|
||||
-- serve utensile che possa lavorare di testa
|
||||
local ToolSearchParameters = {}
|
||||
@@ -141,35 +145,44 @@ function STR0002.Make( bAddMachining, Proc, Part, CustomParameters)
|
||||
end
|
||||
-- si applicano le lavorazioni
|
||||
for i = 1, #vAddId do
|
||||
EgtCreateMachining( 'Svuotatura', MCH_OY.POCKETING, TOOLS[ToolInfo.nToolIndex].sName)
|
||||
EgtSetMachiningParam( MCH_MP.STEP, TOOLS[ToolInfo.nToolIndex].dStep)
|
||||
EgtSetMachiningParam( MCH_MP.DEPTH, min( 0, -ToolInfo.dResidualDepth))
|
||||
EgtSetMachiningParam( MCH_MP.SIDESTEP, TOOLS[ToolInfo.nToolIndex].dSideStep)
|
||||
EgtSetMachiningParam( MCH_MP.SUBTYPE, MCH_POCK_SUB.SPIRALOUT)
|
||||
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_POCK_LI.ZIGZAG)
|
||||
EgtSetMachiningParam( MCH_MP.LITANG, TOOLS[ToolInfo.nToolIndex].dDiameter/2)
|
||||
EgtSetMachiningParam( MCH_MP.LIELEV, TOOLS[ToolInfo.nToolIndex].dDiameter/2)
|
||||
Pocketing.nToolIndex = ToolInfo.nToolIndex
|
||||
Pocketing.nType = MCH_OY.POCKETING
|
||||
Pocketing.sOperationName = 'Svuotatura'
|
||||
Pocketing.Steps.dStep = TOOLS[ToolInfo.nToolIndex].dStep
|
||||
-- TODO controllare segno e valore minimo
|
||||
Pocketing.dDepth = ToolInfo.dMaxMatReduction
|
||||
|
||||
Pocketing.Steps.dSideStep = TOOLS[ToolInfo.nToolIndex].dSideStep
|
||||
Pocketing.nSubType = MCH_POCK_SUB.SPIRALOUT
|
||||
Pocketing.LeadIn.nType = MCH_POCK_LI.ZIGZAG
|
||||
Pocketing.LeadIn.TangentDistance = TOOLS[ToolInfo.nToolIndex].dDiameter/2
|
||||
Pocketing.LeadIn.Elevation = TOOLS[ToolInfo.nToolIndex].dDiameter/2
|
||||
for j=1, Proc.nFct do
|
||||
local vtNSplitFace
|
||||
_, vtNSplitFace = EgtSurfTmFacetCenter( vAddId[i], j - 1, GDB_ID.ROOT)
|
||||
if vtNSplitFace and AreSameVectorExact( vtNSplitFace, Proc.MainFaces.BottomFace.vtN) then
|
||||
EgtSetMachiningGeometry( {{ vAddId[i], j - 1}})
|
||||
EgtApplyMachining( true, true)
|
||||
Pocketing.idFaceToMachine = j - 1
|
||||
Pocketing.idProc = vAddId[i]
|
||||
MachiningLib.AddNewMachining( Pocketing)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
EgtCreateMachining( 'Svuotatura', MCH_OY.POCKETING, TOOLS[ToolInfo.nToolIndex].sName)
|
||||
EgtSetMachiningParam( MCH_MP.STEP, TOOLS[ToolInfo.nToolIndex].dStep)
|
||||
EgtSetMachiningParam( MCH_MP.DEPTH, min( 0, -ToolInfo.dResidualDepth))
|
||||
EgtSetMachiningParam( MCH_MP.SIDESTEP, TOOLS[ToolInfo.nToolIndex].dSideStep)
|
||||
EgtSetMachiningParam( MCH_MP.SUBTYPE, MCH_POCK_SUB.SPIRALOUT)
|
||||
EgtSetMachiningParam( MCH_MP.LEADINTYPE, MCH_POCK_LI.ZIGZAG)
|
||||
EgtSetMachiningParam( MCH_MP.LITANG, TOOLS[ToolInfo.nToolIndex].dDiameter/2)
|
||||
EgtSetMachiningParam( MCH_MP.LIELEV, TOOLS[ToolInfo.nToolIndex].dDiameter/2)
|
||||
EgtSetMachiningGeometry( {{ Proc.id, Proc.MainFaces.BottomFace.id}})
|
||||
EgtApplyMachining( true, true)
|
||||
Pocketing.nToolIndex = ToolInfo.nToolIndex
|
||||
Pocketing.nType = MCH_OY.POCKETING
|
||||
Pocketing.sOperationName = 'Svuotatura'
|
||||
Pocketing.Steps.dStep = TOOLS[ToolInfo.nToolIndex].dStep
|
||||
-- TODO controllare segno e valore minimo
|
||||
Pocketing.dDepth = ToolInfo.dMaxMatReduction
|
||||
Pocketing.Steps.dSideStep = TOOLS[ToolInfo.nToolIndex].dSideStep
|
||||
Pocketing.nSubType = MCH_POCK_SUB.SPIRALOUT
|
||||
Pocketing.LeadIn.nType = MCH_POCK_LI.ZIGZAG
|
||||
Pocketing.LeadIn.TangentDistance = TOOLS[ToolInfo.nToolIndex].dDiameter/2
|
||||
Pocketing.LeadIn.Elevation = TOOLS[ToolInfo.nToolIndex].dDiameter/2
|
||||
Pocketing.idFaceToMachine = Proc.MainFaces.BottomFace.id
|
||||
Pocketing.idProc = Proc.id
|
||||
MachiningLib.AddNewMachining( Pocketing)
|
||||
end
|
||||
end
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user