EgtMachKernel :
- aggiunta funzione SetMachinLook.
This commit is contained in:
@@ -215,6 +215,7 @@ class MachMgr : public IMachMgr
|
||||
bool ResetAllAxesPos( void) override ;
|
||||
bool LoadTool( const std::string& sHead, int nExit, const std::string& sTool) override ;
|
||||
bool ResetHeadSet( const std::string& sHead) override ;
|
||||
bool SetMachineLook( int nFlag) override ;
|
||||
|
||||
public :
|
||||
MachMgr( void) ;
|
||||
|
||||
+2
-21
@@ -93,26 +93,7 @@ MachMgr::ShowOnlyTable( bool bVal)
|
||||
Machine* pMch = GetCurrMachine() ;
|
||||
if ( pMch == nullptr)
|
||||
return false ;
|
||||
// recupero l'identificativo del gruppo della macchina
|
||||
int nMGeoId = pMch->GetMGeoId() ;
|
||||
|
||||
// recupero la tavola corrente
|
||||
int nTabId = pMch->GetCurrTable() ;
|
||||
if ( nTabId == GDB_ID_NULL)
|
||||
return false ;
|
||||
// nascondo o visualizzo i fratelli e tutti i fratelli degli ascendenti
|
||||
int nCurrId = nTabId ;
|
||||
int nParentId = m_pGeomDB->GetParentId( nCurrId) ;
|
||||
while ( nParentId != GDB_ID_NULL && nParentId != nMGeoId) {
|
||||
int nId = m_pGeomDB->GetFirstInGroup( nParentId) ;
|
||||
while ( nId != GDB_ID_NULL) {
|
||||
if ( nId != nCurrId)
|
||||
m_pGeomDB->SetStatus( nId, ( bVal ? GDB_ST_OFF : GDB_ST_ON)) ;
|
||||
nId = m_pGeomDB->GetNext( nId) ;
|
||||
}
|
||||
nCurrId = nParentId ;
|
||||
nParentId = m_pGeomDB->GetParentId( nParentId) ;
|
||||
}
|
||||
|
||||
return true ;
|
||||
// imposto visualizzazione della sola tavola o di tutto
|
||||
return pMch->SetLook( bVal ? MCH_LOOK_TAB : MCH_LOOK_ALL) ;
|
||||
}
|
||||
|
||||
@@ -361,3 +361,14 @@ MachMgr::GetOutstrokeInfo( void) const
|
||||
}
|
||||
return m_vMachines[m_nCurrMch].pMachine->GetOutstrokeInfo() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::SetMachineLook( int nFlag)
|
||||
{
|
||||
if ( m_nCurrMch < 0 || m_nCurrMch >= int( m_vMachines.size()) ||
|
||||
m_vMachines[m_nCurrMch].pMachine == nullptr) {
|
||||
return false ;
|
||||
}
|
||||
return m_vMachines[m_nCurrMch].pMachine->SetLook( nFlag) ;
|
||||
}
|
||||
|
||||
+85
@@ -441,6 +441,22 @@ Machine::GetAxis( int nGroup) const
|
||||
return ( dynamic_cast<Axis*>( m_pGeomDB->GetUserObj( nGroup))) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::IsLinearAxisGroup( int nGroup) const
|
||||
{
|
||||
Axis* pAx = GetAxis( nGroup) ;
|
||||
return ( pAx != nullptr && pAx->GetType() == MCH_AT_LINEAR) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::IsRotaryAxisGroup( int nGroup) const
|
||||
{
|
||||
Axis* pAx = GetAxis( nGroup) ;
|
||||
return ( pAx != nullptr && pAx->GetType() == MCH_AT_ROTARY) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
Table*
|
||||
Machine::GetTable( int nGroup) const
|
||||
@@ -575,3 +591,72 @@ Machine::CreateExitGroups( int nLay, const MUEXITVECTOR& vMuExit)
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::SetLook( int nFlag)
|
||||
{
|
||||
// verifico DB geometrico
|
||||
if ( m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero l'identificativo del gruppo di base della macchina
|
||||
int nMBaseId = m_pGeomDB->GetFirstInGroup( GetMGeoId()) ;
|
||||
|
||||
// recupero la tavola corrente
|
||||
int nTabId = GetCurrTable() ;
|
||||
if ( nTabId == GDB_ID_NULL)
|
||||
return false ;
|
||||
// nascondo o visualizzo i fratelli e tutti i fratelli degli ascendenti della tavola
|
||||
bool bTabOnly = ( nFlag != MCH_LOOK_ALL) ;
|
||||
int nTabCurrId = nTabId ;
|
||||
int nParentId = m_pGeomDB->GetParentId( nTabCurrId) ;
|
||||
while ( nParentId != GDB_ID_NULL && nParentId != nMBaseId) {
|
||||
int nId = m_pGeomDB->GetFirstInGroup( nParentId) ;
|
||||
while ( nId != GDB_ID_NULL) {
|
||||
if ( nId != nTabCurrId)
|
||||
m_pGeomDB->SetStatus( nId, ( bTabOnly ? GDB_ST_OFF : GDB_ST_ON)) ;
|
||||
nId = m_pGeomDB->GetNext( nId) ;
|
||||
}
|
||||
nTabCurrId = nParentId ;
|
||||
nParentId = m_pGeomDB->GetParentId( nParentId) ;
|
||||
}
|
||||
|
||||
// recupero l'utensile corrente
|
||||
int nToolId = GetCurrTool() ;
|
||||
// nascondo o visualizzo i fratelli e tutti i fratelli degli ascendenti
|
||||
bool bToolOnly = ( nFlag > MCH_LOOK_TAB && nFlag < MCH_LOOK_ALL) ;
|
||||
int nToolCurrId = nToolId ;
|
||||
nParentId = m_pGeomDB->GetParentId( nToolCurrId) ;
|
||||
while ( nParentId != GDB_ID_NULL && nParentId != nMBaseId) {
|
||||
bool bHide = bToolOnly ;
|
||||
if ( nFlag == MCH_LOOK_TAB_HEAD) {
|
||||
if ( IsHeadGroup( nParentId) || IsRotaryAxisGroup( nParentId))
|
||||
bHide = false ;
|
||||
}
|
||||
int nId = m_pGeomDB->GetFirstInGroup( nParentId) ;
|
||||
while ( nId != GDB_ID_NULL) {
|
||||
if ( nId != nToolCurrId)
|
||||
m_pGeomDB->SetStatus( nId, ( bHide ? GDB_ST_OFF : GDB_ST_ON)) ;
|
||||
else
|
||||
m_pGeomDB->SetStatus( nId, GDB_ST_ON) ;
|
||||
nId = m_pGeomDB->GetNext( nId) ;
|
||||
}
|
||||
nToolCurrId = nParentId ;
|
||||
nParentId = m_pGeomDB->GetParentId( nParentId) ;
|
||||
}
|
||||
|
||||
// sistemo gli oggetti del gruppo di base
|
||||
int nId = m_pGeomDB->GetFirstInGroup( nMBaseId) ;
|
||||
while ( nId != GDB_ID_NULL) {
|
||||
if ( nId != nTabCurrId && nId != nToolCurrId)
|
||||
m_pGeomDB->SetStatus( nId, ( nFlag != MCH_LOOK_ALL ? GDB_ST_OFF : GDB_ST_ON)) ;
|
||||
else if ( nId == nTabCurrId)
|
||||
m_pGeomDB->SetStatus( nId, GDB_ST_ON) ;
|
||||
else
|
||||
m_pGeomDB->SetStatus( nId, ( nFlag == MCH_LOOK_TAB ? GDB_ST_OFF : GDB_ST_ON)) ;
|
||||
nId = m_pGeomDB->GetNext( nId) ;
|
||||
}
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ class Machine
|
||||
{ return m_sName ; }
|
||||
Table* GetTable( const std::string& sTable) const
|
||||
{ return GetTable( GetGroup( sTable)) ; }
|
||||
bool SetLook( int nFlag) ;
|
||||
bool LoadTool( const std::string& sHead, int nExit, const std::string& sTool) ;
|
||||
bool ResetHeadSet( const std::string& sHead) ;
|
||||
bool SetAxisPos( const std::string& sAxis, double dVal) ;
|
||||
@@ -104,6 +105,8 @@ class Machine
|
||||
Axis* GetAxis( int nGroup) const ;
|
||||
bool IsAxisGroup( int nGroup) const
|
||||
{ return ( GetAxis( nGroup) != nullptr) ; }
|
||||
bool IsLinearAxisGroup( int nGroup) const ;
|
||||
bool IsRotaryAxisGroup( int nGroup) const ;
|
||||
Table* GetTable( int nGroup) const ;
|
||||
bool IsTableGroup( int nGroup) const
|
||||
{ return ( GetTable( nGroup) != nullptr) ; }
|
||||
|
||||
Reference in New Issue
Block a user