EgtMachKernel 1.6j3 :
- aggiunta gestione DB utensili - migliorata simulazione - aggiunta impostazione macchina corrente anche senza macchinata.
This commit is contained in:
+75
-2
@@ -96,12 +96,13 @@ Machine::SetCurrTool( const string& sTool, const string& sHead, int nExit)
|
||||
if ( nToolId == GDB_ID_NULL || m_pGeomDB->GetGdbType( nToolId) != GDB_TY_GROUP)
|
||||
return false ;
|
||||
double dTLen = 0 ;
|
||||
if ( ! m_pMchMgr->GetToolParam( sTool, TPA_LEN, dTLen))
|
||||
if ( ! m_pMchMgr->TdbGetToolParam( sTool, TPA_LEN, dTLen))
|
||||
return false ;
|
||||
// assegno tutti i dati
|
||||
m_nCalcHeadId = nHeadId ;
|
||||
m_nCalcExitId = nExitId ;
|
||||
m_nCalcToolId = nToolId ;
|
||||
m_dCalcRot1W = pHead->GetRot1W() ;
|
||||
m_ptCalcPos = pExit->GetPos() ;
|
||||
m_vtCalcDir = pExit->GetTDir() ;
|
||||
m_vtCalcADir = pHead->GetADir() ;
|
||||
@@ -132,6 +133,14 @@ Machine::GetCurrTool( string& sTool)
|
||||
return m_pGeomDB->GetName( m_nCalcToolId, sTool) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
double
|
||||
Machine::GetCurrRot1W( void)
|
||||
{
|
||||
// restituisco il peso del primo asse rotante nei confronti di movimento
|
||||
return m_dCalcRot1W ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::CalculateKinematicChain( void)
|
||||
@@ -502,4 +511,68 @@ Machine::VerifyOutOfStroke( double dX, double dY, double dZ, double dAngA, doubl
|
||||
nStat += 512 ;
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
Machine::GetCurrLinAxes( void)
|
||||
{
|
||||
return int( m_vCalcLinAx.size()) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
Machine::GetCurrRotAxes( void)
|
||||
{
|
||||
return int( m_vCalcRotAx.size()) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::GetAllCurrAxesName( STRVECTOR& vAxName)
|
||||
{
|
||||
vAxName.clear() ;
|
||||
bool bOk = true ;
|
||||
// ciclo sugi assi lineari correnti
|
||||
for ( auto& CalcLinAx : m_vCalcLinAx) {
|
||||
Axis* pAx = GetAxis( CalcLinAx.nGrpId) ;
|
||||
if ( pAx != nullptr)
|
||||
vAxName.emplace_back( pAx->GetName()) ;
|
||||
else
|
||||
bOk = false ;
|
||||
}
|
||||
// ciclo sugi assi rotanti correnti
|
||||
for ( auto& CalcRotAx : m_vCalcRotAx) {
|
||||
Axis* pAx = GetAxis( CalcRotAx.nGrpId) ;
|
||||
if ( pAx != nullptr)
|
||||
vAxName.emplace_back( pAx->GetName()) ;
|
||||
else
|
||||
bOk = false ;
|
||||
}
|
||||
return bOk ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::GetAllCurrAxesHomePos( DBLVECTOR& vAxHomeVal)
|
||||
{
|
||||
vAxHomeVal.clear() ;
|
||||
bool bOk = true ;
|
||||
// ciclo sugi assi lineari correnti
|
||||
for ( auto& CalcLinAx : m_vCalcLinAx) {
|
||||
Axis* pAx = GetAxis( CalcLinAx.nGrpId) ;
|
||||
if ( pAx != nullptr)
|
||||
vAxHomeVal.emplace_back( pAx->GetHomeVal()) ;
|
||||
else
|
||||
bOk = false ;
|
||||
}
|
||||
// ciclo sugi assi rotanti correnti
|
||||
for ( auto& CalcRotAx : m_vCalcRotAx) {
|
||||
Axis* pAx = GetAxis( CalcRotAx.nGrpId) ;
|
||||
if ( pAx != nullptr)
|
||||
vAxHomeVal.emplace_back( pAx->GetHomeVal()) ;
|
||||
else
|
||||
bOk = false ;
|
||||
}
|
||||
return bOk ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user