EgtMachKernel :

- in foratura corretta segnalazione di errore fuorviante
- in fresatura sistemata gestione direzioni inizio e fine con percorrenze in direzione inversa
- in link tra percorsi di lavorazione per robot aggiunta posizione iniziale a Zmax dopo inserimento di risalita a Zmax in percorso immediatamente precedente.
This commit is contained in:
Dario Sassi
2024-04-13 17:44:30 +02:00
parent 010f676234
commit 1f57693da8
3 changed files with 13 additions and 15 deletions
+2 -1
View File
@@ -51,6 +51,7 @@ using namespace std ;
// 2115 = "Error in Drilling : Mirror for Double calculation failed"
// 2116 = "Error in Drilling : multi drilling head without valid tools"
// 2117 = "Error in Drilling : incorrect multi drilling head"
// 2118 = "Error in Drilling : Tool loading failed"
// 2151 = "Warning in Drilling : Skipped entity (xx)"
// 2152 = "Warning in Drilling : No machinable path"
// 2153 = "Warning in Drilling : Tool name changed (xx)"
@@ -617,7 +618,7 @@ Drilling::Apply( bool bRecalc, bool bPostApply)
// rendo corrente l'utensile usato nella lavorazione
if ( ! m_pMchMgr->SetCalcTool( m_TParams.m_sName, m_TParams.m_sHead, m_TParams.m_nExit)) {
m_pMchMgr->SetLastError( 2322, "Error in Milling : Tool loading failed") ;
m_pMchMgr->SetLastError( 2118, "Error in Drilling : Tool loading failed") ;
return false ;
}
+6 -12
View File
@@ -2659,8 +2659,7 @@ Milling::AddZigZagMilling( const ICurveComposite* pCompo, const Vector3d& vtTool
// dati inizio entità
Point3d ptStart ;
pCurve->GetStartPoint( ptStart) ;
Vector3d vtStart = m_vtStartDir ;
// pCurve->GetStartDir( vtStart) ;
Vector3d vtStart = ( ! bInvert ? m_vtStartDir : -m_vtEndDir) ;
// determino elevazione su inizio attacco
double dStElev ;
if ( ! GetElevation( m_nPhase, ptStart, vtTool, GetRadiusForStartEndElevation(), vtTool, dStElev))
@@ -2866,8 +2865,7 @@ Milling::AddZigZagMilling( const ICurveComposite* pCompo, const Vector3d& vtTool
// dati fine entità
Point3d ptEnd ;
pCurve->GetEndPoint( ptEnd) ;
Vector3d vtEnd = m_vtEndDir ;
// pCurve->GetEndDir( vtEnd) ;
Vector3d vtEnd = ( ! bInvert ? m_vtEndDir : -m_vtStartDir) ;
// elevazione sul punto finale
double dEndElev ;
if ( ! GetElevation( m_nPhase, ptEnd, vtTool, GetRadiusForStartEndElevation(), vtTool, dEndElev))
@@ -3951,8 +3949,7 @@ Milling::AddSawZigZagMilling( const ICurveComposite* pCompo, const Vector3d& vtT
// dati inizio entità
Point3d ptStart ;
pCurve->GetStartPoint( ptStart) ;
Vector3d vtStart = m_vtStartDir ;
// pCurve->GetStartDir( vtStart) ;
Vector3d vtStart = ( ! bInvert ? m_vtStartDir : -m_vtEndDir) ;
// determino elevazione su inizio attacco
double dStElev ;
if ( j == 1) {
@@ -4030,8 +4027,7 @@ Milling::AddSawZigZagMilling( const ICurveComposite* pCompo, const Vector3d& vtT
// dati fine entità
Point3d ptEnd ;
pCurve->GetEndPoint( ptEnd) ;
Vector3d vtEnd = m_vtEndDir ;
// pCurve->GetEndDir( vtEnd) ;
Vector3d vtEnd = ( ! bInvert ? m_vtEndDir : -m_vtStartDir) ;
// elevazione sul punto finale
double dEndElev ;
if ( j == nStep) {
@@ -4137,8 +4133,7 @@ Milling::AddSawOneWayMilling( const ICurveComposite* pCompo, const Vector3d& vtT
// dati inizio entità
Point3d ptStart ;
pCurve->GetStartPoint( ptStart) ;
Vector3d vtStart = m_vtStartDir ;
// pCurve->GetStartDir( vtStart) ;
Vector3d vtStart = ( ! bReturn ? m_vtStartDir : -m_vtEndDir) ;
// determino elevazione su inizio attacco
double dStElev ;
if ( k == 1) {
@@ -4224,8 +4219,7 @@ Milling::AddSawOneWayMilling( const ICurveComposite* pCompo, const Vector3d& vtT
// dati fine entità
Point3d ptEnd ;
pCurve->GetEndPoint( ptEnd) ;
Vector3d vtEnd = m_vtEndDir ;
// pCurve->GetEndDir( vtEnd) ;
Vector3d vtEnd = ( ! bReturn ? m_vtEndDir : -m_vtStartDir) ;
// elevazione sul punto finale
double dEndElev ;
if ( j == nStep) {
+5 -2
View File
@@ -2983,7 +2983,7 @@ Operation::AdjustOneStartMovement( int nClPathId, int nPrevClPathId, Operation*
// elimino eventuali risalite finali
if ( pPrevOp == nullptr || ! pPrevOp->RemoveRise())
return false ;
// aggiungo risalita a Z max alla fine del percorso precedente
// aggiungo risalita a Z max alla fine della lavorazione precedente
DBLVECTOR vAxNew = vAxPrev ;
if ( ! pPrevOp->AddRise( vAxNew))
return false ;
@@ -2991,11 +2991,14 @@ Operation::AdjustOneStartMovement( int nClPathId, int nPrevClPathId, Operation*
// altrimenti precedente appartiene alla stessa operazione
else {
// eventuali risalite finali già eliminate dal chiamante
// aggiungo risalita a Z opportuna alla fine del percorso precedente
// aggiungo risalita a Z max alla fine del percorso precedente
DBLVECTOR vAxNew = vAxPrev ;
if ( ! AddRise( vAxNew, -1, nPrevClPathId))
return false ;
}
// inserisco la posizione iniziale a Zmax in questo percorso
if ( ! AddRobotClimb( nEntId, -1))
return false ;
}
}
}