- in SawPlusChain aggiunto messaggio danneggiamento pezzo successivo
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user