EgtMachKernel :
- in MachiningToolPreview migliorata la visualizzazione delle teste.
This commit is contained in:
+26
-3
@@ -25,6 +25,8 @@
|
||||
|
||||
using namespace std ;
|
||||
|
||||
#define DEBUG 0
|
||||
|
||||
const string KEY_AXIS_GROUP = "PreviewAxisGroup" ;
|
||||
const string KEY_ROT_AXIS_VAL = "PreviewRotAxisVal" ; // salvata per ogni gruppo di Preview
|
||||
|
||||
@@ -323,6 +325,19 @@ Machining::MyPrepareToolPreview( bool bDouble)
|
||||
for ( const string& sSetHead : vSetHead)
|
||||
vSetHeadIds.push_back( pMch->GetHeadId( sSetHead)) ;
|
||||
|
||||
// se presenti altre teste che non compaiono nell'headset le memorizzo
|
||||
int nHeadParentId = m_pGeomDB->GetParentId( nHeadId) ;
|
||||
INTVECTOR vOtherHeadIds ;
|
||||
if ( nHeadParentId != GDB_ID_NULL) {
|
||||
int nChildId = m_pGeomDB->GetFirstGroupInGroup( nHeadParentId) ;
|
||||
while ( nChildId != GDB_ID_NULL) {
|
||||
if ( nChildId != nHeadId && pMch->IsHeadGroup( nChildId) &&
|
||||
find( vSetHeadIds.begin(), vSetHeadIds.end(), nChildId) == vSetHeadIds.end())
|
||||
vOtherHeadIds.push_back( nChildId) ;
|
||||
nChildId = m_pGeomDB->GetNextGroup( nChildId) ;
|
||||
}
|
||||
}
|
||||
|
||||
// recupero la tavola corrente
|
||||
int nCurrTab = pMch->GetCurrTable() ;
|
||||
|
||||
@@ -471,7 +486,7 @@ Machining::MyPrepareToolPreview( bool bDouble)
|
||||
}
|
||||
// scorro i suoi figli
|
||||
int nChildId = m_pGeomDB->GetFirstInGroup( nParentId) ;
|
||||
while ( bOk && nChildId != GDB_ID_NULL) {
|
||||
while ( bOk && nChildId != GDB_ID_NULL) {
|
||||
// se vettore ausiliario lo inserisco solo se asse padre rotativo
|
||||
if ( m_pGeomDB->GetGdbType( nChildId) == GDB_TY_GEO) {
|
||||
if ( bRotary) {
|
||||
@@ -488,13 +503,18 @@ Machining::MyPrepareToolPreview( bool bDouble)
|
||||
if ( nChildId == nHeadId) {
|
||||
if ( ! bDouble) {
|
||||
m_nPreviewHeadId = m_pGeomDB->CopyGlob( nHeadId, GDB_ID_NULL, nNewParentId) ;
|
||||
bOk = ( m_nPreviewHeadId == GDB_ID_NULL) ;
|
||||
bOk = ( m_nPreviewHeadId != GDB_ID_NULL) ;
|
||||
}
|
||||
else {
|
||||
m_nPreviewHeadIdDBL = m_pGeomDB->CopyGlob( nHeadId, GDB_ID_NULL, nNewParentId) ;
|
||||
bOk = ( m_nPreviewHeadIdDBL == GDB_ID_NULL) ;
|
||||
bOk = ( m_nPreviewHeadIdDBL != GDB_ID_NULL) ;
|
||||
}
|
||||
}
|
||||
// se altra testa non presente nell'HeadSet la inserisco
|
||||
else if ( find( vOtherHeadIds.begin(), vOtherHeadIds.end(), nChildId) != vOtherHeadIds.end()) {
|
||||
int nOtherHeadId = m_pGeomDB->CopyGlob( nChildId, GDB_ID_NULL, nNewParentId) ;
|
||||
bOk = ( nOtherHeadId != GDB_ID_NULL) ;
|
||||
}
|
||||
else {
|
||||
// se asse successivo nella catena cinematica, sarà il nuovo gruppo padre
|
||||
auto NextIter = Iter ; ++ NextIter ;
|
||||
@@ -648,6 +668,9 @@ Machining::RemoveToolPreview( void)
|
||||
// verifico validità gestore DB geometrico
|
||||
if ( m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
#if DEBUG
|
||||
return true ;
|
||||
#endif
|
||||
// recupero i gruppi per l'anteprima utensile
|
||||
int nStId = m_pGeomDB->GetFirstNameInGroup( GetOwner(), MCH_ST) ;
|
||||
int nStIdDBL = m_pGeomDB->GetFirstNameInGroup( GetOwner(), MCH_ST_DBL) ;
|
||||
|
||||
Reference in New Issue
Block a user