Files
Include/EMkMachiningConst.h
T
Dario Sassi 223e38ba90 Include :
- aggiornamento costanti per lavorazioni.
2017-05-31 14:19:08 +00:00

302 lines
12 KiB
C

//----------------------------------------------------------------------------
// EgalTech 2015-2017
//----------------------------------------------------------------------------
// File : EmkMachiningConst.h Data : 03.02.17 Versione : 1.8b1
// Contenuto : Costanti delle lavorazioni.
//
//
//
// Modifiche : 22.06.15 DS Creazione modulo.
// 03.02.17 DS Agg. Chiseling.
//
//----------------------------------------------------------------------------
#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)} ;
//----------------------------------------------------------------------------
// 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
} ;
//----------------------------------------------------------------------------
// 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_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_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),
MPA_STEPINTARC = ( MPA_DOU + 33),
MPA_SIDESTEP = ( MPA_DOU + 34),
MPA_VERTFEED = ( MPA_DOU + 35), // per finiture di lama per tagli verticali
MPA_STEPSIDEANG = ( MPA_DOU + 36),
MPA_OVERL = ( MPA_DOU + 37), // per fresature
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} ;
// 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} ;
// 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} ;