- il calcolo tempi è ora fatto direttamente nella lavorazione e contempla anche le feed start end

This commit is contained in:
luca.mazzoleni
2025-04-29 19:29:58 +02:00
parent c234978cab
commit 46bfae300f
5 changed files with 28 additions and 12 deletions
+1 -1
View File
@@ -551,7 +551,7 @@ function FeatureLib.GetStrategyTimeToMachine( Machinings)
for i = 1, #Machinings do
local Machining = Machinings[i]
if Machining.bIsApplicable then
dTimeToMachine = dTimeToMachine + ( Machining.dLengthToMachineAllStepsWithLeadInOut / TOOLS[Machining.nToolIndex].Feeds.dFeed)
dTimeToMachine = dTimeToMachine + Machining.dTimeToMachine
end
end
+24 -8
View File
@@ -190,7 +190,7 @@ function MachiningLib.GetSplitMachinings( Machinings, SplittingPoints, Part)
end
Machinings[nCurrentMachiningIndex].nFeatureSegment = j
Machinings[nCurrentMachiningIndex].dLengthToMachine = Machinings[nCurrentMachiningIndex].dEdgeLength + Machinings[nCurrentMachiningIndex].LeadIn.dStartAddLength + Machinings[nCurrentMachiningIndex].LeadOut.dEndAddLength
Machinings[nCurrentMachiningIndex].dLengthToMachineAllStepsWithLeadInOut = MachiningLib.GetLengthToMachineAllStepsWithLeadInOut( Machinings[nCurrentMachiningIndex])
Machinings[nCurrentMachiningIndex].dTimeToMachine = MachiningLib.GetTimeToMachineAllStepsWithLeadInOut( Machinings[nCurrentMachiningIndex])
end
-- anche le lavorazioni non splittate necessitano del segmento assegnato
else
@@ -220,7 +220,7 @@ function MachiningLib.GetSplitMachinings( Machinings, SplittingPoints, Part)
end
end
Machinings[i].dLengthToMachine = Machinings[i].dEdgeLength + Machinings[i].LeadIn.dStartAddLength + Machinings[i].LeadOut.dEndAddLength
Machinings[i].dLengthToMachineAllStepsWithLeadInOut = MachiningLib.GetLengthToMachineAllStepsWithLeadInOut( Machinings[i])
Machinings[i].dTimeToMachine = MachiningLib.GetTimeToMachineAllStepsWithLeadInOut( Machinings[i])
end
end
@@ -941,11 +941,15 @@ function MachiningLib.GetToolMRR( Parameters)
end
-------------------------------------------------------------------------------------------------------------
function MachiningLib.GetLengthToMachineAllStepsWithLeadInOut( Machining)
function MachiningLib.GetTimeToMachineAllStepsWithLeadInOut( Machining)
local dLengthToMachineAllStepsWithLeadInOut = 0
local dTimeToMachineTotal = 0
local dToolStartFeed = TOOLS[Machining.nToolIndex].Feeds.dStartFeed
local dToolEndFeed = TOOLS[Machining.nToolIndex].Feeds.dEndFeed
local dToolFeed = TOOLS[Machining.nToolIndex].Feeds.dFeed
if Machining.nType == MCH_MY.MILLING then
-- se non settati, imposto valori di default
-- stima LeadIn e LeadOut; se non settati si impostano a valori di default
if not Machining.LeadIn.dTotalEstimatedDistance then
Machining.LeadIn.dTotalEstimatedDistance = sqrt( Machining.LeadIn.dPerpDistance ^ 2 + Machining.LeadIn.dTangentDistance ^ 2) + Machining.dStartSafetyLength
end
@@ -956,11 +960,17 @@ function MachiningLib.GetLengthToMachineAllStepsWithLeadInOut( Machining)
Machining.CloneStepsRadial = {}
Machining.CloneStepsRadial.nCount = 1
end
-- calcolo lunghezze
-- stima tempi di lavorazione per i diversi tratti
local dTimeToMachineLeadIn = Machining.LeadIn.dTotalEstimatedDistance / dToolStartFeed
local dTimeToMachineLeadOut = Machining.LeadOut.dTotalEstimatedDistance / dToolEndFeed
local dTimeToMachineEdge = Machining.dLengthToMachine / dToolFeed
-- calcolo lunghezze e tempi
if Machining.Steps.nStepType == MCH_MILL_ST.ZIGZAG then
dLengthToMachineAllStepsWithLeadInOut = ( Machining.dLengthToMachine * Machining.CloneStepsRadial.nCount + ( Machining.LeadIn.dTotalEstimatedDistance + Machining.LeadOut.dTotalEstimatedDistance)) * Machining.Steps.nCount
dTimeToMachineTotal = ( dTimeToMachineEdge * Machining.CloneStepsRadial.nCount + ( dTimeToMachineLeadIn + dTimeToMachineLeadOut)) * Machining.Steps.nCount
else
dLengthToMachineAllStepsWithLeadInOut = Machining.CloneStepsRadial.nCount * ( Machining.dLengthToMachine + Machining.LeadIn.dTotalEstimatedDistance + Machining.LeadOut.dTotalEstimatedDistance) * Machining.Steps.nCount
dTimeToMachineTotal = Machining.CloneStepsRadial.nCount * ( dTimeToMachineEdge + dTimeToMachineLeadIn + dTimeToMachineLeadOut) * Machining.Steps.nCount
end
elseif Machining.nType == MCH_MY.MORTISING then
-- se non settati, imposto valori di default
@@ -968,17 +978,23 @@ function MachiningLib.GetLengthToMachineAllStepsWithLeadInOut( Machining)
Machining.CloneStepsLongitudinal = {}
Machining.CloneStepsLongitudinal.nCount = 1
end
-- calcolo lunghezze
-- stima tempi di lavorazione per i diversi tratti
local dTimeToMachineLeadIn = ( Machining.dDepthToMachine + ( TOOLS[Machining.nToolIndex].SetupInfo.dZSafeDelta or 60) + EgtMdbGetGeneralParam( MCH_GP.SAFEZ)) / dToolStartFeed
local dTimeToMachineLeadOut = ( Machining.dDepthToMachine + ( TOOLS[Machining.nToolIndex].SetupInfo.dZSafeDelta or 60) + EgtMdbGetGeneralParam( MCH_GP.SAFEZ)) / dToolEndFeed
local dTimeToMachineEdge = Machining.dLengthToMachine / dToolFeed
-- calcolo lunghezze e tempi
if Machining.Steps.nStepType == MCH_MILL_ST.ZIGZAG then
dLengthToMachineAllStepsWithLeadInOut = ( Machining.dLengthToMachine * Machining.Steps.nCount + 2 * ( Machining.dDepthToMachine + ( TOOLS[Machining.nToolIndex].SetupInfo.dZSafeDelta or 60) + EgtMdbGetGeneralParam( MCH_GP.SAFEZ))) * Machining.CloneStepsLongitudinal.nCount
dTimeToMachineTotal = ( dTimeToMachineEdge * Machining.Steps.nCount + dTimeToMachineLeadIn + dTimeToMachineLeadOut) * Machining.CloneStepsLongitudinal.nCount
else
dLengthToMachineAllStepsWithLeadInOut = Machining.CloneStepsLongitudinal.nCount * ( ( 2 * Machining.Steps.nCount - 1) * Machining.dLengthToMachine + 2 * 10 * ( Machining.Steps.nCount - 1) + 2 * ( Machining.dDepthToMachine + ( TOOLS[Machining.nToolIndex].SetupInfo.dZSafeDelta or 60) + EgtMdbGetGeneralParam( MCH_GP.SAFEZ)))
dTimeToMachineTotal = Machining.CloneStepsLongitudinal.nCount * ( ( 2 * Machining.Steps.nCount - 1) * dTimeToMachineEdge + 2 * 10 / dToolFeed * ( Machining.Steps.nCount - 1) + dTimeToMachineLeadIn + dTimeToMachineLeadOut)
end
else
error( 'GetLengthToMachineAllStepsWithLeadInOut : unknown machining type')
error( 'GetTimeToMachineAllStepsWithLeadInOut : unknown machining type')
end
return dLengthToMachineAllStepsWithLeadInOut
return dTimeToMachineTotal, dLengthToMachineAllStepsWithLeadInOut
end
-------------------------------------------------------------------------------------------------------------
+1 -1
View File
@@ -370,7 +370,7 @@ function FACEBYBLADE.Make( Proc, Part, FaceToMachine, EdgeToMachine, OptionalPar
Cutting.dLengthToMachine = EdgeToMachine.dLength + Cutting.LeadIn.dStartAddLength + Cutting.LeadOut.dEndAddLength
local b3BoxEdge = BBox3d( Cutting.ptEdge1, Cutting.ptEdge2)
Cutting.dLengthOnX = b3BoxEdge:getDimX()
Cutting.dLengthToMachineAllStepsWithLeadInOut = MachiningLib.GetLengthToMachineAllStepsWithLeadInOut( Cutting)
Cutting.dTimeToMachine, Cutting.dLengthToMachineAllStepsWithLeadInOut = MachiningLib.GetTimeToMachineAllStepsWithLeadInOut( Cutting)
-- lunghezza impronta lama
if Cutting.bIsStartClosed and Cutting.bIsEndClosed then
Cutting.dToolMarkLength = abs( min( Cutting.LeadIn.dStartAddLength, Cutting.LeadOut.dEndAddLength))
+1 -1
View File
@@ -215,7 +215,7 @@ function FACEBYCHAINSAW.Make( Proc, Part, FaceToMachine, EdgeToMachine, Optional
-- TODO fare funzione EstimatePathLength o simile
Mortising.dLengthToMachine = Mortising.dEdgeLength + Mortising.LeadIn.dStartAddLength + Mortising.LeadOut.dEndAddLength
Mortising.dLengthOnX = abs( dLengthToMachine * EdgeToMachine.vtN:getY())
Mortising.dLengthToMachineAllStepsWithLeadInOut = MachiningLib.GetLengthToMachineAllStepsWithLeadInOut( Mortising)
Mortising.dTimeToMachine, Mortising.dLengthToMachineAllStepsWithLeadInOut = MachiningLib.GetTimeToMachineAllStepsWithLeadInOut( Mortising)
-- area lavorata
Mortising.dAreaToMachine = min( EdgeToMachine.dElevation, Mortising.dDepthToMachine) * ( min( Mortising.dEdgeLength, Mortising.dLengthToMachine + TOOLS[Mortising.nToolIndex].dDiameter))
-- geometria
+1 -1
View File
@@ -379,7 +379,7 @@ function FACEBYMILL.Make( Proc, Part, FaceToMachine, EdgeToMachine, OptionalPara
Milling.dLengthToMachine = EdgeToMachine.dLength + Milling.LeadIn.dStartAddLength + Milling.LeadOut.dEndAddLength
local b3BoxEdge = BBox3d( Milling.ptEdge1, Milling.ptEdge2)
Milling.dLengthOnX = b3BoxEdge:getDimX()
Milling.dLengthToMachineAllStepsWithLeadInOut = MachiningLib.GetLengthToMachineAllStepsWithLeadInOut( Milling)
Milling.dTimeToMachine, Milling.dLengthToMachineAllStepsWithLeadInOut = MachiningLib.GetTimeToMachineAllStepsWithLeadInOut( Milling)
-- lunghezza impronta lama
if Milling.bIsStartClosed and Milling.bIsEndClosed then
Milling.dToolMarkLength = abs( min( Milling.LeadIn.dStartAddLength, Milling.LeadOut.dEndAddLength))