- in MachiningLib.GetSplitMachinings corretta lettura LeadIn / Out per split
- in STR0009 si usa InitMachiningParameters per creare la lavorazione; il LeadIn / Out per split si inizializza copiando quelli originali
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user