//---------------------------------------------------------------------------- // EgalTech 2015-2023 //---------------------------------------------------------------------------- // File : EmkMachiningConst.h Data : 06.09.23 Versione : 2.5i1 // Contenuto : Costanti delle lavorazioni. // // // // Modifiche : 22.06.15 DS Creazione modulo. // 03.02.17 DS Agg. Chiseling. // 25.05.19 DS Agg. SurfRoughing e SurfFinishing. // 03.06.20 DS Agg. MPA_TABMIN e MPA_TABMAX. // 09.11.20 DS Agg. MPA_SIDEANGFEED e MPA_STEPLAST. // 04.02.22 DS Agg. MPA_EPICYCLESRAD e MPA_EPICYCLESDIST. // 06.09.23 DS Agg. 5AxMachining. // //---------------------------------------------------------------------------- #pragma once #include "\EgtDev\Include\EMkOperationConst.h" //---------------------------------------------------------------------------- // Costanti famiglie di parametri generali ( i primi 12 bit (0-4095) restano liberi) const int MGP_BOOL = 0x1000 ; const int MGP_INT = 0x2000 ; const int MGP_DOU = 0x4000 ; const int MGP_STR = 0x8000 ; // Costanti tipo parametri generali delle lavorazioni enum MgpType { MGP_NONE = 0, MGP_COMP3A = ( MGP_BOOL + 0), MGP_COMP5A = ( MGP_BOOL + 1), MGP_SPLITARCS = ( MGP_INT + 0), MGP_SAFEZ = ( MGP_DOU + 0), MGP_EXTRALONCUTREG = ( MGP_DOU + 1), MGP_EXTRARONDRIREG = ( MGP_DOU + 2), MGP_HOLEDIAMTOLER = ( MGP_DOU + 3), MGP_EXTSAWARCMINRAD = ( MGP_DOU + 4), MGP_INTSAWARCMAXSIDEANG =( MGP_DOU + 5), MGP_SAFEAGGRBOTTZ = ( MGP_DOU + 6), MGP_MAXDEPTHSAFE = ( MGP_DOU + 7)} ; //---------------------------------------------------------------------------- // Costanti per tipologia di split arcs enum { SPLAR_NEVER = 0, SPLAR_GEN_PLANE = 1, SPLAR_NO_XY_PLANE = 2, SPLAR_ALWAYS = 3} ; //---------------------------------------------------------------------------- // Tipologie di lavorazioni (derivano da tipologie di operazioni) enum MachiningType { MT_NONE = OPER_NULL, MT_DRILLING = OPER_DRILLING, MT_SAWING = OPER_SAWING, MT_MILLING = OPER_MILLING, MT_POCKETING = OPER_POCKETING, MT_MORTISING = OPER_MORTISING, MT_SAWROUGHING = OPER_SAWROUGHING, MT_SAWFINISHING = OPER_SAWFINISHING, MT_GENMACHINING = OPER_GENMACHINING, MT_CHISELING = OPER_CHISELING, MT_SURFROUGHING = OPER_SURFROUGHING, MT_SURFFINISHING = OPER_SURFFINISHING, MT_WATERJETTING = OPER_WATERJETTING, MT_5AXMACHINING = OPER_5AXMACHINING } ; //---------------------------------------------------------------------------- // Costanti famiglie di parametri ( i primi 12 bit (0-4095) restano liberi) const int MPA_BOOL = 0x1000 ; const int MPA_INT = 0x2000 ; const int MPA_DOU = 0x4000 ; const int MPA_STR = 0x8000 ; // Costanti tipo parametri delle lavorazioni enum MpaType { MPA_NONE = 0, MPA_INVERT = ( MPA_BOOL+ 0), MPA_LEAVETAB = ( MPA_BOOL+ 1), MPA_TOOLINVERT = ( MPA_BOOL+ 2), MPA_PROBING = ( MPA_BOOL+ 3), // per taglio ad acqua MPA_LIHOLE = ( MPA_BOOL+ 4), // per taglio ad acqua MPA_OSCENABLE = ( MPA_BOOL+ 5), // per fresatura MPA_TYPE = ( MPA_INT + 0), // solo get MPA_WORKSIDE = ( MPA_INT + 1), MPA_HEADSIDE = ( MPA_INT + 2), MPA_LEADINTYPE = ( MPA_INT + 3), MPA_EXTLINKTYPE = ( MPA_INT + 4), MPA_LEADOUTTYPE = ( MPA_INT + 5), MPA_CURVEUSE = ( MPA_INT + 6), MPA_STEPTYPE = ( MPA_INT + 7), MPA_SUBTYPE = ( MPA_INT + 8), MPA_LEADLINKTYPE = ( MPA_INT + 9), MPA_SCC = ( MPA_INT + 10), MPA_FACEUSE = ( MPA_INT + 11), MPA_EXTCORNERTYPE = ( MPA_INT + 12), // per taglio ad acqua MPA_INTCORNERTYPE = ( MPA_INT + 13), // per taglio ad acqua MPA_CORNERSLOWPERC = ( MPA_INT + 14), // per taglio ad acqua MPA_LPTURNS = ( MPA_INT + 15), // per taglio ad acqua MPA_HPTURNS = ( MPA_INT + 16), // per taglio ad acqua MPA_TABMIN = ( MPA_INT + 17), MPA_TABMAX = ( MPA_INT + 18), MPA_SPEED = ( MPA_DOU + 0), MPA_FEED = ( MPA_DOU + 1), MPA_STARTFEED = ( MPA_DOU + 2), MPA_ENDFEED = ( MPA_DOU + 3), MPA_TIPFEED = ( MPA_DOU + 4), MPA_OFFSR = ( MPA_DOU + 5), MPA_OFFSL = ( MPA_DOU + 6), MPA_DEPTH = ( MPA_DOU + 7), // solo set, get con MPA_DEPTH_STR MPA_SIDEANGLE = ( MPA_DOU + 8), MPA_APPROX = ( MPA_DOU + 9), MPA_STARTPOS = ( MPA_DOU + 10), MPA_STARTSLOWLEN = ( MPA_DOU + 11), MPA_ENDSLOWLEN = ( MPA_DOU + 12), MPA_THROUADDLEN = ( MPA_DOU + 13), MPA_STEP = ( MPA_DOU + 14), MPA_RETURNPOS = ( MPA_DOU + 15), MPA_OVERLAP = ( MPA_DOU + 16), // per forature solo set, get con MPA_OVERLAP_STR MPA_TABLEN = ( MPA_DOU + 17), MPA_TABDIST = ( MPA_DOU + 18), MPA_TABHEIGHT = ( MPA_DOU + 19), MPA_TABANGLE = ( MPA_DOU + 20), MPA_LITANG = ( MPA_DOU + 21), MPA_LIPERP = ( MPA_DOU + 22), MPA_LIELEV = ( MPA_DOU + 23), MPA_LICOMPLEN = ( MPA_DOU + 24), MPA_LOTANG = ( MPA_DOU + 25), MPA_LOPERP = ( MPA_DOU + 26), MPA_LOELEV = ( MPA_DOU + 27), MPA_LOCOMPLEN = ( MPA_DOU + 28), MPA_STARTADDLEN = ( MPA_DOU + 29), MPA_ENDADDLEN = ( MPA_DOU + 30), MPA_OFFSET = ( MPA_DOU + 31), // per forature solo set, get con MPA_OFFSET_STR MPA_STEPEXTARC = ( MPA_DOU + 32), // per tagli con lama MPA_STEPINTARC = ( MPA_DOU + 33), // per tagli con lama MPA_SIDESTEP = ( MPA_DOU + 34), MPA_VERTFEED = ( MPA_DOU + 35), // per finiture di lama per tagli verticali MPA_STEPSIDEANG = ( MPA_DOU + 36), // per tagli con lama MPA_OVERL = ( MPA_DOU + 37), // per fresature MPA_STEPBACK = ( MPA_DOU + 38), // per tagli con lama MPA_STEPSIDEANGBACK = ( MPA_DOU + 39), // per tagli con lama MPA_BACKFEED = ( MPA_DOU + 40), // per tagli con lama MPA_LIHOLERAD = ( MPA_DOU + 41), // per taglio ad acqua MPA_FORWARDANGLE = ( MPA_DOU + 42), // per taglio ad acqua MPA_PROBINGMINDIST = ( MPA_DOU + 43), // per taglio ad acqua MPA_PROBINGMAXDIST = ( MPA_DOU + 44), // per taglio ad acqua MPA_CORNERSLOWLEN = ( MPA_DOU + 45), // per taglio ad acqua MPA_THICKREF = ( MPA_DOU + 46), // per taglio ad acqua MPA_OSCHEIGHT = ( MPA_DOU + 47), // per fresatura MPA_OSCRAMPLEN = ( MPA_DOU + 48), // per fresatura MPA_OSCFLATLEN = ( MPA_DOU + 49), // per fresatura MPA_SIDEANGFEED = ( MPA_DOU + 50), // per tagli con lama MPA_STEPLAST = ( MPA_DOU + 51), // per tagli con lama MPA_EPICYCLESRAD = ( MPA_DOU + 52), // per svuotature con epicicli MPA_EPICYCLESDIST = ( MPA_DOU + 53), // per svuotature con epicicli MPA_NAME = ( MPA_STR + 0), MPA_TOOL = ( MPA_STR + 1), MPA_DEPTH_STR = ( MPA_STR + 2), MPA_TUUID = ( MPA_STR + 3), MPA_UUID = ( MPA_STR + 4), MPA_SYSNOTES = ( MPA_STR + 5), MPA_USERNOTES = ( MPA_STR + 6), MPA_OVERLAP_STR = ( MPA_STR + 7), // per forature MPA_OFFSET_STR = ( MPA_STR + 8), // per forature MPA_INITANGS = ( MPA_STR + 9), MPA_BLOCKEDAXIS = ( MPA_STR + 10)} ; //---------------------------------------------------------------------------- // Criterio di scelta della soluzione enum SolChoiseCriterion { MCH_SCC_NONE = 0, MCH_SCC_STD = 1, // solo nelle lavorazioni MCH_SCC_OPPOSITE = 2, // solo nelle lavorazioni MCH_SCC_ADIR_XP = 11, MCH_SCC_ADIR_XM = 12, MCH_SCC_ADIR_YP = 13, MCH_SCC_ADIR_YM = 14, MCH_SCC_ADIR_ZP = 15, MCH_SCC_ADIR_ZM = 16, MCH_SCC_ADIR_NEAR = 21, MCH_SCC_ADIR_FAR = 22} ; //----------------------------------------------------------------------------- inline bool IsValidHeadScc( int nScc) { return ( nScc == MCH_SCC_NONE || nScc == MCH_SCC_ADIR_XP || nScc == MCH_SCC_ADIR_XM || nScc == MCH_SCC_ADIR_YP || nScc == MCH_SCC_ADIR_YM || nScc == MCH_SCC_ADIR_ZP || nScc == MCH_SCC_ADIR_ZM || nScc == MCH_SCC_ADIR_NEAR || nScc == MCH_SCC_ADIR_FAR) ; } //----------------------------------------------------------------------------- inline bool IsValidOperationScc( int nScc) { return ( IsValidHeadScc( nScc) || nScc == MCH_SCC_STD || nScc == MCH_SCC_OPPOSITE) ; } //---------------------------------------------------------------------------- // Parametri per foratura // Sottotipo enum { DRI_SUB_STD = 0, DRI_SUB_ALONG_CURVE = 1} ; //---------------------------------------------------------------------------- // Parametri per lavorazione con lama // Lato di lavoro enum { SAW_WS_CENTER = 0, SAW_WS_LEFT = 1, SAW_WS_RIGHT = 2} ; // Lato di posizionamento della testa enum { SAW_HS_LEFT = 1, SAW_HS_RIGHT = 2} ; // Tipo di lavorazione a step enum { SAW_ST_ZIGZAG = 0, SAW_ST_ONEWAY = 1, SAW_ST_TOANDFROM = 2} ; // Tipo di attacco enum { SAW_LI_CENT = 0, SAW_LI_STRICT = 1, SAW_LI_OUT = 2, SAW_LI_EXT_CENT = 3, SAW_LI_EXT_OUT = 4} ; // Tipo di link esterno enum { SAW_EL_CENT = 0, SAW_EL_EXT_PREV = 1, SAW_EL_EXT_NEXT = 2, SAW_EL_EXT_BOTH = 3} ; // Tipo di uscita enum { SAW_LO_CENT = 0, SAW_LO_STRICT = 1, SAW_LO_EXT_CENT = 2, SAW_LO_OUT = 3, SAW_LO_EXT_OUT = 4} ; // Gestione curve enum { SAW_CRV_SKIP = 0, SAW_CRV_APPROX = 1, SAW_CRV_CONVEX = 2, SAW_CRV_KEEP = 3} ; //---------------------------------------------------------------------------- // Parametri per fresatura // Lato di lavoro enum { MILL_WS_CENTER = 0, MILL_WS_LEFT = 1, MILL_WS_RIGHT = 2} ; // Tipo di lavorazione a step enum { MILL_ST_ZIGZAG = 0, MILL_ST_ONEWAY = 1, MILL_ST_SPIRAL = 2} ; // Tipo di attacco enum { MILL_LI_NONE = 0, MILL_LI_LINEAR = 1, MILL_LI_TANGENT = 2, MILL_LI_GLIDE = 3, MILL_LI_ZIGZAG = 4, MILL_LI_HELIX = 5, MILL_LI_TG_PERP = 6} ; // Tipo di uscita enum { MILL_LO_NONE = 0, MILL_LO_LINEAR = 1, MILL_LO_TANGENT = 2, MILL_LO_GLIDE = 3, MILL_LO_AS_LI = 4, MILL_LO_PERP_TG = 5} ; // Tipo lavorazione faccia enum { MILL_FU_NONE = 0, MILL_FU_PARAL_DOWN = 1, MILL_FU_PARAL_TOP = 2, MILL_FU_PARAL_FRONT = 3, MILL_FU_PARAL_BACK = 4, MILL_FU_PARAL_LEFT = 5, MILL_FU_PARAL_RIGHT = 6, MILL_FU_ORTHO_DOWN = 33, MILL_FU_ORTHO_TOP = 34, MILL_FU_ORTHO_FRONT = 35, MILL_FU_ORTHO_BACK = 36, MILL_FU_ORTHO_LEFT = 37, MILL_FU_ORTHO_RIGHT = 38, MILL_FU_ORTHO_CONT = 39, MILL_FU_ORTUP_DOWN = 65, MILL_FU_ORTUP_TOP = 66, MILL_FU_ORTUP_FRONT = 67, MILL_FU_ORTUP_BACK = 68, MILL_FU_ORTUP_LEFT = 69, MILL_FU_ORTUP_RIGHT = 70, MILL_FU_ORTUP_CONT = 71} ; //---------------------------------------------------------------------------- // Parametri per sgrossatura con lama // Lato di posizionamento della testa enum { SAWROU_HS_LEFT = 1, SAWROU_HS_RIGHT = 2} ; // Tipo di lavorazione a step enum { SAWROU_ST_ZIGZAG = 0, SAWROU_ST_ONEWAY = 1} ; // Tipo di attacco/uscita/link enum { SAWROU_LL_CENT = 0, SAWROU_LL_OUT = 1} ; //---------------------------------------------------------------------------- // Parametri per finitura con lama // Lato di posizionamento della testa enum { SAWFIN_HS_LEFT = 1, SAWFIN_HS_RIGHT = 2} ; // Tipo di lavorazione a step enum { SAWFIN_ST_ZIGZAG = 0, SAWFIN_ST_ONEWAY = 1} ; // Sottotipo di lavorazione enum { SAWFIN_SUB_ALONG = 0, SAWFIN_SUB_ACROSS = 1} ; // Tipo di attacco/uscita/link enum { SAWFIN_LL_STD = 0, SAWFIN_LL_CENT = 1, SAWFIN_LL_OUT = 2} ; //---------------------------------------------------------------------------- // Parametri per svuotatura // Sottotipo di lavorazione enum { POCKET_SUB_ZIGZAG = 0, POCKET_SUB_ONEWAY = 1, POCKET_SUB_SPIRALIN = 2, POCKET_SUB_SPIRALOUT = 3} ; // Tipo di attacco enum { POCKET_LI_NONE = 0, POCKET_LI_GLIDE = 1, POCKET_LI_ZIGZAG = 2, POCKET_LI_HELIX = 3} ; // Tipo di uscita enum { POCKET_LO_NONE = 0, POCKET_LO_GLIDE = 1} ; //---------------------------------------------------------------------------- // Parametri per scalpellatura (chiseling) // Lato di lavoro enum { CHISEL_WS_LEFT = 1, CHISEL_WS_RIGHT = 2} ; //---------------------------------------------------------------------------- // Parametri per mortasatura (mortising) // Lato di lavoro enum { MORTISE_WS_LEFT = 1, MORTISE_WS_RIGHT = 2} ; // Tipo di lavorazione a step enum { MORTISE_ST_ZIGZAG = 0, MORTISE_ST_ONEWAY = 1} ; // Tipo lavorazione faccia enum { MORTISE_FU_NONE = 0, MORTISE_FU_PARAL_DOWN = 1, MORTISE_FU_PARAL_TOP = 2, MORTISE_FU_PARAL_FRONT = 3, MORTISE_FU_PARAL_BACK = 4, MORTISE_FU_PARAL_LEFT = 5, MORTISE_FU_PARAL_RIGHT = 6} ; // Tipo di affondamento (plunge) enum { MORTISE_PLUNGE_STEP = 0, MORTISE_PLUNGE_START = 1, MORTISE_PLUNGE_END = 2, MORTISE_PLUNGE_START_END = 3, MORTISE_PLUNGE_START_TO_END = 4} ; //---------------------------------------------------------------------------- // Parametri per finitura superfici // Sottotipo di lavorazione enum { SURFFIN_SUB_ZIGZAG = 0, SURFFIN_SUB_ONEWAY = 1, SURFFIN_SUB_SPIRALIN = 2, SURFFIN_SUB_SPIRALOUT = 3} ; // Tipo di attacco enum { SURFFIN_LI_NONE = 0, SURFFIN_LI_LINEAR = 1, SURFFIN_LI_TANGENT = 2} ; // Tipo di link enum { SURFFIN_LL_STD = 0, SURFFIN_LL_CENT = 1} ; // Tipo di uscita enum { SURFFIN_LO_NONE = 0, SURFFIN_LO_LINEAR = 1, SURFFIN_LO_TANGENT = 2, SURFFIN_LO_AS_LI = 3} ; //---------------------------------------------------------------------------- // Parametri per taglio a getto d'acqua (waterjetting) // Lato di lavoro enum { WJET_WS_CENTER = 0, WJET_WS_LEFT = 1, WJET_WS_RIGHT = 2} ; // Comportamento su angolo esterno enum { WJET_EC_NONE = 0, WJET_EC_SLOW = 1, WJET_EC_LOOP = 2} ; // Comportamento su angolo interno enum { WJET_IC_NONE = 0, WJET_IC_SLOW = 1} ; // Tipo di attacco enum { WJET_LI_NONE = 0, WJET_LI_LINEAR = 1, WJET_LI_TANGENT = 2} ; // Tipo di uscita enum { WJET_LO_NONE = 0, WJET_LO_LINEAR = 1, WJET_LO_TANGENT = 2, WJET_LO_AS_LI = 4} ;