EgtMachKernel 2.2l2 :

- aggiunti minimi e massimi dei valori assi per percorso di lavoro e lavorazione a Simulator come già fatto per Postproc.
This commit is contained in:
Dario Sassi
2020-12-12 10:40:12 +00:00
parent 246a176e4a
commit 0449f191e7
3 changed files with 25 additions and 7 deletions
+21 -5
View File
@@ -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