Tagli testa e coda si riconoscono da topologia e non più da Prc=340/350

This commit is contained in:
andrea.villa
2025-10-20 10:33:35 +02:00
parent 5c41793b70
commit 66b273354e
6 changed files with 35 additions and 67 deletions
+16 -36
View File
@@ -586,24 +586,6 @@ local function GetFeatureForcedStrategy( Proc)
return nil
end
-------------------------------------------------------------------------------------------------------------
local function AdjustPrcGrp( Proc, bPartInCombiIsInverted)
local nNewPrc = { nPrc = Proc.nPrc, nGrp = Proc.nGrp}
-- se pezzo invertito
if bPartInCombiIsInverted then
-- il taglio di testa diventa taglio di coda
if ID.IsHeadCut( Proc) then
_, nNewPrc.nPrc, nNewPrc.nGrp = ID.IsTailCut( Proc)
-- il taglio di coda diventa taglio di testa
elseif ID.IsTailCut( Proc) then
_, nNewPrc.nPrc, nNewPrc.nGrp = ID.IsHeadCut( Proc)
end
end
return nNewPrc.nPrc, nNewPrc.nGrp
end
-------------------------------------------------------------------------------------------------------------
local function CollectFeatures( Part, dRotIndex)
-- recupero le feature
@@ -632,8 +614,6 @@ local function CollectFeatures( Part, dRotIndex)
Proc.idFeature = EgtGetInfo( Proc.id, 'PRID', 's') or Proc.id
Proc.nGrp = nGrp
Proc.nPrc = nPrc
-- aggiorno info feature in caso di pezzo invertito
Proc.nPrc, Proc.nGrp = AdjustPrcGrp( Proc, dRotIndex > 4)
Proc.nFlg = 1
Proc.nFct = EgtSurfTmFacetCount( ProcId) or 0
Proc.idCut = EgtGetInfo( EgtGetParent( EgtGetParent( ProcId)), 'CUTID', 'i') or 0
@@ -788,23 +768,23 @@ local function GetFeatureInfoAndDependency( vProcSingleRot, Part)
local ProcB = vProcSingleRot[j]
-- non si controlla la feature con se stessa o se feature disabilitata
if i ~= j and ProcB.nFlg ~= 0 then
-- verifico se il taglio può essere saltato perchè è nella stessa posizione del taglio di testa
if ID.IsHeadCut( Proc) and ProcB.Topology.sFamily == 'HeadCut' then
if not Proc.SlaveProcIndexes then
Proc.SlaveProcIndexes = {}
end
table.insert( Proc.SlaveProcIndexes, j)
ProcB.nIndexMasterProc = i
ProcB.nFlg = 0
-- verifico se il taglio aggiunto manualmente può essere saltato perchè nella stessa posizione c'è un altro taglio di testa
if ID.IsHeadCut( Proc) and ( ID.IsHeadCut( ProcB) and EgtGetName( ProcB.id) == 'StartCut') then
if not Proc.SlaveProcIndexes then
Proc.SlaveProcIndexes = {}
end
table.insert( Proc.SlaveProcIndexes, j)
ProcB.nIndexMasterProc = i
ProcB.nFlg = 0
end
-- verifico se il taglio può essere saltato perchè è nella stessa posizione del taglio di coda
if ID.IsTailCut( Proc) and ProcB.Topology.sFamily == 'TailCut' then
if not Proc.SlaveProcIndexes then
Proc.SlaveProcIndexes = {}
end
table.insert( Proc.SlaveProcIndexes, j)
ProcB.nIndexMasterProc = i
ProcB.nFlg = 0
-- verifico se il taglio aggiunto manualmente può essere saltato perchè nella stessa posizione c'è un altro taglio di coda
if ID.IsTailCut( Proc) and ( ID.IsTailCut( ProcB) and EgtGetName( ProcB.id) == 'EndCut') then
if not Proc.SlaveProcIndexes then
Proc.SlaveProcIndexes = {}
end
table.insert( Proc.SlaveProcIndexes, j)
ProcB.nIndexMasterProc = i
ProcB.nFlg = 0
end
-- verifico se feature tipo LapJoint è attraversata da almeno un foro
if ( Proc.Topology.sFamily == 'Pocket' or Proc.Topology.sFamily == 'Tunnel' or Proc.Topology.sFamily == 'Groove' or ID.IsMortise( Proc)) and