223e38ba90
- aggiornamento costanti per lavorazioni.
302 lines
12 KiB
C
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} ;
|