EgtMachKernel 1.8f2 :
- aggiunte Update di lavorazioni e disposizione per ricalcolo assi macchina ecollegamenti.
This commit is contained in:
@@ -487,6 +487,18 @@ Chiseling::Apply( bool bRecalc)
|
||||
nPathId = m_pGeomDB->GetNextGroup( nPathId) ;
|
||||
}
|
||||
|
||||
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
|
||||
return Update() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Chiseling::Update( void)
|
||||
{
|
||||
// verifico validità gestore DB geometrico e Id del gruppo
|
||||
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
|
||||
return false ;
|
||||
|
||||
// se lavorazione vuota, esco
|
||||
if ( m_nChisels == 0) {
|
||||
LOG_INFO( GetEMkLogger(), "Warning in Chiseling : Plunges not found")
|
||||
|
||||
@@ -51,6 +51,7 @@ class Chiseling : public Machining
|
||||
bool SetGeometry( const SELVECTOR& vIds) override ;
|
||||
bool Preview( bool bRecalc) override ;
|
||||
bool Apply( bool bRecalc) override ;
|
||||
bool Update( void) override ;
|
||||
bool GetParam( int nType, bool& bVal) const override ;
|
||||
bool GetParam( int nType, int& nVal) const override ;
|
||||
bool GetParam( int nType, double& dVal) const override ;
|
||||
|
||||
+65
-45
@@ -1036,6 +1036,10 @@ Disposition::SpecialApply( bool bRecalc)
|
||||
m_bSomeByHand = false ;
|
||||
m_sTcPos.clear() ;
|
||||
|
||||
// verifico MachMgr e GeomDB
|
||||
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
|
||||
// costanti
|
||||
static const string EMC_VAR = "EMC" ; // tabella variabili locali per calcolo
|
||||
static const string EVAR_TABNAME = ".TABNAME" ; // IN (string) nome della tavola macchina
|
||||
@@ -1054,54 +1058,70 @@ Disposition::SpecialApply( bool bRecalc)
|
||||
if ( pMch == nullptr)
|
||||
return false ;
|
||||
|
||||
// se non esiste la funzione, non devo fare alcunché
|
||||
if ( ! pMch->LuaExistsFunction( ON_SPECIAL_APPLY))
|
||||
return true ;
|
||||
|
||||
// eseguo l'azione
|
||||
if ( pMch->LuaExistsFunction( ON_SPECIAL_APPLY)) {
|
||||
bool bOk = true ;
|
||||
int nErr = 99 ;
|
||||
// verifico tavola
|
||||
bOk = ( m_bTabOk || SetTable( m_sTabName)) ;
|
||||
// imposto valori parametri
|
||||
bOk = bOk && pMch->LuaCreateGlobTable( EMC_VAR) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_TABNAME, m_sTabName) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_DISPID, m_nOwnerId) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_PHASE, GetPhase()) ;
|
||||
// eseguo
|
||||
bOk = bOk && pMch->LuaCallFunction( ON_SPECIAL_APPLY, false) ;
|
||||
// recupero valori parametri obbligatori
|
||||
bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_ERROR, nErr) ;
|
||||
bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_HEAD, m_sHead) ;
|
||||
bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_EXIT, m_nExit) ;
|
||||
bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_SHIFTS, m_nShifts) ;
|
||||
bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_SBH, m_bSomeByHand) ;
|
||||
// recupero valori parametri opzionali
|
||||
if ( bOk)
|
||||
pMch->LuaGetGlobVar( EMC_VAR + EVAR_TCPOS, m_sTcPos) ;
|
||||
// reset
|
||||
bOk = bOk && pMch->LuaResetGlobVar( EMC_VAR) ;
|
||||
// segnalo errori
|
||||
if ( nErr != 0) {
|
||||
bOk = false ;
|
||||
m_nShifts = - 1 ;
|
||||
string sOut = " Error in " + ON_SPECIAL_APPLY + " (" + ToString( nErr) + ")" ;
|
||||
m_pMchMgr->SetLastError( 2006, sOut) ;
|
||||
}
|
||||
// se disposizione vuota o errore, esco
|
||||
if ( m_nShifts <= 0 || ! bOk)
|
||||
return bOk ;
|
||||
// calcolo assi macchina
|
||||
if ( ! CalculateAxesValues( "")) {
|
||||
m_pMchMgr->SetLastError( 2007, "Error in Disposition : axes values not calculable") ;
|
||||
return false ;
|
||||
}
|
||||
// gestione movimenti all'inizio di ogni singolo percorso di lavorazione e alla fine di tutti
|
||||
if ( ! AdjustStartEndMovements()) {
|
||||
m_pMchMgr->SetLastError( 2008, "Error in Disposition : link movements not calculable") ;
|
||||
return false ;
|
||||
}
|
||||
bool bOk = true ;
|
||||
int nErr = 99 ;
|
||||
// verifico tavola
|
||||
bOk = ( m_bTabOk || SetTable( m_sTabName)) ;
|
||||
// imposto valori parametri
|
||||
bOk = bOk && pMch->LuaCreateGlobTable( EMC_VAR) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_TABNAME, m_sTabName) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_DISPID, m_nOwnerId) ;
|
||||
bOk = bOk && pMch->LuaSetGlobVar( EMC_VAR + EVAR_PHASE, GetPhase()) ;
|
||||
// eseguo
|
||||
bOk = bOk && pMch->LuaCallFunction( ON_SPECIAL_APPLY, false) ;
|
||||
// recupero valori parametri obbligatori
|
||||
bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_ERROR, nErr) ;
|
||||
bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_HEAD, m_sHead) ;
|
||||
bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_EXIT, m_nExit) ;
|
||||
bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_SHIFTS, m_nShifts) ;
|
||||
bOk = bOk && pMch->LuaGetGlobVar( EMC_VAR + EVAR_SBH, m_bSomeByHand) ;
|
||||
// recupero valori parametri opzionali
|
||||
if ( bOk)
|
||||
pMch->LuaGetGlobVar( EMC_VAR + EVAR_TCPOS, m_sTcPos) ;
|
||||
// reset
|
||||
bOk = bOk && pMch->LuaResetGlobVar( EMC_VAR) ;
|
||||
// segnalo errori ed esco
|
||||
if ( ! bOk || nErr != 0) {
|
||||
m_nShifts = - 1 ;
|
||||
string sOut = " Error in " + ON_SPECIAL_APPLY + " (" + ToString( nErr) + ")" ;
|
||||
m_pMchMgr->SetLastError( 2006, sOut) ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
|
||||
return SpecialUpdate() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Disposition::SpecialUpdate( void)
|
||||
{
|
||||
// verifico MachMgr e GeomDB
|
||||
if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr)
|
||||
return false ;
|
||||
|
||||
// se disposizione vuota, esco
|
||||
if ( m_nShifts <= 0) {
|
||||
if ( m_nShifts < 0)
|
||||
LOG_INFO( GetEMkLogger(), "Warning in Disposition : No shifts")
|
||||
return true ;
|
||||
}
|
||||
else
|
||||
return true ;
|
||||
// calcolo assi macchina
|
||||
if ( ! CalculateAxesValues( "")) {
|
||||
m_pMchMgr->SetLastError( 2007, "Error in Disposition : axes values not calculable") ;
|
||||
return false ;
|
||||
}
|
||||
// gestione movimenti all'inizio di ogni singolo percorso di lavorazione e alla fine di tutti
|
||||
if ( ! AdjustStartEndMovements()) {
|
||||
m_pMchMgr->SetLastError( 2008, "Error in Disposition : link movements not calculable") ;
|
||||
return false ;
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -102,6 +102,7 @@ class Disposition : public Operation
|
||||
double& dAngDeg, double& dMov) const ;
|
||||
bool GetMoveRawData( int nInd, int& nRawId, int& nType, Point3d& ptPos, int& nFlag) const ;
|
||||
bool SpecialApply( bool bRecalc) ;
|
||||
bool SpecialUpdate( void) ;
|
||||
bool GetToolData( std::string& sName, std::string& sHead, int& nExit, std::string& sTcPos) const ;
|
||||
bool GetSomeByHand( void) const
|
||||
{ return m_bSomeByHand ; }
|
||||
|
||||
+15
-1
@@ -483,9 +483,23 @@ Drilling::Apply( bool bRecalc)
|
||||
else
|
||||
return false ;
|
||||
|
||||
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
|
||||
return Update() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Drilling::Update( void)
|
||||
{
|
||||
// verifico validità gestore DB geometrico e Id del gruppo
|
||||
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
|
||||
return false ;
|
||||
|
||||
// se lavorazione vuota, esco
|
||||
if ( m_nDrillings == 0)
|
||||
if ( m_nDrillings == 0) {
|
||||
LOG_INFO( GetEMkLogger(), "Warning in Drilling : No machinable hole")
|
||||
return true ;
|
||||
}
|
||||
|
||||
// imposto eventuale asse bloccato da lavorazione
|
||||
if ( ! m_Params.m_sBlockedAxis.empty()) {
|
||||
|
||||
@@ -51,6 +51,7 @@ class Drilling : public Machining
|
||||
bool SetGeometry( const SELVECTOR& vIds) override ;
|
||||
bool Preview( bool bRecalc) override ;
|
||||
bool Apply( bool bRecalc) override ;
|
||||
bool Update( void) override ;
|
||||
bool GetParam( int nType, bool& bVal) const override ;
|
||||
bool GetParam( int nType, int& nVal) const override ;
|
||||
bool GetParam( int nType, double& dVal) const override ;
|
||||
|
||||
Binary file not shown.
+15
-1
@@ -536,9 +536,23 @@ GenMachining::Apply( bool bRecalc)
|
||||
return false ;
|
||||
}
|
||||
|
||||
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
|
||||
return Update() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GenMachining::Update( void)
|
||||
{
|
||||
// verifico validità gestore DB geometrico e Id del gruppo
|
||||
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
|
||||
return false ;
|
||||
|
||||
// se lavorazione vuota, esco
|
||||
if ( m_nMills == 0)
|
||||
if ( m_nMills == 0) {
|
||||
LOG_INFO( GetEMkLogger(), "Warning in GenMachining : No machinable path")
|
||||
return true ;
|
||||
}
|
||||
|
||||
// imposto eventuale asse bloccato da lavorazione
|
||||
if ( ! m_Params.m_sBlockedAxis.empty()) {
|
||||
|
||||
@@ -50,6 +50,7 @@ class GenMachining : public Machining
|
||||
bool SetGeometry( const SELVECTOR& vIds) override ;
|
||||
bool Preview( bool bRecalc) override ;
|
||||
bool Apply( bool bRecalc) override ;
|
||||
bool Update( void) override ;
|
||||
bool GetParam( int nType, bool& bVal) const override ;
|
||||
bool GetParam( int nType, int& nVal) const override ;
|
||||
bool GetParam( int nType, double& dVal) const override ;
|
||||
|
||||
@@ -230,6 +230,7 @@ class MachMgr : public IMachMgr
|
||||
// Operations : dispositions
|
||||
int GetPhaseDisposition( int nPhase) const override ;
|
||||
bool DispositionSpecialApply( int nId, bool bRecalc) override ;
|
||||
bool DispositionSpecialUpdate( int nId) override ;
|
||||
// Operations : machinings
|
||||
int AddMachining( const std::string& sName, const std::string& sMachining) override ;
|
||||
int AddMachining( const std::string& sName, int nMchType, const std::string& sTool) override ;
|
||||
@@ -245,6 +246,7 @@ class MachMgr : public IMachMgr
|
||||
bool ExistsMachiningPreview( void) override ;
|
||||
bool RemoveMachiningPreview( void) override ;
|
||||
bool MachiningApply( bool bRecalc) override ;
|
||||
bool MachiningUpdate( void) override ;
|
||||
bool GetMachiningParam( int nType, bool& bVal) const override ;
|
||||
bool GetMachiningParam( int nType, int& dVal) const override ;
|
||||
bool GetMachiningParam( int nType, double& dVal) const override ;
|
||||
|
||||
@@ -606,6 +606,25 @@ MachMgr::DispositionSpecialApply( int nId, bool bRecalc)
|
||||
return pDisp->SpecialApply( bRecalc) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::DispositionSpecialUpdate( int nId)
|
||||
{
|
||||
ResetLastError() ;
|
||||
// verifico sia attiva
|
||||
bool bActive ;
|
||||
if ( ! GetOperationMode( nId, bActive))
|
||||
return false ;
|
||||
if ( ! bActive)
|
||||
return true ;
|
||||
// recupero la disposizione
|
||||
Disposition* pDisp = ::GetDisposition( m_pGeomDB->GetUserObj( nId)) ;
|
||||
if ( pDisp == nullptr)
|
||||
return false ;
|
||||
// lancio l'azione
|
||||
return pDisp->SpecialUpdate() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Machinings
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -932,6 +951,31 @@ MachMgr::MachiningApply( bool bRecalc)
|
||||
return pMch->Apply( bRecalc) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::MachiningUpdate( void)
|
||||
{
|
||||
ResetLastError() ;
|
||||
// recupero la lavorazione corrente
|
||||
int nCurrMchId = GetCurrMachining() ;
|
||||
if ( nCurrMchId == GDB_ID_NULL)
|
||||
return false ;
|
||||
// verifico sia attiva
|
||||
bool bActive ;
|
||||
if ( ! GetOperationMode( nCurrMchId, bActive))
|
||||
return false ;
|
||||
if ( ! bActive)
|
||||
return true ;
|
||||
// ne recupero il gestore
|
||||
Machining* pMch = GetMachining( m_pGeomDB->GetUserObj( nCurrMchId)) ;
|
||||
if ( pMch == nullptr)
|
||||
return false ;
|
||||
// imposto fase della lavorazione come temporaneamente corrente
|
||||
SetTempPhase TmpPhase( this, pMch->GetPhase()) ;
|
||||
// aggiorno valori assi macchina e collegamento con operazione precedente
|
||||
return pMch->Update() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::GetMachiningParam( int nType, bool& bVal) const
|
||||
|
||||
@@ -35,6 +35,7 @@ class Machining : public Operation
|
||||
virtual bool SetGeometry( const SELVECTOR& vIds) = 0 ;
|
||||
virtual bool Preview( bool bRecalc) = 0 ;
|
||||
virtual bool Apply( bool bRecalc) = 0 ;
|
||||
virtual bool Update( void) = 0 ;
|
||||
virtual bool GetParam( int nType, bool& bVal) const = 0 ;
|
||||
virtual bool GetParam( int nType, int& nVal) const = 0 ;
|
||||
virtual bool GetParam( int nType, double& dVal) const = 0 ;
|
||||
|
||||
+12
@@ -548,6 +548,18 @@ Milling::Apply( bool bRecalc)
|
||||
nPathId = m_pGeomDB->GetNextGroup( nPathId) ;
|
||||
}
|
||||
|
||||
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
|
||||
return Update() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Milling::Update( void)
|
||||
{
|
||||
// verifico validità gestore DB geometrico e Id del gruppo
|
||||
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
|
||||
return false ;
|
||||
|
||||
// se lavorazione vuota, esco
|
||||
if ( m_nMills == 0) {
|
||||
LOG_INFO( GetEMkLogger(), "Warning in Milling : No machinable path")
|
||||
|
||||
@@ -50,6 +50,7 @@ class Milling : public Machining
|
||||
bool SetGeometry( const SELVECTOR& vIds) override ;
|
||||
bool Preview( bool bRecalc) override ;
|
||||
bool Apply( bool bRecalc) override ;
|
||||
bool Update( void) override ;
|
||||
bool GetParam( int nType, bool& bVal) const override ;
|
||||
bool GetParam( int nType, int& nVal) const override ;
|
||||
bool GetParam( int nType, double& dVal) const override ;
|
||||
|
||||
@@ -524,6 +524,18 @@ Pocketing::Apply( bool bRecalc)
|
||||
if ( ! bOk)
|
||||
return false ;
|
||||
|
||||
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
|
||||
return Update() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Pocketing::Update( void)
|
||||
{
|
||||
// verifico validità gestore DB geometrico e Id del gruppo
|
||||
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
|
||||
return false ;
|
||||
|
||||
// se lavorazione vuota, esco
|
||||
if ( m_nPockets == 0) {
|
||||
LOG_INFO( GetEMkLogger(), "Warning in Pocketing : No machinable pocket")
|
||||
|
||||
@@ -51,6 +51,7 @@ class Pocketing : public Machining
|
||||
bool SetGeometry( const SELVECTOR& vIds) override ;
|
||||
bool Preview( bool bRecalc) override ;
|
||||
bool Apply( bool bRecalc) override ;
|
||||
bool Update( void) override ;
|
||||
bool GetParam( int nType, bool& bVal) const override ;
|
||||
bool GetParam( int nType, int& nVal) const override ;
|
||||
bool GetParam( int nType, double& dVal) const override ;
|
||||
|
||||
+15
-1
@@ -464,9 +464,23 @@ SawFinishing::Apply( bool bRecalc)
|
||||
}
|
||||
}
|
||||
|
||||
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
|
||||
return Update() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
SawFinishing::Update( void)
|
||||
{
|
||||
// verifico validità gestore DB geometrico e Id del gruppo
|
||||
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
|
||||
return false ;
|
||||
|
||||
// se lavorazione vuota, esco
|
||||
if ( m_nCuts == 0)
|
||||
if ( m_nCuts == 0) {
|
||||
LOG_INFO( GetEMkLogger(), "Warning in SawFinishing : No machinable path")
|
||||
return true ;
|
||||
}
|
||||
|
||||
// imposto eventuale asse bloccato da lavorazione
|
||||
if ( ! m_Params.m_sBlockedAxis.empty()) {
|
||||
|
||||
@@ -53,6 +53,7 @@ class SawFinishing : public Machining
|
||||
bool SetGeometry( const SELVECTOR& vIds) override ;
|
||||
bool Preview( bool bRecalc) override ;
|
||||
bool Apply( bool bRecalc) override ;
|
||||
bool Update( void) override ;
|
||||
bool GetParam( int nType, bool& bVal) const override ;
|
||||
bool GetParam( int nType, int& nVal) const override ;
|
||||
bool GetParam( int nType, double& dVal) const override ;
|
||||
|
||||
+15
-1
@@ -440,9 +440,23 @@ SawRoughing::Apply( bool bRecalc)
|
||||
return false ;
|
||||
m_nCuts = 1 ;
|
||||
|
||||
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
|
||||
return Update() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
SawRoughing::Update( void)
|
||||
{
|
||||
// verifico validità gestore DB geometrico e Id del gruppo
|
||||
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
|
||||
return false ;
|
||||
|
||||
// se lavorazione vuota, esco
|
||||
if ( m_nCuts == 0)
|
||||
if ( m_nCuts == 0) {
|
||||
LOG_INFO( GetEMkLogger(), "Warning in SawRoughing : No machinable path")
|
||||
return true ;
|
||||
}
|
||||
|
||||
// imposto eventuale asse bloccato da lavorazione
|
||||
if ( ! m_Params.m_sBlockedAxis.empty()) {
|
||||
|
||||
@@ -53,6 +53,7 @@ class SawRoughing : public Machining
|
||||
bool SetGeometry( const SELVECTOR& vIds) override ;
|
||||
bool Preview( bool bRecalc) override ;
|
||||
bool Apply( bool bRecalc) override ;
|
||||
bool Update( void) override ;
|
||||
bool GetParam( int nType, bool& bVal) const override ;
|
||||
bool GetParam( int nType, int& nVal) const override ;
|
||||
bool GetParam( int nType, double& dVal) const override ;
|
||||
|
||||
+15
-1
@@ -554,9 +554,23 @@ Sawing::Apply( bool bRecalc)
|
||||
nPathId = m_pGeomDB->GetNextGroup( nPathId) ;
|
||||
}
|
||||
|
||||
// eseguo aggiornamento assi macchina e collegamento con operazione precedente
|
||||
return Update() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
Sawing::Update( void)
|
||||
{
|
||||
// verifico validità gestore DB geometrico e Id del gruppo
|
||||
if ( m_pGeomDB == nullptr || ! m_pGeomDB->ExistsObj( m_nOwnerId))
|
||||
return false ;
|
||||
|
||||
// se lavorazione vuota, esco
|
||||
if ( m_nCuts == 0)
|
||||
if ( m_nCuts == 0) {
|
||||
LOG_INFO( GetEMkLogger(), "Warning in Sawing : No machinable path")
|
||||
return true ;
|
||||
}
|
||||
|
||||
// imposto eventuale asse bloccato da lavorazione
|
||||
if ( ! m_Params.m_sBlockedAxis.empty()) {
|
||||
|
||||
@@ -53,6 +53,7 @@ class Sawing : public Machining
|
||||
bool SetGeometry( const SELVECTOR& vIds) override ;
|
||||
bool Preview( bool bRecalc) override ;
|
||||
bool Apply( bool bRecalc) override ;
|
||||
bool Update( void) override ;
|
||||
bool GetParam( int nType, bool& bVal) const override ;
|
||||
bool GetParam( int nType, int& nVal) const override ;
|
||||
bool GetParam( int nType, double& dVal) const override ;
|
||||
|
||||
Reference in New Issue
Block a user