EgtMachKernel 2.2k3 :
- in interfaccia aggiunta funzione GetCalcTipFromPositions con vettore angoli - in interfaccia corretta funzione GetCalcPositions con vettore angoli - migliorato controllo angoli dati rispetto ad assi rotanti.
This commit is contained in:
Binary file not shown.
@@ -316,12 +316,12 @@ class MachMgr : public IMachMgr
|
||||
int& nStat, DBLVECTOR& vAng1, DBLVECTOR& vAng2) const ;
|
||||
bool GetCalcPositions( const Point3d& ptP, double dAngA, double dAngB,
|
||||
int& nStat, double& dX, double& dY, double& dZ) const override ;
|
||||
bool GetCalcPositions( const Point3d& ptP, DBLVECTOR& vAng,
|
||||
int& nStat, double& dX, double& dY, double& dZ) const ;
|
||||
bool GetCalcPositions( const Point3d& ptP, const DBLVECTOR& vAng,
|
||||
int& nStat, double& dX, double& dY, double& dZ) const override ;
|
||||
bool GetCalcTipFromPositions( double dX, double dY, double dZ, double dAngA, double dAngB,
|
||||
bool bOverall, bool bBottom, Point3d& ptTip) const override ;
|
||||
bool GetCalcTipFromPositions( double dX, double dY, double dZ, const DBLVECTOR& vAng,
|
||||
bool bOverall, bool bBottom, Point3d& ptTip) const ;
|
||||
bool bOverall, bool bBottom, Point3d& ptTip) const override ;
|
||||
bool GetCalcToolDirFromAngles( const DBLVECTOR& vAng, Vector3d& vtDir) const override ;
|
||||
bool GetCalcAuxDirFromAngles( const DBLVECTOR& vAng, Vector3d& vtDir) const override ;
|
||||
bool GetNearestAngleInStroke( int nInd, double dAngRef, double& dAng) const override ;
|
||||
|
||||
+3
-2
@@ -599,13 +599,14 @@ bool
|
||||
MachMgr::GetCalcPositions( const Point3d& ptP, double dAngA, double dAngB,
|
||||
int& nStat, double& dX, double& dY, double& dZ) const
|
||||
{
|
||||
DBLVECTOR vAng( 2) ; vAng[0] = dAngA ; vAng[1] = dAngB ;
|
||||
Machine* pMch = GetCurrMachine() ;
|
||||
return ( ( pMch != nullptr) ? pMch->GetPositions( ptP, dAngA, dAngB, nStat, dX, dY, dZ) : false) ;
|
||||
return ( ( pMch != nullptr) ? pMch->GetPositions( ptP, vAng, nStat, dX, dY, dZ) : false) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::GetCalcPositions( const Point3d& ptP, DBLVECTOR& vAng,
|
||||
MachMgr::GetCalcPositions( const Point3d& ptP, const DBLVECTOR& vAng,
|
||||
int& nStat, double& dX, double& dY, double& dZ) const
|
||||
{
|
||||
Machine* pMch = GetCurrMachine() ;
|
||||
|
||||
@@ -121,8 +121,6 @@ class Machine
|
||||
int& nStat, double& dAngA1, double& dAngB1, double& dAngA2, double& dAngB2) const ;
|
||||
bool GetAngles( const Vector3d& vtDirT, const Vector3d& vtDirA,
|
||||
int& nStat, DBLVECTOR& vAng1, DBLVECTOR& vAng2) const ;
|
||||
bool GetPositions( const Point3d& ptP, double dA, double dB,
|
||||
int& nStat, double& dX, double& dY, double& dZ) const ;
|
||||
bool GetPositions( const Point3d& ptP, const DBLVECTOR& vAng,
|
||||
int& nStat, double& dX, double& dY, double& dZ) const ;
|
||||
bool GetHeadOffsetDelta( const DBLVECTOR& vAng,
|
||||
|
||||
+8
-9
@@ -968,15 +968,6 @@ Machine::GetMyAngles( const Vector3d& vtDirT, const Vector3d& vtDirA,
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::GetPositions( const Point3d& ptP, double dAngA, double dAngB,
|
||||
int& nStat, double& dX, double& dY, double& dZ) const
|
||||
{
|
||||
DBLVECTOR vAng( 2) ; vAng[0] = dAngA ; vAng[1] = dAngB ;
|
||||
return GetPositions( ptP, vAng, nStat, dX, dY, dZ) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::GetPositions( const Point3d& ptP, const DBLVECTOR& vAng,
|
||||
@@ -985,6 +976,10 @@ Machine::GetPositions( const Point3d& ptP, const DBLVECTOR& vAng,
|
||||
// la posizione deve essere espressa rispetto allo ZERO MACCHINA
|
||||
// il punto è dato rispetto alla posizione home della tavola
|
||||
|
||||
// verifico che siano stati assegnati gli angoli necessari, altrimenti errore
|
||||
if ( vAng.size() < m_vCalcRotAx.size())
|
||||
return false ;
|
||||
|
||||
// aggiorno punto di lavoro mediante ciclo diretto sugli assi di tavola
|
||||
Point3d ptW = ptP ;
|
||||
// annullo la posizione home degli assi lineari
|
||||
@@ -1037,6 +1032,10 @@ Machine::GetHeadOffsetDelta( const DBLVECTOR& vAng,
|
||||
{
|
||||
// ovviamente tutto è espresso nel riferimento ZERO MACCHINA
|
||||
|
||||
// verifico che siano stati assegnati gli angoli necessari, altrimenti errore
|
||||
if ( vAng.size() < m_vCalcRotAx.size())
|
||||
return false ;
|
||||
|
||||
// aggiorno posizione e direzione fresa su testa a riposo mediante ciclo inverso sugli assi di testa
|
||||
Point3d ptPosH = m_ptCalcPos ;
|
||||
Vector3d vtDirH = m_vtCalcDir ;
|
||||
|
||||
Reference in New Issue
Block a user