EgtMachKernel 2.4k3 :

- aggiunto ricalcolo di AuxDir (se necessario) dopo modifiche di SpecialMoveZup.
This commit is contained in:
DarioS
2022-11-09 13:14:22 +01:00
parent 7f1e0ac8d8
commit caf2176a3c
2 changed files with 31 additions and 9 deletions
+31 -9
View File
@@ -2260,6 +2260,12 @@ Operation::AdjustOneStartMovement( int nClPathId, int nPrevClPathId, Operation*
if ( bModif) {
vAxNew = vAxTmp ;
pCamData->SetToolDir( vtTool) ;
Vector3d vtAux = pCamData->GetAuxDir() ;
if ( ! vtAux.IsSmall()) {
DBLVECTOR vAng( vAxNew.begin() + 3, vAxNew.end()) ;
if ( m_pMchMgr->GetCalcAuxDirFromAngles( vAng, vtAux))
pCamData->SetAuxDir( vtAux) ;
}
nFlagNew = nFlagTmp ;
nFlag2New = nFlag2Tmp ;
}
@@ -2340,16 +2346,22 @@ Operation::AdjustOneStartMovement( int nClPathId, int nPrevClPathId, Operation*
int nFlagNew = 2 ;
int nFlag2New = ( bPartRise ? 0 : 1) ;
// eventuali aggiustamenti speciali dipendenti dalla macchina
Vector3d vtTool = pCamData->GetToolDir() ;
DBLVECTOR vAxTmp = vAxNew ;
Vector3d vtTool = pCamData->GetToolDir() ;
int nFlagTmp = nFlagNew ;
int nFlag2Tmp = nFlag2New ;
bool bModif ;
if ( ! SpecialMoveZup( vAxTmp, vtTool, nFlagTmp, nFlag2Tmp, bModif))
return false ;
if ( bModif) {
pCamData->SetToolDir( vtTool) ;
vAxNew = vAxTmp ;
pCamData->SetToolDir( vtTool) ;
Vector3d vtAux = pCamData->GetAuxDir() ;
if ( ! vtAux.IsSmall()) {
DBLVECTOR vAng( vAxNew.begin() + 3, vAxNew.end()) ;
if ( m_pMchMgr->GetCalcAuxDirFromAngles( vAng, vtAux))
pCamData->SetAuxDir( vtAux) ;
}
nFlagNew = nFlagTmp ;
nFlag2New = nFlag2Tmp ;
}
@@ -2388,16 +2400,22 @@ Operation::AdjustOneStartMovement( int nClPathId, int nPrevClPathId, Operation*
int nFlagNew = 2 ;
int nFlag2New = 0 ;
// eventuali aggiustamenti speciali dipendenti dalla macchina
Vector3d vtTool = pCamData->GetToolDir() ;
DBLVECTOR vAxTmp = vAxNew ;
Vector3d vtTool = pCamData->GetToolDir() ;
int nFlagTmp = nFlagNew ;
int nFlag2Tmp = nFlag2New ;
bool bModif ;
if ( ! SpecialMoveZup( vAxTmp, vtTool, nFlagTmp, nFlag2Tmp, bModif))
return false ;
if ( bModif) {
pCamData->SetToolDir( vtTool) ;
vAxNew = vAxTmp ;
pCamData->SetToolDir( vtTool) ;
Vector3d vtAux = pCamData->GetAuxDir() ;
if ( ! vtAux.IsSmall()) {
DBLVECTOR vAng( vAxNew.begin() + 3, vAxNew.end()) ;
if ( m_pMchMgr->GetCalcAuxDirFromAngles( vAng, vtAux))
pCamData->SetAuxDir( vtAux) ;
}
nFlagNew = nFlagTmp ;
nFlag2New = nFlag2Tmp ;
}
@@ -2520,16 +2538,22 @@ Operation::AddRise( DBLVECTOR& vAxVal, double dDelta, int nClPathId, bool bZHome
nFlag2 = 1 ;
}
// eventuale aggiustamenti speciali dipendenti dalla macchina
Vector3d vtTool = pCam->GetToolDir() ;
DBLVECTOR vAxTmp = vAxVal ;
Vector3d vtTool = pCam->GetToolDir() ;
int nFlagTmp = nFlag ;
int nFlag2Tmp = nFlag2 ;
bool bModif ;
if ( ! SpecialMoveZup( vAxTmp, vtTool, nFlagTmp, nFlag2Tmp, bModif))
return false ;
if ( bModif) {
pCam->SetToolDir( vtTool) ;
vAxVal = vAxTmp ;
pCam->SetToolDir( vtTool) ;
Vector3d vtAux = pCam->GetAuxDir() ;
if ( ! vtAux.IsSmall()) {
DBLVECTOR vAng( vAxVal.begin() + 3, vAxVal.end()) ;
if ( m_pMchMgr->GetCalcAuxDirFromAngles( vAng, vtAux))
pCam->SetAuxDir( vtAux) ;
}
nFlag = nFlagTmp ;
nFlag2 = nFlag2Tmp ;
}
@@ -2537,9 +2561,7 @@ Operation::AddRise( DBLVECTOR& vAxVal, double dDelta, int nClPathId, bool bZHome
double dL1 = vAxVal[0] ;
double dL2 = vAxVal[1] ;
double dL3 = vAxVal[2] ;
DBLVECTOR vAng ;
for ( int i = 0 ; i < int( vAxVal.size()) - 3 ; ++ i)
vAng.emplace_back( vAxVal[i+3]) ;
DBLVECTOR vAng( vAxVal.begin() + 3, vAxVal.end()) ;
int nStat ;
bool bOk = ( m_pMchMgr->VerifyOutstroke( dL1, dL2, dL3, vAng, false, nStat) && nStat == 0) ;
// assegno i dati