- in sawpluschain migliorati approccio e retrazione lama

This commit is contained in:
luca.mazzoleni
2024-04-04 08:48:13 +02:00
parent 57d696e2fc
commit 5f1aaac719
+33 -22
View File
@@ -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