EgtMachKernel 2.3j5 :
- aggiunta funzione EmtModifyHeadAuxDirection - corretto scambio parametri attacco/uscita in fresatura cquando percorso invertito - assi bloccati ora impostabili da lavorazione con nome asse oppure con suo token.
This commit is contained in:
+44
-1
@@ -1209,6 +1209,49 @@ Operation::ExtractHint( const string& sNotes) const
|
||||
return ExtractInfo( sNotes, "Hint:") ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Operation::SetBlockedRotAxis( const string& sBlockedAxis) const
|
||||
{
|
||||
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
// cancello bloccaggio attuale
|
||||
m_pMchMgr->ClearRotAxisBlock() ;
|
||||
// se non ci sono bloccaggi, esco
|
||||
if ( sBlockedAxis.empty())
|
||||
return true ;
|
||||
// recupero token/nome asse e valore
|
||||
string sKey, sVal ;
|
||||
Split( sBlockedAxis, "=", true, sKey, sVal) ;
|
||||
if ( sKey.empty() || sVal.empty())
|
||||
return true ;
|
||||
double dVal = 0 ;
|
||||
if ( ! FromString( sVal, dVal))
|
||||
return true ;
|
||||
// imposto l'utensile per i calcoli macchina
|
||||
if ( ! m_pMchMgr->SetCalcTool( GetToolName(), GetHeadName(), GetExitNbr()))
|
||||
return false ;
|
||||
// recupero numero assi lineari e rotanti correnti
|
||||
int nLinAxes = m_pMchMgr->GetCurrLinAxes() ;
|
||||
int nRotAxes = m_pMchMgr->GetCurrRotAxes() ;
|
||||
// lo cerco tra i token degli assi rotanti correnti
|
||||
bool bFound = false ;
|
||||
for ( int i = 0 ; i < nRotAxes && ! bFound ; ++ i) {
|
||||
string sAxToken ;
|
||||
if ( m_pMchMgr->GetCurrMachine()->GetCurrAxisToken( i + nLinAxes, sAxToken) &&
|
||||
sKey == Trim( sAxToken)) {
|
||||
string sAxis ;
|
||||
m_pMchMgr->GetCurrMachine()->GetCurrAxisName( i + nLinAxes, sAxis) ;
|
||||
m_pMchMgr->SetRotAxisBlock( sAxis, dVal) ;
|
||||
bFound = true ;
|
||||
}
|
||||
}
|
||||
if ( bFound)
|
||||
return true ;
|
||||
// lo cerco tra gli assi rotanti della macchina
|
||||
return m_pMchMgr->SetRotAxisBlock( sKey, dVal) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Operation::CalculateAxesValues( const string& sHint, bool bSolChExact)
|
||||
@@ -1267,7 +1310,7 @@ Operation::CalculateAxesValues( const string& sHint, bool bSolChExact)
|
||||
if ( ! sHint.empty()) {
|
||||
STRVECTOR vsTok ;
|
||||
Tokenize( sHint, ",;", vsTok) ;
|
||||
for (const auto& sTok : vsTok) {
|
||||
for ( const auto& sTok : vsTok) {
|
||||
string szKey, szVal ;
|
||||
Split( sTok, "=", true, szKey, szVal) ;
|
||||
Trim( szKey) ;
|
||||
|
||||
Reference in New Issue
Block a user