From f96c15de7e6ba22fb8dbc99cff41c1da3e301ee8 Mon Sep 17 00:00:00 2001 From: Riccardo Elitropi Date: Fri, 4 Jul 2025 12:58:17 +0200 Subject: [PATCH] Include : - aggiunte funzioni per calcolo di Zmap e TriMesh di Offset Fillet Thickening. --- EGkSurfTriMesh.h | 9 +++++++-- EGkVolZmap.h | 4 +++- EXeExecutor.h | 6 ++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/EGkSurfTriMesh.h b/EGkSurfTriMesh.h index 978ca1e..c3c998b 100644 --- a/EGkSurfTriMesh.h +++ b/EGkSurfTriMesh.h @@ -35,6 +35,8 @@ class __declspec( novtable) ISurfTriMesh : public ISurf enum RuledType { RLT_ISOPAR = 0, // con parametrizzazione simile tra le due curve RLT_MINDIST = 1, // con distanza minima tra le due curve RLT_ISOPAR_SMOOTH = 2} ; // con parametrizzazione simile tra le due curve e lisciatura delle parti torte + enum OffType { OFF_FILLET = 0, + OFF_EXTEND = 2 } ; public : // IGeoObj ISurfTriMesh* Clone( void) const override = 0 ; public : @@ -167,5 +169,8 @@ typedef std::vector> ISURFTMPOVECTOR ; // vettore di pu //---------------------------------------------------------------------------- // Funzioni per Offset -EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshOffset( const ISurfTriMesh* pStm, double dOffs, double dLinTol) ; -EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshesOffset( const CISURFTMPVECTOR& vStm, double dOffs, double dLinTol) ; \ No newline at end of file +EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshOffset( const ISurfTriMesh* pStm, double dOffs, double dLinTol, int nType = ISurfTriMesh::OFF_FILLET) ; +EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshThickeningOffset( const ISurfTriMesh* pStm, double dOffs, double dLinTol, int nType = ISurfTriMesh::OFF_FILLET) ; +// Funzioni per Fat Offset +EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshesOffset( const CISURFTMPVECTOR& vStm, double dOffs, double dLinTol, int nType = ISurfTriMesh::OFF_FILLET) ; +EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshesThickeningOffset( const CISURFTMPVECTOR& vStm, double dOffs, double dLinTol, int nType = ISurfTriMesh::OFF_FILLET) ; \ No newline at end of file diff --git a/EGkVolZmap.h b/EGkVolZmap.h index c9e8830..0f5eac2 100644 --- a/EGkVolZmap.h +++ b/EGkVolZmap.h @@ -10,6 +10,7 @@ // 12.09.23 DS Aggiunto metodo IsTriDexel. // 09.03.24 DS Aggiunti SetShowEdges e GetShowEdges. // 10.06.25 RE Aggiunte funzioni per Offset di superfici TriMesh chiuse +// 04.07.25 RE Aggiunte funzioni per Thickening Offset di superfici TriMesh generiche // //---------------------------------------------------------------------------- @@ -32,7 +33,8 @@ class __declspec( novtable) IVolZmap : public IGeoObj virtual bool CreateEmpty( const Point3d& ptO, double dDimX, double dDimY, double dDimZ, double dStep, bool bTriDex) = 0 ; virtual bool CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double dStep, bool bTriDex) = 0 ; virtual bool CreateFromTriMesh( const ISurfTriMesh& Surf, double dStep, bool bTriDex, double dExtraBox = 0.) = 0 ; - virtual bool CreateFromTriMeshOffset( const CISURFTMPVECTOR& vSurf, double dOffs, double dTol) = 0 ; + virtual bool CreateFromTriMeshOffset( const CISURFTMPVECTOR& vSurf, double dOffs, double dTol, int nType = ISurfTriMesh::OFF_FILLET) = 0 ; + virtual bool CreateFromTriMeshThickeningOffset( const CISURFTMPVECTOR& vSurf, double dOffs, double dTol, int nType = ISurfTriMesh::OFF_FILLET) = 0 ; virtual int GetBlockCount( void) const = 0 ; virtual int GetBlockUpdatingCounter( int nBlock) const = 0 ; virtual bool GetBlockTriangles( int nBlock, TRIA3DEXVECTOR& vTria) const = 0 ; diff --git a/EXeExecutor.h b/EXeExecutor.h index aa1fc51..b75095b 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -397,7 +397,8 @@ EXE_EXPORT int ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrC EXE_EXPORT int ExeCreateSurfTmByTriangles( int nParentId, const INTVECTOR& vIds, bool bErase) ; EXE_EXPORT int ExeCreateSurfTmBySewing( int nParentId, const INTVECTOR& vIds, bool bErase) ; EXE_EXPORT int ExeCreateSurfTmByVolZmap( int nParentId, int nZmapId, int nPart) ; -EXE_EXPORT int ExeSurfTmOffset( int nParentId, const INTVECTOR& vIds, double dOffs, double dLinTol) ; +EXE_EXPORT int ExeSurfTmOffset( int nParentId, const INTVECTOR& vIds, double dOffs, double dLinTol, int nType) ; +EXE_EXPORT int ExeSurfTmThickeningOffset( int nParentId, const INTVECTOR& vIds, double dOffs, double dLinTol, int nType) ; EXE_EXPORT int ExeCreateSurfBezier( int nParentId, int nDegU, int nDegV, int nSpanU, int nSpanV, const PNTVECTOR& vPnt, int nRefType) ; EXE_EXPORT int ExeCreateSurfBezierRational( int nParentId, int nDegU, int nDegV, int nSpanU, int nSpanV, const PNTUVECTOR& vPntW, int nRefType) ; EXE_EXPORT int ExeCreateSurfBezierLeaves( int nParentId, int nSurfBzId, int nTextHeight = 50, bool bShowTrim = false, int* pnCount = nullptr) ; @@ -428,7 +429,8 @@ EXE_EXPORT int ExeCreateVolZmapEmpty( int nParentId, const Point3d& ptIni, doub 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) ; -EXE_EXPORT int ExeCreateVolZmapFromSurfTmOffset( int nParentId, const INTVECTOR& vStmId, double dOffs, double dPrec) ; +EXE_EXPORT int ExeCreateVolZmapFromSurfTmOffset( int nParentId, const INTVECTOR& vStmId, double dOffs, double dPrec, int nType) ; +EXE_EXPORT int ExeCreateVolZmapFromSurfTmThickeningOffset( int nParentId, const INTVECTOR& vStmId, double dOffs, double dPrec, int nType) ; EXE_EXPORT bool ExeUpdateVolZmapByAddingSurfTm( int nVolZmapId, int nStmId) ; EXE_EXPORT bool ExeUniformVolZmap( int nVolZmapId, double dToler) ;