2c89d112fa
- aggiunta gestione DB utensili - migliorata simulazione - aggiunta impostazione macchina corrente anche senza macchinata.
95 lines
4.3 KiB
C++
95 lines
4.3 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2015-2015
|
|
//----------------------------------------------------------------------------
|
|
// File : CamData.h Data : 10.06.15 Versione : 1.6f2
|
|
// Contenuto : Dichiarazione della classe CamData.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 10.06.15 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include "/EgtDev/Include/EGkVector3d.h"
|
|
#include "/EgtDev/Include/EGkUserObj.h"
|
|
#include "/EgtDev/Include/EGkSelection.h"
|
|
|
|
//----------------------------------------------------------------------------
|
|
class CamData : public IUserObj
|
|
{
|
|
public : // IUserObj
|
|
virtual CamData* Clone( void) const ;
|
|
virtual const std::string& GetClassName( void) const ;
|
|
virtual bool Dump( std::string& sOut, bool bMM = true, const char* szNewLine = "\n") const ;
|
|
virtual bool SetOwner( int nId, IGeomDB* pGDB) ;
|
|
virtual int GetOwner( void) const ;
|
|
virtual IGeomDB* GetGeomDB( void) const ;
|
|
virtual bool ToSave( void) const { return true ; }
|
|
virtual bool Save( STRVECTOR& vString) const ;
|
|
virtual bool Load( const STRVECTOR& vString) ;
|
|
virtual bool GetDrawPolyLines( POLYLINELIST& lstPL) const ;
|
|
virtual bool Translate( const Vector3d& vtMove) ;
|
|
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg)
|
|
{ double dAngRad = dAngDeg * DEGTORAD ;
|
|
return Rotate( ptAx, vtAx, cos( dAngRad), sin( dAngRad)) ; }
|
|
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
|
|
virtual bool Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ) ;
|
|
virtual bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm) ;
|
|
virtual bool Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff) ;
|
|
virtual bool ToGlob( const Frame3d& frRef) ;
|
|
virtual bool ToLoc( const Frame3d& frRef) ;
|
|
virtual bool LocToLoc( const Frame3d& frOri, const Frame3d& frDest) ;
|
|
|
|
public :
|
|
CamData( void) ;
|
|
bool SetToolDir( const Vector3d& vtDir) ;
|
|
bool SetCorrDir( const Vector3d& vtDir) ;
|
|
bool SetAuxDir( const Vector3d& vtDir) ;
|
|
bool SetBasePoint( const Point3d& ptBase) ;
|
|
bool SetFeed( double dFeed) ;
|
|
bool SetFlag( int nFlag) ;
|
|
bool SetAxes( int nStatus, const DBLVECTOR& vAxVal) ;
|
|
bool ResetAxes( void)
|
|
{ m_nAxesStatus = AS_NONE ; return true ; }
|
|
const Vector3d& GetToolDir( void) const
|
|
{ return m_vtTool ; }
|
|
const Vector3d& GetCorrDir( void) const
|
|
{ return m_vtCorr ; }
|
|
const Vector3d& GetAuxDir( void) const
|
|
{ return m_vtAux ; }
|
|
const Point3d& GetBasePoint( void) const
|
|
{ return m_ptBase ; }
|
|
double GetFeed( void) const
|
|
{ return m_dFeed ; }
|
|
int GetFlag( void) const
|
|
{ return m_nFlag ; }
|
|
int GetAxesStatus( void) const
|
|
{ return m_nAxesStatus ; }
|
|
const DBLVECTOR& GetAxisVal( void) const
|
|
{ return m_vMachAxes ; }
|
|
|
|
public :
|
|
enum { AS_NONE = 0,
|
|
AS_OK = 1,
|
|
AS_ERR = 2,
|
|
AS_OUTSTROKE = 3} ;
|
|
|
|
private :
|
|
void ResetObjGraphics( void) ;
|
|
|
|
private :
|
|
int m_nOwnerId ;
|
|
IGeomDB* m_pGeomDB ;
|
|
int m_nCorre ; // tipo correzione (0, 41, 42, 141, 142, 40)
|
|
Vector3d m_vtTool ; // versore fresa
|
|
Vector3d m_vtCorr ; // versore correzione
|
|
Vector3d m_vtAux ; // versore ausiliario
|
|
Point3d m_ptBase ; // punto base per il disegno dei vettori
|
|
double m_dFeed ; // velocità di avanzamento in lavorazione
|
|
int m_nFlag ; // flag per usi vari
|
|
int m_nAxesStatus ; // stato dei valori assi
|
|
DBLVECTOR m_vMachAxes ; // valori degli assi macchina
|
|
} ; |