EgtMachKernel 1.8e5 :
- gestione da parametri lavorazione di angoli iniziali suggeriti e asse rotante bloccato - in fresatura, svuotatura, incisione e lav. generica aggiunta possibilità di invertire direzione utensile - in fresatura aggiunto parametro per tipo lavorazione faccia (perpendicolare, parallela, ...) - differenziata distanza sicurezza standard da distanza sicurezza per rinvio da sotto - migliorati approcci e retrazioni con rinvio da sotto - migliorata segnalazione errori.
This commit is contained in:
+44
-5
@@ -35,6 +35,9 @@ using namespace std ;
|
||||
// 2801 = "Error in GenMachining : UpdateToolData failed"
|
||||
// 2802 = "Error in GenMachining : missing Script (xxx)"
|
||||
// 2803 = "Error in GenMachining : Error in xxx (nnn)"
|
||||
// 2804 = "Error in GenMachining : axes values not calculable"
|
||||
// 2805 = "Error in GenMachining : link movements not calculable"
|
||||
// 2806 = "Error in GenMachining : post apply not calculable"
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
USEROBJ_REGISTER( "EMkGenMachining", GenMachining) ;
|
||||
@@ -201,6 +204,9 @@ GenMachining::SetParam( int nType, bool bVal)
|
||||
case MPA_INVERT :
|
||||
m_Params.m_bInvert = bVal ;
|
||||
return true ;
|
||||
case MPA_TOOLINVERT :
|
||||
m_Params.m_bToolInvert = bVal ;
|
||||
return true ;
|
||||
}
|
||||
return false ;
|
||||
}
|
||||
@@ -303,6 +309,12 @@ GenMachining::SetParam( int nType, const string& sVal)
|
||||
case MPA_USERNOTES :
|
||||
m_Params.m_sUserNotes = sVal ;
|
||||
break ;
|
||||
case MPA_INITANGS :
|
||||
m_Params.m_sInitAngs = sVal ;
|
||||
break ;
|
||||
case MPA_BLOCKEDAXIS :
|
||||
m_Params.m_sBlockedAxis = sVal ;
|
||||
break ;
|
||||
default :
|
||||
return false ;
|
||||
}
|
||||
@@ -432,6 +444,7 @@ GenMachining::Apply( bool bRecalc)
|
||||
static const string EVAR_MACHID = ".MACHID" ; // IN (int) identificativo della lavorazione
|
||||
static const string EVAR_GEOM = ".GEOM" ; // IN (table) tabella delle entità da lavorare
|
||||
static const string EVAR_DEPTH = ".DEPTH" ; // IN (string) affondamento (espressione numerica)
|
||||
static const string EVAR_TINVERT = ".TOOLINVERT" ; // IN (bool) flag di inversione direzione utensile
|
||||
static const string EVAR_INVERT = ".INVERT" ; // IN (bool) flag di inversione direzione lavorazione
|
||||
static const string EVAR_STARTPOS = ".STARTPOS" ; // IN (num) quota di inizio lavorazione (sempre >= 0)
|
||||
static const string EVAR_OFFSR = ".OFFSR" ; // IN (num) offset radiale
|
||||
@@ -473,6 +486,7 @@ GenMachining::Apply( bool bRecalc)
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_MACHID, m_nOwnerId) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_GEOM, m_vId) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_DEPTH, m_Params.m_sDepth) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_TINVERT, m_Params.m_bToolInvert) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_INVERT, m_Params.m_bInvert) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_STARTPOS, m_Params.m_dStartPos) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_OFFSR, GetOffsR()) ;
|
||||
@@ -503,18 +517,36 @@ GenMachining::Apply( bool bRecalc)
|
||||
if ( m_nMills == 0)
|
||||
return true ;
|
||||
|
||||
// imposto eventuale asse bloccato da lavorazione
|
||||
if ( ! m_Params.m_sBlockedAxis.empty()) {
|
||||
string sAxis, sVal ;
|
||||
Split( m_Params.m_sBlockedAxis, "=", true, sAxis, sVal) ;
|
||||
double dVal = 0 ;
|
||||
FromString( sVal, dVal) ;
|
||||
m_pMchMgr->ClearRotAxisBlock() ;
|
||||
m_pMchMgr->SetRotAxisBlock( sAxis, dVal) ;
|
||||
}
|
||||
|
||||
// calcolo gli assi macchina
|
||||
string sHint = ExtractHint( m_Params.m_sUserNotes) ;
|
||||
if ( ! CalculateAxesValues( sHint))
|
||||
if ( ! m_Params.m_sInitAngs.empty())
|
||||
sHint = m_Params.m_sInitAngs ;
|
||||
if ( ! CalculateAxesValues( sHint)) {
|
||||
m_pMchMgr->SetLastError( 2804, "Error in GenMachining : axes values not calculable") ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
// gestione movimenti all'inizio di ogni singolo percorso di lavorazione e alla fine della lavorazione
|
||||
if ( ! AdjustStartEndMovements())
|
||||
if ( ! AdjustStartEndMovements()) {
|
||||
m_pMchMgr->SetLastError( 2805, "Error in GenMachining : link movements not calculable") ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
// esecuzione eventuali personalizzazioni
|
||||
if ( ! PostApply())
|
||||
if ( ! PostApply()) {
|
||||
m_pMchMgr->SetLastError( 2806, "Error in GenMachining : post apply not calculable") ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
return true ;
|
||||
}
|
||||
@@ -527,6 +559,9 @@ GenMachining::GetParam( int nType, bool& bVal) const
|
||||
case MPA_INVERT :
|
||||
bVal = m_Params.m_bInvert ;
|
||||
return true ;
|
||||
case MPA_TOOLINVERT :
|
||||
bVal = m_Params.m_bToolInvert ;
|
||||
return true ;
|
||||
}
|
||||
bVal = false ;
|
||||
return false ;
|
||||
@@ -611,6 +646,12 @@ GenMachining::GetParam( int nType, string& sVal) const
|
||||
case MPA_USERNOTES :
|
||||
sVal = m_Params.m_sUserNotes ;
|
||||
return true ;
|
||||
case MPA_INITANGS :
|
||||
sVal = m_Params.m_sInitAngs ;
|
||||
return true ;
|
||||
case MPA_BLOCKEDAXIS :
|
||||
sVal = m_Params.m_sBlockedAxis ;
|
||||
return true ;
|
||||
}
|
||||
sVal = "" ;
|
||||
return false ;
|
||||
@@ -868,8 +909,6 @@ bool
|
||||
GenMachining::Chain( int nGrpDestId)
|
||||
{
|
||||
// vettore puntatori alle curve
|
||||
typedef PtrOwner<ICurve> POWNCURVE ;
|
||||
typedef std::vector<POWNCURVE> POCRVVECTOR ;
|
||||
POCRVVECTOR vpCrvs ;
|
||||
vpCrvs.reserve( m_vId.size()) ;
|
||||
// recupero tutte le curve e le porto in globale
|
||||
|
||||
Reference in New Issue
Block a user