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:
DarioS
2021-10-14 11:07:49 +02:00
parent 23c0e1c8d5
commit 73ce1f1018
19 changed files with 118 additions and 100 deletions
+44 -1
View File
@@ -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) ;