EgtMachKernel 2.7a4 :
- modifiche per aggiunta SetFixtureLink per collegamento tra bloccaggio ed asse tavola.
This commit is contained in:
+37
-4
@@ -56,6 +56,7 @@ static string DIS_FXD_NAME = "FxN" ;
|
||||
static string DIS_FXD_POS = "FxP" ;
|
||||
static string DIS_FXD_ANG = "FxA" ;
|
||||
static string DIS_FXD_MOV = "FxM" ;
|
||||
static string DIS_FXD_LINK = "FxL" ;
|
||||
static string DIS_MVD_TOT = "MvT" ;
|
||||
static string DIS_MVD_ID = "MvI" ;
|
||||
static string DIS_MVD_TYPE = "MvT" ;
|
||||
@@ -135,7 +136,8 @@ Disposition::Dump( string& sOut, bool bMM, const char* szNewLine) const
|
||||
ToString( FixData.nId) + ",(" +
|
||||
ToString( FixData.ptPos) + ")," +
|
||||
ToString( FixData.dAng) + "," +
|
||||
ToString( FixData.dMov) + szNewLine ;
|
||||
ToString( FixData.dMov) + "," +
|
||||
( IsEmptyOrSpaces( FixData.sTaLink) ? "__" : FixData.sTaLink) + szNewLine ;
|
||||
}
|
||||
for ( const auto& MvrData : m_vMvrData) {
|
||||
sOut += "MvD=" + ToString( MvrData.nRawId) + "," ;
|
||||
@@ -172,7 +174,7 @@ Disposition::Save( int nBaseId, STRVECTOR& vString) const
|
||||
int nAxdTot = int( m_vAxData.size()) ;
|
||||
int nAxdLines = ( nAxdTot == 0 ? 0 : 1 + 2 * nAxdTot) ;
|
||||
int nFxdTot = int( m_vFixData.size()) ;
|
||||
int nFxdLines = 1 + 4 * nFxdTot ;
|
||||
int nFxdLines = 1 + 5 * nFxdTot ;
|
||||
int nMvdTot = int( m_vMvrData.size()) ;
|
||||
int nMvdLines = 1 + 4 * nMvdTot ;
|
||||
int nOther = 7 ;
|
||||
@@ -206,7 +208,8 @@ Disposition::Save( int nBaseId, STRVECTOR& vString) const
|
||||
if ( ! SetVal( DIS_FXD_NAME, FixData.sName, vString[++k]) ||
|
||||
! SetVal( DIS_FXD_POS, FixData.ptPos, vString[++k]) ||
|
||||
! SetVal( DIS_FXD_ANG, FixData.dAng, vString[++k]) ||
|
||||
! SetVal( DIS_FXD_MOV, FixData.dMov, vString[++k]))
|
||||
! SetVal( DIS_FXD_MOV, FixData.dMov, vString[++k]) ||
|
||||
! SetVal( DIS_FXD_LINK, FixData.sTaLink, vString[++k]))
|
||||
return false ;
|
||||
}
|
||||
// Dati posizionamento grezzi
|
||||
@@ -293,6 +296,10 @@ Disposition::Load( const STRVECTOR& vString, int nBaseGdbId)
|
||||
if ( ! GetVal( vString[++k], DIS_FXD_MOV, FixData.dMov))
|
||||
-- k ;
|
||||
}
|
||||
if ( k + 1 < int( vString.size())) {
|
||||
if ( ! GetVal( vString[++k], DIS_FXD_LINK, FixData.sTaLink))
|
||||
-- k ;
|
||||
}
|
||||
}
|
||||
// dati posizionamento grezzi
|
||||
int nMvdTot ;
|
||||
@@ -850,6 +857,31 @@ Disposition::RotateFixture( int nId, double dDeltaAngDeg)
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Disposition::SetFixtureLink( int nId, const string& sTaLink)
|
||||
{
|
||||
// verifica validità sottopezzo
|
||||
if ( m_pMchMgr == nullptr || ! m_pMchMgr->VerifyFixtureInGroup( nId, false))
|
||||
return false ;
|
||||
// verifico aggiornamento tavola
|
||||
if ( ! m_bTabOk && ! SetTable( m_sTabName))
|
||||
return false ;
|
||||
// verifico ch eil link sia un asse di disposizione (ovvero dipendente dalla tavola)
|
||||
if ( ! m_pMchMgr->IsDispositionAxis( sTaLink, m_sTabName))
|
||||
return false ;
|
||||
// aggiorno la posizione dell'oggetto nel vettore dei comandi
|
||||
for ( auto& FixData : m_vFixData) {
|
||||
if ( FixData.nId == nId) {
|
||||
FixData.sTaLink = sTaLink ;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
// imposto stato a modificato
|
||||
m_nStatus |= MCH_ST_PARAM_MODIF ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Disposition::MoveFixtureMobile( int nId, double dDeltaMov)
|
||||
@@ -1437,7 +1469,7 @@ Disposition::GetMoveAxisData( int nInd, string& sName, double& dPos) const
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Disposition::GetFixtureData( int nInd, string& sName, int& nId, Point3d& ptPos,
|
||||
double& dAngDeg, double& dMov) const
|
||||
double& dAngDeg, double& dMov, string& sTaLink) const
|
||||
{
|
||||
// verifico MachMgr e GeomDB
|
||||
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
|
||||
@@ -1451,6 +1483,7 @@ Disposition::GetFixtureData( int nInd, string& sName, int& nId, Point3d& ptPos,
|
||||
ptPos = m_vFixData[nInd].ptPos ;
|
||||
dAngDeg = m_vFixData[nInd].dAng ;
|
||||
dMov = m_vFixData[nInd].dMov ;
|
||||
sTaLink = m_vFixData[nInd].sTaLink ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user