EgtMachKernel :

- modifica alla funzione lua EmtAddClimb per inserire il movimento di discesa prima della lavorazione e dopo eventuali altre discese già inserite.
This commit is contained in:
Dario Sassi
2025-07-01 15:22:33 +02:00
parent 10bdf80b2a
commit 407cbaccfa
3 changed files with 9 additions and 4 deletions
+1 -1
View File
@@ -302,7 +302,7 @@ Machine::LuaEmtAddClimb( lua_State* L)
// recupero l'operazione
Operation* pOper = GetOperation( m_pMchLua->m_pGeomDB->GetUserObj( nMachId)) ;
// imposto la discesa (primo movimento del primo percorso della lavorazione)
bool bOk = ( pOper != nullptr && pOper->AddSpecialClimb( vAxVal, ( nMask >= 0), GDB_ID_NULL, nFlag, nFlag2, nMask, sInfo)) ;
bool bOk = ( pOper != nullptr && pOper->AddSpecialClimb( vAxVal, ( nMask >= 0), GDB_ID_NULL, nFlag, nFlag2, nMask, sInfo, false)) ;
LuaSetParam( L, bOk) ;
return 1 ;
+7 -2
View File
@@ -3572,10 +3572,10 @@ Operation::ToolChangeNeeded( const Operation& Op1, const Operation& Op2) const
}
//----------------------------------------------------------------------------
// Inserisce sempre prima della prima entità del percorso
// Inserisce sempre prima della prima entità del percorso ( se bFirst falso dopo tutti i Climb già inseriti)
bool
Operation::AddSpecialClimb( const DBLVECTOR& vAxVal, bool bOk, int nClPathId,
int nFlag, int nFlag2, int nMask, const string& sInfo)
int nFlag, int nFlag2, int nMask, const string& sInfo, bool bFirst)
{
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
return false ;
@@ -3593,6 +3593,11 @@ Operation::AddSpecialClimb( const DBLVECTOR& vAxVal, bool bOk, int nClPathId,
}
// cerco la prima entità del percorso
int nEntId = m_pGeomDB->GetFirstInGroup( nClPathId) ;
if ( ! bFirst) {
string sName ;
while ( nEntId != GDB_ID_NULL && m_pGeomDB->GetName( nEntId, sName) && EqualNoCase( sName, MCH_CL_CLIMB))
nEntId = m_pGeomDB->GetNext( nEntId) ;
}
if ( nEntId == GDB_ID_NULL)
return false ;
// ne recupero i dati Cam
+1 -1
View File
@@ -235,7 +235,7 @@ class Operation : public IUserObj
bool AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operation* pPrevOp, const DBLVECTOR& vAxPrev, bool bMaxZ) ;
bool ToolChangeNeeded( const Operation& Op1, const Operation& Op2) const ;
bool AddSpecialClimb( const DBLVECTOR& vAxVal, bool bOk = true, int nClPathId = GDB_ID_NULL,
int nFlag = 0, int nFlag2 = 0, int nMask = -1, const std::string& sInfo = "") ;
int nFlag = 0, int nFlag2 = 0, int nMask = -1, const std::string& sInfo = "", bool bFirst = true) ;
bool RemoveClimb( int nClPathId = GDB_ID_NULL) ;
bool AddRise( DBLVECTOR& vAxVal, double dDelta = NAN, int nClPathId = GDB_ID_NULL, int nToMinMaxZ = 0) ;
bool AddSpecialRise( const DBLVECTOR& vAxVal, bool bOk = true, int nClPathId = GDB_ID_NULL,