diff --git a/LuaLibs/MachiningLib.lua b/LuaLibs/MachiningLib.lua index 3d9a0da..be87aa9 100644 --- a/LuaLibs/MachiningLib.lua +++ b/LuaLibs/MachiningLib.lua @@ -117,8 +117,8 @@ function MachiningLib.GetSplitMachinings( Machinings, SplittingPoints, Part ) dEdgeMaxX = Machinings[i].ptEdge2:getX() dEdgeMinX = Machinings[i].ptEdge1:getX() end - local dOriginalStartAddLength = Machinings[i].LeadIn.dStartAddLength - local dOriginalEndAddLength = Machinings[i].LeadOut.dEndAddLength + local OriginalLeadIn = Machinings[i].LeadIn + local OriginalLeadOut = Machinings[i].LeadOut local sOriginalStage = Machinings[i].sStage local LeadInForSplit = Machinings[i].LeadInForSplit local LeadOutForSplit = Machinings[i].LeadOutForSplit @@ -136,37 +136,42 @@ function MachiningLib.GetSplitMachinings( Machinings, SplittingPoints, Part ) if j > 1 then nCurrentMachiningIndex = nCurrentMachiningIndex + 1 table.insert( Machinings, nCurrentMachiningIndex, BeamLib.TableCopyDeep( Machinings[i])) + Machinings[nCurrentMachiningIndex].LeadIn = BeamLib.TableCopyDeep( OriginalLeadIn) + Machinings[nCurrentMachiningIndex].LeadOut = BeamLib.TableCopyDeep( OriginalLeadOut) end - local dStartAddLength = dOriginalStartAddLength - local dEndAddLength = dOriginalEndAddLength + local dStartAddLength = OriginalLeadIn.dStartAddLength + local dEndAddLength = OriginalLeadOut.dEndAddLength if MachiningLib.StartsLeftSide( Machinings[i]) then dStartAddLength, dEndAddLength = dEndAddLength, dStartAddLength end if j == 1 then dEndAddLength = - ( SplittingPoints[j]:getX() - dEdgeMinX) + BeamData.MILL_OVERLAP if LeadOutForSplit then - Machinings[nCurrentMachiningIndex].LeadOut = LeadOutForSplit + Machinings[nCurrentMachiningIndex].LeadOut = BeamLib.TableCopyDeep( LeadOutForSplit) end Machinings[nCurrentMachiningIndex].ptCenter = Point3d( SplittingPoints[j]:getX() + ( dEdgeMaxX - SplittingPoints[j]:getX()) / 2, 0, 0) elseif j == nParts then dStartAddLength = - ( dEdgeMaxX - SplittingPoints[j - 1]:getX()) + BeamData.MILL_OVERLAP if LeadInForSplit then - Machinings[nCurrentMachiningIndex].LeadIn = LeadInForSplit + Machinings[nCurrentMachiningIndex].LeadIn = BeamLib.TableCopyDeep( LeadInForSplit) end Machinings[nCurrentMachiningIndex].ptCenter = Point3d( dEdgeMinX + ( SplittingPoints[j - 1]:getX() - dEdgeMinX) / 2, 0, 0) else dStartAddLength = - ( dEdgeMaxX - SplittingPoints[j - 1]:getX()) + BeamData.MILL_OVERLAP dEndAddLength = - ( SplittingPoints[j]:getX() - dEdgeMinX) + BeamData.MILL_OVERLAP if LeadInForSplit then - Machinings[nCurrentMachiningIndex].LeadIn = LeadInForSplit + Machinings[nCurrentMachiningIndex].LeadIn = BeamLib.TableCopyDeep( LeadInForSplit) end if LeadOutForSplit then - Machinings[nCurrentMachiningIndex].LeadOut = LeadOutForSplit + Machinings[nCurrentMachiningIndex].LeadOut = BeamLib.TableCopyDeep( LeadOutForSplit) end Machinings[nCurrentMachiningIndex].ptCenter = Point3d( SplittingPoints[j]:getX() + ( SplittingPoints[j - 1]:getX() - SplittingPoints[j]:getX()) / 2, 0, 0) end if MachiningLib.StartsLeftSide( Machinings[nCurrentMachiningIndex]) then dStartAddLength, dEndAddLength = dEndAddLength, dStartAddLength + local LeadInCopy = BeamLib.TableCopyDeep( Machinings[nCurrentMachiningIndex].LeadIn) + Machinings[nCurrentMachiningIndex].LeadIn = BeamLib.TableCopyDeep( Machinings[nCurrentMachiningIndex].LeadOut) + Machinings[nCurrentMachiningIndex].LeadOut = BeamLib.TableCopyDeep( LeadInCopy) end Machinings[nCurrentMachiningIndex].LeadIn.dStartAddLength = dStartAddLength diff --git a/Strategies/Standard/STR0009/STR0009.lua b/Strategies/Standard/STR0009/STR0009.lua index 581bba0..233ef20 100644 --- a/Strategies/Standard/STR0009/STR0009.lua +++ b/Strategies/Standard/STR0009/STR0009.lua @@ -58,7 +58,7 @@ local function GetArcStrategy( Proc, Part) -- se lavorazione orizzontale if bIsHorizontal then local bDouble - local Milling = {} + local Milling = MachiningLib.InitMachiningParameters( MCH_MY.MILLING) Milling.bIsApplicable = false ToolSearchParameters = {} ToolSearchParameters.sMillShape = 'STANDARD' @@ -204,8 +204,8 @@ function STR0009.Make( bAddMachining, Proc, Part, CustomParameters) end -- preparo attacco/uscita in caso di spezzatura arco - Strategy.Machinings[i].LeadInForSplit = {} - Strategy.Machinings[i].LeadOutForSplit = {} + Strategy.Machinings[i].LeadInForSplit = BeamLib.TableCopyDeep( Strategy.Machinings[i].LeadIn) + Strategy.Machinings[i].LeadOutForSplit = BeamLib.TableCopyDeep( Strategy.Machinings[i].LeadOut) Strategy.Machinings[i].LeadInForSplit.nType = MCH_MILL_LI.LINEAR Strategy.Machinings[i].LeadOutForSplit.nType = MCH_MILL_LI.LINEAR Strategy.Machinings[i].LeadInForSplit.dTangentDistance = 0