EgtExecutor 2.2k3 :
- aggiunta ExeGetCalcAngles con vettore angoli da calcolare - aggiunte ExeGetCalcPositions e ExeGetCalcTipFromPositions con vettore angoli calcolati - la funzione lua EgtGetCalcPositions può ricevere da 1 a 4 angoli - la funzione lua LuaGetCalcTipFromPositions può ricevere da 1 a 4 angoli.
This commit is contained in:
+34
-1
@@ -3054,6 +3054,17 @@ ExeGetCalcAngles( const Vector3d& vtDirT, const Vector3d& vtDirA,
|
||||
return pMachMgr->GetCalcAngles( vtDirT, vtDirA, nStat, dAngA1, dAngB1, dAngA2, dAngB2) ;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeGetCalcAngles( const Vector3d& vtDirT, const Vector3d& vtDirA,
|
||||
int& nStat, DBLVECTOR& vAng1, DBLVECTOR& vAng2)
|
||||
{
|
||||
IMachMgr* pMachMgr = GetCurrMachMgr() ;
|
||||
VERIFY_MACHMGR( pMachMgr, false)
|
||||
// calcolo gli angoli macchina dalle direzioni fresa e ausiliaria passate
|
||||
return pMachMgr->GetCalcAngles( vtDirT, vtDirA, nStat, vAng1, vAng2) ;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeGetCalcPositions( const Point3d& ptP, double dAngA, double dAngB,
|
||||
@@ -3061,10 +3072,21 @@ ExeGetCalcPositions( const Point3d& ptP, double dAngA, double dAngB,
|
||||
{
|
||||
IMachMgr* pMachMgr = GetCurrMachMgr() ;
|
||||
VERIFY_MACHMGR( pMachMgr, false)
|
||||
// calcolo gli angoli macchina dalla direzione fresa passata
|
||||
// calcolo gli assi lineari macchina dalla posizione e dagli assi rotanti
|
||||
return pMachMgr->GetCalcPositions( ptP, dAngA, dAngB, nStat, dX, dY, dZ) ;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeGetCalcPositions( const Point3d& ptP, const DBLVECTOR& vAng,
|
||||
int& nStat, double& dX, double& dY, double& dZ)
|
||||
{
|
||||
IMachMgr* pMachMgr = GetCurrMachMgr() ;
|
||||
VERIFY_MACHMGR( pMachMgr, false)
|
||||
// calcolo gli assi lineari macchina dalla posizione e dagli assi rotanti
|
||||
return pMachMgr->GetCalcPositions( ptP, vAng, nStat, dX, dY, dZ) ;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeGetCalcTipFromPositions( double dX, double dY, double dZ, double dAngA, double dAngB,
|
||||
@@ -3076,6 +3098,17 @@ ExeGetCalcTipFromPositions( double dX, double dY, double dZ, double dAngA, doubl
|
||||
return pMachMgr->GetCalcTipFromPositions( dX, dY, dZ, dAngA, dAngB, false, bBottom, ptTip) ;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeGetCalcTipFromPositions( double dX, double dY, double dZ, const DBLVECTOR& vAng,
|
||||
bool bBottom, Point3d& ptTip)
|
||||
{
|
||||
IMachMgr* pMachMgr = GetCurrMachMgr() ;
|
||||
VERIFY_MACHMGR( pMachMgr, false)
|
||||
// calcolo il tip utensile dagli assi macchina
|
||||
return pMachMgr->GetCalcTipFromPositions( dX, dY, dZ, vAng, false, bBottom, ptTip) ;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
bool
|
||||
ExeGetCalcToolDirFromAngles( const DBLVECTOR& vAng, Vector3d& vtDir)
|
||||
|
||||
Binary file not shown.
+23
-14
@@ -3312,7 +3312,7 @@ LuaGetCalcAngles( lua_State* L)
|
||||
Vector3d vtDirA ;
|
||||
LuaGetParam( L, 2, vtDirA) ;
|
||||
LuaClearStack( L) ;
|
||||
// imposto la tavola corrente per il calcolo
|
||||
// calcolo gli angoli macchina dalle direzioni fresa e ausiliaria
|
||||
int nStat ; double dAngA1 ; double dAngB1 ; double dAngA2 ; double dAngB2 ;
|
||||
bool bOk = ExeGetCalcAngles( vtDirT, vtDirA, nStat, dAngA1, dAngB1, dAngA2, dAngB2) ;
|
||||
// restituisco il risultato
|
||||
@@ -3335,17 +3335,21 @@ LuaGetCalcAngles( lua_State* L)
|
||||
static int
|
||||
LuaGetCalcPositions( lua_State* L)
|
||||
{
|
||||
// 3 parametri : ptP, dAngA, dAngB
|
||||
// da 2 a 5 parametri : ptP, dAngA [, dAngB] [, dAngC] [, dAngD]
|
||||
Point3d ptP ;
|
||||
LuaCheckParam( L, 1, ptP)
|
||||
double dAngA ;
|
||||
LuaCheckParam( L, 2, dAngA)
|
||||
double dAngB ;
|
||||
LuaCheckParam( L, 3, dAngB)
|
||||
DBLVECTOR vAng ;
|
||||
for ( int i = 2 ; i <= 5 ; ++ i) {
|
||||
double dAng ;
|
||||
if ( LuaGetParam( L, i, dAng))
|
||||
vAng.emplace_back( dAng) ;
|
||||
else
|
||||
break ;
|
||||
}
|
||||
LuaClearStack( L) ;
|
||||
// imposto la tavola corrente per il calcolo
|
||||
int nStat ; double dX ; double dY ; double dZ ;
|
||||
bool bOk = ExeGetCalcPositions( ptP, dAngA, dAngB, nStat, dX, dY, dZ) ;
|
||||
bool bOk = ExeGetCalcPositions( ptP, vAng, nStat, dX, dY, dZ) ;
|
||||
// restituisco il risultato
|
||||
if ( bOk) {
|
||||
LuaSetParam( L, bOk) ;
|
||||
@@ -3365,23 +3369,28 @@ LuaGetCalcPositions( lua_State* L)
|
||||
static int
|
||||
LuaGetCalcTipFromPositions( lua_State* L)
|
||||
{
|
||||
// 6 parametri : dX, dY, dZ, dAngA, dAngB, bBottom
|
||||
// da 5 a 8 parametri : dX, dY, dZ, dAngA [, dAngB] [, dAngC] [, dAngD], bBottom
|
||||
double dX ;
|
||||
LuaCheckParam( L, 1, dX)
|
||||
double dY ;
|
||||
LuaCheckParam( L, 2, dY)
|
||||
double dZ ;
|
||||
LuaCheckParam( L, 3, dZ)
|
||||
double dAngA ;
|
||||
LuaCheckParam( L, 4, dAngA)
|
||||
double dAngB ;
|
||||
LuaCheckParam( L, 5, dAngB)
|
||||
DBLVECTOR vAng ;
|
||||
int i ;
|
||||
for ( i = 4 ; i <= 7 ; ++ i) {
|
||||
double dAng ;
|
||||
if ( LuaGetParam( L, i, dAng))
|
||||
vAng.emplace_back( dAng) ;
|
||||
else
|
||||
break ;
|
||||
}
|
||||
bool bBottom ;
|
||||
LuaCheckParam( L, 6, bBottom)
|
||||
LuaCheckParam( L, i, bBottom)
|
||||
LuaClearStack( L) ;
|
||||
// calcolo il tip utensile dagli assi macchina
|
||||
Point3d ptTip ;
|
||||
bool bOk = ExeGetCalcTipFromPositions( dX, dY, dZ, dAngA, dAngB, bBottom, ptTip) ;
|
||||
bool bOk = ExeGetCalcTipFromPositions( dX, dY, dZ, vAng, bBottom, ptTip) ;
|
||||
// restituisco il risultato
|
||||
if ( bOk)
|
||||
LuaSetParam( L, ptTip) ;
|
||||
|
||||
Reference in New Issue
Block a user