diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index e74bd8c..c448ac0 100644 Binary files a/EgtMachKernel.rc and b/EgtMachKernel.rc differ diff --git a/FiveAxisMilling.cpp b/FiveAxisMilling.cpp index b4e71b4..dc03fd2 100644 --- a/FiveAxisMilling.cpp +++ b/FiveAxisMilling.cpp @@ -540,6 +540,21 @@ FiveAxisMilling::Preview( bool bRecalc) //---------------------------------------------------------------------------- bool FiveAxisMilling::Apply( bool bRecalc, bool bPostApply) +{ + // se calcoli gią in corso, esco + if ( m_bRunning) { + LOG_DBG_INFO( GetEMkLogger(), "FiveAxisMilling::Apply already running") ; + return true ; + } + m_bRunning = true ; + bool bOk = MyApply( bRecalc, bPostApply) ; + m_bRunning = false ; + return bOk ; +} + +//---------------------------------------------------------------------------- +bool +FiveAxisMilling::MyApply( bool bRecalc, bool bPostApply) { // reset numero percorsi di lavoro generati int nCurrMills = m_nMills ; diff --git a/FiveAxisMilling.h b/FiveAxisMilling.h index f2dabc6..c7c5c4d 100644 --- a/FiveAxisMilling.h +++ b/FiveAxisMilling.h @@ -67,6 +67,7 @@ class FiveAxisMilling : public Machining FiveAxisMilling( void) ; private : + bool MyApply( bool bRecalc, bool bPostApply) ; bool VerifyGeometry( SelData Id, int& nSubs, int& nType) ; double GetApproxLinTol( void) const override ; @@ -92,4 +93,5 @@ class FiveAxisMilling : public Machining ToolData m_TParams ; // parametri utensile int m_nStatus ; // stato di aggiornamento della lavorazione int m_nMills ; // numero di percorsi di lavoro generati + bool m_bRunning ; // flag di calcoli in corso } ; diff --git a/SurfFinishing.cpp b/SurfFinishing.cpp index 9b298c5..65c1170 100644 --- a/SurfFinishing.cpp +++ b/SurfFinishing.cpp @@ -234,6 +234,7 @@ SurfFinishing::SurfFinishing( void) m_dTHoldDiam = 0 ; m_nStatus = MCH_ST_TO_VERIFY ; m_nPaths = 0 ; + m_bRunning = false ; } //---------------------------------------------------------------------------- @@ -500,6 +501,21 @@ SurfFinishing::Preview( bool bRecalc) //---------------------------------------------------------------------------- bool SurfFinishing::Apply( bool bRecalc, bool bPostApply) +{ + // se calcoli giĆ  in corso, esco + if ( m_bRunning) { + LOG_DBG_INFO( GetEMkLogger(), "SurfFinishing::Apply already running") ; + return true ; + } + m_bRunning = true ; + bool bOk = MyApply( bRecalc, bPostApply) ; + m_bRunning = false ; + return bOk ; +} + +//---------------------------------------------------------------------------- +bool +SurfFinishing::MyApply( bool bRecalc, bool bPostApply) { // reset numero tagli nella lavorazione int nCurrPaths = m_nPaths ; diff --git a/SurfFinishing.h b/SurfFinishing.h index 2314f12..47fbac7 100644 --- a/SurfFinishing.h +++ b/SurfFinishing.h @@ -84,6 +84,7 @@ class SurfFinishing : public Machining SurfFinishing( void) ; private : + bool MyApply( bool bRecalc, bool bPostApply) ; bool VerifyGeometry( SelData Id, int& nSubs) ; bool GetCurves( SelData Id, ICURVEPLIST& lstPC) ; bool Chain( int nGrpDestId) ; @@ -94,7 +95,7 @@ class SurfFinishing : public Machining const Frame3d& frSurf, const Vector3d& vtTool, double dDepth, const Point3d ptStart_forced, const Point3d ptEnd_forced, ICurveComposite* pCrv) ; - // lavorazioni per surperfici + // lavorazioni per superfici bool AddZigZag( ICAvToolSurfTm* pCAvTlStm, const Frame3d& frSurf, const ISurfFlatRegion* pSfrPock, const Vector3d& vtTool, double dDepth, double dElev, bool bSplitArcs) ; bool AddOneWay( ICAvToolSurfTm* pCAvTlStm, const Frame3d& frSurf, const ISurfFlatRegion* pSfrPock, @@ -171,4 +172,5 @@ class SurfFinishing : public Machining double m_dTHoldDiam ; // diametro del porta-utensile int m_nStatus ; // stato di aggiornamento della lavorazione int m_nPaths ; // numero di percorsi di lavoro generati + bool m_bRunning ; // flag di calcoli in corso } ; diff --git a/SurfRoughing.cpp b/SurfRoughing.cpp index 6009e3e..bd869e1 100644 --- a/SurfRoughing.cpp +++ b/SurfRoughing.cpp @@ -533,6 +533,21 @@ SurfRoughing::Preview( bool bRecalc) //---------------------------------------------------------------------------- bool SurfRoughing::Apply( bool bRecalc, bool bPostApply) +{ + // se calcoli giĆ  in corso, esco + if ( m_bRunning) { + LOG_DBG_INFO( GetEMkLogger(), "SurfRoughing::Apply already running") ; + return true ; + } + m_bRunning = true ; + bool bOk = MyApply( bRecalc, bPostApply) ; + m_bRunning = false ; + return bOk ; +} + +//---------------------------------------------------------------------------- +bool +SurfRoughing::MyApply( bool bRecalc, bool bPostApply) { // reset numero tagli nella lavorazione int nCurrPaths = m_nPaths ; diff --git a/SurfRoughing.h b/SurfRoughing.h index ba0fbff..fb97f7b 100644 --- a/SurfRoughing.h +++ b/SurfRoughing.h @@ -103,6 +103,7 @@ class SurfRoughing : public Machining SurfRoughing( void) ; private : + bool MyApply( bool bRecalc, bool bPostApply) ; bool VerifyGeometry( SelData Id, int& nSubs) ; bool GetCurves( SelData Id, ICURVEPLIST& lstPC) ; bool Chain( int nGrpDestId) ; @@ -200,4 +201,5 @@ class SurfRoughing : public Machining double m_dStepToler ; // tolleranza di rimozione chunk per Steps double m_dSubStepToler ; // tolleranza di rimozione chunk per SubSteps bool m_bDetectPlaneZ ; // flag per calcolo piani in Zloc di Pocketing + bool m_bRunning ; // flag di calcoli in corso } ; \ No newline at end of file