Files
EgtMachKernel/Machining.h
T
Dario Sassi 843282c234 EgtMachKernel 1.6k7 :
- aggiunta prima versione del postprocessore
- corretto salvataggio angolo rotazione per fixture
- aggiunta GetParam di lavorazioni applicate
- migliorata gestione DB lavorazioni con versioni e size nel file
- corretto Clone di SawingData.
2015-11-19 07:32:35 +00:00

86 lines
3.6 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2015-2015
//----------------------------------------------------------------------------
// File : Machining.h Data : 07.06.15 Versione : 1.6f2
// Contenuto : Dichiarazione della classe Machining da cui derivano
// tutti i gestori delle lavorazioni.
//
//
//
// Modifiche : 07.06.15 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkPoint3d.h"
#include "/EgtDev/Include/EGkUserObj.h"
#include "/EgtDev/Include/EGkSelection.h"
#include "/EgtDev/Include/EgtNumCollection.h"
class MachMgr ;
//----------------------------------------------------------------------------
class Machining : public IUserObj
{
public : // IUserObj
virtual bool SetOwner( int nId, IGeomDB* pGDB) ;
virtual int GetOwner( void) const ;
virtual IGeomDB* GetGeomDB( void) const ;
public :
virtual bool Init( MachMgr* pMchMgr) ;
public :
virtual bool Prepare( const std::string& sMchName) = 0 ;
virtual bool SetParam( int nType, bool bVal) = 0 ;
virtual bool SetParam( int nType, int nVal) = 0 ;
virtual bool SetParam( int nType, double dVal) = 0 ;
virtual bool SetParam( int nType, const std::string& sVal) = 0 ;
virtual bool SetGeometry( const SELVECTOR& vIds) = 0 ;
virtual bool Apply( 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 ;
virtual bool GetParam( int nType, std::string& sVal) const = 0 ;
virtual const ToolData& GetToolData( void) const = 0 ;
virtual bool AdjustPositionForAxesCalc( const CamData* pCamData, Point3d& ptP) = 0 ;
protected :
Machining( void) ;
protected :
double GetApproachDist( void) { return 30.0 ; }
bool GetElevation( const Point3d& ptP, const Vector3d& vtDir, double& dElev) ;
bool GetElevation( const Point3d& ptP1, const Point3d& ptP2, const Vector3d& vtDir, double& dElev) ;
bool GetFinalAxesValues( DBLVECTOR& vAxVal) ;
bool CalculateAxesValues( void) ;
bool CalculateClPathAxesValues( int nClPathId, int nLinAxes, int nRotAxes, double dRot1W,
double& dAngAprec, double& dAngBprec) ;
protected :
bool SetPathId( int nPathId) ;
bool SetToolDir( const Vector3d& vtDir) ;
bool SetCorrDir( const Vector3d& vtDir) ;
bool SetAuxDir( const Vector3d& vtDir) ;
bool SetFeed( double dFeed) ;
bool SetFlag( int nFlag) ;
int AddStart( const Point3d& ptP) ;
int AddLinearMove( const Point3d& ptP) ;
bool ResetMoveData( void) ;
protected :
int m_nOwnerId ; // identificativo dell'oggetto geometrico possessore
IGeomDB* m_pGeomDB ; // puntatore al DB geometrico
MachMgr* m_pMchMgr ; // puntatore al gestore di tutte le lavorazioni
int m_nPathId ; // identificativo del gruppo corrente di inserimento dati
bool m_bCurr ; // punto corrente valido
Point3d m_ptCurr ; // posizione corrente
Vector3d m_vtTool ; // direzione fresa corrente
Vector3d m_vtCorr ; // direzione correzione corrente
Vector3d m_vtAux ; // direzione ausiliaria corrente
double m_dFeed ; // feed corrente
int m_nFlag ; // flag corrente
} ;