diff --git a/Strategies/Standard/STR0001/STR0001.lua b/Strategies/Standard/STR0001/STR0001.lua index 43033ca..1ba2546 100644 --- a/Strategies/Standard/STR0001/STR0001.lua +++ b/Strategies/Standard/STR0001/STR0001.lua @@ -158,31 +158,53 @@ function STR0001.Make( bAddMachining, Proc, Part, CustomParameters) -- azzero eventuale contatore passaggi con sovramateriale nMillingPathsNeeded = 1 end + -- passaggio sul profilo if Milling.bIsApplicable then + local AuxiliaryData = {} -- aggiungo geometria Milling.Geometry = {{ Proc.idAddAuxGeom, -1}} Milling.nToolIndex = Milling.ToolInfo.nToolIndex Milling.nType = MCH_MY.MILLING Milling.vtToolDirection = Proc.vtDTNormal Milling.sDepth = 0 - Milling.sStage = 'AfterTail' - - -- TODO : fare i cloni, gestire attacco/uscita - for i = nMillingPathsNeeded, 1, -1 do - -- sistemo i parametri - Milling.dRadialOffset = ( i - 1) * TOOLS[Milling.ToolInfo.nToolIndex].dSideStep - Milling.sUserNotes = EgtSetVal( 'MaxElev', EgtNumToString( Proc.dDTLength, 1)) .. ';' - -- sistemo il lato e la direzione di lavoro - Milling.bInvert = EgtIf( TOOLS[Milling.ToolInfo.nToolIndex].bIsCCW, false, true) - Milling.nWorkside = EgtIf( TOOLS[Milling.ToolInfo.nToolIndex].bIsCCW, MCH_MILL_WS.RIGHT, MCH_MILL_WS.LEFT) + -- LeadIn / LeadOut + Milling.LeadIn = {} + Milling.LeadOut = {} + Milling.LeadIn.nType = MCH_MILL_LI.LINEAR + Milling.LeadOut.nType = MCH_MILL_LI.LINEAR + Milling.LeadIn.dTangentDistance = TOOLS[Milling.ToolInfo.nToolIndex].dDiameter / 2 + BeamData.COLL_SIC + Milling.LeadIn.dPerpDistance = 0 + Milling.LeadOut.dTangentDistance = TOOLS[Milling.ToolInfo.nToolIndex].dDiameter / 2 + BeamData.COLL_SIC + Milling.LeadOut.dPerpDistance = 0 - -- TODO calcolare SCC - - -- aggiunge lavorazione - bAreAllMachiningsAdded = MachiningLib.AddNewMachining( Proc, Milling) + if Proc.AffectedFaces.bLeft then + Milling.sStage = 'AfterTail' end + + -- sistemo il lato e la direzione di lavoro + Milling.bInvert = EgtIf( TOOLS[Milling.ToolInfo.nToolIndex].bIsCCW, false, true) + Milling.nWorkside = EgtIf( TOOLS[Milling.ToolInfo.nToolIndex].bIsCCW, MCH_MILL_WS.RIGHT, MCH_MILL_WS.LEFT) + + Milling.sUserNotes = EgtSetVal( 'MaxElev', EgtNumToString( Proc.dDTLength, 1)) .. ';' + + -- TODO calcolare SCC + + -- passate con sovramateriale + AuxiliaryData.Clones = {} + for i = nMillingPathsNeeded, 1, -1 do + -- il primo è il passaggio più esterno + local nIndexClones = nMillingPathsNeeded - i + 1 + -- suddivido step in base al numero passate da fare + local dRealSideStep = floor( Proc.dDTMaxDist / nMillingPathsNeeded) + -- cambia solo sovrmateriale radiale + AuxiliaryData.Clones[nIndexClones] = {} + AuxiliaryData.Clones[nIndexClones].dRadialOffset = ( i - 1) * dRealSideStep + end + + -- aggiunge lavorazione + bAreAllMachiningsAdded = MachiningLib.AddNewMachining( Proc, Milling, AuxiliaryData) end end