Files
EgtMachKernel/WaterJettingData.h
Dario Sassi f08ffded4b EgtMachKernel 2.1j8 :
- aggiunto parametro ThickRef a lavorazione WaterJetting.
2019-10-29 12:04:31 +00:00

108 lines
6.4 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2019-2019
//----------------------------------------------------------------------------
// File : WaterJettingData.h Data : 08.07.19 Versione :2.1g2
// Contenuto : Dichiarazione della struct WaterJettingData e costanti associate.
//
//
//
// Modifiche : 08.07.19 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "MachiningData.h"
//----------------------------------------------------------------------------
struct WaterJettingData : public MachiningData
{
EgtUUID m_ToolUuid ; // identificativo universale dell'utensile
std::string m_sToolName ; // nome dell'utensile
std::string m_sInitAngs ; // angoli iniziali suggeriti (Nome1=val1,Nome2=val2)
std::string m_sBlockedAxis ; // eventuale asse rotante bloccato (Nome=val)
int m_nSolCh ; // criterio scelta soluzione (quando possibili molteplici)
double m_dSpeed ; // velocità afflusso abrasivo ( se 0 da utensile)
double m_dFeed ; // velocità di lavorazione normale ( se 0 da utensile)
double m_dTipFeed ; // velocità di lavorazione di testa ( se 0 da utensile)
double m_dThickRef ; // spessore di riferimento per la feed
double m_dOffsR ; // offset radiale ( se UNKNOWN_PAR da utensile)
bool m_bInvert ; // flag di inversione direzione lavorazione
int m_nWorkSide ; // lato di lavoro (destra, sinistra, centro)
double m_dOverlap ; // lunghezza di sovrapposizione se percorso chiuso
double m_dSideAngle ; // angolo di sbandamento (0-60deg)
double m_dForwardAngle ; // angolo di inclinazione in avanti (0-30deg)
double m_dStartAddLen ; // lunghezza da aggiungere/togliere all'inizio
double m_dEndAddLen ; // lunghezza da aggiungere/togliere alla fine
bool m_bProbing ; // abilitazione tastatura
double m_dProbingMinDist ; // minima distanza tra punti di tastatura consecutivi
double m_dProbingMaxDist ; // massima distanza tra punti di tastatura consecutivi
int m_nExtCornerType ; // tipo di movimento su angoli esterni (niente, rallentamento, anello)
int m_nIntCornerType ; // tipo di movimento su angoli interni (niente, rallentamento)
double m_dCornerSlowLen ; // lunghezza di rallentamento su angoli
int m_nCornerSlowPerc ; // percentuale di rallentamento su angoli
int m_nLeadInType ; // tipo di attacco (nessuno, lineare, tangente)
double m_dLiTang ; // distanza tangente da inizio attacco
double m_dLiPerp ; // distanza perpendicolare da inizio attacco
double m_dLiCompLen ; // lunghezza del tratto di inserimento correttore raggio utensile
bool m_bLiHole ; // flag abilitazione foro di attacco
double m_dLiHoleRad ; // raggio foro attacco (se 0 non c'è foro)
int m_nLpTurns ; // numero di giri in bassa pressione sul foro di attacco
int m_nHpTurns ; // numero di giri in alta pressione sul foro di attacco
int m_nLeadOutType ; // tipo di uscita (come attacco, nessuno, lineare, tangente)
double m_dLoTang ; // distanza tangente verso fine uscita
double m_dLoPerp ; // distanza perpendicolare verso fine uscita
double m_dLoCompLen ; // lunghezza del tratto di disinserimento correttore raggio utensile
std::string m_sSysNotes ; // note interne
std::string m_sUserNotes ; // note dell'utente
WaterJettingData( void)
: m_ToolUuid(), m_nSolCh( 0), m_dSpeed( 0), m_dFeed( 0), m_dTipFeed( 0), m_dThickRef( 0),
m_dOffsR( UNKNOWN_PAR),
m_bInvert( false), m_nWorkSide( 0),
m_dOverlap( 0), m_dSideAngle( 0), m_dForwardAngle( 0),
m_dStartAddLen( 0), m_dEndAddLen( 0),
m_bProbing( true), m_dProbingMinDist( 90), m_dProbingMaxDist( 500),
m_nExtCornerType( 2), m_nIntCornerType( 1), m_dCornerSlowLen( 10), m_nCornerSlowPerc( 40),
m_nLeadInType( 0), m_dLiTang( 0), m_dLiPerp( 0), m_dLiCompLen( 0), m_bLiHole( true), m_dLiHoleRad( 0.7), m_nLpTurns( 5), m_nHpTurns( 5),
m_nLeadOutType( 0), m_dLoTang( 0), m_dLoPerp( 0), m_dLoCompLen( 0) {}
WaterJettingData* Clone( void) const override ;
bool CopyFrom( const MachiningData* pMdata) override ;
bool SameAs(const MachiningData* pMdata) const override ;
int GetType( void) const override
{ return MT_WATERJETTING ; }
int GetSize( void) const override ;
std::string GetTitle( void) const override ;
bool FromString( const std::string& sString, int& nKey) override ;
std::string ToString( int nInd) const override ;
bool IsOptional( int nKey) const override ;
bool SetParam( int nType, bool bVal) override ;
bool SetParam( int nType, int nVal) override ;
bool SetParam( int nType, double dVal) override ;
bool SetParam( int nType, const std::string& sVal) override ;
bool ResetTool( 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 ;
bool GetParam( int nType, std::string& sVal) const override ;
bool GetTool( const ToolsMgr* pToolsMgr, const ToolData*& pTdata) const override ;
bool VerifyTool( const ToolsMgr* pToolsMgr, const std::string& sVal, const ToolData*& pTdata) const override ;
bool VerifySolCh( int nVal) const ;
bool VerifyWorkSide( int nVal) const ;
bool VerifyExtCornerType( int nVal) const ;
bool VerifyIntCornerType( int nVal) const ;
bool VerifyCornerSlowPerc( int nVal) const ;
bool VerifyLeadInType( int nVal) const ;
bool VerifyLeadOutType( int nVal) const ;
bool VerifySideAngle( double dVal) const ;
bool VerifyForwardAngle( double dVal) const ;
bool VerifyThickRef( double dVal) const ;
} ;
//----------------------------------------------------------------------------
inline const WaterJettingData* GetWaterJettingData( const MachiningData* pMdata)
{ return (dynamic_cast<const WaterJettingData*>( pMdata)) ; }
inline WaterJettingData* GetWaterJettingData( MachiningData* pMdata)
{ return (dynamic_cast<WaterJettingData*>( pMdata)) ; }