EgtMachKernel 2.7i3 :
- nella verifica collisione della simulazione negli oggetti sorgente è possibile indicare il nome degli oggetti bersaglio da ignorare (CollSkip=Name).
This commit is contained in:
+8
-2
@@ -1527,6 +1527,8 @@ SimulatorSP::ExecCollisionCheck( int& nCdInd, int& nObjInd, int nMoveType)
|
||||
continue ;
|
||||
// recupero il riferimento
|
||||
Frame3d frCd ; m_pGeomDB->GetGlobFrame( m_CdId[i], frCd) ;
|
||||
// recupero il nome
|
||||
string sCdName ; m_pGeomDB->GetName( m_CdId[i], sCdName) ;
|
||||
// ciclo sugli oggetti con cui verificare
|
||||
for ( int j = 0 ; j < int( m_CollObj.size()) ; ++ j) {
|
||||
// se modo hidden è da saltare
|
||||
@@ -1541,6 +1543,10 @@ SimulatorSP::ExecCollisionCheck( int& nCdInd, int& nObjInd, int nMoveType)
|
||||
// se utensile attivo su grezzo in lavoro e non è rapido, salto
|
||||
if ( bIsTool && bIsRaw && nMoveType != 0)
|
||||
continue ;
|
||||
// se contiene info con nome da saltare, verifico se è il caso
|
||||
string sCollSkip ;
|
||||
if ( m_pGeomDB->GetInfo( m_CollObj[j].nFrameId, "CollSkip", sCollSkip) && sCollSkip == sCdName)
|
||||
continue ;
|
||||
// esecuzione controlli di collisione
|
||||
bool bOk = true ;
|
||||
// oggetti che richiedono frame associato (Box, Cylinder, Sphere, Cone)
|
||||
@@ -1614,8 +1620,8 @@ FindCollisionMarkId( const IGeomDB* pGeomDB, int nCollId)
|
||||
int nCollParId = pGeomDB->GetParentId( nCollId) ;
|
||||
string sCollParName = "COLLISION" ;
|
||||
pGeomDB->GetName( nCollParId, sCollParName) ;
|
||||
// COLLISION per parti generiche di macchina, BASE e MOBILE per fixtures
|
||||
if ( sCollParName != "COLLISION" && sCollParName != "BASE" && sCollParName != "MOBILE")
|
||||
// COLLISION* per parti generiche di macchina, BASE e MOBILE per fixtures
|
||||
if ( sCollParName.rfind( "COLLISION", 0) != 0 && sCollParName != "BASE" && sCollParName != "MOBILE")
|
||||
return nCollParId ;
|
||||
else {
|
||||
int nCollGprId = pGeomDB->GetParentId( nCollParId) ;
|
||||
|
||||
Reference in New Issue
Block a user