EgtMachKernel 1.6n3 :
- prima versione della gestione delle fasi di lavorazione.
This commit is contained in:
+16
-10
@@ -15,6 +15,7 @@
|
||||
#include "stdafx.h"
|
||||
#include "Simulator.h"
|
||||
#include "MachMgr.h"
|
||||
#include "Disposition.h"
|
||||
#include "Machining.h"
|
||||
#include "MachiningConst.h"
|
||||
#include "/EgtDev/Include/EMkToolConst.h"
|
||||
@@ -70,13 +71,13 @@ Simulator::Start( void)
|
||||
return false ;
|
||||
// cerco la prima lavorazione valida
|
||||
nOpId = m_pMchMgr->GetNextActiveOperation( nOpId) ;
|
||||
Machining* pMch = dynamic_cast<Machining*>( m_pGeomDB->GetUserObj( nOpId)) ;
|
||||
Machining* pMch = GetMachining( m_pGeomDB->GetUserObj( nOpId)) ;
|
||||
while ( nOpId != GDB_ID_NULL) {
|
||||
if ( IsValidMachiningType( m_pMchMgr->GetOperationType( nOpId)) &&
|
||||
pMch != nullptr && ! pMch->IsEmpty())
|
||||
break ;
|
||||
nOpId = m_pMchMgr->GetNextActiveOperation( m_nOpId) ;
|
||||
pMch = dynamic_cast<Machining*>( m_pGeomDB->GetUserObj( nOpId)) ;
|
||||
pMch = GetMachining( m_pGeomDB->GetUserObj( nOpId)) ;
|
||||
}
|
||||
if ( nOpId == GDB_ID_NULL)
|
||||
return false ;
|
||||
@@ -125,13 +126,18 @@ Simulator::Move( int& nStatus)
|
||||
// Se arrivato alla fine di una lavorazione, recupero la successiva valida
|
||||
while ( m_nCLPathId == GDB_ID_NULL) {
|
||||
m_nOpId = m_pMchMgr->GetNextActiveOperation( m_nOpId) ;
|
||||
Machining* pMch = dynamic_cast<Machining*>( m_pGeomDB->GetUserObj( m_nOpId)) ;
|
||||
while ( m_nOpId != GDB_ID_NULL) {
|
||||
if ( IsValidMachiningType( m_pMchMgr->GetOperationType( m_nOpId)) &&
|
||||
pMch != nullptr && ! pMch->IsEmpty())
|
||||
Machining* pMch = GetMachining( m_pGeomDB->GetUserObj( m_nOpId)) ;
|
||||
// se non è una lavorazione, verifico se disposizione con cambio di fase
|
||||
if ( pMch == nullptr) {
|
||||
Disposition* pDisp = GetDisposition( m_pGeomDB->GetUserObj( m_nOpId)) ;
|
||||
if ( pDisp != nullptr)
|
||||
m_pMchMgr->SetCurrPhase( pDisp->GetPhase()) ;
|
||||
}
|
||||
// lavorazione valida
|
||||
else if ( ! pMch->IsEmpty())
|
||||
break ;
|
||||
m_nOpId = m_pMchMgr->GetNextActiveOperation( m_nOpId) ;
|
||||
pMch = dynamic_cast<Machining*>( m_pGeomDB->GetUserObj( m_nOpId)) ;
|
||||
}
|
||||
// se non ce ne sono altre, sono alla fine
|
||||
if ( m_nOpId == GDB_ID_NULL) {
|
||||
@@ -151,7 +157,7 @@ Simulator::Move( int& nStatus)
|
||||
}
|
||||
|
||||
// Cerco prossima posizione su interpolazione corrente
|
||||
CamData* pCamData = dynamic_cast<CamData*>( m_pGeomDB->GetUserObj( m_nEntId)) ;
|
||||
CamData* pCamData = GetCamData( m_pGeomDB->GetUserObj( m_nEntId)) ;
|
||||
if ( pCamData == nullptr) {
|
||||
nStatus = MCH_SIM_ERR ;
|
||||
return false ;
|
||||
@@ -231,7 +237,7 @@ Simulator::GetToolInfo( string& sName, double& dSpeed)
|
||||
return false ;
|
||||
sName = m_sTool ;
|
||||
// Recupero speed
|
||||
Machining* pMch = dynamic_cast<Machining*>( m_pGeomDB->GetUserObj( m_nOpId)) ;
|
||||
Machining* pMch = GetMachining( m_pGeomDB->GetUserObj( m_nOpId)) ;
|
||||
return ( pMch != nullptr && pMch->GetParam( MPA_TOOLSPEED, dSpeed)) ;
|
||||
}
|
||||
|
||||
@@ -243,7 +249,7 @@ Simulator::GetMoveInfo( int& nGmove, double& dFeed)
|
||||
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
// Recupero il movimento corrente
|
||||
CamData* pCamData = dynamic_cast<CamData*>( m_pGeomDB->GetUserObj( m_nEntId)) ;
|
||||
CamData* pCamData = GetCamData( m_pGeomDB->GetUserObj( m_nEntId)) ;
|
||||
if ( pCamData == nullptr)
|
||||
return false ;
|
||||
// Assegno feed
|
||||
@@ -288,7 +294,7 @@ Simulator::UpdateTool( bool bForced)
|
||||
{
|
||||
// Recupero l'utensile della lavorazione corrente
|
||||
string sTool ;
|
||||
Machining* pMch = dynamic_cast<Machining*>( m_pGeomDB->GetUserObj( m_nOpId)) ;
|
||||
Machining* pMch = GetMachining( m_pGeomDB->GetUserObj( m_nOpId)) ;
|
||||
if ( pMch == nullptr || ! pMch->GetParam( MPA_TOOL, sTool))
|
||||
return false ;
|
||||
if ( ! m_pMchMgr->TdbSetCurrTool( sTool))
|
||||
|
||||
Reference in New Issue
Block a user