5b7e1a4702
- in CalcPocketing aggiunto flag per Conventional Milling.
100 lines
3.3 KiB
C
100 lines
3.3 KiB
C
//----------------------------------------------------------------------------
|
|
// EgalTech 2023-2023
|
|
//----------------------------------------------------------------------------
|
|
// File : EGkCalcPocketing.h Data : 16.11.23 Versione : 2.5j1
|
|
// Contenuto : Calcolo dei percorsi elementari di pocketing.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 16.11.23 RE Creazione modulo.
|
|
//
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include "/EgtDev/Include/EGkCurveComposite.h"
|
|
#include "/EgtDev/Include/EGkSurfFlatRegion.h"
|
|
|
|
//----------------------- Macro per import/export ----------------------------
|
|
#undef EGK_EXPORT
|
|
#if defined( I_AM_EGK) // da definirsi solo nella DLL
|
|
#define EGK_EXPORT __declspec( dllexport)
|
|
#else
|
|
#define EGK_EXPORT __declspec( dllimport)
|
|
#endif
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Per calcolo percorso di Svuotatura o di Lucidatura
|
|
EGK_EXPORT bool CalcPocketing( const ISurfFlatRegion* pSfr, double dRad, double dRadialOffs, double dStep,
|
|
double dAngle, double dOpenMinSafe, int nType, bool bSmooth, bool bCalcUnclReg, bool bInvert, bool bAvoidOpt,
|
|
bool bConventionalMilling, bool bAllowZigZagOneWayBorders, bool bCalcFeed, const Point3d& ptEndPrec,
|
|
const ISurfFlatRegion* pSfrLimit, bool bAllOffs, double dMaxOptSize,
|
|
int nLiType, double dLiTang, double dLiElev, int nLoType, double dLoTang,
|
|
bool bPolishing, double dEpicyclesRad, double dEpicyclesDist, ICRVCOMPOPOVECTOR& vCrv) ;
|
|
EGK_EXPORT bool IsPocketingHole( const ISurfFlatRegion* pSfr, double dRad, double dRadialOffs, double dStep, int nType,
|
|
int nLiType, double dLiTang, double dRatioSfrTool) ;
|
|
EGK_EXPORT bool CalcSmoothCurve( ICurveComposite* pCrv, double dRightLen, double dLeftLen, bool bAsParam) ;
|
|
EGK_EXPORT bool CalcZigZagInfill( const ISurfFlatRegion* pSfr, double dStep, bool bSmooth, bool bRemoveOverlapLink,
|
|
ICRVCOMPOPOVECTOR& vCrvCompoRes) ;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Sottotipo di lavorazione
|
|
enum { POCKET_ZIGZAG = 0,
|
|
POCKET_ONEWAY = 1,
|
|
POCKET_SPIRALIN = 2,
|
|
POCKET_SPIRALOUT = 3,
|
|
POCKET_CONFORMAL_ZIGZAG = 4,
|
|
POCKET_CONFORMAL_ONEWAY = 5
|
|
} ;
|
|
|
|
// Definizione di lato aperto e lato chiuso
|
|
enum {
|
|
TEMP_PROP_CLOSE_EDGE = 0,
|
|
TEMP_PROP_OPEN_EDGE = 1,
|
|
TEMP_PROP_OPEN_EDGE_IN_RAW = 2
|
|
} ;
|
|
|
|
// Definizione di curva invalida
|
|
enum {
|
|
TEMP_PROP_INVALID = - 1
|
|
} ;
|
|
|
|
// Definizione curva di raccordo per smussi
|
|
enum {
|
|
TEMP_PROP_SMOOTH = - 2
|
|
} ;
|
|
|
|
// Definizione tipo di curva per casi speciali
|
|
enum {
|
|
TEMP_PROP_SINGLE_CURVE = - 3,
|
|
TEMP_PROP_OPT_TRAPEZOID = - 4,
|
|
TEMP_PROP_BORDER_CURVE = - 5,
|
|
TEMP_PROP_OPT_CIRCLE = - 9
|
|
} ;
|
|
|
|
// Definizione tipo di curva per entrate da fuori
|
|
enum {
|
|
TEMP_PROP_OUT_START = - 6
|
|
} ;
|
|
|
|
// Definizione di curva attiva/non attiva
|
|
enum {
|
|
TEMP_PROP_CURVE_ACTIVE = - 7,
|
|
TEMP_PROP_CURVE_INACTIVE = - 8
|
|
} ;
|
|
|
|
// Definizione tipo LeadIn
|
|
enum {
|
|
LEAD_IN_NONE = 0,
|
|
LEAD_IN_GLIDE = 1,
|
|
LEAD_IN_ZIGZAG = 2,
|
|
LEAD_IN_HELIX = 3
|
|
} ;
|
|
|
|
// Definizione tipo LeadOut
|
|
enum {
|
|
LEAD_OUT_NONE = 0,
|
|
LEAD_OUT_GLIDE = 1
|
|
} ;
|