- chiamate a FeatureId (PRID) sostituite con TaskId

- in SawPlusChain angoli iniziali gestiti solo per sega a catena
This commit is contained in:
luca.mazzoleni
2024-04-09 19:02:10 +02:00
parent 969f4cb6a0
commit cc30f3aeb9
2 changed files with 16 additions and 16 deletions
-2
View File
@@ -344,8 +344,6 @@ local function CollectFeatures( PartId, b3Raw, dCurrOvmH, dCurrOvmT)
end
Proc.Box = EgtGetBBoxGlob( ProcId, GDB_BB.STANDARD)
if b3Raw then
-- id della feature btl
Proc.FeatureId = EgtGetInfo( Proc.Id, 'PRID', 's')
-- recupero l'elenco delle facce della parte interessate dalla feature
Proc.AffectedFaces = BL.GetProcessAffectedFaces( Proc)
-- recupero informazioni sulle facce della feature
+16 -14
View File
@@ -4900,7 +4900,9 @@ function SawPlusChain.ApplyMachining( Machining, b3Raw)
end
end
EgtSetMachiningParam( MCH_MP.BLOCKEDAXIS, BL.GetBlockedAxis( Machining.Name, Machining.BlockedAxis.Orientation, b3Raw, Machining.FaceToMachine.VtN, Machining.BlockedAxis.VtOut))
EgtSetMachiningParam( MCH_MP.INITANGS, BL.GetChainSawInitAngs( Machining.FaceToMachine.VtN, Machining.Direction, Machining.SuggestedAngles.Index))
if Machining.Type == MCH_OY.MORTISING then
EgtSetMachiningParam( MCH_MP.INITANGS, BL.GetChainSawInitAngs( Machining.FaceToMachine.VtN, Machining.Direction, Machining.SuggestedAngles.Index))
end
EgtSetMachiningParam( MCH_MP.OVERL, Machining.Overlap)
EgtSetMachiningParam( MCH_MP.STARTPOS, max( Machining.StartSafetyLength, EgtGetMachiningParam( MCH_MP.STARTPOS)))
if Machining.MaxElev then
@@ -4970,7 +4972,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc)
-- ricerca lavorazione
Cutting.Name = ML.FindCutting( 'HeadSide', true, false)
if not Cutting.Name then
Cutting.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - saw blade not found'
Cutting.Message = 'Feature '.. Proc.TaskId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - saw blade not found'
Cutting.CanApply = false
EgtOutLog( Cutting.Message)
return Cutting
@@ -4982,7 +4984,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc)
-- verifica dimensioni tasca compatibili
-- se tasca meno spessa della lama la strategia non è applicabile
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.Message = 'Feature '.. Proc.TaskId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for saw blade thickness'
Cutting.CanApply = false
EgtOutLog( Cutting.Message)
return Cutting
@@ -4990,7 +4992,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc)
if #( Proc.Pocket.SideFaces) > 0 then
-- se tasca più stretta della lama la strategia non è applicabile
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.Message = 'Feature '.. Proc.TaskId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for saw blade diameter'
Cutting.CanApply = false
EgtOutLog( Cutting.Message)
return Cutting
@@ -5062,7 +5064,7 @@ function SawPlusChain.Saw.CalculateMachiningParameters( Proc)
-- 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.'
local sDamageNextPieceMessage = 'Feature '.. Proc.TaskId .. ' : sawblade can damage next piece.'
if #Cutting.Message > 0 then
Cutting.Message = Cutting.Message .. '\n' .. sDamageNextPieceMessage
else
@@ -5087,7 +5089,7 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc)
Chainsawing.Name = ML.FindSawing( 'Sawing', nil, nil, 'Longest')
end
if not Chainsawing.Name then
Chainsawing.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - chainsaw not found'
Chainsawing.Message = 'Feature '.. Proc.TaskId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - chainsaw not found'
Chainsawing.CanApply = false
EgtOutLog( Chainsawing.Message)
return Chainsawing
@@ -5099,7 +5101,7 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc)
-- verifica dimensioni tasca compatibili
-- se tasca meno spessa della sega a catena la strategia non è applicabile
if Chainsawing.Tool.Thickness > Proc.Pocket.Height - 10 * GEO.EPS_SMALL then
Chainsawing.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for chainsaw thickness'
Chainsawing.Message = 'Feature '.. Proc.TaskId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for chainsaw thickness'
Chainsawing.CanApply = false
EgtOutLog( Chainsawing.Message)
return Chainsawing
@@ -5107,7 +5109,7 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc)
if #( Proc.Pocket.SideFaces) == 0 then
-- se tasca più stretta della sega a catena la strategia non è applicabile
if Chainsawing.Tool.Width > Proc.Pocket.Width - 10 * GEO.EPS_SMALL then
Chainsawing.Message = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for chainsaw width'
Chainsawing.Message = 'Feature '.. Proc.TaskId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket too narrow for chainsaw width'
Chainsawing.CanApply = false
EgtOutLog( Chainsawing.Message)
return Chainsawing
@@ -5133,7 +5135,7 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc)
else
Chainsawing.Depth = Chainsawing.Tool.MaxMat
Chainsawing.LongitudinalOffset = Proc.Pocket.Depth - Chainsawing.Depth
Chainsawing.Message = 'Feature '.. Proc.FeatureId .. ' : chainsawing elevation bigger than max tool depth'
Chainsawing.Message = 'Feature '.. Proc.TaskId .. ' : chainsawing elevation bigger than max tool depth'
EgtOutLog( Chainsawing.Message)
end
-- offset radiale
@@ -5161,7 +5163,7 @@ function SawPlusChain.Chainsaw.CalculateMachiningParameters( Proc)
-- 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.'
local sDamageNextPieceMessage = 'Feature '.. Proc.TaskId .. ' : chainsaw can damage next piece.'
if #Chainsawing.Message > 0 then
Chainsawing.Message = Chainsawing.Message .. '\n' .. sDamageNextPieceMessage
else
@@ -5181,13 +5183,13 @@ function SawPlusChain.Make( Proc, nRawId, nPhase, bOnlySaw)
-- TODO per implementare la strategia con lapjoint lunghe bisogna prima riconoscere le topologie che arrivano
if Proc.IsSplittedLapJoint then
local sErr = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not implemented for long lapjoint '
local sErr = 'Feature '.. Proc.TaskId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not implemented for long lapjoint '
EgtOutLog( sErr)
return false, sErr
end
if not SawPlusChain.IsTopologyOk( Proc) then
local sErr = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not implemented for topology ' .. Proc.TopologyLongName
local sErr = 'Feature '.. Proc.TaskId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not implemented for topology ' .. Proc.TopologyLongName
EgtOutLog( sErr)
return false, sErr
end
@@ -5195,7 +5197,7 @@ function SawPlusChain.Make( Proc, nRawId, nPhase, bOnlySaw)
-- 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 and ( Proc.Fct > 3 or not Proc.AffectedFaces.Top) then
local sErr = 'Feature '.. Proc.FeatureId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket on bottom face'
local sErr = 'Feature '.. Proc.TaskId .. ' : strategy ' .. Proc.Pocket.Strategy .. ' not applicable - pocket on bottom face'
EgtOutLog( sErr)
return false, sErr
end
@@ -6496,7 +6498,7 @@ local function MakeLongMoreFaces( Proc, nPhase, nRawId, nPartId, dOvmHead)
for i = 1, #vAddId do
local b3Box = EgtGetBBoxGlob( vAddId[i], GDB_BB.STANDARD)
local nFct = EgtSurfTmFacetCount( vAddId[i])
local AddProc = { Id = vAddId[i], Grp = Proc.Grp, FeatureId = Proc.FeatureId, Prc = Proc.Prc, Box = b3Box, TotBox = Proc.Box, Fct = nFct, Flg = Proc.Flg, PartId = Proc.PartId, IsSplittedLapJoint = true}
local AddProc = { Id = vAddId[i], Grp = Proc.Grp, Prc = Proc.Prc, Box = b3Box, TotBox = Proc.Box, Fct = nFct, Flg = Proc.Flg, PartId = Proc.PartId, TaskId = Proc.TaskId, IsSplittedLapJoint = true}
Topology.Classify( AddProc, b3Raw)
-- lasciare il false nel sesto parametro (perchè internamente viene verificato se diverso da nil)
local bOk, sMyWarn