- in sawpluschain migliorati approccio e retrazione lama
This commit is contained in:
+33
-22
@@ -4791,11 +4791,12 @@ function SawPlusChain.GetHorizontalSteps( Machining)
|
||||
end
|
||||
|
||||
|
||||
function SawPlusChain.GetLeadInOut( Proc, Machining)
|
||||
function SawPlusChain.CalculateLeadInOut( Proc, Machining)
|
||||
-- si determina se l'inizio o la fine della lavorazione sono chiusi e l'eventuale riduzione da applicare
|
||||
local bIsStartClosed = false
|
||||
local bIsEndClosed = false
|
||||
local bIsMortising = ( Machining.Type == MCH_OY.MORTISING)
|
||||
local dExtraPerpDistance = EgtMdbGetGeneralParam( MCH_GP.SAFEZ)
|
||||
local dAddLengthToReduce = 0
|
||||
if bIsMortising then
|
||||
dAddLengthToReduce = Machining.Tool.Diameter / 2
|
||||
@@ -4834,32 +4835,33 @@ function SawPlusChain.GetLeadInOut( Proc, Machining)
|
||||
LeadOut.Type = MCH_MILL_LI.LINEAR
|
||||
LeadIn.TangentDistance = 0
|
||||
LeadOut.TangentDistance = 0
|
||||
LeadIn.PerpDistance = 0
|
||||
LeadOut.PerpDistance = 0
|
||||
LeadIn.PerpDistance = Machining.Depth + dExtraPerpDistance - Machining.RadialOffset + BD.CUT_EXTRA
|
||||
LeadOut.PerpDistance = Machining.Depth + dExtraPerpDistance - Machining.RadialOffset + BD.CUT_EXTRA
|
||||
LeadIn.Elevation = 0
|
||||
LeadOut.Elevation = 0
|
||||
LeadIn.CompLength = 0
|
||||
LeadOut.CompLength = 0
|
||||
if bIsStartClosed and bIsEndClosed then
|
||||
LeadIn.StartAddLength = -dAddLengthToReduce
|
||||
LeadOut.EndAddLength = -dAddLengthToReduce
|
||||
elseif bIsStartClosed then
|
||||
LeadIn.StartAddLength = -dAddLengthToReduce
|
||||
LeadOut.EndAddLength = BD.CUT_EXTRA + max( -LeadIn.StartAddLength - Proc.Pocket.Width, 0)
|
||||
elseif bIsEndClosed then
|
||||
LeadOut.EndAddLength = -dAddLengthToReduce
|
||||
LeadIn.StartAddLength = BD.CUT_EXTRA + max( -LeadOut.EndAddLength - Proc.Pocket.Width, 0)
|
||||
end
|
||||
else
|
||||
if bIsStartClosed then
|
||||
LeadIn.StartAddLength = -dAddLengthToReduce
|
||||
LeadIn.PerpDistance = 1
|
||||
else
|
||||
LeadIn.StartAddLength = BD.CUT_EXTRA
|
||||
end
|
||||
if bIsEndClosed then
|
||||
LeadOut.EndAddLength = -dAddLengthToReduce
|
||||
LeadOut.PerpDistance = 1
|
||||
else
|
||||
LeadOut.EndAddLength = BD.CUT_EXTRA
|
||||
end
|
||||
if abs( LeadIn.StartAddLength) > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then
|
||||
LeadOut.EndAddLength = -LeadIn.StartAddLength - Proc.Pocket.Width + 1
|
||||
end
|
||||
if abs( LeadOut.EndAddLength) > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then
|
||||
LeadIn.StartAddLength = -LeadOut.EndAddLength - Proc.Pocket.Width + 1
|
||||
end
|
||||
end
|
||||
if bIsStartClosed then
|
||||
LeadIn.StartAddLength = -dAddLengthToReduce
|
||||
end
|
||||
if bIsEndClosed then
|
||||
LeadOut.EndAddLength = -dAddLengthToReduce
|
||||
end
|
||||
|
||||
return LeadIn, LeadOut
|
||||
@@ -5009,7 +5011,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc)
|
||||
Cutting.BlockedAxis.Orientation = 'perpendicular'
|
||||
Cutting.BlockedAxis.VtOut = EgtIf( Cutting.FaceToMachine.VtN:getX() > 0, X_AX(), -X_AX())
|
||||
-- approccio e retrazione
|
||||
Cutting.LeadIn, Cutting.LeadOut = SawPlusChain.GetLeadInOut( Proc, Cutting)
|
||||
Cutting.LeadIn, Cutting.LeadOut = SawPlusChain.CalculateLeadInOut( Proc, Cutting)
|
||||
-- eventuale step orizzontale
|
||||
if Cutting.Tool.SideStep then
|
||||
Cutting.HorizontalSteps = SawPlusChain.GetHorizontalSteps( Cutting)
|
||||
@@ -5058,7 +5060,7 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc)
|
||||
end
|
||||
end
|
||||
|
||||
-- parametri della lavorazione con sega a catena
|
||||
-- parametri della lavorazione
|
||||
-- lato di lavoro e inversioni
|
||||
if Chainsawing.Tool.IsCCW then
|
||||
Chainsawing.Workside = MCH_MILL_WS.RIGHT
|
||||
@@ -5093,7 +5095,7 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc)
|
||||
Chainsawing.BlockedAxis = {}
|
||||
Chainsawing.BlockedAxis.Orientation = 'perpendicular'
|
||||
-- approccio e retrazione
|
||||
Chainsawing.LeadIn, Chainsawing.LeadOut = SawPlusChain.GetLeadInOut( Proc, Chainsawing)
|
||||
Chainsawing.LeadIn, Chainsawing.LeadOut = SawPlusChain.CalculateLeadInOut( Proc, Chainsawing)
|
||||
-- eventuale step verticale
|
||||
Chainsawing.VerticalSteps = SawPlusChain.GetVerticalSteps( Proc, Chainsawing)
|
||||
|
||||
@@ -5129,14 +5131,21 @@ function SawPlusChain.Make( Proc, b3Raw, bOnlySaw)
|
||||
-- parametri lavorazione di lama
|
||||
local Cutting = SawPlusChain.Saw.CalculateMachiningParameters( Proc)
|
||||
|
||||
-- applicazione lavorazione di lama
|
||||
-- applicazione lavorazione di lama con eventuali step XY
|
||||
local bIsCuttingOk = false
|
||||
local sCuttingApplyMessage = ''
|
||||
if Cutting.CanApply then
|
||||
local dOriginalRadialOffset = Cutting.RadialOffset
|
||||
local dOriginalLeadInPerpDistance = Cutting.LeadIn.PerpDistance
|
||||
local dOriginalLeadOutPerpDistance = Cutting.LeadOut.PerpDistance
|
||||
for i = Cutting.HorizontalSteps.Count, 1, -1 do
|
||||
Cutting.RadialOffset = dOriginalRadialOffset + Cutting.HorizontalSteps.StepLength * ( i - 1)
|
||||
-- update distanza perpendicolare attacco per contemplare l'offset applicato
|
||||
Cutting.LeadIn.PerpDistance = dOriginalLeadInPerpDistance - Cutting.RadialOffset
|
||||
Cutting.LeadOut.PerpDistance = dOriginalLeadOutPerpDistance - Cutting.RadialOffset
|
||||
-- applicazione lavorazione
|
||||
bIsCuttingOk, sCuttingApplyMessage = SawPlusChain.ApplyMachining( Cutting, 'Cut_', b3Raw)
|
||||
-- update messaggi
|
||||
if sCuttingApplyMessage and #sCuttingApplyMessage > 0 then
|
||||
Cutting.Message = Cutting.Message .. '\n' .. 'Apply : ' .. sCuttingApplyMessage
|
||||
end
|
||||
@@ -5152,14 +5161,16 @@ function SawPlusChain.Make( Proc, b3Raw, bOnlySaw)
|
||||
-- si lavora solo quanto non lavorato dalla lama
|
||||
Chainsawing.MaxElev = Cutting.RadialOffset + BD.CUT_EXTRA
|
||||
|
||||
-- applicazione lavorazione con sega a catena
|
||||
-- applicazione lavorazione con sega a catena con eventuali step in Z
|
||||
local bIsChainsawingOk = false
|
||||
local sChainsawingApplyMessage = ''
|
||||
if Chainsawing.CanApply then
|
||||
local dOriginalRadialOffsetChainsawing = Chainsawing.RadialOffset
|
||||
for i = Chainsawing.VerticalSteps.Count, 1, -1 do
|
||||
Chainsawing.RadialOffset = dOriginalRadialOffsetChainsawing + Chainsawing.VerticalSteps.StepLength * ( i - 1)
|
||||
-- applicazione lavorazione
|
||||
bIsChainsawingOk, sChainsawingApplyMessage = SawPlusChain.ApplyMachining( Chainsawing, 'Chainsaw_', b3Raw)
|
||||
-- update messaggi
|
||||
if sChainsawingApplyMessage and #sChainsawingApplyMessage > 0 then
|
||||
Chainsawing.Message = Chainsawing.Message .. '\n' .. 'Apply : ' .. sChainsawingApplyMessage
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user