fe0cbd0191
- aggiunta gestione SCC (Solution Choice Criterion) nelle lavorazioni - possibilità di calcolo Tip con dimensioni massime anzichè quelle di lavoro - migliorato controllo pezzi prima di inserimento nei grezzi - migliorato caricamento tavola al cambio di gruppo di lavoro - aggiunta prima versione di risalita tra i percorsi di lavorazione in base a controllo collisioni (ora solo box) - in simulazione imposto variabile nome tavola prima di OnDispositionStart.
101 lines
6.0 KiB
C++
101 lines
6.0 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2015-2015
|
|
//----------------------------------------------------------------------------
|
|
// File : MillingData.h Data : 05.06.15 Versione : 1.6f1
|
|
// Contenuto : Dichiarazione della struct MillingData e costanti associate.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 05.06.15 DS Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include "MachiningData.h"
|
|
|
|
//----------------------------------------------------------------------------
|
|
struct MillingData : public MachiningData
|
|
{
|
|
EgtUUID m_ToolUuid ; // identificativo universale dell'utensile
|
|
std::string m_sToolName ; // nome dell'utensile
|
|
int m_nSolCh ; // criterio scelta soluzione (quando possibili molteplici)
|
|
double m_dSpeed ; // velocità di rotazione (+ se CCW, - se CW) ( se 0 da utensile)
|
|
double m_dFeed ; // velocità di lavorazione normale ( se 0 da utensile)
|
|
double m_dStartFeed ; // velocità di lavorazione iniziale ( se 0 da utensile)
|
|
double m_dEndFeed ; // velocità di lavorazione finale ( se 0 da utensile)
|
|
double m_dTipFeed ; // velocità di lavorazione di testa ( se 0 da utensile)
|
|
double m_dOffsR ; // offset radiale ( se UNKNOWN_PAR da utensile)
|
|
double m_dOffsL ; // offset longitudinale ( se UNKNOWN_PAR da utensile)
|
|
bool m_bInvert ; // flag di inversione direzione lavorazione
|
|
int m_nWorkSide ; // lato di lavoro (destra, sinistra, centro)
|
|
std::string m_sDepth ; // affondamento (espressione numerica)
|
|
double m_dStartPos ; // quota di inizio lavorazione (sempre >= 0)
|
|
double m_dOverlap ; // lunghezza di sovrapposizione se percorso chiuso
|
|
double m_dStep ; // passo di affondamento (0=nessun passo)
|
|
int m_nStepType ; // tipo di lavorazione a step (a gradini, una via, a spirale)
|
|
double m_dSideAngle ; // angolo di sbandamento (0-60deg)
|
|
double m_dStartAddLen ; // lunghezza da aggiungere/togliere all'inizio se percorso aperto
|
|
double m_dEndAddLen ; // lunghezza da aggiungere/togliere alla fine se percorso aperto
|
|
bool m_bLeaveTab ; // lasciare i tab
|
|
double m_dTabLen ; // lunghezza dei tab lasciati per tenere il pezzo
|
|
double m_dTabDist ; // distanza tra due tab consecutivi
|
|
double m_dTabHeight ; // altezza dei tab
|
|
double m_dTabAngle ; // angolo di salita/discesa dei tab
|
|
int m_nLeadInType ; // tipo di attacco (nessuno, lineare, tangente, inseguimento)
|
|
double m_dLiTang ; // distanza tangente da inizio attacco
|
|
double m_dLiPerp ; // distanza perpendicolare da inizio attacco
|
|
double m_dLiElev ; // elevazione da inizio attacco
|
|
double m_dLiCompLen ; // lunghezza del tratto di inserimento correttore raggio utensile
|
|
int m_nLeadOutType ; // tipo di uscita (come attacco, nessuno, lineare, tangente, inseguimento)
|
|
double m_dLoTang ; // distanza tangente verso fine uscita
|
|
double m_dLoPerp ; // distanza perpendicolare verso fine uscita
|
|
double m_dLoElev ; // elevazione 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
|
|
|
|
MillingData( void)
|
|
: m_ToolUuid(), m_nSolCh( 0), m_dSpeed( 0), m_dFeed( 0), m_dStartFeed( 0), m_dEndFeed( 0), m_dTipFeed( 0),
|
|
m_dOffsR( UNKNOWN_PAR), m_dOffsL( UNKNOWN_PAR), m_bInvert( false), m_nWorkSide( 0),
|
|
m_dStartPos( 0), m_dOverlap( 0), m_dStep( 0), m_nStepType( 0), m_dSideAngle( 0),
|
|
m_dStartAddLen( 0), m_dEndAddLen( 0),
|
|
m_bLeaveTab( false), m_dTabLen( 0), m_dTabDist( 0), m_dTabHeight( 0), m_dTabAngle( 0),
|
|
m_nLeadInType( 0), m_dLiTang( 0), m_dLiPerp( 0), m_dLiElev( 0), m_dLiCompLen( 0),
|
|
m_nLeadOutType( 0), m_dLoTang( 0), m_dLoPerp( 0), m_dLoElev( 0), m_dLoCompLen( 0) {}
|
|
MillingData* Clone( void) const override ;
|
|
bool CopyFrom( const MachiningData* pMdata) override ;
|
|
bool SameAs(const MachiningData* pMdata) const override ;
|
|
int GetType( void) const override
|
|
{ return MT_MILLING ; }
|
|
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 VerifyStepType( int nVal) const ;
|
|
bool VerifyLeadInType( int nVal) const ;
|
|
bool VerifyLeadOutType( int nVal) const ;
|
|
bool VerifySideAngle( double dVal) const ;
|
|
} ;
|
|
|
|
//----------------------------------------------------------------------------
|
|
inline const MillingData* GetMillingData( const MachiningData* pMdata)
|
|
{ return (dynamic_cast<const MillingData*>( pMdata)) ; }
|
|
inline MillingData* GetMillingData( MachiningData* pMdata)
|
|
{ return (dynamic_cast<MillingData*>( pMdata)) ; }
|