EgtMachKernel 2.4k3 :
- aggiunto ricalcolo di AuxDir (se necessario) dopo modifiche di SpecialMoveZup.
This commit is contained in:
+31
-9
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user