Merge branch 'master' into FasterVMill5Axis

This commit is contained in:
Daniele Bariletti
2025-06-16 15:12:20 +02:00
25 changed files with 1928 additions and 800 deletions
+16 -1
View File
@@ -1999,13 +1999,28 @@ bool
VolZmap::MillingGeneralMotionStep( const Point3d& ptPs, const Vector3d& vtDs, const Vector3d& vtAs,
const Point3d& ptPe, const Vector3d& vtDe, const Vector3d& vtAe)
{
// Calcolo angoli di rotazione utensile longitudinale e trasversale rispetto al movimento
// Deve essere definito l'utensile corrente
if ( m_nCurrTool < 0 || m_nCurrTool >= int( m_vTool.size()))
return false ;
// Calcolo angoli di rotazione utensile longitudinale e trasversale rispetto al movimento per eventuale suddivisione
double dAlongAngDeg, dAcrossAngDeg ;
GetAlongAcrossRotation( vtDs, vtDe, ptPe - ptPs, dAlongAngDeg, dAcrossAngDeg) ;
// Divido il movimento in tratti con direzione utensile costante
const double ANG_ACROSS_STEP = 1.0 ;
const double ANG_ALONG_STEP = 1.0 ;
int nStepCnt = int( max( { abs( dAlongAngDeg) / ANG_ALONG_STEP, abs( dAcrossAngDeg) / ANG_ACROSS_STEP, 1.})) ;
// Calcolo coefficiente di riduzione movimenti con direzione costante per evitare extra tagli
// !!! In attesa dell'algoritmo esatto !!!
double dToolLen = m_vTool[m_nCurrTool].GetHeigth() ;
double dToolCrad = m_vTool[m_nCurrTool].GetCornRadius() ;
Vector3d vtBase = ptPe - ptPs ;
double dBaseLen = vtBase.Len() ;
Vector3d vtTip = ptPe - dToolLen * vtDe - ( ptPs - dToolLen * vtDs) ;
double dTipLen = vtTip.Len() ;
double dK = ( vtBase * vtTip > EPS_SMALL ? dTipLen / dBaseLen : 0) ;
if ( dTipLen / nStepCnt < 0.1 * dToolCrad)
dK = 0 ;
// Divido il movimento in tratti con direzione utensile costante
bool bOk = true ;
//////// debug - vecchia modalità