diff --git a/EGkDistPointSurfTm.h b/EGkDistPointSurfTm.h index 49b5d46..c8ec942 100644 --- a/EGkDistPointSurfTm.h +++ b/EGkDistPointSurfTm.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- // EgalTech 2018-2023 //---------------------------------------------------------------------------- -// File : EGkDistPointTria.h Data : 06.07.23 Versione : 2.5g1 +// File : EGkDistPointSurfTm.h Data : 06.07.23 Versione : 2.5g1 // Contenuto : Dichiarazione della classe distanza Punto da Trimesh. // // diff --git a/EGkGeoCollection.h b/EGkGeoCollection.h index a62a5c6..0e5c428 100644 --- a/EGkGeoCollection.h +++ b/EGkGeoCollection.h @@ -32,15 +32,15 @@ typedef std::list PNTILIST ; // lista di coppie punto, intero //---------------------------------------------------------------------------- // Raccolte di coppie Point3d,dU -typedef std::pair POINTU ; // coppia punto, parametro (o altro) -typedef std::vector PNTUVECTOR ; // vettore di coppie punto, parametro -typedef std::list PNTULIST ; // lista di coppie punto, parametro +typedef std::pair POINTU ; // coppia punto, parametro (o altro) +typedef std::vector PNTUVECTOR ; // vettore di coppie punto, parametro +typedef std::list PNTULIST ; // lista di coppie punto, parametro //---------------------------------------------------------------------------- // Raccolte di coppie Point3d,Point3d -typedef std::pair BIPOINT ; // coppia punto1, punto2 -typedef std::vector BIPNTVECTOR ; // vettore di coppie punto1, punto2 -typedef std::list BIPNTLIST ; // lista di coppie punto1, punto2 +typedef std::pair BIPOINT ; // coppia punto1, punto2 +typedef std::vector BIPNTVECTOR ; // vettore di coppie punto1, punto2 +typedef std::list BIPNTLIST ; // lista di coppie punto1, punto2 //---------------------------------------------------------------------------- // Raccolte di Punti di curva con loro geometria differenziale @@ -57,3 +57,9 @@ typedef std::list VCT3DLIST ; // lista di vettori 3d typedef std::vector BOXVECTOR ; // vettore di bounding box 3d typedef std::list BOXLIST ; // lista di bounding box 3d typedef std::vector> BOXIVECTOR ; // vettore di bounding box 3d e Id + +//---------------------------------------------------------------------------- +// Raccolte di coppie Point3d,Vector3d +typedef std::pair PNTVECT ; // coppia punto, vettore +typedef std::vector PNTVECTVECTOR ; // vettore di coppie punto, vettore +typedef std::list PNTVECTLIST ; // lista di coppie punto, vettore diff --git a/EGkIntersPlaneSurfTm.h b/EGkIntersPlaneSurfTm.h index 2d5ef79..a517f9f 100644 --- a/EGkIntersPlaneSurfTm.h +++ b/EGkIntersPlaneSurfTm.h @@ -32,13 +32,13 @@ EGK_EXPORT bool IntersPlaneSurfTm( const Plane3d& plPlane, const ISurfTriMesh& S //----------------------------------------------------------------------------- class IntersParPlanesSurfTm { -public : - EGK_EXPORT IntersParPlanesSurfTm( const Frame3d& frPlanes, const ISurfTriMesh& Stm) ; - EGK_EXPORT bool GetInters( double dDist, PNTVECTOR& vPnt, BIPNTVECTOR& vBpt, TRIA3DVECTOR& vTria) const ; + public : + EGK_EXPORT IntersParPlanesSurfTm( const Frame3d& frPlanes, const ISurfTriMesh& Stm) ; + EGK_EXPORT bool GetInters( double dDist, PNTVECTOR& vPnt, BIPNTVECTOR& vBpt, TRIA3DVECTOR& vTria) const ; -private : - bool m_bOk ; - const Frame3d m_frPlanes ; - const ISurfTriMesh* m_pSTm ; - HashGrids1d m_HGrids ; + private : + bool m_bOk ; + const Frame3d m_frPlanes ; + const ISurfTriMesh* m_pSTm ; + HashGrids1d m_HGrids ; } ; \ No newline at end of file diff --git a/EGkProjectCurveSurfTm.h b/EGkProjectCurveSurfTm.h new file mode 100644 index 0000000..1eb0038 --- /dev/null +++ b/EGkProjectCurveSurfTm.h @@ -0,0 +1,43 @@ +//---------------------------------------------------------------------------- +// EgalTech 2023-2023 +//---------------------------------------------------------------------------- +// File : EGkProjectCurveSurfTm.h Data : 31.08.23 Versione : 2.5h3 +// Contenuto : Dichiarazione funzioni proiezione curve su superficie Trimesh. +// +// +// +// Modifiche : 31.08.23 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkCurve.h" +#include "/EgtDev/Include/EGkSurfTriMesh.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 + +//---------------------------------------------------------------------------- +// Definizione di Punto 5assi e sue raccolte +struct Point5ax { + Point3d ptP ; + Vector3d vtDir ; + double dPar ; + int nFlag ; + Point5ax( void) : ptP(), vtDir(), dPar(), nFlag() {} ; + Point5ax( const Point3d& ptBase, const Vector3d& vtTool, double dU, int nData) + : ptP( ptBase), vtDir( vtTool), dPar( dU), nFlag( nData) {} ; +} ; +typedef std::vector PNT5AXVECTOR ; // vettore di Punti 5assi + +//---------------------------------------------------------------------------- +// Proiezione di una curva su una superficie TriMesh lungo la direzione data. +EGK_EXPORT bool ProjectCurveOnSurfTm( const ICurve& crCrv, const ISurfTriMesh& tmSurf, const Vector3d& vtDir, double dLinTol, + PNT5AXVECTOR& vPt5ax) ; diff --git a/EMkMachiningConst.h b/EMkMachiningConst.h index 5d70b5b..d65834a 100644 --- a/EMkMachiningConst.h +++ b/EMkMachiningConst.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- -// EgalTech 2015-2022 +// EgalTech 2015-2023 //---------------------------------------------------------------------------- -// File : EmkMachiningConst.h Data : 04.02.22 Versione : 2.4b1 +// File : EmkMachiningConst.h Data : 06.09.23 Versione : 2.5i1 // Contenuto : Costanti delle lavorazioni. // // @@ -12,6 +12,7 @@ // 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. // //---------------------------------------------------------------------------- @@ -62,7 +63,8 @@ enum MachiningType { MT_CHISELING = OPER_CHISELING, MT_SURFROUGHING = OPER_SURFROUGHING, MT_SURFFINISHING = OPER_SURFFINISHING, - MT_WATERJETTING = OPER_WATERJETTING + MT_WATERJETTING = OPER_WATERJETTING, + MT_5AXMACHINING = OPER_5AXMACHINING } ; //---------------------------------------------------------------------------- diff --git a/EMkMachiningGeoConst.h b/EMkMachiningGeoConst.h index f9e80c1..8fa2f8b 100644 --- a/EMkMachiningGeoConst.h +++ b/EMkMachiningGeoConst.h @@ -33,6 +33,7 @@ static std::string MCH_TABS = "TABS" ; static std::string MCH_PV = "PV" ; static std::string MCH_ST = "ST" ; static std::string MCH_CL = "CL" ; +static std::string MCH_DBL = "DBL" ; static std::string MCH_PATH = "P" ; // Nomi di entità CL speciali static std::string MCH_CL_CLIMB = "CLIMB" ; diff --git a/EMkOperationConst.h b/EMkOperationConst.h index 8a9f649..56b379e 100644 --- a/EMkOperationConst.h +++ b/EMkOperationConst.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- -// EgalTech 2015-2019 +// EgalTech 2015-2023 //---------------------------------------------------------------------------- -// File : EmkOperationConst.h Data : 08.07.19 Versione : 2.1g2 +// File : EmkOperationConst.h Data : 06.09.23 Versione : 2.5i1 // Contenuto : Costanti delle operazioni. // // @@ -12,6 +12,7 @@ // 03.02.17 DS Agg. Chiseling. // 25.05.19 DS Agg. SurfRoughing e SurfFinishing. // 08.07.19 DS Agg. WaterJetting. +// 06.09.23 DS Agg. 5AxMachining. // //---------------------------------------------------------------------------- @@ -31,7 +32,8 @@ enum OperType { OPER_NULL = 0, // nulla OPER_CHISELING = 0x020000, // scalpellatura OPER_SURFROUGHING = 0x040000, // sgrossatura superficie OPER_SURFFINISHING = 0x080000, // finitura superficie - OPER_WATERJETTING = 0x100000} ; // taglio water jet + OPER_WATERJETTING = 0x100000, // taglio water jet + OPER_5AXMACHINING = 0x200000} ; // lavorazione 5 assi // Controllo tipo valido bool inline IsValidDispositionType( int nType) { @@ -50,5 +52,6 @@ bool inline IsValidMachiningType( int nType) nType == OPER_CHISELING || nType == OPER_SURFROUGHING || nType == OPER_SURFFINISHING || - nType == OPER_WATERJETTING ) ; + nType == OPER_WATERJETTING || + nType == OPER_5AXMACHINING) ; } diff --git a/EXeExecutor.h b/EXeExecutor.h index f15a448..1341b21 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -581,6 +581,7 @@ EXE_EXPORT bool ExeMergeCurvesInCurveCompo( int nId, double dLinTol, bool bStart EXE_EXPORT bool ExeRemoveCurveCompoUndercutOnY( int nId, double dLinTol) ; EXE_EXPORT bool ExeChainCurvesInGroup( int nGroupId, const Point3d& ptNear, int nRefType) ; EXE_EXPORT bool ExeReorderCurvesInGroup( int nGroupId, const Point3d& ptNear, int nRefType) ; +EXE_EXPORT bool ExeProjectCurveOnSurfTm( int nCurveId, int nSurfTmId, const Vector3d& vtDir, int nDestGrpId, double dLinTol, int nRefType) ; // GeomDb Surf Modify EXE_EXPORT bool ExeInvertSurface( const INTVECTOR& vIds) ; diff --git a/EgtKeyCodes.h b/EgtKeyCodes.h index b19d875..704d327 100644 --- a/EgtKeyCodes.h +++ b/EgtKeyCodes.h @@ -24,7 +24,7 @@ //---------------------------------------------------------------------------- const int KEY_BASELIB_PROD = 207 ; -const int KEY_BASELIB_VER = 2508 ; +const int KEY_BASELIB_VER = 2509 ; const int KEY_BASELIB_LEV = 1 ; //----------------------------------------------------------------------------