EgtMachKernel 3.1c5 :

- in Operation corretta assegnazione entità/camData con Info per funzione AdjustOneStartEndMovement.
This commit is contained in:
Riccardo Elitropi
2026-03-12 18:20:36 +01:00
parent d7712e133e
commit 1ba62546b0
2 changed files with 36 additions and 16 deletions
BIN
View File
Binary file not shown.
+36 -16
View File
@@ -3589,7 +3589,12 @@ Operation::AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operatio
// se centro di lavoro
if ( m_pMchMgr->GetCurrIsMcent()) {
// copio l'entità
if ( m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_AFTER) == GDB_ID_NULL)
int nNewEntId = m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_BEFORE) ;
if ( nNewEntId == GDB_ID_NULL)
return false ;
// aggiorno il CamData
pCamData = GetCamData( m_pGeomDB->GetUserObj( nNewEntId)) ;
if ( pCamData == nullptr)
return false ;
// recupero HomeZ
double dHomeZ ;
@@ -3605,9 +3610,9 @@ Operation::AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operatio
if ( abs( dExtraZ) > EPS_SMALL)
dHomeZ += dExtraZ ;
}
// modifico quella originale (è la prima del percorso)
m_pGeomDB->SetName( nEntId, MCH_CL_CLIMB) ;
m_pGeomDB->RemoveInfo( nEntId, KEY_CL_DOUBLE) ;
// modifico quella copiata (è la prima del percorso)
m_pGeomDB->SetName( nNewEntId, MCH_CL_CLIMB) ;
m_pGeomDB->RemoveInfo( nNewEntId, KEY_CL_DOUBLE) ;
DBLVECTOR vAxNew = vAxCurr ;
vAxNew[2] = dHomeZ ;
int nFlagNew = 2 ;
@@ -3714,11 +3719,16 @@ Operation::AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operatio
return false ;
}
// aggiungo posizione elevata prima dell'inizio del percorso corrente
if ( m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_AFTER) == GDB_ID_NULL)
int nNewEntId = m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_BEFORE) ;
if ( nNewEntId == GDB_ID_NULL)
return false ;
// modifico l'entità originale (è la prima del percorso)
m_pGeomDB->SetName( nEntId, MCH_CL_CLIMB) ;
m_pGeomDB->RemoveInfo( nEntId, KEY_CL_DOUBLE) ;
// aggiorno il CamData
pCamData = GetCamData( m_pGeomDB->GetUserObj( nNewEntId)) ;
if ( pCamData == nullptr)
return false ;
// modifico l'entità copiata (è la prima del percorso)
m_pGeomDB->SetName( nNewEntId, MCH_CL_CLIMB) ;
m_pGeomDB->RemoveInfo( nNewEntId, KEY_CL_DOUBLE) ;
DBLVECTOR vAxNew = vAxCurr ;
vAxNew[2] = vAxNew1[2] ;
int nFlagNew = 2 ;
@@ -3783,11 +3793,16 @@ Operation::AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operatio
// altrimenti Z corrente minore della precedente
else {
// aggiungo posizione elevata prima dell'inizio del percorso corrente
if ( m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_AFTER) == GDB_ID_NULL)
int nNewEntId = m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_BEFORE) ;
if ( nNewEntId == GDB_ID_NULL)
return false ;
// modifico l'entità originale (è la prima del percorso)
m_pGeomDB->SetName( nEntId, MCH_CL_CLIMB) ;
m_pGeomDB->RemoveInfo( nEntId, KEY_CL_DOUBLE) ;
// aggiorno il CamData
pCamData = GetCamData( m_pGeomDB->GetUserObj( nNewEntId)) ;
if ( pCamData == nullptr)
return false ;
// modifico l'entità copiata (è la prima del percorso)
m_pGeomDB->SetName( nNewEntId, MCH_CL_CLIMB) ;
m_pGeomDB->RemoveInfo( nNewEntId, KEY_CL_DOUBLE) ;
DBLVECTOR vAxNew = vAxCurr ;
vAxNew[2] = vAxPrev[2] ;
int nFlagNew = 2 ;
@@ -3822,11 +3837,16 @@ Operation::AdjustOneStartEndMovement( int nClPathId, int nPrevClPathId, Operatio
if ( nLKAMO == LKAMO_HEAD_BEFORE || nLKAMO == LKAMO_HEAD_AFTER) {
// aggiungo prima della corrente
nEntId = m_pGeomDB->GetFirstInGroup( nClPathId) ;
if ( m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_AFTER) == GDB_ID_NULL)
int nNewEntId = m_pGeomDB->Copy( nEntId, GDB_ID_NULL, nEntId, GDB_BEFORE) ;
if ( nNewEntId == GDB_ID_NULL)
return false ;
// modifico l'entità originale (è la prima del percorso)
m_pGeomDB->SetName( nEntId, MCH_CL_CLIMB) ;
m_pGeomDB->RemoveInfo( nEntId, KEY_CL_DOUBLE) ;
// aggiorno il CamData
pCamData = GetCamData( m_pGeomDB->GetUserObj( nNewEntId)) ;
if ( pCamData == nullptr)
return false ;
// modifico l'entità copiata (è la prima del percorso)
m_pGeomDB->SetName( nNewEntId, MCH_CL_CLIMB) ;
m_pGeomDB->RemoveInfo( nNewEntId, KEY_CL_DOUBLE) ;
DBLVECTOR vAxNew = pCamData->GetAxesVal() ;
for ( int i = 0 ; i < 2 ; ++ i) {
bool bLinear, bHead ; pMch->GetCurrAxisType( i, bLinear, bHead) ;