From 861384b5bb80164bf799df4217cff1ff7c4070c7 Mon Sep 17 00:00:00 2001 From: "luca.mazzoleni" Date: Tue, 20 May 2025 12:51:20 +0200 Subject: [PATCH] - in BatchProcessNew piccola correzione al caso FLAG = 6 - in STR0012 RidgeLap si taglia la faccia aggiuntiva solo se non corrisponde al taglio di testa o coda --- BatchProcessNew.lua | 2 ++ LuaLibs/BeamExec.lua | 1 - Strategies/Standard/STR0012/STR0012.lua | 12 +++++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/BatchProcessNew.lua b/BatchProcessNew.lua index 78d9bd1..680b2f4 100644 --- a/BatchProcessNew.lua +++ b/BatchProcessNew.lua @@ -23,6 +23,8 @@ if ( BEAM.FLAG ~= 6) and ( BEAM.FLAG ~= 7) then PostErrView( BEAM.ERR, BEAM.MSG) return end +end +if BeamExec.FLAG ~= 7 then sTxtLogFile = EgtChangePathExtension( BEAM.FILE, '.txt') end local sMachDir = EgtGetCurrMachineDir() diff --git a/LuaLibs/BeamExec.lua b/LuaLibs/BeamExec.lua index dd69e53..e12ce11 100644 --- a/LuaLibs/BeamExec.lua +++ b/LuaLibs/BeamExec.lua @@ -777,7 +777,6 @@ 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 - -- TODO problemi di riferimenti a elementi della stessa tabella... spariscono le SubstitutedProc -- verifico se il taglio può essere saltato perchè è nella stessa posizione del taglio di testa if Proc.nPrc == 340 and ProcB.Topology.sFamily == 'Cut' and AreSameVectorApprox( ProcB.Faces[1].vtN, X_AX()) and abs( ProcB.Faces[1].ptCenter:getX() - Part.b3Part:getMax():getX()) < 10 * GEO.EPS_SMALL then diff --git a/Strategies/Standard/STR0012/STR0012.lua b/Strategies/Standard/STR0012/STR0012.lua index 08dde72..3e2c68e 100644 --- a/Strategies/Standard/STR0012/STR0012.lua +++ b/Strategies/Standard/STR0012/STR0012.lua @@ -63,14 +63,20 @@ function STR0012.Make( bAddMachining, Proc, Part, CustomParameters) else nAddedFace = 3 - 1 end + local OriginalProc = Proc -- recupero gruppo per geometria addizionale local nAddGrpId = BeamLib.GetAddGroup( Part.id) - -- faccia aggiuntiva da lavorare - idAddedTmFace = EgtCopySurfTmFacet( Proc.id, nAddedFace, nAddGrpId) + -- se la faccia aggiuntiva non corrisponde al taglio di testa o di coda, si deve lavorare come faccia singola + if not( AreSameVectorApprox( Proc.Faces[nAddedFace + 1].vtN, X_AX()) and abs( Proc.Faces[nAddedFace + 1].ptCenter:getX() - Part.b3Part:getMax():getX()) < 10 * GEO.EPS_SMALL) + and not( AreSameVectorApprox( Proc.Faces[nAddedFace + 1].vtN, -X_AX()) and abs( Proc.Faces[nAddedFace + 1].ptCenter:getX() - Part.b3Part:getMin():getX()) < 10 * GEO.EPS_SMALL) then + + -- faccia aggiuntiva da lavorare + idAddedTmFace = EgtCopySurfTmFacet( Proc.id, nAddedFace, nAddGrpId) + end + -- rimozione della terza faccia dalla Proc local idNewProc = EgtCopyGlob( Proc.id, nAddGrpId) EgtSurfTmRemoveFacet( idNewProc, nAddedFace) - local OriginalProc = Proc Proc = FeatureLib.GetProcFromTrimesh( idNewProc, Part, Proc) -- TODO rimuovere??? codolo da implementare o no??