- calcolo lunghezza stimata del percorso con attacchi centralizzata, in MachiningLib

- calcolo lunghezza stimata aggiunto anche nel caso di lavorazione splittata
This commit is contained in:
luca.mazzoleni
2025-04-08 17:51:01 +02:00
parent d17673e65d
commit 36f1ae5513
5 changed files with 34 additions and 19 deletions
+29 -3
View File
@@ -164,6 +164,8 @@ function MachiningLib.GetSplitMachinings( Machinings, SplittingPoints, Part )
Machinings[nCurrentMachiningIndex].sStage = sOriginalStage
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])
end
-- anche le lavorazioni non splittate necessitano del segmento assegnato
else
@@ -192,8 +194,9 @@ function MachiningLib.GetSplitMachinings( Machinings, SplittingPoints, Part )
Machinings[i].ptCenter = Point3d( dNextSplitX + ( dPreviousSplitX - dNextSplitX) / 2, 0, 0)
end
end
Machinings[i].dLengthToMachine = Machinings[i].dEdgeLength + Machinings[i].LeadIn.dStartAddLength + Machinings[i].LeadOut.dEndAddLength
Machinings[i].dLengthToMachineAllStepsWithLeadInOut = MachiningLib.GetLengthToMachineAllStepsWithLeadInOut( Machinings[i])
end
Machinings[i].dLengthToMachine = Machinings[i].dEdgeLength + Machinings[i].LeadIn.dStartAddLength + Machinings[i].LeadOut.dEndAddLength
end
return Machinings
@@ -559,10 +562,10 @@ function MachiningLib.AddMachinings( Proc, Machining, AuxiliaryData)
end
AuxiliaryData.Clones = {}
local dOriginalRadialOffsetMortising = Machining.dRadialOffset
local dOriginalRadialOffset = Machining.dRadialOffset
for i = Machining.CloneStepsVertical.nCount, 1, -1 do
AuxiliaryData.Clones[i] = {}
AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffsetMortising + Machining.CloneStepsVertical.dStep * ( i - 1)
AuxiliaryData.Clones[i].dRadialOffset = dOriginalRadialOffset + Machining.CloneStepsVertical.dStep * ( i - 1)
end
end
@@ -831,6 +834,29 @@ function MachiningLib.GetToolMRR( Parameters)
return dMRR / pow( 10, 6)
end
-------------------------------------------------------------------------------------------------------------
function MachiningLib.GetLengthToMachineAllStepsWithLeadInOut( Machining)
local dLengthToMachineAllStepsWithLeadInOut = 0
if Machining.nType == MCH_OY.MILLING then
if Machining.Steps.nStepType == MCH_MILL_ST.ZIGZAG then
dLengthToMachineAllStepsWithLeadInOut = ( Machining.dLengthToMachine * Machining.CloneStepsHorizontal.nCount + ( Machining.LeadIn.dTotalEstimatedDistance + Machining.LeadOut.dTotalEstimatedDistance)) * Machining.Steps.nCount
else
dLengthToMachineAllStepsWithLeadInOut = Machining.CloneStepsHorizontal.nCount * ( Machining.dLengthToMachine + Machining.LeadIn.dTotalEstimatedDistance + Machining.LeadOut.dTotalEstimatedDistance) * Machining.Steps.nCount
end
elseif Machining.nType == MCH_OY.MORTISING then
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.CloneStepsVertical.nCount
else
dLengthToMachineAllStepsWithLeadInOut = Machining.CloneStepsVertical.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)))
end
else
error( 'GetLengthToMachineAllStepsWithLeadInOut : unknown machining type')
end
return dLengthToMachineAllStepsWithLeadInOut
end
-------------------------------------------------------------------------------------------------------------
function MachiningLib.PrepareMachiningsForSorting( Part)
local nFeatureInternalIndex = 1