diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index 5f66eb4..40d82cc 100644 Binary files a/EgtMachKernel.rc and b/EgtMachKernel.rc differ diff --git a/Simulator.cpp b/Simulator.cpp index 765cf0b..1024454 100644 --- a/Simulator.cpp +++ b/Simulator.cpp @@ -612,8 +612,11 @@ Simulator::FindAndManageOperationStart( bool bStart, bool bFirst, int& nStatus) Point3d ptMin, ptMax ; m_pGeomDB->GetInfo( nClId, KEY_MMIN, ptMin) ; m_pGeomDB->GetInfo( nClId, KEY_MMAX, ptMax) ; + DBLVECTOR vAxMin, vAxMax ; + m_pGeomDB->GetInfo( nClId, KEY_MAXMIN, vAxMin) ; + m_pGeomDB->GetInfo( nClId, KEY_MAXMAX, vAxMax) ; // richiamo gestione evento inizio lavorazione - if ( ! OnMachiningStart( m_nOpId, m_nOpInd, ptMin, ptMax)) { + if ( ! OnMachiningStart( m_nOpId, m_nOpInd, ptMin, ptMax, vAxMin, vAxMax)) { nStatus = ( Stopped() ? MCH_SIM_STOP : MCH_SIM_ERR) ; return false ; } @@ -755,6 +758,10 @@ Simulator::FindAndManagePathStart( int& nStatus) Point3d ptMin, ptMax ; m_pGeomDB->GetInfo( m_nCLPathId, KEY_PMIN, ptMin) ; m_pGeomDB->GetInfo( m_nCLPathId, KEY_PMAX, ptMax) ; + // Recupero valori degli assi di minimo e massimo ingombro + DBLVECTOR vAxMin, vAxMax ; + m_pGeomDB->GetInfo( m_nCLPathId, KEY_PAXMIN, vAxMin) ; + m_pGeomDB->GetInfo( m_nCLPathId, KEY_PAXMAX, vAxMax) ; // recupero massima elevazione double dElev = 0 ; m_pGeomDB->GetInfo( m_nCLPathId, KEY_ELEV, dElev) ; @@ -766,7 +773,7 @@ Simulator::FindAndManagePathStart( int& nStatus) m_nAuxEInd = 0 ; m_nAuxETot = 0 ; // richiamo gestione evento inizio percorso di lavoro - if ( ! OnPathStart( m_nCLPathId, m_nCLPathInd, m_nAuxSTot, ptStart, ptEnd, vtExtr, ptMin, ptMax, dElev)) { + if ( ! OnPathStart( m_nCLPathId, m_nCLPathInd, m_nAuxSTot, ptStart, ptEnd, vtExtr, ptMin, ptMax, vAxMin, vAxMax, dElev)) { nStatus = ( Stopped() ? MCH_SIM_STOP : MCH_SIM_ERR) ; return false ; } @@ -1424,7 +1431,8 @@ Simulator::OnToolDeselect( const string& sNextTool, const string& sNextHead, int //---------------------------------------------------------------------------- bool -Simulator::OnMachiningStart( int nOpId, int nOpInd, const Point3d& ptMin, const Point3d& ptMax) +Simulator::OnMachiningStart( int nOpId, int nOpInd, const Point3d& ptMin, const Point3d& ptMax, + const DBLVECTOR& vAxMin, const DBLVECTOR& vAxMax) { // assegno identificativo e indice lavorazione if ( ! m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MCHID, nOpId) || @@ -1432,7 +1440,11 @@ Simulator::OnMachiningStart( int nOpId, int nOpInd, const Point3d& ptMin, const return false ; // assegno punti estremi dell'ingombro della lavorazione if ( ! m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MMIN, ptMin) || - ! m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MMAX, ptMax) ) + ! m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MMAX, ptMax)) + return false ; + // assegno punti estremi dell'ingombro degli assi della lavorazione + if ( ! m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MAXMIN, vAxMin) || + ! m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_MAXMAX, vAxMax)) return false ; // verifico esistenza funzione if ( ! m_pMachine->LuaExistsFunction( ON_SIMUL_MACHINING_START)) @@ -1461,7 +1473,8 @@ Simulator::OnMachiningEnd( void) //---------------------------------------------------------------------------- bool Simulator::OnPathStart( int nClPathId, int nClPathInd, int nAS, const Point3d& ptStart, const Point3d& ptEnd, - const Vector3d& vtExtr, const Point3d& ptMin, const Point3d& ptMax, double dElev) + const Vector3d& vtExtr, const Point3d& ptMin, const Point3d& ptMax, + const DBLVECTOR& vAxMin, const DBLVECTOR& vAxMax, double dElev) { // assegno identificativo e indice percorso di lavorazione bool bOk = m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_PATHID, nClPathId) ; @@ -1475,6 +1488,9 @@ Simulator::OnPathStart( int nClPathId, int nClPathInd, int nAS, const Point3d& p // assegno punti estremi dell'ingombro del percorso di lavorazione bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_PMIN, ptMin) ; bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_PMAX, ptMax) ; + // assegno punti estremi dell'ingombro degli assi della lavorazione + bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_PAXMIN, vAxMin) ; + bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_PAXMAX, vAxMax) ; // assegno la massima elevazione bOk = bOk && m_pMachine->LuaSetGlobVar( GLOB_VAR + GVAR_ELEV, dElev) ; // verifico esistenza funzione diff --git a/Simulator.h b/Simulator.h index 23d2506..2e454eb 100644 --- a/Simulator.h +++ b/Simulator.h @@ -74,12 +74,14 @@ class Simulator bool OnDispositionEnd( void) ; bool OnToolSelect( const std::string& sTool, const std::string& sHead, int nExit, const std::string& sTcPos, bool bFirst) ; bool OnToolDeselect( const std::string& sNextTool, const std::string& sNextHead, int nNextExit, const std::string& sNextTcPos) ; - bool OnMachiningStart( int nOpId, int nOpInd, const Point3d& ptMin, const Point3d& ptMax) ; + bool OnMachiningStart( int nOpId, int nOpInd, const Point3d& ptMin, const Point3d& ptMax, + const DBLVECTOR& vAxMin, const DBLVECTOR& vAxMax) ; bool OnMachiningEnd( void) ; bool OnPathStartAux( int nInd, const std::string& sAS, int& nErr) ; bool OnPathEndAux( int nInd, const std::string& sAE, int& nErr) ; bool OnPathStart( int nClPathId, int nClPathInd, int nAS, const Point3d& ptStart, const Point3d& ptEnd, - const Vector3d& vtExtr, const Point3d& ptMin, const Point3d& ptMax, double dElev) ; + const Vector3d& vtExtr, const Point3d& ptMin, const Point3d& ptMax, + const DBLVECTOR& vAxMin, const DBLVECTOR& vAxMax, double dElev) ; bool OnPathEnd( int nAE) ; bool OnMoveStart( const CamData* pCamData, int& nErr) ; bool OnMoveEnd( void) ;