Compare commits

...

28 Commits

Author SHA1 Message Date
Dario Sassi 6a2c84dc03 Include :
- aggiornamento prototipi.
2026-07-23 20:20:33 +02:00
Riccardo Elitropi 22c8a4dd0c Include :
- aggiunto prototipo.
2026-07-23 14:47:29 +02:00
Riccardo Elitropi 951437e836 Include :
- aggiunta funzione per trimmare una SurfFlatRegion con un piano.
2026-07-23 14:39:42 +02:00
Daniele Bariletti e88b315214 Include :
- aggiunta funzione per estendere un gruppo di superfici indicandone il bordo.
2026-07-22 09:23:27 +02:00
Daniele Bariletti 409c28e65a Include :
- aggiunto parametro alla chiamata a CreateFromTriMesh.
2026-07-20 13:09:50 +02:00
Riccardo Elitropi 403f7963fe Include :
- in EMkMachiningConst aggiunta costante per finitura con lama "Along5A".
2026-07-13 08:03:46 +02:00
Daniele Bariletti a15889c841 Include :
- aggiunta nuova modalità per l'approssimazione curve.
2026-07-08 17:27:24 +02:00
Dario Sassi 190cd9e032 Include :
- per SelData e SELVECTOR aggiunte funzioni FromUiString e ToUiString.
2026-07-07 19:34:43 +02:00
Daniele Bariletti c668a261d9 Include :
- aggiunta enum e funzione per gestione spigoli.
2026-07-07 09:11:17 +02:00
Dario Sassi 29f7dc30cc Include :
- aggiornamento codice di protezione mensile delle librerie.
2026-07-03 18:39:46 +02:00
Riccardo Elitropi e044937600 Include :
- in EMkMachiningConst rimozione dei parametri SAWROU_ST_ZCONST e SAWROU_LL_INT per SawRoughing.
2026-07-03 12:28:44 +02:00
Daniele Bariletti a43137a214 Include :
- piccola correzione.
2026-06-30 15:51:05 +02:00
Daniele Bariletti e6a94e077e Merge branch 'master' of https://gitlab.steamware.net/egalware-cadcam/libreriebase/Include 2026-06-30 15:49:31 +02:00
Daniele Bariletti 6701dbef5c Include :
- aggiunta funzione per ottenre le normali di una superficie a partire da una curva già sulla superficie.
2026-06-30 15:49:28 +02:00
Riccardo Elitropi e78f76d0e7 Include :
- in EGkCalcPocketing aggiunto parametro per considerare le curve di lato chiuso come curve di lato aperto.
2026-06-30 12:32:12 +02:00
Riccardo Elitropi 333258cb2d Include :
- in EGkSurfTriMesh aggiunto parametro Opzionale di tolleranza lineare ai metodi di Silhouette.
2026-06-25 11:06:11 +02:00
Daniele Bariletti 4967285c97 Include :
- cambiata chiamata all' offset3d.
- aggiunta funzione per l'estensione di una superficie in tangenza.
- creato enum per angoli di una curva proiettata su superficie.
2026-06-24 15:16:08 +02:00
Riccardo Elitropi 015edcaed7 Include :
- In CalcPocketing aggiunto parametro.
2026-06-19 08:52:12 +02:00
Daniele Bariletti 4908b84afc Include :
- esposte funzioni per l'offset3d.
- spostate struct e enum nell'header.
2026-06-18 16:22:26 +02:00
Riccardo Elitropi dba5445b7a Include :
- in CalcPocketing aggiunto enum per TempProp.
2026-06-18 10:57:11 +02:00
SaraP 7d180c6e10 Include :
- modificato prototipo.
2026-06-15 09:57:34 +02:00
Daniele Bariletti 216173ca33 Include :
- spostate le funzioni di offset di categoria.
- aggiunta la funzione per l'offset 3d delle curve.
2026-06-15 08:40:52 +02:00
Dario Sassi ce08e8b327 Include :
- eliminata costante MCH_FRAME = "FRAME".
2026-06-10 14:41:30 +02:00
Riccardo Elitropi 1b322858a5 Include :
- aggiunta stringa per nome del gruppo contenente il frame di riferimento per le lavorazioni di finitura.
2026-06-10 12:23:44 +02:00
Daniele Bariletti d02ff5a603 Include :
- aggiunta funzione IntersLineCyl.
2026-06-09 12:28:59 +02:00
Dario Sassi 8aa1ea9f35 Include :
- aggiornamento codice di protezione mensile delle librerie.
2026-06-08 14:59:13 +02:00
Daniele Bariletti 7cf6e9dc0c Merge branch '5AxTrimming' 2026-05-26 11:28:55 +02:00
Dario Sassi 8e6e110b9a Include :
- eliminata costante non più utilizzata.
2026-05-25 07:36:47 +02:00
17 changed files with 236 additions and 27 deletions
+6 -4
View File
@@ -28,7 +28,7 @@
// 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,
bool bConventionalMilling, bool bAllowZigZagOneWayBorders, bool bOpenOutRaw, 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, bool bContour, ICRVCOMPOPOVECTOR& vCrv) ;
@@ -50,9 +50,11 @@ enum { POCKET_ZIGZAG = 0,
// 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
TEMP_PROP_CLOSE_EDGE = 0, // Lato Chiuso
TEMP_PROP_OPEN_EDGE = 1, // Lato Aperto
TEMP_PROP_OPEN_AS_CLOSE = 2, // Lato Aperto da trattare come Chiuso
TEMP_PROP_CLOSE_AS_OPEN = 3, // Lato Chiuso da trattare come Aperto
TEMP_PROP_OPEN_EDGE_IN_RAW = 101 // Lato Aperto interno al Grezzo
} ;
// Definizione di curva invalida
+1
View File
@@ -76,6 +76,7 @@ class __declspec( novtable) ICurve : public IGeoObj
virtual bool GetAreaXY( double& dArea) const = 0 ;
virtual bool GetArea( Plane3d& plPlane, double& dArea) const = 0 ;
virtual bool ApproxWithLines( double dLinTol, double dAngTolDeg, int nType, PolyLine& PL) const = 0 ;
virtual bool ApproxWithLimitedLines( double dLinTol, double dAngTolDeg, int nType, double dMaxLen, PolyLine& PL) const = 0 ;
virtual bool ApproxWithArcs( double dLinTol, double dAngTolDeg, PolyArc& PA) const = 0 ;
virtual bool ApproxWithArcsEx( double dLinTol, double dAngTolDeg, double dLinFea, PolyArc& PA) const = 0 ;
virtual ICurve* CopyParamRange( double dUStart, double dUEnd) const = 0 ;
+1 -1
View File
@@ -171,7 +171,7 @@ EGK_EXPORT void ResetCurveVoronoi( const ICurve& crvC) ;
//----------------------------------------------------------------------------
//! fa il join delle curve passate in input
EGK_EXPORT bool GetChainedCurves( ICRVCOMPOPOVECTOR& vCrv, double dChainTol = 5 * EPS_SMALL, bool bAllowInvert = false) ;
EGK_EXPORT bool GetChainedCurves( ICRVCOMPOPOVECTOR& vCrv, double dChainTol = 5 * EPS_SMALL, bool bAllowInvert = false, bool bHaltOnFork = false) ;
//----------------------------------------------------------------------------
//! dato un punto su una curva trova il corrispondente sulla seconda curva
+31
View File
@@ -0,0 +1,31 @@
//----------------------------------------------------------------------------
// EgalTech 2015-2015
//----------------------------------------------------------------------------
// File : EGkIntersLineCylinder.h Data : 08.06.26 Versione : 3.1f1
// Contenuto : Dichiarazione della classe intersezione linea/cilindro.
//
//
//
// Modifiche : 08.06.26 DB Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkPoint3d.h"
#include "/EgtDev/Include/EGkVector3d.h"
#include "/EgtDev/Include/EGkFrame3d.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
// restituisce true se trova delle soluzioni, altrimenti false
//-----------------------------------------------------------------------------
EGK_EXPORT bool IntersLineCyl( const Point3d& ptLineSt, const Vector3d& vtLineDir, const Frame3d& CylFrame, double dH, double dRad,
double& dU1, Point3d& ptInt1, Vector3d& vtN1, double& dU2, Point3d& ptInt2, Vector3d& vtN2) ;
+117
View File
@@ -0,0 +1,117 @@
//----------------------------------------------------------------------------
// EgalTech 2026
//----------------------------------------------------------------------------
// File : EGkOffsetCurve3d.h Data : 10.06.26 Versione : 3.1f1
// Contenuto : Dichiarazione classe per offset di ICurve, per curve 3d.
//
//
// Modifiche : 10.06.26 DB Creazione modulo.
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkFrame3d.h"
#include "/EgtDev/Include/EGkPoint3d.h"
#include "/EgtDev/Include/EGkVector3d.h"
#include "/EgtDev/Include/EGkPolyLine.h"
#include "/EgtDev/Include/EGkCurve.h"
#include "/EgtDev/Include/EGkCurveComposite.h"
#include "/EgtDev/Include/EGkProjectCurveSurf.h"
#include "/EgtDev/Include/EgtPointerOwner.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
//----------------------------------------------------------------------------
struct OffsetSegm {
PtrOwner<ICurve> pCrv ;
int nFlag ; // OffsetCurve3d::AngType
int nParent ;
OffsetSegm( ICurve* _pCrv, int _nFlag, int _nParent) :
nFlag( _nFlag), nParent( _nParent) { pCrv.Set( _pCrv); } ;
} ;
typedef std::vector<OffsetSegm> OFFSETSEGVEC ;
enum OFFTYPE {
GEOM = 0,
PLANECUT = 1,
};
struct EditCrvInfo {
enum EditFlag {
NOEDIT = 0,
DEL = 1,
EDIT = 2
};
int nId = -1 ;
int nFlag = 0 ;
Point3d ptStart = P_INVALID ;
Point3d ptEnd = P_INVALID ;
EditCrvInfo( int _nId, int _nFlag) : nId( _nId), nFlag( _nFlag) { ;}
EditCrvInfo( int _nId, int _nFlag, const Point3d& _ptStart, const Point3d& _ptEnd) :
nId( _nId), nFlag( _nFlag), ptStart( _ptStart), ptEnd( _ptEnd) { ;}
};
typedef std::vector<EditCrvInfo> EDITCRVINFOVEC ;
struct Cyl {
Cyl( void): frCyl( GLOB_FRM), dH( 0.), dRad( 0.) {;} ;
Cyl( const Frame3d& _frCyl, double _dH, double _dRad, double _dLinTol) :
frCyl( _frCyl), dH( _dH), dRad( _dRad) { ;}
Cyl( const Point3d& _ptBase, const Vector3d& vtZ, double _dH, double _dRad, double _dLinTol) :
dH( _dH), dRad( _dRad){
frCyl.Set( _ptBase, vtZ); }
public :
Frame3d frCyl ;
public:
double dH ;
double dRad ;
};
typedef std::vector<Cyl> CYLVECT ;
EGK_EXPORT bool CalcAdjustConcavePartsInPath( const ICurveComposite* pCrv, const OFFSETSEGVEC& vOffsetCrvs, double dRad, EDITCRVINFOVEC& vEditInfo) ;
EGK_EXPORT bool CalcAdjustConcavePartsPlaneCut( const ICurveComposite* pCrv, const PNT5AXVECTOR& vPnt5Ax, const OFFSETSEGVEC& vOffsetCrvs,
double dRad, EDITCRVINFOVEC& vEditInfo) ;
EGK_EXPORT bool IsPointInsideCylinder( const Point3d& ptTest, const Cyl& offCyl, double dLinTol) ;
//----------------------------------------------------------------------------
class OffsetCurve3d
{
public :
enum AngType { ANG_STR = 1 , // angolo piatto ( quindi tratto in continuità col precedente)
ANG_CVEX = 2 , // su angolo convesso
ANG_CONC = 3 , // in angolo concavo
ANG_BEFORE_CONC = 4 , // adiacente ad angolo concavo
ANG_AFTER_CONC = 5 , // adiacente ad angolo concavo
ANG_SMOOTH_CONC = 6 // zona concava curva, senza spigolo netto
};
public :
EGK_EXPORT OffsetCurve3d(): m_dLinTol( 10 * EPS_SMALL) {} ;
EGK_EXPORT OffsetCurve3d( double dLinTol) : m_dLinTol( dLinTol) {} ;
EGK_EXPORT ~OffsetCurve3d( void) ;
public :
EGK_EXPORT bool Reset( void) ;
EGK_EXPORT bool Make( const PNT5AXVECTOR& vPnt5Ax, double dDist, int nType) ;
EGK_EXPORT int GetCurveCount( void) { return int( m_CrvLst.size()) ; }
EGK_EXPORT ICurve* GetCurve( void) ;
EGK_EXPORT ICurve* GetLongerCurve( void) ;
EGK_EXPORT ICurve* GetShorterCurve( void) ;
EGK_EXPORT double GetLinTol( void) const { return m_dLinTol ; }
EGK_EXPORT void SetLinTol( double dTol) { m_dLinTol = dTol ; }
private :
ICURVEPLIST m_CrvLst ;
double m_dLinTol ;
} ;
+1 -1
View File
@@ -108,7 +108,7 @@ class PolyLine
EGK_EXPORT bool GetMaxDistanceFromLine( const Point3d& ptLine, const Vector3d& vtLine, double dLen,
double& dMaxDist, bool bIsSegment = true) const ;
EGK_EXPORT bool AdjustForMaxSegmentLen( double dMaxLen) ;
EGK_EXPORT bool RemoveAlignedPoints( double dToler = EPS_SMALL, bool bStartEnd = true) ;
EGK_EXPORT bool RemoveAlignedPoints( double dToler = EPS_SMALL, bool bStartEnd = true, double dMaxLen = INFINITO) ;
EGK_EXPORT bool ApproxOnSide( const Vector3d& vtN, bool bLeftSide, double dToler = EPS_SMALL) ;
EGK_EXPORT bool MakeConvex( const Vector3d& vtN, bool bLeftSide) ;
EGK_EXPORT bool Invert( bool bInvertU = true) ;
+16 -1
View File
@@ -16,6 +16,7 @@
#include "/EgtDev/Include/EGkGeoPoint3d.h"
#include "/EgtDev/Include/EGkCurve.h"
#include "/EgtDev/Include/EGkSurf.h"
#include "/EgtDev/Include/EGkSurfTriMesh.h"
//----------------------- Macro per import/export ----------------------------
#undef EGK_EXPORT
@@ -25,6 +26,17 @@
#define EGK_EXPORT __declspec( dllimport)
#endif
enum P5AxAng { // Tipologia di punto
P5AX_TO_DELETE = -1 , // da cancellare
P5AX_OUT = 0 , // aggiunto prima di inizio o dopo fine
P5AX_STD = 1 , // standard
P5AX_CVEX = 2 , // su angolo convesso
P5AX_CONC = 3 , // in angolo concavo
P5AX_BEFORE_CONC = 4 , // adiacente ad angolo concavo
P5AX_AFTER_CONC = 5 , // adiacente ad angolo concavo
P5AX_SMOOTH_CONC = 6 // zona concava curva, senza spigolo netto
};
//----------------------------------------------------------------------------
// Definizione di Punto 5assi e sue raccolte
struct Point5ax {
@@ -49,7 +61,7 @@ typedef std::vector<Point5ax> PNT5AXVECTOR ; // vettore di Punti 5assi
//----------------------------------------------------------------------------
// Proiezione di una curva su una o più superfici a distanza minima
EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf,
double dLinTol, double dMaxSegmLen, bool bSharpEdges, PNT5AXVECTOR& vPt5ax) ;
double dLinTol, double dMaxSegmLen, bool bSharpEdges, PNT5AXVECTOR& vPt5ax, bool bNormOrTang = true) ;
// Proiezione di una curva su una o più superfici lungo la direzione data (da o verso)
EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf, const Vector3d& vtDir,
double dLinTol, double dMaxSegmLen, bool bSharpEdges, bool bFromVsTo, PNT5AXVECTOR& vPt5ax) ;
@@ -62,3 +74,6 @@ EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vp
// Proiezione di una curva su una o più superfici in direzione della superficie (da o verso)
EGK_EXPORT bool ProjectCurveOnSurf( const ICurve& crCrv, const CISURFPVECTOR& vpSurf, const ISurf& sfRef,
double dLinTol, double dMaxSegmLen, bool bSharpEdges, bool bFromVsTo, PNT5AXVECTOR& vPt5ax) ;
// Proiezione di una curva su una o più superfici in direzione della superficie (da o verso)
EGK_EXPORT bool GetCurveOnSurfInfo( const ICurve& crCrv, const ISurfTriMesh& pSurf,
double dLinTol, double dMaxSegmLen, bool bSharpEdges, PNT5AXVECTOR& vPt5ax, bool bNormOrTang = true) ;
+36 -2
View File
@@ -46,14 +46,28 @@ typedef std::vector<SelData> SELVECTOR ; // vettore di SelData
typedef std::list<SelData> SELLIST ; // lista di SelData
//----------------------------------------------------------------------------
// Conversione di SelData da e verso stringhe
// Conversione di SelData da e verso stringhe (Id,Sub)
inline bool FromString( const std::string& sVal, SelData& Val)
{ return FromString( sVal, Val.v) ; }
inline const std::string ToString( const SelData& Val, int nPrec = 1)
{ return ToString( Val.v, nPrec) ; }
//----------------------------------------------------------------------------
// Conversione di vettori di SelData da e verso stringhe
// Conversione di SelData da e verso stringhe utente (Id:Sub oppure Id)
inline bool FromUiString( const std::string& sVal, SelData& Val)
{ std::string sId , sSub ;
SplitFirst( sVal, ":", sId, sSub) ;
Val = { GDB_ID_NULL, SEL_SUB_ALL} ;
FromString( sSub, Val.nSub) ;
return FromString( sId, Val.nId) ; }
inline const std::string ToUiString( const SelData& Val, int nPrec = 1)
{ if ( Val.nSub != SEL_SUB_ALL)
return ToString( Val.nId, nPrec) + ":" + ToString( Val.nSub, nPrec) ;
else
return ToString( Val.nId, nPrec) ; }
//----------------------------------------------------------------------------
// Conversione di vettori di SelData da e verso stringhe (Id1,Sub1,Id2,Sub2,...)
inline bool FromString( const std::string& sVal, SELVECTOR& vVal)
{ INTVECTOR vI ;
if ( ! FromString( sVal, vI) || ( vI.size() % 2) != 0)
@@ -69,3 +83,23 @@ inline const std::string ToString( const SELVECTOR& vVal, int nPrec = 1)
if ( ! sDest.empty())
sDest.pop_back() ;
return sDest ; }
//----------------------------------------------------------------------------
// Conversione di vettori di SelData da e verso stringhe utente (Id1:Sub1,Id2,...)
inline bool FromUiString( const std::string& sVal, SELVECTOR& vVal)
{ STRVECTOR vsTokens ;
Tokenize( sVal, ",", vsTokens) ;
vVal.reserve( vsTokens.size()) ;
for ( const auto& sToken : vsTokens) {
SelData Val ;
if ( FromUiString( sToken, Val))
vVal.emplace_back( Val) ;
}
return true ; }
inline const std::string ToUiString( const SELVECTOR& vVal, int nPrec = 1)
{ std::string sDest ; sDest.reserve( 2 * 8 * vVal.size()) ;
for ( const auto& Val : vVal)
sDest += ToUiString( Val, nPrec) + "," ;
if ( ! sDest.empty())
sDest.pop_back() ;
return sDest ; }
+2
View File
@@ -48,3 +48,5 @@ EGK_EXPORT ISurfTriMesh* GetSurfTriMeshSwept( const ISurfFlatRegion* pSfrSect, c
EGK_EXPORT ISurfTriMesh* GetSurfTriMeshTransSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ;
EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRuled( const Point3d& ptP, const ICurve* pCurve, double dLinTol = 10 * EPS_SMALL) ;
EGK_EXPORT ISurfTriMesh* GetSurfTriMeshRuled( const ICurve* pCurve1, const ICurve* pCurve2, int nType, double dLinTol = 10 * EPS_SMALL) ;
EGK_EXPORT ISurfTriMesh* GetSurfExtension( const ISurfTriMesh* pSrfTM, double dExtLen, int nLoop, int nSubCrv, int nType, double dLinTol) ;
EGK_EXPORT ISurfTriMesh* GetSurfExtensionFromMany( CISURFPVECTOR vpSurf, double dExtLen, const ICurve* pCrv, ICurve*& pOffEdge, int nType, double dLinTol) ;
+1
View File
@@ -32,6 +32,7 @@ class __declspec( novtable) ISurfFlatRegion : public ISurf
virtual bool AddExtLoop( ICurve* pCrv) = 0 ;
virtual bool AddIntLoop( const ICurve& cCrv) = 0 ;
virtual bool AddIntLoop( ICurve* pCrv) = 0 ;
virtual bool Cut( const Plane3d& plPlane) = 0 ;
virtual bool Add( const ISurfFlatRegion& Other) = 0 ;
virtual bool Subtract( const ISurfFlatRegion& Other) = 0 ;
virtual bool Intersect( const ISurfFlatRegion& Other) = 0 ;
+2 -2
View File
@@ -88,8 +88,8 @@ class __declspec( novtable) ISurfTriMesh : public ISurf
virtual bool GetTriangleSmoothNormals( int nId, TriNormals3d& TNrms) const = 0 ;
virtual ISurfTriMesh* CloneTriangle( int nTria) const = 0 ;
virtual bool GetLoops( POLYLINEVECTOR& vPL) const = 0 ;
virtual bool GetSilhouette( const Vector3d& vtDir, double dTol, POLYLINEVECTOR& vPL, bool bAllTria = false) const = 0 ;
virtual bool GetSilhouette( const Plane3d& plPlane, double dTol, POLYLINEVECTOR& vPL, bool bAllTria = false) const = 0 ;
virtual bool GetSilhouette( const Vector3d& vtDir, double dTol, POLYLINEVECTOR& vPL, bool bAllTria = false, double dLinTol = 100. * EPS_SMALL) const = 0 ;
virtual bool GetSilhouette( const Plane3d& plPlane, double dTol, POLYLINEVECTOR& vPL, bool bAllTria = false, double dLinTol = 100. * EPS_SMALL) const = 0 ;
virtual int GetFacetCount( void) const = 0 ;
virtual int GetFacetSize( void) const = 0 ;
virtual int GetFacetFromTria( int nT) const = 0 ;
+1 -1
View File
@@ -32,7 +32,7 @@ class __declspec( novtable) IVolZmap : public IGeoObj
virtual bool Create( const Point3d& ptO, double dDimX, double dDimY, double dDimZ, double dStep, bool bTriDex, int* nError = nullptr) = 0 ;
virtual bool CreateEmpty( const Point3d& ptO, double dDimX, double dDimY, double dDimZ, double dStep, bool bTriDex, int* nError = nullptr) = 0 ;
virtual bool CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double dStep, bool bTriDex, int* nError = nullptr) = 0 ;
virtual bool CreateFromTriMesh( const ISurfTriMesh& Surf, double dStep, bool bTriDex, double dExtraBox = 0, int* nError = nullptr) = 0 ;
virtual bool CreateFromTriMesh( const ISurfTriMesh& Surf, double dStep, bool bTriDex, double dExtraBox = 0, int* nError = nullptr, bool bForceClosed = false) = 0 ;
virtual int GetBlockCount( void) const = 0 ;
virtual int GetBlockUpdatingCounter( int nBlock) const = 0 ;
virtual bool GetBlockTriangles( int nBlock, TRIA3DEXVECTOR& vTria) const = 0 ;
+2
View File
@@ -872,6 +872,8 @@ EIN_EXPORT int __stdcall EgtGetCurrSetup( void) ;
EIN_EXPORT BOOL __stdcall EgtImportSetup( const wchar_t* wsName) ;
EIN_EXPORT BOOL __stdcall EgtUpdateCurrSetup( void) ;
EIN_EXPORT BOOL __stdcall EgtEraseCurrSetup( void) ;
EIN_EXPORT BOOL __stdcall EgtVerifyCurrSetup( wchar_t*& wsErrors) ;
// Machinings DataBase
EIN_EXPORT BOOL __stdcall EgtMdbGetMachiningNewName( const wchar_t* wsName, wchar_t*& wsNewName) ;
EIN_EXPORT BOOL __stdcall EgtMdbAddMachining( const wchar_t* wsName, int nType) ;
+5 -5
View File
@@ -301,12 +301,10 @@ enum { SAWROU_HS_LEFT = 1,
SAWROU_HS_RIGHT = 2} ;
// Tipo di lavorazione a step
enum { SAWROU_ST_ZIGZAG = 0,
SAWROU_ST_ONEWAY = 1,
SAWROU_ST_ZCONST = 2} ;
SAWROU_ST_ONEWAY = 1} ;
// Tipo di attacco/uscita/link
enum { SAWROU_LL_CENT = 0,
SAWROU_LL_OUT = 1,
SAWROU_LL_INT = 2} ;
SAWROU_LL_OUT = 1} ;
//----------------------------------------------------------------------------
// Parametri per finitura con lama
@@ -318,7 +316,9 @@ enum { SAWFIN_ST_ZIGZAG = 0,
SAWFIN_ST_ONEWAY = 1} ;
// Sottotipo di lavorazione
enum { SAWFIN_SUB_ALONG = 0,
SAWFIN_SUB_ACROSS = 1} ;
SAWFIN_SUB_ACROSS = 1,
SAWFIN_SUB_ALONG_5A = 2,
SAWFIN_SUB_SECTION = 3} ;
// Tipo di attacco/uscita/link
enum { SAWFIN_LL_STD = 0,
SAWFIN_LL_CENT = 1,
+1 -3
View File
@@ -27,7 +27,7 @@ static std::string KEY_NUM = "NUM" ;
// Chiave per stato di aggiornamento di lavorazione
static std::string KEY_STAT = "STAT" ;
// Chiave per elenco identificativi non lavorati
static std::string KEY_SKIPS = "SKIPS" ;
static std::string KEY_SKIPS = "SKIPS" ;
// Sottogruppi delle lavorazioni
static std::string MCH_AUX = "AUX" ;
static std::string MCH_AUXVIEW = "AVIEW" ;
@@ -124,8 +124,6 @@ static std::string KEY_PREVIEWSHOW = "PreviewShow" ;
// Chiavi info in entità di CL e DBL per riferimenti reciproci
static std::string KEY_DBL_MAIN = "Main" ;
static std::string KEY_CL_DOUBLE = "Double" ;
// Chiavi Info per entità CamData da eseguire in compensazione utensile
static std::string KEY_TRC = "TRC" ; // Tool Radius Compensation
//----------------- Costanti posizione per preview utensile in lavorazione ------
enum MchToolShow { MCH_TPM_CURR = 0,
+12 -6
View File
@@ -351,6 +351,9 @@ EXE_EXPORT int ExeCreatePolygonFromSide( int nParentId, int nNumSides, const Po
const Point3d& ptFin, int nRefType) ;
EXE_EXPORT int ExeCreateCirclesAlongCurve( int nParentId, int nCrvId, double dOffset, double dOverlap,
double dStartAdd, double dEndAdd, double dDiam, int* pnCount) ;
EXE_EXPORT int ExeOffsetCurveAdv( int nId, double dDist, int nType, int* pnCount, double dLinTol = 10 * EPS_SMALL) ;
EXE_EXPORT int ExeCurveGetFatCurve( int nId, int nDestGrpId, double dRad, bool bSquareEnds, bool bSquareMids, int* pnCount) ;
EXE_EXPORT int ExeOffsetCurve3d( int nId, int nSurfId, double dDist, int nType, int* pnCount, double dLinTol = 10 * EPS_SMALL) ;
// GeomDB Create Surf
EXE_EXPORT int ExeCreateSurfFlatRegion( int nParentId, const INTVECTOR& vCrvIds, int* pnCount) ;
@@ -429,6 +432,10 @@ EXE_EXPORT int ExeCreateSurfBzRuledGuided( int nParentId, int nCrvId1, int nCrv
EXE_EXPORT int ExeCreateSurfBzSkinned( int nParentId, const INTVECTOR& nCrvId1, bool bCapEnds, double dLinTol) ;
EXE_EXPORT int ExeCreateSurfBzSwept( int nParentId, int nSectId, int nGuideId, const Vector3d& vtAx,
bool bCapEnds, double dLinTol, int nRefType) ;
EXE_EXPORT int ExeCreateSurfExtension( int nParentId, int nSurfId, double dExtLen, int nCrv, int nSubCrv,
int nType, double dLinTol) ;
EXE_EXPORT int ExeCreateSurfExtensionFromMany( int nParentId, const INTVECTOR& vSurfId, double dExtLen, int nCrvId,
bool bDrawOffEdge, int* pnCount, int nType, double dLinTol) ;
// GeomDB Create Volume
EXE_EXPORT int ExeCreateVolZmap( int nParentId, const Point3d& ptIni, double dDimX,
@@ -436,7 +443,7 @@ EXE_EXPORT int ExeCreateVolZmap( int nParentId, const Point3d& ptIni, double dD
EXE_EXPORT int ExeCreateVolZmapEmpty( int nParentId, const Point3d& ptIni, double dDimX,
double dDimY, double dDimZ, double dPrec, bool bTriDex, int nRefType) ;
EXE_EXPORT int ExeCreateVolZmapByRegionExtrusion( int nParentId, int nSfrId, double dDimZ, double dPrec, bool bTriDex) ;
EXE_EXPORT int ExeCreateVolZmapFromSurfTm( int nParentId, int nStmId, double dPrec, bool bTriDex, double dExtraBox = 0) ;
EXE_EXPORT int ExeCreateVolZmapFromSurfTm( int nParentId, int nStmId, double dPrec, bool bTriDex, double dExtraBox = 0, bool bForceClosed = false) ;
// GeomDB PartLayer
EXE_EXPORT bool ExeIsPart( int nPartId) ;
@@ -613,8 +620,6 @@ EXE_EXPORT int ExeSplitText( int nId, int* pnCount) ;
// GeomDb Curve Modify
EXE_EXPORT bool ExeInvertCurve( const INTVECTOR& vIds) ;
EXE_EXPORT bool ExeOffsetCurve( int nId, double dDist, int nType) ;
EXE_EXPORT int ExeOffsetCurveAdv( int nId, double dDist, int nType, int* pnCount, double dLinTol = 10 * EPS_SMALL) ;
EXE_EXPORT int ExeCurveMedialAxis( int nId) ;
EXE_EXPORT bool ExeApproxCurve( int nId, int nApprType, double dLinTol, double dMaxSegmLen = INFINITO) ;
EXE_EXPORT bool ExeProjectCurveOnPlane( int nId, const Point3d& ptOn, const Vector3d& vtN, int nRefType) ;
EXE_EXPORT bool ExeChangeClosedCurveStart( int nId, double dU) ;
@@ -676,9 +681,6 @@ EXE_EXPORT bool ExeProjectCurveOnSurfDir( int nCurveId, const INTVECTOR& vnSurfI
double dLinTol, double dMaxSegmLen, bool bDirFromProj, bool bFromVsTo, int nRefType) ;
EXE_EXPORT bool ExeProjectCurveOnSurfExt( int nCurveId, const INTVECTOR& vnSurfId, int nGuideId, int nDestGrpId,
double dLinTol, double dMaxSegmLen, bool bDirFromGuide, bool bFromVsTo) ;
EXE_EXPORT int ExeCurveGetVoronoi( const INTVECTOR& vIds, int nDestGrpId, int nBound, int* pnCount) ;
EXE_EXPORT int ExeCurveGetMedialAxis( const INTVECTOR& vIds, int nDestGrpId, int nSide, int* pnCount) ;
EXE_EXPORT int ExeCurveGetFatCurve( int nId, int nDestGrpId, double dRad, bool bSquareEnds, bool bSquareMids, int* pnCount) ;
EXE_EXPORT bool ExeCurveBezierIncreaseDegree( int nCrvId) ;
EXE_EXPORT bool ExeCurveBezierDecreaseDegree( int nCrvId, double dTol = 100) ;
EXE_EXPORT bool ExeCurveBezierApproxToNonRat( int nCrvId, double dTol = 10 * EPS_SMALL) ;
@@ -696,6 +698,7 @@ EXE_EXPORT bool ExeSurfFrOffsetAdv( int nId, double dDist, int nType, int& nNewI
EXE_EXPORT bool ExeSurfFrEraseChunk( int nId, int nChunk) ;
EXE_EXPORT bool ExeSurfFrMoveSimpleNoCollision( int nId1, int nId2, const Vector3d& vtDir, double& dLen, int nRefType) ;
EXE_EXPORT bool ExeSurfFrRotateSimpleNoCollision( int nId1, int nId2, const Point3d& ptCen, double& dAngDeg, int nRefType) ;
EXE_EXPORT bool ExeCutSurfFrPlane( int nId, const Point3d& ptOn, const Vector3d& vtN, bool bInVsOut, int nRefType) ;
EXE_EXPORT bool ExeSurfTmMoveVertex( int nId, int nVert, const Point3d& ptNewVert, int nRefType, bool bUpdate) ;
EXE_EXPORT bool ExeSurfTmMoveFacet( int nId, int nFacet, const Vector3d& vtMove, int nRefType, bool bUpdate) ;
EXE_EXPORT int ExeSurfTmToTriangles( int nId, int* pnCount) ;
@@ -800,6 +803,9 @@ EXE_EXPORT bool ExeCurveCompoGetTempParam( int nId, DBLVECTOR& vParam, int nPara
EXE_EXPORT int ExeShowCurveBezierControlPoints( int nCrvId, int nDestGrpId, int* pnCount) ;
EXE_EXPORT int ExeCopyCompoSubCurve( int nCrvId, int nSubCrvToCopy, int nDestGrpId) ;
EXE_EXPORT int ExeCopyParamRange( int nCrvId, double dUStart, double dUEnd, int nDestGrpId) ;
EXE_EXPORT int ExeCurveGetVoronoi( const INTVECTOR& vIds, int nDestGrpId, int nBound, int* pnCount) ;
EXE_EXPORT int ExeCurveMedialAxis( int nId) ;
EXE_EXPORT int ExeCurveGetMedialAxis( const INTVECTOR& vIds, int nDestGrpId, int nSide, int* pnCount) ;
// GeomDb Surf Get
EXE_EXPORT bool ExeSurfArea( int nId, double& dArea) ;
+1 -1
View File
@@ -27,7 +27,7 @@
//----------------------------------------------------------------------------
const int KEY_BASELIB_PROD = 207 ;
const int KEY_BASELIB_VER = 3105 ;
const int KEY_BASELIB_VER = 3107 ;
const int KEY_BASELIB_LEV = 1 ;
//----------------------------------------------------------------------------