EgtMachKernel :

- correzione per gestire archi su macchine con assi rotanti su tavola.
This commit is contained in:
Dario Sassi
2020-09-22 07:48:13 +00:00
parent 648d080090
commit 61d0c583e8
5 changed files with 38 additions and 1 deletions
+23
View File
@@ -1191,6 +1191,29 @@ Machine::GetAuxDirFromAngles( const DBLVECTOR& vAng, Vector3d& vtDir) const
return GetDirection( m_vtCalcADir, vAng, vtDir) ;
}
//----------------------------------------------------------------------------
bool
Machine::GetPartDirFromAngles( const Vector3d& vtPart, const DBLVECTOR& vAng, Vector3d& vtDir) const
{
// è espressa nel riferimento di macchina (tiene conto delle sole rotazioni di tavola)
// verifico dimensione vettore angoli rispetto al numero di assi rotanti
if ( vAng.size() < m_vCalcRotAx.size())
return false ;
// direzione a riposo
vtDir = vtPart ;
// ciclo sugli assi dal primo (solo assi di tavola)
for ( size_t i = 1 ; i <= m_vCalcRotAx.size() ; ++ i) {
// se asse di tavola
if ( ! m_vCalcRotAx[i-1].bHead)
vtDir.Rotate( m_vCalcRotAx[i-1].vtDir, vAng[i-1]) ;
}
return true ;
}
//----------------------------------------------------------------------------
bool
Machine::GetBackToolDirFromAngles( const DBLVECTOR& vAng, Vector3d& vtDir) const