//---------------------------------------------------------------------------- // EgalTech 2015-2015 //---------------------------------------------------------------------------- // File : MachiningConst.h Data : 18.06.15 Versione : 1.6f3 // Contenuto : Costanti delle lavorazioni. // // // // Modifiche : 18.06.15 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EMkMachiningConst.h" #include "/EgtDev/Include/EMkMachiningGeoConst.h" #include "/EgtDev/Include/EMkToolConst.h" #include "/EgtDev/Include/EGkGeoConst.h" //---------------------------------------------------------------------------- // Epsilon per parametri lavorazioni const double EPS_MACH_LEN_PAR = 10 * EPS_SMALL ; const double EPS_MACH_ANG_PAR = 10 * EPS_ANG_SMALL ; // Valore parametro lavorazione non inizializzato const double UNKNOWN_PAR = 9999999 ; //---------------------------------------------------------------------------- // Costanti per stato lavorazione enum Mch_Status { MCH_ST_OK = 0, MCH_ST_NO_POSTAPPL = 1, MCH_ST_TO_VERIFY = 2, MCH_ST_GEO_MODIF = 4, MCH_ST_PARAM_MODIF = 8, MCH_ST_OTH_MODIF = 16} ; //---------------------------------------------------------------------------- inline bool AreSameLenValue( double dLen1, double dLen2) { return abs( dLen1 - dLen2) < EPS_MACH_LEN_PAR ; } //---------------------------------------------------------------------------- inline bool AreSameAngValue( double dAng1, double dAng2) { return abs( dAng1 - dAng2) < EPS_MACH_ANG_PAR ; } //---------------------------------------------------------------------------- inline bool IsNullLenValue( double dLen) { return abs( dLen) < EPS_MACH_LEN_PAR ; } //---------------------------------------------------------------------------- inline bool IsNullAngValue( double dAng) { return abs( dAng) < EPS_MACH_ANG_PAR ; } //---------------------------------------------------------------------------- inline bool IsUnknownValue( double dVal) { return abs( dVal - UNKNOWN_PAR) < EPS_MACH_LEN_PAR ; } //---------------------------------------------------------------------------- // Conversione dei parametri lavorazione negli equivalenti utensile, ove esistano inline int MPA2TPA( int nType) { switch ( nType) { case MPA_SPEED : return TPA_SPEED ; case MPA_FEED : return TPA_FEED ; case MPA_STARTFEED : return TPA_STARTFEED ; case MPA_ENDFEED : return TPA_ENDFEED ; case MPA_TIPFEED : return TPA_TIPFEED ; case MPA_VERTFEED : return TPA_FEED ; case MPA_BACKFEED : return TPA_FEED ; case MPA_SIDEANGFEED : return TPA_FEED ; case MPA_OFFSR : return TPA_RADOFFSET ; case MPA_OFFSL : return TPA_LONOFFSET ; } return TPA_NONE ; } //---------------------------------------------------------------------------- // Dal tipo numerico restituisce il nome della lavorazione inline const std::string& GetMachiningTitle( int nMchType) { static std::string MchTitle[] = {"Unknown", "Drilling", "Sawing", "Milling", "Pocketing", "Mortising", "SawRoughing", "SawFinishing", "GenMachining", "Chiseling"} ; switch ( nMchType) { case MT_DRILLING : return MchTitle[1] ; case MT_SAWING : return MchTitle[2] ; case MT_MILLING : return MchTitle[3] ; case MT_POCKETING : return MchTitle[4] ; 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] ; }