EgtMachKernel 1.6r4 :

- prima versione del bloccaggio assi rotanti.
This commit is contained in:
Dario Sassi
2016-05-18 15:24:18 +00:00
parent 9f60658c35
commit 7c4470b1d6
7 changed files with 98 additions and 92 deletions
+49 -25
View File
@@ -245,6 +245,46 @@ MachMgr::SetCalcTool( const string& sTool, const string& sHead, int nExit)
return ( ( pMch != nullptr) ? pMch->SetCurrTool( sTool, sHead, nExit) : false) ;
}
//----------------------------------------------------------------------------
bool
MachMgr::SetRotAxisBlock( const string& sAxis, double dVal)
{
Machine* pMch = GetCurrMachine() ;
if ( pMch == nullptr)
return false ;
int nAxId = pMch->GetAxisId( sAxis) ;
if ( nAxId == GDB_ID_NULL)
return false ;
m_vAxisBlock.emplace_back( sAxis, dVal) ;
return true ;
}
//----------------------------------------------------------------------------
bool
MachMgr::ApplyRotAxisBlock( void)
{
Machine* pMch = GetCurrMachine() ;
if ( pMch == nullptr)
return false ;
// applico blocchi
bool bOk = true ;
for ( auto& abVal : m_vAxisBlock) {
if ( ! pMch->BlockKinematicRotAxis( abVal.sAxis, abVal.dVal))
bOk = false ;
}
// pulisco
m_vAxisBlock.clear() ;
return bOk ;
}
//----------------------------------------------------------------------------
bool
MachMgr::IsKinematicRotAxisBlocked( int nInd)
{
Machine* pMch = GetCurrMachine() ;
return ( ( pMch != nullptr) ? pMch->IsKinematicRotAxisBlocked( nInd) : false) ;
}
//----------------------------------------------------------------------------
bool
MachMgr::GetCalcTool( string& sTool)
@@ -302,30 +342,6 @@ MachMgr::GetCalcAngles( const Vector3d& vtDirT, const Vector3d& vtDirA,
return ( ( pMch != nullptr) ? pMch->GetAngles( vtDirT, vtDirA, nStat, dAngA1, dAngB1, dAngA2, dAngB2) : false) ;
}
//----------------------------------------------------------------------------
bool
MachMgr::BlockKinematicRotAxis( const string& sAxis, double dVal)
{
Machine* pMch = GetCurrMachine() ;
return ( ( pMch != nullptr) ? pMch->BlockKinematicRotAxis( sAxis, dVal) : false) ;
}
//----------------------------------------------------------------------------
bool
MachMgr::FreeKinematicRotAxis( const string& sAxis)
{
Machine* pMch = GetCurrMachine() ;
return ( ( pMch != nullptr) ? pMch->FreeKinematicRotAxis( sAxis) : false) ;
}
//----------------------------------------------------------------------------
bool
MachMgr::IsKinematicRotAxisBlocked( int nInd)
{
Machine* pMch = GetCurrMachine() ;
return ( ( pMch != nullptr) ? pMch->IsKinematicRotAxisBlocked( nInd) : false) ;
}
//----------------------------------------------------------------------------
bool
MachMgr::GetCalcAngles( const Vector3d& vtDirT, const Vector3d& vtDirA,
@@ -382,9 +398,17 @@ MachMgr::GetNearestAngleInStroke( int nId, double dAngRef, double& dAng)
//----------------------------------------------------------------------------
bool
MachMgr::VerifyOutstroke( double dX, double dY, double dZ, double dAngA, double dAngB, int& nStat)
{
DBLVECTOR vAng(2) ; vAng[0] = dAngA ; vAng[1] = dAngB ;
return VerifyOutstroke( dX, dY, dZ, vAng, nStat) ;
}
//----------------------------------------------------------------------------
bool
MachMgr::VerifyOutstroke( double dX, double dY, double dZ, const DBLVECTOR& vAng, int& nStat)
{
Machine* pMch = GetCurrMachine() ;
return ( ( pMch != nullptr) ? pMch->VerifyOutstroke( dX, dY, dZ, dAngA, dAngB, nStat) : false) ;
return ( ( pMch != nullptr) ? pMch->VerifyOutstroke( dX, dY, dZ, vAng, nStat) : false) ;
}
//----------------------------------------------------------------------------