- in SawPlusChain piccole correzioni

This commit is contained in:
luca.mazzoleni
2024-03-29 09:29:08 +01:00
parent d0015d8252
commit e3f8783c18
+42 -17
View File
@@ -4753,7 +4753,12 @@ function SawPlusChain.GetSCC( vtMachiningDirection)
end
function SawPlusChain.GetVerticalSteps( Proc, Machining)
VerticalSteps = {}
if not Proc.Pocket or not Proc.Pocket.Height then
error( 'Missing pocket depth')
elseif not Machining.Tool or not Machining.Tool.Thickness then
error( 'Missing tool thickness')
end
local VerticalSteps = {}
VerticalSteps.StepLength = 0
VerticalSteps.Count = ceil( ( Proc.Pocket.Height - 10 * GEO.EPS_SMALL) / Machining.Tool.Thickness)
if VerticalSteps.Count > 1 then
@@ -4766,7 +4771,10 @@ function SawPlusChain.GetVerticalSteps( Proc, Machining)
end
function SawPlusChain.GetHorizontalSteps( Machining)
HorizontalSteps = {}
if not Machining.Depth then
error( 'Missing machining depth')
end
local HorizontalSteps = {}
HorizontalSteps.StepLength = 0
HorizontalSteps.Count = 1
if Machining.Tool.SideStep then
@@ -4807,8 +4815,8 @@ function SawPlusChain.GetLeadInOut( Proc, Machining)
end
end
LeadIn = {}
LeadOut = {}
local LeadIn = {}
local LeadOut = {}
LeadIn.Type = MCH_MILL_LI.LINEAR
LeadOut.Type = MCH_MILL_LI.LINEAR
LeadIn.TangentDistance = 0
@@ -4865,6 +4873,9 @@ function SawPlusChain.ApplyMachining( Machining, sOperationNamePrefix, b3Raw)
sNotes = EgtSetValInNotes( sNotes, 'MaxElev', Machining.VerticalSteps.MaxElev)
end
EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetBlockedAxis( Machining.Name, Machining.BlockedAxis.Orientation, b3Raw, Machining.FaceToMachine.VtN, Machining.BlockedAxis.VtOut))
EgtSetMachiningParam( MCH_MP.OVERL, Machining.Overlap)
EgtSetMachiningParam( MCH_MP.INITANGS, Machining.SuggestedAngles)
EgtSetMachiningParam( MCH_MP.STARTPOS, max( Machining.StartSafetyLength, EgtGetMachiningParam( MCH_MP.STARTPOS)))
EgtSetMachiningParam( MCH_MP.USERNOTES, sNotes)
local bIsApplyOk = ML.ApplyMachining( true, false)
@@ -4877,7 +4888,7 @@ function SawPlusChain.ApplyMachining( Machining, sOperationNamePrefix, b3Raw)
return true
end
function SawPlusChain.Make( Proc, b3Raw)
function SawPlusChain.Make( Proc, b3Raw, bOnlySaw)
Proc.Pocket = {}
Proc.Pocket.Strategy = 'SawPlusChain'
@@ -4887,6 +4898,7 @@ function SawPlusChain.Make( Proc, b3Raw)
end
-- se tasca su faccia sotto la strategia non è applicabile (la sega a catena in generale non può lavorare da sotto)
-- TODO se OnlySaw questo test è da rimuovere ma bisogna considerare anche la lama da sotto
if Proc.AffectedFaces.Bottom then
local sErr = 'Feature '.. Proc.FeatureId .. ': Strategy not applicable - pocket on bottom face'
return false, sErr
@@ -4930,7 +4942,7 @@ function SawPlusChain.Make( Proc, b3Raw)
return false, sErr
end
-- se tasca meno spessa della sega a catena la strategia non è applicabile
if Chainsawing.Tool.Thickness > Proc.Pocket.Height - 10 * GEO.EPS_SMALL then
if not bOnlySaw and Chainsawing.Tool.Thickness > Proc.Pocket.Height - 10 * GEO.EPS_SMALL then
local sErr = 'Feature '.. Proc.FeatureId .. ': Strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for chainsaw thickness'
return false, sErr
end
@@ -4941,7 +4953,7 @@ function SawPlusChain.Make( Proc, b3Raw)
return false, sErr
end
-- se tasca più stretta della sega a catena la strategia non è applicabile
if Chainsawing.Tool.Width > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then
if not bOnlySaw and Chainsawing.Tool.Width > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then
local sErr = 'Feature '.. Proc.FeatureId .. ': Strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for chainsaw width'
return false, sErr
end
@@ -4971,14 +4983,6 @@ function SawPlusChain.Make( Proc, b3Raw)
Cutting.Depth = Cutting.Tool.MaxDepth
Cutting.RadialOffset = Proc.Pocket.Depth - Cutting.Depth
end
-- faceuse
Cutting.Faceuse = BL.GetNearestOrthoOpposite( Proc.Pocket.Direction)
-- SCC
Cutting.SCC = SawPlusChain.GetSCC( Proc.Pocket.Direction)
-- asse bloccato
Cutting.BlockedAxis = {}
Cutting.BlockedAxis.Orientation = 'perpendicular'
Cutting.BlockedAxis.VtOut = EgtIf( Cutting.FaceToMachine.VtN:getX() > 0, X_AX(), -X_AX())
-- step verticale e offset longitudinale
Cutting.VerticalSteps = SawPlusChain.GetVerticalSteps( Proc, Cutting)
if Cutting.ToolInvert and Cutting.VerticalSteps.Count > 1 then
@@ -4986,8 +4990,20 @@ function SawPlusChain.Make( Proc, b3Raw)
else
Cutting.LongitudinalOffset = 0
end
Cutting.StartSafetyLength = 10
Cutting.Overlap = 0
-- step orizzontale
Cutting.HorizontalSteps = SawPlusChain.GetHorizontalSteps( Cutting)
-- faceuse
Cutting.Faceuse = BL.GetNearestOrthoOpposite( Proc.Pocket.Direction)
-- SCC
Cutting.SCC = SawPlusChain.GetSCC( Proc.Pocket.Direction)
-- angoli suggeriti
Cutting.SuggestedAngles = ''
-- asse bloccato
Cutting.BlockedAxis = {}
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)
@@ -5000,8 +5016,16 @@ function SawPlusChain.Make( Proc, b3Raw)
bOk, sErr = SawPlusChain.ApplyMachining( Cutting, 'Cut_', b3Raw)
end
if bOnlySaw then
return bOk, sErr
end
-- parametri della lavorazione con sega a catena
-- lavorazione con sega a catena
return bOk, sErr
@@ -5037,10 +5061,11 @@ local function MakeMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead, bSinglePa
-- rimuovere true or!!!!!!
if true or EgtGetInfo( Proc.Id, Q_SAW_PLUS_CHAIN, 'i') == 1 then --TEST
if true or EgtGetInfo( Proc.Id, Q_SAW_PLUS_CHAIN, 'i') > 0 then --TEST
local bOk
local sErr
bOk, sErr = SawPlusChain.Make ( Proc, b3Raw)
local bOnlySaw = EgtGetInfo( Proc.Id, Q_SAW_PLUS_CHAIN, 'i') == 1
bOk, sErr = SawPlusChain.Make ( Proc, b3Raw, bOnlySaw)
return bOk, sErr
end