diff --git a/EGkCAvToolSurfTm.h b/EGkCAvToolSurfTm.h index 67371d1..d782334 100644 --- a/EGkCAvToolSurfTm.h +++ b/EGkCAvToolSurfTm.h @@ -37,7 +37,7 @@ class __declspec( novtable) ICAvToolSurfTm { virtual double GetToolHeight( void) const = 0 ; virtual const ICurveComposite& GetToolOutline( bool bApprox = false) const = 0 ; virtual bool TestPosition( const Point3d& ptT, const Vector3d& vtDir, const Vector3d& vtMove, double& dTotDist) = 0 ; - virtual bool TestPath( PNTULIST& lPntM, const Vector3d& vtDir, const Vector3d& vtMove, double dLinTol) = 0 ; + virtual bool TestPath( PNTULIST& lPntM, const Vector3d& vtDir, const Vector3d& vtMove, double dLinTol, double dProgCoeff = 1) = 0 ; } ; //----------------------------------------------------------------------------- diff --git a/EGkCalcPocketing.h b/EGkCalcPocketing.h index dffa76d..dd57d4e 100644 --- a/EGkCalcPocketing.h +++ b/EGkCalcPocketing.h @@ -25,7 +25,13 @@ #endif //----------------------------------------------------------------------------- -EGK_EXPORT bool CalcPocketing( const ISurfFlatRegion* pSfr, double dRad, double dStep, double dAngle, int nType, +EGK_EXPORT bool CalcPocketing( const ISurfFlatRegion* pSfr, double dRad, double dRadOffs, double dStep, double dAngle, int nType, bool bSmooth, ICRVCOMPOPOVECTOR& vCrv) ; EGK_EXPORT bool CalcZigZagInfill( const ISurfFlatRegion* pSfr, double dStep, bool bSmooth, bool bRemoveOverlapLink, ICRVCOMPOPOVECTOR& vCrvCompoRes) ; + +//----------------------------------------------------------------------------- +enum { POCKET_ZIGZAG = 0, + POCKET_ONEWAY = 1, + POCKET_SPIRALIN = 2, + POCKET_SPIRALOUT = 3 } ; diff --git a/EGkDistPointSurfTm.h b/EGkDistPointSurfTm.h index 43d7a1f..1a75aef 100644 --- a/EGkDistPointSurfTm.h +++ b/EGkDistPointSurfTm.h @@ -29,7 +29,8 @@ // - distanza // - punto sulla superficie a minima distanza // - indice del triangolo su cui giace il punto -// - indicazione se il punto di riferimento ่ dalla parte interna o esterna della superficie. +// - indicazione se il punto di riferimento รจ dalla parte interna o esterna della superficie ( se chiusa ). +// - indicazione se il punto di riferimento รจ a destra o sinistra della superficie ( se aperta ) //---------------------------------------------------------------------------- class DistPointSurfTm { @@ -47,7 +48,9 @@ class DistPointSurfTm EGK_EXPORT bool GetMinDistPoint( Point3d& ptMinDistPoint) const ; EGK_EXPORT bool GetMinDistTriaIndex( int& nMinDistTriaIndex) const ; EGK_EXPORT bool IsPointInside( void) const - { return m_bIsInside ; } + { return ( m_bIsInside && m_bIsSurfClosed) ; } + EGK_EXPORT bool IsPointOnLeftSide( void) const + { return m_bIsInside ;} private : void Calculate( const Point3d& ptP, const ISurfTriMesh& tmSurf) ; @@ -57,6 +60,7 @@ class DistPointSurfTm Point3d m_ptMinDistPoint ; int m_nMinDistTriaIndex ; bool m_bIsInside ; + bool m_bIsSurfClosed ; } ; //---------------------------------------------------------------------------- diff --git a/EGkSurfTriMesh.h b/EGkSurfTriMesh.h index accb21c..41056b6 100644 --- a/EGkSurfTriMesh.h +++ b/EGkSurfTriMesh.h @@ -89,6 +89,7 @@ class __declspec( novtable) ISurfTriMesh : public ISurf 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 int GetFacetCount( void) const = 0 ; virtual int GetFacetSize( void) const = 0 ; virtual int GetFacetFromTria( int nT) const = 0 ; diff --git a/EInAPI.h b/EInAPI.h index 0dd5a04..1371172 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -927,7 +927,8 @@ EIN_EXPORT BOOL __stdcall EgtApplyMachining( BOOL bRecalc) ; EIN_EXPORT BOOL __stdcall EgtUpdateMachining( void) ; EIN_EXPORT BOOL __stdcall EgtPreparePreviewMachiningTool( void) ; EIN_EXPORT BOOL __stdcall EgtRemovePreviewMachiningTool( void) ; -EIN_EXPORT int __stdcall EgtPreviewMachiningTool( int nEntId, int nFlag) ; +EIN_EXPORT int __stdcall EgtGetPreviewMachiningToolStepCount( void) ; +EIN_EXPORT int __stdcall EgtPreviewMachiningTool( int nEntId, int nStep) ; EIN_EXPORT BOOL __stdcall EgtGetMachiningParamBool( int nType, BOOL* pbVal) ; EIN_EXPORT BOOL __stdcall EgtGetMachiningParamInt( int nType, int* pnVal) ; EIN_EXPORT BOOL __stdcall EgtGetMachiningParamDouble( int nType, double* pdVal) ; diff --git a/EMkMachMgr.h b/EMkMachMgr.h index e6011f2..1c8d1c3 100644 --- a/EMkMachMgr.h +++ b/EMkMachMgr.h @@ -259,7 +259,8 @@ class __declspec( novtable) IMachMgr virtual bool MachiningUpdate( bool bPostApply = true) = 0 ; virtual bool PreparePreviewMachiningTool( void) const = 0 ; virtual bool RemovePreviewMachiningTool( void) const = 0 ; - virtual int PreviewMachiningTool( int nEntId, int nFlag) const = 0 ; + virtual int GetPreviewMachiningToolStepCount( void) const = 0 ; + virtual int PreviewMachiningTool( int nEntId, int nStep) const = 0 ; virtual bool GetMachiningParam( int nType, bool& bVal) const = 0 ; virtual bool GetMachiningParam( int nType, int& nVal) const = 0 ; virtual bool GetMachiningParam( int nType, double& dVal) const = 0 ; diff --git a/EMkMachiningConst.h b/EMkMachiningConst.h index ca60318..4176433 100644 --- a/EMkMachiningConst.h +++ b/EMkMachiningConst.h @@ -66,7 +66,7 @@ enum MachiningType { MT_SURFROUGHING = OPER_SURFROUGHING, MT_SURFFINISHING = OPER_SURFFINISHING, MT_WATERJETTING = OPER_WATERJETTING, - MT_5AXMACHINING = OPER_5AXMACHINING + MT_FIVEAXISMILLING = OPER_FIVEAXISMILLING } ; //---------------------------------------------------------------------------- @@ -363,6 +363,22 @@ enum { MORTISE_PLUNGE_STEP = 0, MORTISE_PLUNGE_START_END = 3, MORTISE_PLUNGE_START_TO_END = 4} ; +//---------------------------------------------------------------------------- +// Parametri per sgrossatura superfici +// Sottotipo di lavorazione +enum { SURFROU_SUB_ZIGZAG = 0, + SURFROU_SUB_ONEWAY = 1, + SURFROU_SUB_SPIRALIN = 2, + SURFROU_SUB_SPIRALOUT = 3} ; +// Tipo di attacco +enum { SURFROU_LI_NONE = 0, + SURFROU_LI_GLIDE = 1, + SURFROU_LI_ZIGZAG = 2, + SURFROU_LI_HELIX = 3} ; +// Tipo di uscita +enum { SURFROU_LO_NONE = 0, + SURFROU_LO_GLIDE = 1} ; + //---------------------------------------------------------------------------- // Parametri per finitura superfici // Sottotipo di lavorazione @@ -374,9 +390,6 @@ enum { SURFFIN_SUB_ZIGZAG = 0, enum { SURFFIN_LI_NONE = 0, SURFFIN_LI_LINEAR = 1, SURFFIN_LI_TANGENT = 2} ; -// Tipo di link -enum { SURFFIN_LL_STD = 0, - SURFFIN_LL_CENT = 1} ; // Tipo di uscita enum { SURFFIN_LO_NONE = 0, SURFFIN_LO_LINEAR = 1, diff --git a/EMkOperationConst.h b/EMkOperationConst.h index 56b379e..9ad0636 100644 --- a/EMkOperationConst.h +++ b/EMkOperationConst.h @@ -1,7 +1,7 @@ //---------------------------------------------------------------------------- -// EgalTech 2015-2023 +// EgalTech 2015-2024 //---------------------------------------------------------------------------- -// File : EmkOperationConst.h Data : 06.09.23 Versione : 2.5i1 +// File : EmkOperationConst.h Data : 22.05.24 Versione : 2.6e5 // Contenuto : Costanti delle operazioni. // // @@ -19,21 +19,21 @@ #pragma once //------------------------ Costanti per tipo Operazioni ----------------------- -enum OperType { OPER_NULL = 0, // nulla - OPER_DISP = 0x000100, // disposizione - OPER_DRILLING = 0x000200, // foratura - OPER_SAWING = 0x000400, // taglio di lama - OPER_MILLING = 0x000800, // fresatura - OPER_POCKETING = 0x001000, // svuotatura - OPER_MORTISING = 0x002000, // mortasatura - OPER_SAWROUGHING = 0x004000, // sgrossatura con lama - OPER_SAWFINISHING = 0x008000, // finitura con lama - OPER_GENMACHINING = 0x010000, // lavorazione generica - OPER_CHISELING = 0x020000, // scalpellatura - OPER_SURFROUGHING = 0x040000, // sgrossatura superficie - OPER_SURFFINISHING = 0x080000, // finitura superficie - OPER_WATERJETTING = 0x100000, // taglio water jet - OPER_5AXMACHINING = 0x200000} ; // lavorazione 5 assi +enum OperType { OPER_NULL = 0, // nulla + OPER_DISP = 0x000100, // disposizione + OPER_DRILLING = 0x000200, // foratura + OPER_SAWING = 0x000400, // taglio di lama + OPER_MILLING = 0x000800, // fresatura + OPER_POCKETING = 0x001000, // svuotatura + OPER_MORTISING = 0x002000, // mortasatura + OPER_SAWROUGHING = 0x004000, // sgrossatura con lama + OPER_SAWFINISHING = 0x008000, // finitura con lama + OPER_GENMACHINING = 0x010000, // lavorazione generica + OPER_CHISELING = 0x020000, // scalpellatura + OPER_SURFROUGHING = 0x040000, // sgrossatura superficie + OPER_SURFFINISHING = 0x080000, // finitura superficie + OPER_WATERJETTING = 0x100000, // taglio water jet + OPER_FIVEAXISMILLING = 0x200000} ; // lavorazione 5 assi // Controllo tipo valido bool inline IsValidDispositionType( int nType) { @@ -53,5 +53,5 @@ bool inline IsValidMachiningType( int nType) nType == OPER_SURFROUGHING || nType == OPER_SURFFINISHING || nType == OPER_WATERJETTING || - nType == OPER_5AXMACHINING) ; + nType == OPER_FIVEAXISMILLING) ; } diff --git a/EXeExecutor.h b/EXeExecutor.h index 13d4dc7..3b4180b 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -616,6 +616,8 @@ EXE_EXPORT bool ExeModifyCurveCompoCurveToLine( int nId, int nCrv) ; EXE_EXPORT int ExeExplodeCurveCompo( int nId, int* pnCount) ; EXE_EXPORT bool ExeMergeCurvesInCurveCompo( int nId, double dLinTol, bool bStartEnd) ; EXE_EXPORT bool ExeRemoveCurveCompoUndercutOnY( int nId, double dLinTol) ; +EXE_EXPORT bool ExeCurveCompoSetTempProp( int nId, int nCrv, int nProp, int nPropInd = 0) ; +EXE_EXPORT bool ExeCurveCompoSetTempParam( int nId, int nCrv, double dParam, int nParamInd = 0) ; 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, @@ -734,7 +736,9 @@ EXE_EXPORT bool ExeCurveCompoCenter( int nId, int nSimpCrv, int nRefId, Point3d& EXE_EXPORT bool ExeCurveCompoRadius( int nId, int nSimpCrv, double& dRad) ; EXE_EXPORT bool ExeCurveCompoAngCenter( int nId, int nSimpCrv, double& dAngCen) ; EXE_EXPORT bool ExeCurveCompoNormVersor( int nId, int nSimpCrv, int nRefId, Vector3d& vtNorm) ; -EXE_EXPORT int ExeShowCurveBezierControlPoints( int nCrvId, int* pnCount) ; +EXE_EXPORT bool ExeCurveCompoGetTempProp( int nId, INTVECTOR& vProp, int nPropInd) ; +EXE_EXPORT bool ExeCurveCompoGetTempParam( int nId, DBLVECTOR& vParam, int nParamInd) ; +EXE_EXPORT int ExeShowCurveBezierControlPoints( int nCrvId, int* pnCount) ; // GeomDb Surf Get EXE_EXPORT bool ExeSurfArea( int nId, double& dArea) ; @@ -770,6 +774,8 @@ EXE_EXPORT bool ExeSurfTmFacetOppositeSideEx( int nId, int nFacet, const Vector3 EXE_EXPORT bool ExeSurfTmFacetsContact( int nId, int nF1, int nF2, int nRefId, bool& bAdjac, Point3d& ptP1, Point3d& ptP2, double& dAng) ; EXE_EXPORT int ExeExtractSurfTmLoops( int nId, int nDestGrpId, int* pnCount) ; EXE_EXPORT int ExeGetSurfTmSilhouette( int nId, const Vector3d& vtDir, double dToler, int nDestGrpId, int nRefType, int* pnCount, bool bAllTria = false) ; +EXE_EXPORT int ExeGetSurfTmSilhouetteEx( int nId, const Point3d& ptOn, const Vector3d& vtN, double dToler, int nDestGrpId, int nRefType, + int* pnCount, bool bAllTria) ; EXE_EXPORT int ExeExtractSurfTmFacetLoops( int nId, int nFacet, int nDestGrpId, int* pnCount) ; EXE_EXPORT int ExeCopySurfTmFacet( int nId, int nFacet, int nDestGrpId) ; EXE_EXPORT bool ExeSurfTmGetAllVertInFacet( int nId, int nFacet, INTVECTOR& vVert) ; @@ -1189,7 +1195,8 @@ EXE_EXPORT bool ExeApplyMachining( bool bRecalc, bool bPostApply = true) ; EXE_EXPORT bool ExeUpdateMachining( bool bPostApply = true) ; EXE_EXPORT bool ExePreparePreviewMachiningTool( void) ; EXE_EXPORT bool ExeRemovePreviewMachiningTool( void) ; -EXE_EXPORT int ExePreviewMachiningTool( int nEntId, int nFlag) ; +EXE_EXPORT int ExeGetPreviewMachiningToolStepCount( void) ; +EXE_EXPORT int ExePreviewMachiningTool( int nEntId, int nStep) ; EXE_EXPORT bool ExeGetMachiningParam( int nType, bool& bVal) ; EXE_EXPORT bool ExeGetMachiningParam( int nType, int& nVal) ; EXE_EXPORT bool ExeGetMachiningParam( int nType, double& dVal) ; diff --git a/EgtKeyCodes.h b/EgtKeyCodes.h index 1e453f1..c590fec 100644 --- a/EgtKeyCodes.h +++ b/EgtKeyCodes.h @@ -25,7 +25,7 @@ //---------------------------------------------------------------------------- const int KEY_BASELIB_PROD = 207 ; -const int KEY_BASELIB_VER = 2605 ; +const int KEY_BASELIB_VER = 2606 ; const int KEY_BASELIB_LEV = 1 ; //----------------------------------------------------------------------------