EgtMachKernel 1.6e5 :
- aggiunti calcolo angoli e assi lineari macchina.
This commit is contained in:
+16
-20
@@ -280,14 +280,12 @@ Machine::LoadMachineStdHead( const string& sName, const string& sParent, const s
|
||||
// gli assegno il tipo
|
||||
string sInfo = MCH_HEAD + ToString( MCH_HT_STD) ;
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nLay, "Type", sInfo) ;
|
||||
// gli assegno la posizione
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nLay, "Pos", ptPos) ;
|
||||
// gli assegno la direzione utensile
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nLay, "TDir", vtTDir) ;
|
||||
// gli assegno la direzione ausiliaria
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nLay, "ADir", vtADir) ;
|
||||
// trasformazione del riferimento di uscita in gruppo di uscita
|
||||
if ( ! CreateExitGroups( nLay, 1))
|
||||
MUEXITVECTOR vMuExit ;
|
||||
vMuExit.emplace_back( ptPos, vtTDir) ;
|
||||
if ( ! CreateExitGroups( nLay, vMuExit))
|
||||
return false ;
|
||||
// lo inserisco nel dizionario dei gruppi della macchina
|
||||
return m_mapGroups.emplace( sName, nLay).second ;
|
||||
@@ -296,7 +294,7 @@ Machine::LoadMachineStdHead( const string& sName, const string& sParent, const s
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::LoadMachineMultiHead( const string& sName, const string& sParent, const std::string& sHSet,
|
||||
MUEXITVECTOR vMuExit,
|
||||
const MUEXITVECTOR& vMuExit,
|
||||
const Vector3d& vtADir, const string& sGeo)
|
||||
{
|
||||
// recupero pezzo e layer della geometria originale dell'asse
|
||||
@@ -317,24 +315,17 @@ Machine::LoadMachineMultiHead( const string& sName, const string& sParent, const
|
||||
m_pMchMgr->m_pGeomDB->SetStatus( nLay, ( bShow ? GDB_ST_ON : GDB_ST_OFF)) ;
|
||||
// gli assegno il nome
|
||||
m_pMchMgr->m_pGeomDB->SetName( nLay, sName) ;
|
||||
// gli assegno il tipo
|
||||
string sInfo = MCH_HEAD + ToString( MCH_HT_MULTI) ;
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nLay, "Type", sInfo) ;
|
||||
// gli assegno l'insieme teste e aggiorno il capostipite
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nLay, "HSet", sHSet) ;
|
||||
if ( ! AddHeadToSet( sHSet, sName))
|
||||
return false ;
|
||||
// gli assegno le posizioni e direzioni delle uscite
|
||||
for ( int i = 0 ; i < int( vMuExit.size()) ; ++ i) {
|
||||
string sPos = "Pos" + ToString( i + 1) ;
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nLay, sPos, vMuExit[i].ptPos) ;
|
||||
string sTDir = "TDir" + ToString( i + 1) ;
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nLay, sTDir, vMuExit[i].vtTDir) ;
|
||||
}
|
||||
// gli assegno il tipo
|
||||
string sInfo = MCH_HEAD + ToString( MCH_HT_MULTI) ;
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nLay, "Type", sInfo) ;
|
||||
// gli assegno la direzione ausiliaria
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nLay, "ADir", vtADir) ;
|
||||
// trasformazione dei riferimenti di uscita in gruppi di uscita
|
||||
if ( ! CreateExitGroups( nLay, int( vMuExit.size())))
|
||||
if ( ! CreateExitGroups( nLay, vMuExit))
|
||||
return false ;
|
||||
// lo inserisco nel dizionario dei gruppi della macchina
|
||||
return m_mapGroups.emplace( sName, nLay).second ;
|
||||
@@ -430,11 +421,11 @@ Machine::EnableHeadInSet( const string& sHead)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Machine::CreateExitGroups( int nLay, int nExitNbr)
|
||||
Machine::CreateExitGroups( int nLay, const MUEXITVECTOR& vMuExit)
|
||||
{
|
||||
// ciclo sulle uscite
|
||||
for ( int i = 1 ; i <= nExitNbr ; ++ i) {
|
||||
string sName = "T" + ToString( i) ;
|
||||
for ( int i = 0 ; i < int( vMuExit.size()) ; ++ i) {
|
||||
string sName = "T" + ToString( i+1) ;
|
||||
// se trovo riferimento per uscita, lo sostituisco con gruppo equivalente
|
||||
int nT = m_pMchMgr->m_pGeomDB->GetFirstNameInGroup( nLay, sName) ;
|
||||
if ( nT != GDB_ID_NULL && m_pMchMgr->m_pGeomDB->GetGeoType( nT) == GEO_FRAME3D) {
|
||||
@@ -446,7 +437,12 @@ Machine::CreateExitGroups( int nLay, int nExitNbr)
|
||||
return false ;
|
||||
}
|
||||
m_pMchMgr->m_pGeomDB->Erase( nT) ;
|
||||
// assegno nome
|
||||
m_pMchMgr->m_pGeomDB->SetName( nGT, sName) ;
|
||||
// gli assegno la posizione
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nGT, "Pos", vMuExit[i].ptPos) ;
|
||||
// gli assegno la direzione utensile
|
||||
m_pMchMgr->m_pGeomDB->SetInfo( nGT, "TDir", vMuExit[i].vtTDir) ;
|
||||
}
|
||||
else {
|
||||
string sOut = "Error finding frame " + sName ;
|
||||
|
||||
Reference in New Issue
Block a user