- in SawPlusChain aggiunto messaggio danneggiamento pezzo successivo

This commit is contained in:
luca.mazzoleni
2024-04-05 19:17:17 +02:00
parent 7676693f66
commit a950807979
+45 -4
View File
@@ -4593,6 +4593,8 @@ end
-- 4 facce con faccia di fondo grande: la faccia da lavorare è piccola (3 adj) e le facce laterali sono le due piccole
-- 3 facce: la faccia di fondo è il fondo della tasca, la faccia da lavorare è grande, non ci sono facce laterali
-- TODO: gestione messaggi in funzione apposita ( almeno per append)
local SawPlusChain = {}
SawPlusChain.Saw = {}
SawPlusChain.Chainsaw = {}
@@ -4947,6 +4949,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc)
if not Cutting.Name then
Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - saw blade not found'
Cutting.CanApply = false
EgtOutLog( Cutting.Message)
return Cutting
end
Cutting.Type = MCH_OY.MILLING
@@ -4958,6 +4961,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc)
if Cutting.Tool.Thickness > Proc.Pocket.Height - 10 * GEO.EPS_SMALL then
Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for saw blade thickness'
Cutting.CanApply = false
EgtOutLog( Cutting.Message)
return Cutting
end
if Proc.Pocket.SideOpeningsCount == 0 then
@@ -4965,6 +4969,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc)
if Cutting.Tool.Diameter > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then
Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for saw blade diameter'
Cutting.CanApply = false
EgtOutLog( Cutting.Message)
return Cutting
end
end
@@ -5027,6 +5032,18 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc)
Cutting.HorizontalSteps.StepLength = 0
end
-- eventuale avviso di danneggiamento pezzo successivo
local dOffsideLength = max( Cutting.LeadIn.StartAddLength, Cutting.LeadOut.EndAddLength) + Cutting.Tool.Diameter / 2 + 10 * GEO.EPS_SMALL
if ( not Proc.Tail or Proc.AdvTail) and Proc.AffectedFaces.Left and ( Proc.Pocket.DistanceToNextPart < dOffsideLength) then
local sDamageNextPieceMessage = 'Feature '.. Proc.FeatureId .. ' : sawblade can damage next piece.'
if #Cutting.Message > 0 then
Cutting.Message = Cutting.Message .. '\n' .. sDamageNextPieceMessage
else
Cutting.Message = sDamageNextPieceMessage
end
EgtOutLog( sDamageNextPieceMessage)
end
return Cutting
end
@@ -5106,13 +5123,26 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc)
-- eventuale step verticale
Chainsawing.VerticalSteps = SawPlusChain.GetVerticalSteps( Proc, Chainsawing)
-- eventuale avviso di danneggiamento pezzo successivo
local dOffsideLength = max( Chainsawing.LeadIn.StartAddLength, Chainsawing.LeadOut.EndAddLength) + Chainsawing.Tool.Width / 2 + 10 * GEO.EPS_SMALL
if ( not Proc.Tail or Proc.AdvTail) and Proc.AffectedFaces.Left and ( Proc.Pocket.DistanceToNextPart < dOffsideLength) then
local sDamageNextPieceMessage = 'Feature '.. Proc.FeatureId .. ' : chainsaw can damage next piece.'
if #Chainsawing.Message > 0 then
Chainsawing.Message = Chainsawing.Message .. '\n' .. sDamageNextPieceMessage
else
Chainsawing.Message = sDamageNextPieceMessage
end
EgtOutLog( sDamageNextPieceMessage)
end
return Chainsawing
end
function SawPlusChain.Make( Proc, b3Raw, bOnlySaw)
function SawPlusChain.Make( Proc, nRawId, nPhase, bOnlySaw)
Proc.Pocket = {}
Proc.Pocket.Strategy = 'SawPlusChain'
local b3Raw = EgtGetRawPartBBox( nRawId)
if not SawPlusChain.IsTopologyOk( Proc) then
local sErr = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not implemented for topology ' .. Proc.TopologyLongName
@@ -5134,6 +5164,7 @@ function SawPlusChain.Make( Proc, b3Raw, bOnlySaw)
Proc.Pocket.Height = Proc.Pocket.BottomFace.Height
Proc.Pocket.Depth = Proc.Pocket.BottomFace.Elevation
Proc.Pocket.Direction = Proc.Pocket.BottomFace.VtN
Proc.Pocket.DistanceToNextPart = BL.GetDistanceToNextPart( nRawId, nPhase)
-- parametri lavorazione di lama
local Cutting = SawPlusChain.Saw.CalculateMachiningParameters( Proc)
@@ -5154,11 +5185,16 @@ function SawPlusChain.Make( Proc, b3Raw, bOnlySaw)
bIsCuttingOk, sCuttingApplyMessage = SawPlusChain.ApplyMachining( Cutting, 'Cut_', b3Raw)
-- update messaggi
if sCuttingApplyMessage and #sCuttingApplyMessage > 0 then
Cutting.Message = Cutting.Message .. '\n' .. 'Apply : ' .. sCuttingApplyMessage
Cutting.Message = Cutting.Message .. 'Apply : ' .. sCuttingApplyMessage .. '\n'
end
end
end
-- se tasca passante e la lama è arrivata sul fondo, non servono ulteriori lavorazioni
if #Proc.Pocket.SideFaces == 0 and Cutting.RadialOffset == 0 then
bOnlySaw = true
end
if bOnlySaw or not bIsCuttingOk then
return bIsCuttingOk, Cutting.Message
end
@@ -5184,7 +5220,12 @@ function SawPlusChain.Make( Proc, b3Raw, bOnlySaw)
end
end
return bIsChainsawingOk, Chainsawing.Message
local sFinalMessage = ''
if #Cutting.Message > 0 or #Chainsawing.Message > 0 then
sFinalMessage = Cutting.Message .. '\n' .. Chainsawing.Message
end
return bIsChainsawingOk, sFinalMessage
end
--#endregion SawPlusChain
@@ -5221,7 +5262,7 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
local bOk
local sErr
local bOnlySaw = EgtGetInfo( Proc.Id, Q_SAW_PLUS_CHAIN, 'i') == 1
bOk, sErr = SawPlusChain.Make ( Proc, b3Raw, bOnlySaw)
bOk, sErr = SawPlusChain.Make ( Proc, nRawId, nPhase, bOnlySaw)
return bOk, sErr
end