diff --git a/Chiseling.cpp b/Chiseling.cpp index 4d55b6c..aa85491 100644 --- a/Chiseling.cpp +++ b/Chiseling.cpp @@ -16,7 +16,7 @@ #include "MachMgr.h" #include "DllMain.h" #include "Chiseling.h" -#include "MachiningConst.h" +#include "OperationConst.h" #include "/EgtDev/Include/EGkCurveLine.h" #include "/EgtDev/Include/EGkCurveArc.h" #include "/EgtDev/Include/EGkCurveComposite.h" @@ -60,7 +60,7 @@ struct SqHole } ; //---------------------------------------------------------------------------- -USEROBJ_REGISTER( "EMkChiseling", Chiseling) ; +USEROBJ_REGISTER( GetOperationClass( OPER_CHISELING), Chiseling) ; //---------------------------------------------------------------------------- const string& diff --git a/Chiseling.h b/Chiseling.h index df0afb3..47a6ac5 100644 --- a/Chiseling.h +++ b/Chiseling.h @@ -34,6 +34,8 @@ class Chiseling : public Machining bool Load( const STRVECTOR& vString, int nBaseGdbId) override ; public : // Operation + int GetType( void) const override + { return OPER_CHISELING ; } bool IsEmpty( void) const override { return ( m_nChisels == 0) ; } diff --git a/Disposition.cpp b/Disposition.cpp index ec896e0..ef310ed 100644 --- a/Disposition.cpp +++ b/Disposition.cpp @@ -16,6 +16,7 @@ #include "MachMgr.h" #include "DllMain.h" #include "Disposition.h" +#include "OperationConst.h" #include "/EgtDev/Include/EMkDispositionConst.h" #include "/EgtDev/Include/EGkAngle.h" #include "/EgtDev/Include/EGkStringUtils3d.h" @@ -62,7 +63,7 @@ static std::string DIS_SOMEBYHAND = "Sbh" ; static double DISP_BOX_TOL = - 0.5 ; //---------------------------------------------------------------------------- -USEROBJ_REGISTER( "EMkDisposition", Disposition) ; +USEROBJ_REGISTER( GetOperationClass( OPER_DISP), Disposition) ; //---------------------------------------------------------------------------- const string& diff --git a/Disposition.h b/Disposition.h index ff50a60..135c2bd 100644 --- a/Disposition.h +++ b/Disposition.h @@ -58,7 +58,9 @@ class Disposition : public Operation bool Load( const STRVECTOR& vString, int nBaseGdbId) override ; public : // Operation - bool IsEmpty( void) const override + int GetType( void) const override + { return OPER_DISP ; } + bool IsEmpty( void) const override { return ( m_nShifts == 0) ; } protected : // Operation diff --git a/Drilling.cpp b/Drilling.cpp index d5c9710..2918b37 100644 --- a/Drilling.cpp +++ b/Drilling.cpp @@ -16,7 +16,7 @@ #include "MachMgr.h" #include "DllMain.h" #include "Drilling.h" -#include "MachiningConst.h" +#include "OperationConst.h" #include "/EgtDev/Include/EXeCmdLogOff.h" #include "/EgtDev/Include/EGkGeoPoint3d.h" #include "/EgtDev/Include/EGkCurveLine.h" @@ -60,7 +60,7 @@ struct Hole } ; //---------------------------------------------------------------------------- -USEROBJ_REGISTER( "EMkDrilling", Drilling) ; +USEROBJ_REGISTER( GetOperationClass( OPER_DRILLING), Drilling) ; //---------------------------------------------------------------------------- const string& diff --git a/Drilling.h b/Drilling.h index 71b43d0..7375532 100644 --- a/Drilling.h +++ b/Drilling.h @@ -34,6 +34,8 @@ class Drilling : public Machining bool Load( const STRVECTOR& vString, int nBaseGdbId) override ; public : // Operation + int GetType( void) const override + { return OPER_DRILLING ; } bool IsEmpty( void) const override { return ( m_nDrillings == 0) ; } diff --git a/EgtMachKernel.rc b/EgtMachKernel.rc index f2d1c02..6eb74b4 100644 Binary files a/EgtMachKernel.rc and b/EgtMachKernel.rc differ diff --git a/EgtMachKernel.vcxproj b/EgtMachKernel.vcxproj index 837644f..f4abff8 100644 --- a/EgtMachKernel.vcxproj +++ b/EgtMachKernel.vcxproj @@ -306,6 +306,7 @@ copy $(TargetPath) \EgtProg\Dll64 + diff --git a/EgtMachKernel.vcxproj.filters b/EgtMachKernel.vcxproj.filters index 999d8df..4ada46f 100644 --- a/EgtMachKernel.vcxproj.filters +++ b/EgtMachKernel.vcxproj.filters @@ -356,6 +356,9 @@ Header Files + + Header Files + diff --git a/GenMachining.cpp b/GenMachining.cpp index 165c03c..04682fa 100644 --- a/GenMachining.cpp +++ b/GenMachining.cpp @@ -16,7 +16,7 @@ #include "MachMgr.h" #include "DllMain.h" #include "GenMachining.h" -#include "MachiningConst.h" +#include "OperationConst.h" #include "/EgtDev/Include/EGkCurveLine.h" #include "/EgtDev/Include/EGkCurveArc.h" #include "/EgtDev/Include/EGkCurveComposite.h" @@ -63,7 +63,7 @@ static const string ON_PREVIEW = "OnPreview_" ; static const string ON_APPLY = "OnApply_" ; //---------------------------------------------------------------------------- -USEROBJ_REGISTER( "EMkGenMachining", GenMachining) ; +USEROBJ_REGISTER( GetOperationClass( OPER_GENMACHINING), GenMachining) ; //---------------------------------------------------------------------------- const string& diff --git a/GenMachining.h b/GenMachining.h index 77678de..a978947 100644 --- a/GenMachining.h +++ b/GenMachining.h @@ -33,6 +33,8 @@ class GenMachining : public Machining bool Load( const STRVECTOR& vString, int nBaseGdbId) override ; public : // Operation + int GetType( void) const override + { return OPER_GENMACHINING ; } bool IsEmpty( void) const override { return ( m_nMills == 0) ; } diff --git a/MachMgr.h b/MachMgr.h index c8bb6f4..8f4dd54 100644 --- a/MachMgr.h +++ b/MachMgr.h @@ -260,9 +260,10 @@ class MachMgr : public IMachMgr // Simulation bool SimStart( bool bFirst) override ; bool SimMove( int& nStatus) override ; - bool SimGetAxisInfoPos( int nI, std::string& sName, std::string& sToken, bool& bLinear, double& dVal) override ; - bool SimGetToolInfo( std::string& sName, double& dSpeed) override ; - bool SimGetMoveInfo( int& nGmove, double& dFeed) override ; + bool SimGetAxisInfoPos( int nI, std::string& sName, std::string& sToken, bool& bLinear, double& dVal) const override ; + bool SimGetToolInfo( std::string& sName, double& dSpeed) const override ; + bool SimGetOperationInfo( std::string& sName, int& nType) const override ; + bool SimGetMoveInfo( int& nGmove, double& dFeed) const override ; bool SimSetStep( double dStep) override ; bool SimGoHome( void) override ; bool SimStop( void) override ; @@ -272,7 +273,7 @@ class MachMgr : public IMachMgr bool SetCalcTable( const std::string& sTable) override ; bool SetCalcTool( const std::string& sTool, const std::string& sHead, int nExit) override ; bool SetRotAxisBlock( const std::string& sAxis, double dVal) override ; - bool GetRotAxisBlocked( int nInd, std::string& sAxis, double& dVal) override ; + bool GetRotAxisBlocked( int nInd, std::string& sAxis, double& dVal) const override ; bool GetCalcTool( std::string& sTool) const override ; bool GetCalcAngles( const Vector3d& vtDirT, const Vector3d& vtDirA, int& nStat, double& dAngA1, double& dAngB1, double& dAngA2, double& dAngB2) const override ; diff --git a/MachMgrMachines.cpp b/MachMgrMachines.cpp index 311ba06..682ab43 100644 --- a/MachMgrMachines.cpp +++ b/MachMgrMachines.cpp @@ -365,7 +365,7 @@ MachMgr::SetRotAxisBlock( const string& sAxis, double dVal) //---------------------------------------------------------------------------- bool -MachMgr::GetRotAxisBlocked( int nInd, string& sAxis, double& dVal) +MachMgr::GetRotAxisBlocked( int nInd, string& sAxis, double& dVal) const { // se bloccaggi non ancora impostati if ( ! m_vAxisBlock.empty()) { @@ -376,7 +376,7 @@ MachMgr::GetRotAxisBlocked( int nInd, string& sAxis, double& dVal) return true ; } // altrimenti cerco negli assi rotanti correnti - Machine* pMch = GetCurrMachine() ; + const Machine* pMch = GetCurrMachine() ; if ( pMch == nullptr) return false ; int nMyInd = 0 ; diff --git a/MachMgrOperations.cpp b/MachMgrOperations.cpp index b01fb80..abd58fa 100644 --- a/MachMgrOperations.cpp +++ b/MachMgrOperations.cpp @@ -17,11 +17,10 @@ #include "MachMgr.h" #include "MachConst.h" #include "Disposition.h" +#include "Machining.h" #include "MachiningCreate.h" #include "SetTempPhase.h" #include "SetTempMachLook.h" -#include "/EgtDev/Include/EMkOperationConst.h" -#include "/EgtDev/Include/EGkUserObjFactory.h" #include "/EgtDev/Include/EGkGdbIterator.h" #include "/EgtDev/Include/EGnStringKeyVal.h" #include "/EgtDev/Include/EGnFileUtils.h" @@ -151,72 +150,66 @@ MachMgr::GetPrevActiveOperation( int nId) const int MachMgr::GetOperationType( int nId) const { + // verifiche + if ( m_pGeomDB == nullptr || m_pGeomDB->GetParentId( nId) != GetCurrOperId()) + return 0 ; // recupero l'operazione - PtrOwner pIter( CreateGdbIterator( m_pGeomDB)) ; - if ( IsNull( pIter) || ! pIter->GoTo( nId)) - return OPER_NULL ; - // verifico che il gruppo ricevuto sia corretto - if ( pIter->GetParentId() != GetCurrOperId()) - return OPER_NULL ; - // recupero user object - IUserObj* pUserObj = pIter->GetUserObj() ; - if ( pUserObj == nullptr) - return OPER_NULL ; - // recupero il tipo di UserObj - const string& sUserObj = pUserObj->GetClassName() ; - if ( sUserObj == USEROBJ_GETNAME( Disposition)) - return OPER_DISP ; - else if ( sUserObj == USEROBJ_GETNAME( Drilling)) - return OPER_DRILLING ; - else if ( sUserObj == USEROBJ_GETNAME( Sawing)) - return OPER_SAWING ; - else if ( sUserObj == USEROBJ_GETNAME( Milling)) - return OPER_MILLING ; - else if ( sUserObj == USEROBJ_GETNAME( Pocketing)) - return OPER_POCKETING ; - //else if ( sUserObj == USEROBJ_GETNAME( Mortising)) - // return OPER_MORTISING ; - else if ( sUserObj == USEROBJ_GETNAME( SawRoughing)) - return OPER_SAWROUGHING ; - else if ( sUserObj == USEROBJ_GETNAME( SawFinishing)) - return OPER_SAWFINISHING ; - else if ( sUserObj == USEROBJ_GETNAME( GenMachining)) - return OPER_GENMACHINING ; - else if ( sUserObj == USEROBJ_GETNAME( Chiseling)) - return OPER_CHISELING ; - else + const Operation* pOpe = GetOperation( m_pGeomDB->GetUserObj( nId)) ; + if ( pOpe == nullptr) return OPER_NULL ; + // restituisco il tipo + return pOpe->GetType() ; + + //// recupero l'operazione + // PtrOwner pIter( CreateGdbIterator( m_pGeomDB)) ; + // if ( IsNull( pIter) || ! pIter->GoTo( nId)) + // return OPER_NULL ; + //// verifico che il gruppo ricevuto sia corretto + // if ( pIter->GetParentId() != GetCurrOperId()) + // return OPER_NULL ; + //// recupero user object + // IUserObj* pUserObj = pIter->GetUserObj() ; + // if ( pUserObj == nullptr) + // return OPER_NULL ; + //// recupero il tipo di UserObj + // const string& sUserObj = pUserObj->GetClassName() ; + // if ( sUserObj == USEROBJ_GETNAME( Disposition)) + // return OPER_DISP ; + // else if ( sUserObj == USEROBJ_GETNAME( Drilling)) + // return OPER_DRILLING ; + // else if ( sUserObj == USEROBJ_GETNAME( Sawing)) + // return OPER_SAWING ; + // else if ( sUserObj == USEROBJ_GETNAME( Milling)) + // return OPER_MILLING ; + // else if ( sUserObj == USEROBJ_GETNAME( Pocketing)) + // return OPER_POCKETING ; + // //else if ( sUserObj == USEROBJ_GETNAME( Mortising)) + // // return OPER_MORTISING ; + // else if ( sUserObj == USEROBJ_GETNAME( SawRoughing)) + // return OPER_SAWROUGHING ; + // else if ( sUserObj == USEROBJ_GETNAME( SawFinishing)) + // return OPER_SAWFINISHING ; + // else if ( sUserObj == USEROBJ_GETNAME( GenMachining)) + // return OPER_GENMACHINING ; + // else if ( sUserObj == USEROBJ_GETNAME( Chiseling)) + // return OPER_CHISELING ; + // else + // return OPER_NULL ; } //---------------------------------------------------------------------------- int MachMgr::GetOperationPhase( int nId) const { - // recupero l'operazione - PtrOwner pIter( CreateGdbIterator( m_pGeomDB)) ; - if ( IsNull( pIter) || ! pIter->GoTo( nId)) + // verifiche + if ( m_pGeomDB == nullptr || m_pGeomDB->GetParentId( nId) != GetCurrOperId()) return 0 ; - // verifico che il gruppo ricevuto sia corretto - if ( pIter->GetParentId() != GetCurrOperId()) + // recupero operazione + const Operation* pOpe = GetOperation( m_pGeomDB->GetUserObj( nId)) ; + if ( pOpe == nullptr) return 0 ; - // recupero user object - IUserObj* pUserObj = pIter->GetUserObj() ; - if ( pUserObj == nullptr) - return 0 ; - // se disposizione - if ( pUserObj->GetClassName() == USEROBJ_GETNAME( Disposition)) { - const Disposition* pDisp = ::GetDisposition( pUserObj) ; - if ( pDisp != nullptr) - return pDisp->GetPhase() ; - } - // altrimenti lavorazione - else { - const Machining* pMch = GetMachining( pUserObj) ; - if ( pMch != nullptr) - return pMch->GetPhase() ; - } - // errore - return 0 ; + // restituisco la fase + return pOpe->GetPhase() ; } //---------------------------------------------------------------------------- @@ -290,31 +283,15 @@ MachMgr::GetOperationId( const string& sName) const bool MachMgr::IsOperationEmpty( int nId) const { - // recupero l'operazione - PtrOwner pIter( CreateGdbIterator( m_pGeomDB)) ; - if ( IsNull( pIter) || ! pIter->GoTo( nId)) + // verifiche + if ( m_pGeomDB == nullptr || m_pGeomDB->GetParentId( nId) != GetCurrOperId()) return true ; - // verifico che il gruppo ricevuto sia corretto - if ( pIter->GetParentId() != GetCurrOperId()) + // recupero operazione + const Operation* pOpe = GetOperation( m_pGeomDB->GetUserObj( nId)) ; + if ( pOpe == nullptr) return true ; - // recupero user object - IUserObj* pUserObj = pIter->GetUserObj() ; - if ( pUserObj == nullptr) - return true ; - // se disposizione - if ( pUserObj->GetClassName() == USEROBJ_GETNAME( Disposition)) { - const Disposition* pDisp = ::GetDisposition( pUserObj) ; - if ( pDisp != nullptr) - return pDisp->IsEmpty() ; - } - // altrimenti lavorazione - else { - const Machining* pMch = GetMachining( pUserObj) ; - if ( pMch != nullptr) - return pMch->IsEmpty() ; - } - // errore - return true ; + // restituisco se vuota + return pOpe->IsEmpty() ; } //---------------------------------------------------------------------------- diff --git a/MachMgrSimulation.cpp b/MachMgrSimulation.cpp index 16f76d6..31f93f9 100644 --- a/MachMgrSimulation.cpp +++ b/MachMgrSimulation.cpp @@ -52,7 +52,7 @@ MachMgr::SimMove( int& nStatus) //---------------------------------------------------------------------------- bool -MachMgr::SimGetAxisInfoPos( int nI, string& sName, string& sToken, bool& bLinear, double& dVal) +MachMgr::SimGetAxisInfoPos( int nI, string& sName, string& sToken, bool& bLinear, double& dVal) const { // verifico simulatore if ( m_pSimul == nullptr) @@ -63,18 +63,29 @@ MachMgr::SimGetAxisInfoPos( int nI, string& sName, string& sToken, bool& bLinear //---------------------------------------------------------------------------- bool -MachMgr::SimGetToolInfo( string& sName, double& dSpeed) +MachMgr::SimGetToolInfo( string& sName, double& dSpeed) const { // verifico simulatore if ( m_pSimul == nullptr) return false ; - // recupero quote + // recupero dati utensile corrente return m_pSimul->GetToolInfo( sName, dSpeed) ; } //---------------------------------------------------------------------------- bool -MachMgr::SimGetMoveInfo( int& nGmove, double& dFeed) +MachMgr::SimGetOperationInfo( string& sName, int& nType) const +{ + // verifico simulatore + if ( m_pSimul == nullptr) + return false ; + // recupero dati operazione corrente + return m_pSimul->GetOperationInfo( sName, nType) ; +} + +//---------------------------------------------------------------------------- +bool +MachMgr::SimGetMoveInfo( int& nGmove, double& dFeed) const { // verifico simulatore if ( m_pSimul == nullptr) diff --git a/MachiningConst.h b/MachiningConst.h index 5f0f679..e709301 100644 --- a/MachiningConst.h +++ b/MachiningConst.h @@ -54,7 +54,9 @@ GetMachiningTitle( int nMchType) "Pocketing", "Mortising", "SawRoughing", - "SawFinishing"} ; + "SawFinishing", + "GenMachining", + "Chiseling"} ; switch ( nMchType) { case MT_DRILLING : return MchTitle[1] ; case MT_SAWING : return MchTitle[2] ; @@ -63,6 +65,8 @@ GetMachiningTitle( int nMchType) case MT_MORTISING : return MchTitle[5] ; case MT_SAWROUGHING : return MchTitle[6] ; case MT_SAWFINISHING : return MchTitle[7] ; + case MT_GENMACHINING : return MchTitle[8] ; + case MT_CHISELING : return MchTitle[9] ; } return MchTitle[0] ; } diff --git a/MachiningCreate.h b/MachiningCreate.h index 8c69d43..a43fceb 100644 --- a/MachiningCreate.h +++ b/MachiningCreate.h @@ -13,30 +13,25 @@ #pragma once -#include "Drilling.h" -#include "Sawing.h" -#include "Milling.h" -#include "Pocketing.h" -#include "SawRoughing.h" -#include "SawFinishing.h" -#include "GenMachining.h" -#include "Chiseling.h" +#include "Machining.h" +#include "OperationConst.h" +#include "/EgtDev/Include/EGkUserObjFactory.h" //---------------------------------------------------------------------------- // Dal tipo numerico crea una istanza della classe inline Machining* CreateMachining( int nMchType) { - switch ( nMchType) { - case MT_DRILLING : return new( std::nothrow) Drilling ; - case MT_SAWING : return new( std::nothrow) Sawing ; - case MT_MILLING : return new( std::nothrow) Milling ; - case MT_POCKETING : return new( std::nothrow) Pocketing ; - // case MT_MORTISING : return new( std::nothrow) Mortising ; - case MT_SAWROUGHING : return new( std::nothrow) SawRoughing ; - case MT_SAWFINISHING : return new( std::nothrow) SawFinishing ; - case MT_GENMACHINING : return new( std::nothrow) GenMachining ; - case MT_CHISELING : return new( std::nothrow) Chiseling ; - } - return nullptr ; + // verifico sia richiesto un oggetto utente di tipo lavorazione + if ( ! IsValidMachiningType( nMchType)) + return false ; + // creo l'oggetto + IUserObj* pUsrObj = USEROBJ_CREATE( GetOperationClass( nMchType)) ; + if ( pUsrObj == nullptr) + return false ; + // lo converto a lavorazione + Machining* pMch = GetMachining( pUsrObj) ; + if ( pMch == nullptr) + delete pUsrObj ; + return pMch ; } diff --git a/Milling.cpp b/Milling.cpp index 3ec055a..ea5b0ce 100644 --- a/Milling.cpp +++ b/Milling.cpp @@ -16,7 +16,7 @@ #include "MachMgr.h" #include "DllMain.h" #include "Milling.h" -#include "MachiningConst.h" +#include "OperationConst.h" #include "/EgtDev/Include/EGkCurveLine.h" #include "/EgtDev/Include/EGkCurveArc.h" #include "/EgtDev/Include/EGkCurveComposite.h" @@ -56,7 +56,7 @@ using namespace std ; // 2321 = "Error in Milling : post apply not calculable" //---------------------------------------------------------------------------- -USEROBJ_REGISTER( "EMkMilling", Milling) ; +USEROBJ_REGISTER( GetOperationClass( OPER_MILLING), Milling) ; //---------------------------------------------------------------------------- const string& diff --git a/Milling.h b/Milling.h index 645bdd8..c9c0a8a 100644 --- a/Milling.h +++ b/Milling.h @@ -33,6 +33,8 @@ class Milling : public Machining bool Load( const STRVECTOR& vString, int nBaseGdbId) override ; public : // Operation + int GetType( void) const override + { return OPER_MILLING ; } bool IsEmpty( void) const override { return ( m_nMills == 0) ; } diff --git a/Operation.cpp b/Operation.cpp index cfb5b28..2e76f72 100644 --- a/Operation.cpp +++ b/Operation.cpp @@ -15,13 +15,14 @@ #include "stdafx.h" #include "DllMain.h" #include "Operation.h" +#include "OperationConst.h" #include "MachMgr.h" #include "OutputConst.h" #include "/EgtDev/Include/EGkAngle.h" #include "/EgtDev/Include/EGkGeoPoint3d.h" #include "/EgtDev/Include/EGkCurveLine.h" #include "/EgtDev/Include/EGkCurveArc.h" -#include "/EgtDev/Include/EgkArcSpecial.h" +#include "/EgtDev/Include/EGkArcSpecial.h" #include "/EgtDev/Include/EGkCurveComposite.h" #include "/EgtDev/Include/EGkDistPointCurve.h" #include "/EgtDev/Include/EGkIntersCurves.h" diff --git a/Operation.h b/Operation.h index 61a9d16..ea4318e 100644 --- a/Operation.h +++ b/Operation.h @@ -43,6 +43,7 @@ class Operation : public IUserObj virtual bool RemoveHome( void) ; public : + virtual int GetType( void) const = 0 ; virtual bool IsEmpty( void) const = 0 ; protected : diff --git a/OperationConst.h b/OperationConst.h new file mode 100644 index 0000000..58f012c --- /dev/null +++ b/OperationConst.h @@ -0,0 +1,80 @@ +//---------------------------------------------------------------------------- +// EgalTech 2017-2017 +//---------------------------------------------------------------------------- +// File : OperationConst.h Data : 17.08.17 Versione : 1.8h1 +// Contenuto : Costanti per le operazioni. +// +// +// +// Modifiche : 17.08.17 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EMkOperationConst.h" +#include + + +//---------------------------------------------------------------------------- +static const std::string s_OpeClass[] = {"", + "EMkDisposition", + "EMkDrilling", + "EMkSawing", + "EMkMilling", + "EMkPocketing", + "EMkMortising", + "EMkSawRoughing", + "EMkSawFinishing", + "EMkGenMachining", + "EMkChiseling"} ; + +//---------------------------------------------------------------------------- +// Dal tipo numerico restituisce la classe della operazione +inline const std::string& +GetOperationClass( int nOpeType) +{ + switch ( nOpeType) { + case OPER_DISP : return s_OpeClass[1] ; + case OPER_DRILLING : return s_OpeClass[2] ; + case OPER_SAWING : return s_OpeClass[3] ; + case OPER_MILLING : return s_OpeClass[4] ; + case OPER_POCKETING : return s_OpeClass[5] ; + case OPER_MORTISING : return s_OpeClass[6] ; + case OPER_SAWROUGHING : return s_OpeClass[7] ; + case OPER_SAWFINISHING : return s_OpeClass[8] ; + case OPER_GENMACHINING : return s_OpeClass[9] ; + case OPER_CHISELING : return s_OpeClass[10] ; + } + return s_OpeClass[0] ; +} + +//---------------------------------------------------------------------------- +// Dalla classe restituisce il tipo numerico della operazione +inline int +GetOperationType( const std::string& sOpeClass) +{ + if ( sOpeClass == s_OpeClass[1]) + return OPER_DISP ; + else if ( sOpeClass == s_OpeClass[2]) + return OPER_DRILLING ; + else if ( sOpeClass == s_OpeClass[3]) + return OPER_SAWING ; + else if ( sOpeClass == s_OpeClass[4]) + return OPER_MILLING ; + else if ( sOpeClass == s_OpeClass[5]) + return OPER_POCKETING ; + else if ( sOpeClass == s_OpeClass[6]) + return OPER_MORTISING ; + else if ( sOpeClass == s_OpeClass[7]) + return OPER_SAWROUGHING ; + else if ( sOpeClass == s_OpeClass[8]) + return OPER_SAWFINISHING ; + else if ( sOpeClass == s_OpeClass[9]) + return OPER_GENMACHINING ; + else if ( sOpeClass == s_OpeClass[10]) + return OPER_CHISELING ; + else + return OPER_NULL ; +} \ No newline at end of file diff --git a/Pocketing.cpp b/Pocketing.cpp index f6cdb5d..42ee107 100644 --- a/Pocketing.cpp +++ b/Pocketing.cpp @@ -16,6 +16,7 @@ #include "MachMgr.h" #include "DllMain.h" #include "Pocketing.h" +#include "OperationConst.h" #include "MachiningConst.h" #include "/EgtDev/Include/EGkCurveLine.h" #include "/EgtDev/Include/EGkCurveArc.h" @@ -63,7 +64,7 @@ using namespace std ; // 2427 = "Error in Pocketing : post apply not calculable" //---------------------------------------------------------------------------- -USEROBJ_REGISTER( "EMkPocketing", Pocketing) ; +USEROBJ_REGISTER( GetOperationClass( OPER_POCKETING), Pocketing) ; //---------------------------------------------------------------------------- const string& diff --git a/Pocketing.h b/Pocketing.h index 52e2f68..39413b5 100644 --- a/Pocketing.h +++ b/Pocketing.h @@ -34,6 +34,8 @@ class Pocketing : public Machining bool Load( const STRVECTOR& vString, int nBaseGdbId) override ; public : // Operation + int GetType( void) const override + { return OPER_POCKETING ; } bool IsEmpty( void) const override { return ( m_nPockets == 0) ; } diff --git a/SawFinishing.cpp b/SawFinishing.cpp index ef78d89..0014ef2 100644 --- a/SawFinishing.cpp +++ b/SawFinishing.cpp @@ -16,7 +16,7 @@ #include "MachMgr.h" #include "DllMain.h" #include "SawFinishing.h" -#include "CamData.h" +#include "OperationConst.h" #include "/EgtDev/Include/EXeCmdLogOff.h" #include "/EgtDev/Include/EXeConst.h" #include "/EgtDev/Include/EGkCurveLine.h" @@ -62,7 +62,7 @@ enum nCrvClass { }; //---------------------------------------------------------------------------- -USEROBJ_REGISTER( "EMkSawFinishing", SawFinishing) ; +USEROBJ_REGISTER( GetOperationClass( OPER_SAWFINISHING), SawFinishing) ; //---------------------------------------------------------------------------- const string& diff --git a/SawFinishing.h b/SawFinishing.h index ecd2892..dc34d8d 100644 --- a/SawFinishing.h +++ b/SawFinishing.h @@ -36,6 +36,8 @@ class SawFinishing : public Machining bool Load( const STRVECTOR& vString, int nBaseGdbId) override ; public : // Operation + int GetType( void) const override + { return OPER_SAWFINISHING ; } bool IsEmpty( void) const override { return ( m_nCuts == 0) ; } diff --git a/SawRoughing.cpp b/SawRoughing.cpp index 6c36350..fa9eab9 100644 --- a/SawRoughing.cpp +++ b/SawRoughing.cpp @@ -16,7 +16,7 @@ #include "MachMgr.h" #include "DllMain.h" #include "SawRoughing.h" -#include "CamData.h" +#include "OperationConst.h" #include "/EgtDev/Include/EXeCmdLogOff.h" #include "/EgtDev/Include/EXeConst.h" #include "/EgtDev/Include/EGkCurveLine.h" @@ -55,7 +55,7 @@ const std::string MCH_SECTION = "Sect" ; const std::string MCH_GUIDE = "Guide" ; //---------------------------------------------------------------------------- -USEROBJ_REGISTER( "EMkSawRoughing", SawRoughing) ; +USEROBJ_REGISTER( GetOperationClass( OPER_SAWROUGHING), SawRoughing) ; //---------------------------------------------------------------------------- const string& diff --git a/SawRoughing.h b/SawRoughing.h index 0106b73..d908458 100644 --- a/SawRoughing.h +++ b/SawRoughing.h @@ -36,6 +36,8 @@ class SawRoughing : public Machining bool Load( const STRVECTOR& vString, int nBaseGdbId) override ; public : // Operation + int GetType( void) const override + { return OPER_SAWROUGHING ; } bool IsEmpty( void) const override { return ( m_nCuts == 0) ; } diff --git a/Sawing.cpp b/Sawing.cpp index 78bd06c..254cfb9 100644 --- a/Sawing.cpp +++ b/Sawing.cpp @@ -16,7 +16,7 @@ #include "MachMgr.h" #include "DllMain.h" #include "Sawing.h" -#include "CamData.h" +#include "OperationConst.h" #include "/EgtDev/Include/EXeCmdLogOff.h" #include "/EgtDev/Include/EXeConst.h" #include "/EgtDev/Include/EGkCurveLine.h" @@ -55,7 +55,7 @@ using namespace std ; // 2219 = "Error in Sawing : post apply not calculable" //---------------------------------------------------------------------------- -USEROBJ_REGISTER( "EMkSawing", Sawing) ; +USEROBJ_REGISTER( GetOperationClass( OPER_SAWING), Sawing) ; //---------------------------------------------------------------------------- const string& diff --git a/Sawing.h b/Sawing.h index 2967a81..d5ec42a 100644 --- a/Sawing.h +++ b/Sawing.h @@ -36,6 +36,8 @@ class Sawing : public Machining bool Load( const STRVECTOR& vString, int nBaseGdbId) override ; public : // Operation + int GetType( void) const override + { return OPER_SAWING ; } bool IsEmpty( void) const override { return ( m_nCuts == 0) ; } diff --git a/Simulator.cpp b/Simulator.cpp index 138ee00..45ecf80 100644 --- a/Simulator.cpp +++ b/Simulator.cpp @@ -259,20 +259,40 @@ Simulator::GetAxisInfoPos( int nI, string& sName, string& sToken, bool& bLinear, bool Simulator::GetToolInfo( string& sName, double& dSpeed) const { + // Inizializzo i parametri di ritorno + sName.clear() ; + dSpeed = 0 ; // Verifiche if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr) return false ; // Assegno il nome dell'utensile sName = m_sTool ; - if ( sName.empty()) { - dSpeed = 0 ; + if ( sName.empty()) return true ; - } // Recupero speed - Machining* pMch = GetMachining( m_pGeomDB->GetUserObj( m_nOpId)) ; + const Machining* pMch = GetMachining( m_pGeomDB->GetUserObj( m_nOpId)) ; return ( pMch != nullptr && pMch->GetParam( MPA_SPEED, dSpeed)) ; } +//---------------------------------------------------------------------------- +bool +Simulator::GetOperationInfo( string& sName, int& nType) const +{ + // Inizializzo i parametri di ritorno + sName.clear() ; + nType = OPER_NULL ; + // Verifiche + if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr) + return false ; + // Recupero il tipo + Operation* pOpe = GetOperation( m_pGeomDB->GetUserObj( m_nOpId)) ; + if ( pOpe == nullptr) + return false ; + nType = pOpe->GetType() ; + // Recupero il nome + return m_pGeomDB->GetName( m_nOpId, sName) ; +} + //---------------------------------------------------------------------------- bool Simulator::GetMoveInfo( int& nGmove, double& dFeed) const @@ -281,7 +301,7 @@ Simulator::GetMoveInfo( int& nGmove, double& dFeed) const if ( m_pMchMgr == nullptr || m_pGeomDB == nullptr) return false ; // Recupero il movimento corrente - CamData* pCamData = GetCamData( m_pGeomDB->GetUserObj( m_nEntId)) ; + const CamData* pCamData = GetCamData( m_pGeomDB->GetUserObj( m_nEntId)) ; if ( pCamData == nullptr) return false ; // Assegno feed diff --git a/Simulator.h b/Simulator.h index 9f928c3..8466c9c 100644 --- a/Simulator.h +++ b/Simulator.h @@ -31,6 +31,7 @@ class Simulator bool Move( int& nStatus) ; bool GetAxisInfoPos( int nI, std::string& sName, std::string& sToken, bool& bLinear, double& dVal) const ; bool GetToolInfo( std::string& sName, double& dSpeed) const ; + bool GetOperationInfo( std::string& sName, int& nType) const ; bool GetMoveInfo( int& nGmove, double& dFeed) const ; bool SetStep( double dStep) ; bool GoHome( void) ;