From f597c5769b22ff9745d8961a1bce73dee5d2f666 Mon Sep 17 00:00:00 2001 From: Riccardo Elitropi Date: Thu, 18 Jun 2026 09:00:48 +0200 Subject: [PATCH] EgtMachKernel : - per i NewLink in doppio aggiunto parametro bPreMain ad AdjustOneStartEndMovement. --- Operation.cpp | 24 +++++++++++------------- Operation.h | 3 ++- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/Operation.cpp b/Operation.cpp index 7b367de..0def19e 100644 --- a/Operation.cpp +++ b/Operation.cpp @@ -3390,7 +3390,7 @@ Operation::AdjustStartEndMovementsStd( bool bVerifyPreviousLink) while ( bOk && nClPathId != GDB_ID_NULL) { // se richiesta verifica collegamento con lavorazione precedente, sistemo inizio if ( bVerifyPreviousLink) { - if ( ! AdjustOneStartEndMovement( nClPathId, nPrevClPathId, pPrevOp, vAxVal, dPrevOffsX, bMaxZ)) + if ( ! AdjustOneStartEndMovement( nClPathId, nPrevClPathId, pPrevOp, true, vAxVal, dPrevOffsX, bMaxZ)) bOk = false ; } bMaxZ = false ; @@ -3433,7 +3433,7 @@ Operation::MoveHeadFromHomeToMach( bool bCurrMain, const string& sToolName, cons // sistemo approccio a Zmax DBLVECTOR vAxVal ; - if ( ! AdjustOneStartEndMovement( GetFirstFullToolpath( bCurrMain), GDB_ID_NULL, nullptr, vAxVal, 0, true)) + if ( ! AdjustOneStartEndMovement( GetFirstFullToolpath( bCurrMain), GDB_ID_NULL, nullptr, false, vAxVal, 0, true)) return false ; // eseguo collegamento speciale if ( ! ManageSpecialLink( nullptr, GDB_ID_NULL, false, this, GDB_ID_NULL, bCurrMain, nStartZMax, nOtherLinkType)) @@ -3474,7 +3474,7 @@ Operation::MoveHeadFromMachToMach( Operation* pPrevOpe, if ( ! SpecialPrevMachiningOffset( pPrevOpe, dPrevOffsX)) return false ; // sistemo collegamento con lavorazione precedente ( senza passare per Zmax) - if ( ! AdjustOneStartEndMovement( GetFirstFullToolpath( bCurrMain), GDB_ID_NULL, pPrevOpe, vAxVal, dPrevOffsX, false)) + if ( ! AdjustOneStartEndMovement( GetFirstFullToolpath( bCurrMain), GDB_ID_NULL, pPrevOpe, bPrevMain, vAxVal, dPrevOffsX, false)) return false ; // gestione collegamento speciale if ( ! ManageSpecialLink( pPrevOpe, GDB_ID_NULL, bPrevMain, this, GDB_ID_NULL, bCurrMain, nStartZMax, nOtherLinkType)) @@ -3696,7 +3696,7 @@ Operation::ManageDoubleOperNew( Operation* pPrevOpe) RemoveRise( nPrevCLPathId) ; DBLVECTOR vAxVal ; bOk = bOk && GetClPathFinalAxesValues( nPrevCLPathId, false, vAxVal) ; - bOk = bOk && AdjustOneStartEndMovement( nCLPathId, nPrevCLPathId, nullptr, vAxVal, 0, false) ; + bOk = bOk && AdjustOneStartEndMovement( nCLPathId, nPrevCLPathId, nullptr, true, vAxVal, 0, false) ; bOk = bOk && ManageSpecialLink( this, nPrevCLPathId, true, this, nCLPathId, true, nStartZMax, LINK_NULL) ; // passo al successivo nPrevCLPathId = nCLPathId ; @@ -3728,13 +3728,13 @@ Operation::ManageDoubleOperNew( Operation* pPrevOpe) DBLVECTOR vAxVal ; // Utensile Main bOk = bOk && GetClPathFinalAxesValues( nPrevCLPathId, false, vAxVal) ; - bOk = bOk && AdjustOneStartEndMovement( nCLPathId, nPrevCLPathId, nullptr, vAxVal, 0, false) ; + bOk = bOk && AdjustOneStartEndMovement( nCLPathId, nPrevCLPathId, nullptr, true, vAxVal, 0, false) ; bOk = bOk && ManageSpecialLink( this, nPrevCLPathId, true, this, nCLPathId, true, nStartZMax, LINK_MACH_TO_HOME) ; // Utensile Double DBLVECTOR vAxDblVal ; bOk = bOk && m_pMchMgr->SetCalcTool( sCurrDblTool, sCurrDblHead, nCurrDblExitNbr) ; bOk = bOk && GetClPathFinalAxesValues( nPrevDBLPathId, false, vAxDblVal) ; - bOk = bOk && AdjustOneStartEndMovement( nDBLPathId, nPrevDBLPathId, nullptr, vAxDblVal, 0, false) ; + bOk = bOk && AdjustOneStartEndMovement( nDBLPathId, nPrevDBLPathId, nullptr, false, vAxDblVal, 0, false) ; bOk = bOk && ManageSpecialLink( this, nPrevDBLPathId, false, this, nDBLPathId, false, nStartZMax, LINK_MACH_TO_HOME) ; bOk = bOk && m_pMchMgr->SetCalcTool( GetToolName(), GetHeadName(), GetExitNbr()) ; // passo al successivo @@ -3812,7 +3812,7 @@ Operation::AdjustStartEndMovementsNew( void) return false ; // sistemo approccio da Zmax DBLVECTOR vAxVal ; - if ( ! AdjustOneStartEndMovement( GetFirstFullToolpath(), GDB_ID_NULL, nullptr, vAxVal, 0, true)) + if ( ! AdjustOneStartEndMovement( GetFirstFullToolpath(), GDB_ID_NULL, nullptr, true, vAxVal, 0, true)) return false ; // eseguo collegamento speciale if ( ! ManageSpecialLink( nullptr, GDB_ID_NULL, true, this, GDB_ID_NULL, true, nStartZMax)) @@ -3835,7 +3835,7 @@ Operation::AdjustStartEndMovementsNew( void) if ( ! SpecialPrevMachiningOffset( pPrevOp, dPrevOffsX)) return false ; // sistemo collegamento con lavorazione precedente - if ( ! AdjustOneStartEndMovement( GetFirstFullToolpath(), GDB_ID_NULL, pPrevOp, vAxVal, dPrevOffsX, false)) + if ( ! AdjustOneStartEndMovement( GetFirstFullToolpath(), GDB_ID_NULL, pPrevOp, true, vAxVal, dPrevOffsX, false)) return false ; // gestione collegamento speciale if ( ! ManageSpecialLink( pPrevOp, GDB_ID_NULL, true, this, GDB_ID_NULL, true, nStartZMax)) @@ -3866,7 +3866,7 @@ Operation::AdjustStartEndMovementsNew( void) return false ; // sistemo approccio da Zmax DBLVECTOR vAxVal ; - if ( ! AdjustOneStartEndMovement( GetFirstFullToolpath(), GDB_ID_NULL, nullptr, vAxVal, 0, true)) + if ( ! AdjustOneStartEndMovement( GetFirstFullToolpath(), GDB_ID_NULL, nullptr, true, vAxVal, 0, true)) return false ; // eseguo verifica if ( ! ManageSpecialLink( nullptr, GDB_ID_NULL, true, this, GDB_ID_NULL, true, nStartZMax)) @@ -3884,7 +3884,7 @@ Operation::AdjustStartEndMovementsNew( void) if ( ! GetClPathFinalAxesValues( nPrevClPathId, false, vAxVal)) bOk = false ; // sistemo collegamento con precedente - if ( ! AdjustOneStartEndMovement( nClPathId, nPrevClPathId, nullptr, vAxVal, 0, false)) + if ( ! AdjustOneStartEndMovement( nClPathId, nPrevClPathId, nullptr, true, vAxVal, 0, false)) bOk = false ; // gestione collegamento speciale ( tra due percorsi della stessa lavorazione) if ( ! ManageSpecialLink( this, nPrevClPathId, true, this, nClPathId, true, nStartZMax)) @@ -3979,7 +3979,7 @@ Operation::ManageSpecialLink( Operation* pPrevOpe, int nPrevClPathId, bool bPrev //---------------------------------------------------------------------------- bool -Operation::AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operation* pPrevOp, +Operation::AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operation* pPrevOp, bool bPrevMain, const DBLVECTOR& vAxPrev, double dPrevOffsX, bool bMaxZ) { // verifico gestore delle lavorazione, DB geometrico e macchina corrente @@ -3991,8 +3991,6 @@ Operation::AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operatio // dagli Id dei Path verifico se è Main o Double string sCLName ; m_pGeomDB->GetName( m_pGeomDB->GetParentId( nClPathId), sCLName) ; bool bMain = ( ! EqualNoCase( sCLName, MCH_DBL)) ; - string sCLPrevName ; m_pGeomDB->GetName( m_pGeomDB->GetParentId( nPrevClPathId), sCLPrevName) ; - bool bPrevMain = ( ! EqualNoCase( sCLPrevName, MCH_DBL)) ; // elimino eventuali CLIMB già presenti RemoveClimb( nClPathId, bMain) ; // recupero la prima entità di questo percorso diff --git a/Operation.h b/Operation.h index 0b82380..b9cb5d7 100644 --- a/Operation.h +++ b/Operation.h @@ -238,7 +238,8 @@ class Operation : public IUserObj bool OneMoveTestCollisionAvoid( const STRVECTOR& vAxName, const DBLVECTOR& vAxStart, const DBLVECTOR& vAxEnd, Machine* pMch, const INTVECTOR& vRawId, const INTVECTOR& vFxtId) const ; bool AdjustStartEndMovementsStd( bool bVerifyPreviousLink) ; - bool AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operation* pPrevOpe, const DBLVECTOR& vAxPrev, double dPrevOffsX, bool bMaxZ) ; + bool AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operation* pPrevOpe, bool bPreMain, const DBLVECTOR& vAxPrev, + double dPrevOffsX, bool bMaxZ) ; bool AdjustStartEndMovementsNew( void) ; bool MoveHeadFromHomeToMach( bool bMain, const std::string& sToolName, const std::string& sHeadName, int nExitNbr, int nStartZMax, int nOtherLinkType) ;