EgtMachKernel :

- ore ZSAFEDELTA di testa per sole mortasature accetta un secondo valore che viene applicato quando l'inclinazione dall'orizzontale è minore di 45deg (default primo valore).
This commit is contained in:
Dario Sassi
2024-08-20 12:55:38 +02:00
parent b1d0f10b55
commit 45cf412985
6 changed files with 22 additions and 16 deletions
+2
View File
@@ -152,3 +152,5 @@ const std::string NST_PARTREG_LAYER = "Region" ;
//----------------------------------------------------------------------------
// Minima componente zeta di versore utensile per lavorazione da sopra (-45deg)
const double MIN_ZDIR_TOP_TOOL = -0.7072 ;
// Minima componente zeta di versose utensile èer mortasatura quasi verticale (45deg)
const double MIN_ZDIR_VERT_CHSAW = 0.7072 ;
-1
View File
@@ -477,7 +477,6 @@ class MachMgr : public IMachMgr
int SimMoveAxes( int nMoveType, const SAMVECTOR& vAxNaEpSt) ;
// Machine
bool GetHeadAbove( const std::string& sHead) const ;
double GetDeltaSafeZ( const std::string& sHead) const ;
double GetAngDeltaMinForHome( void) const ;
private :
-12
View File
@@ -303,18 +303,6 @@ MachMgr::GetHeadAbove( const string& sHead) const
return ( ! m_pGeomDB->GetInfo( GetHeadId( sHead), MCH_ABOVE, bAbove) || bAbove) ;
}
//----------------------------------------------------------------------------
double
MachMgr::GetDeltaSafeZ( const string& sHead) const
{
if ( m_pGeomDB == nullptr)
return 0 ;
// Leggo da testa Info ZSAFEDELTA
double dDeltaSafeZ = 0 ;
m_pGeomDB->GetInfo( GetHeadId( sHead), MCH_ZSAFEDELTA, dDeltaSafeZ) ;
return dDeltaSafeZ ;
}
//----------------------------------------------------------------------------
double
MachMgr::GetAngDeltaMinForHome( void) const
+1 -1
View File
@@ -1557,7 +1557,7 @@ Mortising::GenerateOnePlungeCl( const Point3d& ptStart, const Point3d& ptEnd, co
double dDelta = dElev - dDepth ;
// determino se l'inizio dell'attacco è esattamente sotto il grezzo, nel qual caso ricalcolo l'elevazione
double dSafeZ = GetSafeZ() + m_pMchMgr->GetDeltaSafeZ( m_TParams.m_sHead) ;
double dSafeZ = GetSafeZ() + GetDeltaSafeZ( vtTool) ;
double dStartElev = 0 ;
Point3d ptLi = ( nPlunge != MORTISE_PLUNGE_END ? ptStart : ptEnd) + vtTool * dDelta ;
bool bUnderStart = GetAhPointUnderRaw( ptLi, vtTool, 0,
+18 -2
View File
@@ -3958,6 +3958,23 @@ Operation::GetUserNotesZmax( void) const
return 0 ;
}
//----------------------------------------------------------------------------
double
Operation::GetDeltaSafeZ( const Vector3d& vtTool) const
{
// Recupero macchina corrente
Machine* pMch = ( m_pMchMgr != nullptr ? m_pMchMgr->GetCurrMachine() : nullptr) ;
if ( pMch == nullptr)
return false ;
// Leggo da testa Info ZSAFEDELTA
DBLVECTOR vdVal ;
if ( ! m_pGeomDB->GetInfo( pMch->GetCurrHead(), MCH_ZSAFEDELTA, vdVal) || vdVal.empty())
return 0 ;
if ( vdVal.size() == 1)
return vdVal[0] ;
return ( vtTool.z > MIN_ZDIR_VERT_CHSAW ? vdVal[0] : vdVal[1]) ;
}
//----------------------------------------------------------------------------
bool
Operation::GetZHomeDown( void) const
@@ -3967,9 +3984,8 @@ Operation::GetZHomeDown( void) const
if ( pMch == nullptr)
return false ;
// Leggo da testa Info ZHOMEDOWN (0=falso[default], altrimenti vero)
int nHeadId = pMch->GetCurrHead() ;
bool bZHomeDown ;
if ( ! m_pGeomDB->GetInfo( nHeadId, MCH_ZHOMEDOWN, bZHomeDown))
if ( ! m_pGeomDB->GetInfo( pMch->GetCurrHead(), MCH_ZHOMEDOWN, bZHomeDown))
bZHomeDown = false ;
return bZHomeDown ;
}
+1
View File
@@ -218,6 +218,7 @@ class Operation : public IUserObj
bool GetRotationAtZmax( void) const ;
bool ForcedZmax( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEnd, const BBox3d& b3Raws) const ;
int GetUserNotesZmax( void) const ;
double GetDeltaSafeZ( const Vector3d& vtTool) const ;
bool GetZHomeDown( void) const ;
bool TestCollisionAvoid( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEnd) const ;
int SpecialTestCollisionAvoid( const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEnd) const ;