From 83cfdfc50ee33346602ba2cfcf3c163956b12841 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Thu, 5 Sep 2024 17:39:08 +0200 Subject: [PATCH 1/6] Include : - aggiornamento mensile codici protezione librerie. --- EgtKeyCodes.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EgtKeyCodes.h b/EgtKeyCodes.h index af42c4e..bb4a0e4 100644 --- a/EgtKeyCodes.h +++ b/EgtKeyCodes.h @@ -25,7 +25,7 @@ //---------------------------------------------------------------------------- const int KEY_BASELIB_PROD = 207 ; -const int KEY_BASELIB_VER = 2608 ; +const int KEY_BASELIB_VER = 2609 ; const int KEY_BASELIB_LEV = 1 ; //---------------------------------------------------------------------------- From d3528e36607456bcda3221f71a8c4f8da4ea9209 Mon Sep 17 00:00:00 2001 From: Riccardo Elitropi Date: Thu, 19 Sep 2024 09:03:49 +0200 Subject: [PATCH 2/6] Include : - aggiunte costanti per CalcPocketing. - aggiunta funzione di salvataggio su file. --- EGkCalcPocketing.h | 6 +++-- EGkGeoObjSave.h | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 2 deletions(-) diff --git a/EGkCalcPocketing.h b/EGkCalcPocketing.h index a536af3..092e668 100644 --- a/EGkCalcPocketing.h +++ b/EGkCalcPocketing.h @@ -37,7 +37,7 @@ enum { POCKET_ZIGZAG = 0, POCKET_ONEWAY = 1, POCKET_SPIRALIN = 2, POCKET_SPIRALOUT = 3, - POCKET_CONFORMAL_ZIGZAG = 4, + POCKET_CONFORMAL_ZIGZAG = 4, POCKET_CONFORMAL_ONEWAY = 5} ; enum { TEMP_PROP_SMOOTH = -2, @@ -47,4 +47,6 @@ enum { TEMP_PROP_SMOOTH = -2, TEMP_PROP_OUT_START = 2, TEMP_PROP_SINGLE_CURVE = 3, TEMP_PROP_OPT_TRAPEZOID = 4, - TEMP_PROP_BORDER_CURVE = 5} ; + TEMP_PROP_BORDER_CURVE = 5, + TEMP_PROP_CURVE_ACTIVE = 6, + TEMP_PROP_CURVE_INACTIVE = 7} ; diff --git a/EGkGeoObjSave.h b/EGkGeoObjSave.h index c6ca6fd..039cd88 100644 --- a/EGkGeoObjSave.h +++ b/EGkGeoObjSave.h @@ -177,4 +177,71 @@ SaveCurveCompo( ICRVCOMPOPOVECTOR& vCompo, bool bUniform, const std::string& sFi return bOk ; +} + +bool SaveVoronoi( const ICRVCOMPOPOVECTOR& vCrvsCompo, const ICURVEPOVECTOR& vBisectors, + bool bUniform, const std::string& sFile, int nFlag = GDB_SV_BIN) +{ + // controllo validità delle curve + std::vector vpGObj_crv ; + for ( int i = 0 ; i < int( vCrvsCompo.size()) ; ++ i) { + if ( vCrvsCompo[i] == nullptr || ! vCrvsCompo[i]->IsValid()) + return false ; + vpGObj_crv.emplace_back( static_cast( vCrvsCompo[i]->Clone())) ; + } + std::vector vpGObj_bisect ; + for ( int i = 0 ; i < int( vBisectors.size()) ; ++ i) { + if ( vBisectors[i] == nullptr || ! vBisectors[i]->IsValid()) + return false ; + vpGObj_bisect.emplace_back( static_cast( vBisectors[i]->Clone())) ; + } + + // creo GeomDB temporaneo + PtrOwner pGeomDB( CreateGeomDB()) ; + if ( IsNull( pGeomDB)) + return false ; + INTVECTOR vIds ; + + // salvo le curve + int nPartId = pGeomDB->AddGroup( GDB_ID_NULL, GDB_ID_ROOT, Frame3d()) ; + int nLayId = pGeomDB->AddGroup( GDB_ID_NULL, nPartId, Frame3d()) ; + pGeomDB->SetName( nLayId, "Curves") ; + for ( int i = 0 ; i < int( vpGObj_crv.size()) ; ++i) { + // inserisco l'oggetto nel GeomDB + int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nLayId, vpGObj_crv[i]->Clone()) ; + if ( nId == GDB_ID_NULL) + return false ; + vIds.push_back( nId) ; + pGeomDB->SetMaterial( nId, LIME) ; + } + + // salvo i bisettori + nLayId = pGeomDB->AddGroup( GDB_ID_NULL, nPartId, Frame3d()) ; + pGeomDB->SetName( nLayId, "Bisectors") ; + for ( int i = 0 ; i < int( vpGObj_bisect.size()) ; ++i) { + // inserisco l'oggetto nel GeomDB + int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nLayId, vpGObj_bisect[i]->Clone()) ; + if ( nId == GDB_ID_NULL) + return false ; + vIds.push_back( nId) ; + if ( bUniform) + pGeomDB->SetMaterial( nId, RED) ; + else { + if ( vBisectors[i]->GetTempParam( 0) < EPS_SMALL || + vBisectors[i]->GetTempParam( 1) < EPS_SMALL) + pGeomDB->SetMaterial( nId, ORANGE) ; + else + pGeomDB->SetMaterial( nId, RED) ; + } + pGeomDB->SetInfo( nId, "START_PARAM", vBisectors[i]->GetTempParam( 0)) ; + pGeomDB->SetInfo( nId, "END_PARAM", vBisectors[i]->GetTempParam( 1)) ; + } + + // eseguo il salvataggio + bool bOk = pGeomDB->Save( vIds, sFile, nFlag) ; + // rimuovo l'oggetto dal GeomDB + for ( int i = 0 ; i < int( vIds.size()); ++i) + bOk = ( pGeomDB->RemoveGeoObjAndErase( vIds[i]) != nullptr) && bOk ; + + return bOk ; } \ No newline at end of file From 3c02ee2dc0639266f0c4d896b6e57322dbf3e69c Mon Sep 17 00:00:00 2001 From: SaraP Date: Thu, 19 Sep 2024 16:29:04 +0200 Subject: [PATCH 3/6] Include : - aggiunti e modificati prototipi. --- EGkCurveAux.h | 6 ++++-- EXeExecutor.h | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/EGkCurveAux.h b/EGkCurveAux.h index 2f21d6e..0c625dc 100644 --- a/EGkCurveAux.h +++ b/EGkCurveAux.h @@ -122,16 +122,18 @@ EGK_EXPORT ICurve* ProjectCurveOnPlane( const ICurve& crCrv, const Plane3d& plPl EGK_EXPORT bool AdjustCurveSlope( ICurveComposite* pCrv, double dNini, double dNfin) ; //---------------------------------------------------------------------------- -//! Calcolo del diagramma di Voronoi della curva, nei TempParam dei risultati la distanza +//! Calcolo del diagramma di Voronoi della curva/e, nei TempParam dei risultati la distanza //! Per nBound tenere valore di default. EGK_EXPORT bool CalcCurveVoronoiDiagram( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, int nBound = 3) ; +EGK_EXPORT bool CalcCurvesVoronoiDiagram( const CICURVEPVECTOR& vCrvC, ICURVEPOVECTOR& vCrvs, int nBound = 3) ; //---------------------------------------------------------------------------- -//! Calcolo del Medial Axis della curva (sottoinsieme del diagramma di Voronoi), nei TempParam dei risultati la distanza +//! Calcolo del Medial Axis della curva/e (sottoinsieme del diagramma di Voronoi), nei TempParam dei risultati la distanza const int WMAT_BOTHSIDES = 0 ; const int WMAT_LEFT = 1 ; const int WMAT_RIGHT = 2 ; EGK_EXPORT bool CalcCurveMedialAxis( const ICurve& crvC, ICURVEPOVECTOR& vCrvs, int nSide) ; +EGK_EXPORT bool CalcCurvesMedialAxis( const CICURVEPVECTOR& vCrvC, ICURVEPOVECTOR& vCrvs, int nSide) ; //---------------------------------------------------------------------------- //! Calcola l'offset completo di una curva diff --git a/EXeExecutor.h b/EXeExecutor.h index 6e7ac5e..18cc977 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -632,8 +632,8 @@ EXE_EXPORT bool ExeProjectCurveOnSurfBz( int nCurveId, int nSurfBzId, const Vect double dLinTol, double dMaxSegmLen, int nRefType) ; EXE_EXPORT bool ExeProjectCurveOnSurfBzExt( int nCurveId, int nSurfBzId, int nGuideId, int nDestGrpId, double dLinTol, double dMaxSegmLen, bool bDirFromGuide) ; -EXE_EXPORT int ExeCurveGetVoronoi( int nId, int nDestGrpId, int nBound, int* pnCount) ; -EXE_EXPORT int ExeCurveGetMedialAxis( int nId, int nDestGrpId, int nSide, int* pnCount) ; +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) ; From f9f1e61a520e4b1fbaf401c600b31bda27aa2fc5 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Fri, 20 Sep 2024 14:19:21 +0200 Subject: [PATCH 4/6] Include : - aggiunte costanti per nuovi tipi di svuotature CONFORMAL. --- EMkMachiningConst.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/EMkMachiningConst.h b/EMkMachiningConst.h index cedf374..7486e42 100644 --- a/EMkMachiningConst.h +++ b/EMkMachiningConst.h @@ -325,7 +325,9 @@ enum { SAWFIN_LL_STD = 0, enum { POCKET_SUB_ZIGZAG = 0, POCKET_SUB_ONEWAY = 1, POCKET_SUB_SPIRALIN = 2, - POCKET_SUB_SPIRALOUT = 3} ; + POCKET_SUB_SPIRALOUT = 3, + POCKET_SUB_CONFORMAL_ZIGZAG = 4, + POCKET_SUB_CONFORMAL_ONEWAY = 5} ; // Tipo di attacco enum { POCKET_LI_NONE = 0, POCKET_LI_GLIDE = 1, @@ -371,7 +373,8 @@ enum { SURFROU_SUB_ZIGZAG = 0, SURFROU_SUB_ONEWAY = 1, SURFROU_SUB_SPIRALIN = 2, SURFROU_SUB_SPIRALOUT = 3, - SURFROU_SUB_CONFORMAL_ZIGZAG = 4} ; + SURFROU_SUB_CONFORMAL_ZIGZAG = 4, + SURFROU_SUB_CONFORMAL_ONEWAY = 5} ; // Tipo di attacco enum { SURFROU_LI_NONE = 0, SURFROU_LI_GLIDE = 1, From f4d5bb773e01d8312b1f6109b21f7f6307fd565a Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 23 Sep 2024 13:01:39 +0200 Subject: [PATCH 5/6] Include : - aggiornamento prototipi. --- EGkSurfFlatRegion.h | 1 + 1 file changed, 1 insertion(+) diff --git a/EGkSurfFlatRegion.h b/EGkSurfFlatRegion.h index 1d0c2ea..6842148 100644 --- a/EGkSurfFlatRegion.h +++ b/EGkSurfFlatRegion.h @@ -55,6 +55,7 @@ class __declspec( novtable) ISurfFlatRegion : public ISurf virtual int GetChunkSimpleClassification( int nChunk, const ISurfFlatRegion& Other, int nOthChunk) const ; // compare only outsides virtual bool GetChunkMaxOffset( int nChunk, double& dOffs) const = 0 ; virtual int GetLoopCount( int nChunk) const = 0 ; + virtual int GetLoopCurveCount( int nChunk, int nLoop) const = 0 ; virtual ICurve* GetLoop( int nChunk, int nLoop) const = 0 ; // nChunk 0-based, nLoop 0-based (1°esterno, successivi interni) virtual bool ApproxLoopWithLines( int nChunk, int nLoop, double dLinTol, double dAngTolDeg, int nType, PolyLine& PL) const = 0 ; virtual bool SetCurveTempProp( int nChunk, int nLoop, int nCrv, int nProp, int nPropInd = 0) = 0 ; From 0deab361c293caa7464f55f0ed88ce1ab1a16be2 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Tue, 1 Oct 2024 15:21:48 +0200 Subject: [PATCH 6/6] Include : - aggiornamento prototipi - aggiornamento mensile codici protezione librerie. --- EInAPI.h | 3 ++- EgtKeyCodes.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/EInAPI.h b/EInAPI.h index 541cd44..fb6051a 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -413,7 +413,7 @@ EIN_EXPORT BOOL __stdcall EgtSetStatus( int nId, int nStat) ; EIN_EXPORT BOOL __stdcall EgtRevertStatus( int nId) ; EIN_EXPORT BOOL __stdcall EgtGetStatus( int nId, int* pnStat) ; EIN_EXPORT BOOL __stdcall EgtGetCalcStatus( int nId, int* pnStat) ; -EIN_EXPORT BOOL __stdcall EgtSetMark( int nId) ; +EIN_EXPORT BOOL __stdcall EgtSetMark( int nId, int nMark) ; EIN_EXPORT BOOL __stdcall EgtResetMark( int nId) ; EIN_EXPORT BOOL __stdcall EgtGetMark( int nId, BOOL* pnMark) ; EIN_EXPORT BOOL __stdcall EgtGetCalcMark( int nId, BOOL* pnMark) ; @@ -551,6 +551,7 @@ EIN_EXPORT BOOL __stdcall EgtCutSurfTmClosedCurve( int nSurfId, int nCurveId, BO EIN_EXPORT BOOL __stdcall EgtSurfTmAdd( int nId1, int nId2, BOOL bTwoColors) ; EIN_EXPORT BOOL __stdcall EgtSurfTmSubtract( int nId1, int nId2, BOOL bTwoColors) ; EIN_EXPORT BOOL __stdcall EgtSurfTmIntersect( int nId1, int nId2, BOOL bTwoColors) ; +EIN_EXPORT BOOL __stdcall EgtSurfTmSetFaceColor( int nId, int nFacet, int nColor) ; EIN_EXPORT BOOL __stdcall EgtSurfTmResetTwoColors( int nId) ; EIN_EXPORT int __stdcall EgtSurfTmSplit( int nId, int nSplitterId, int* pnCount) ; EIN_EXPORT BOOL __stdcall EgtSurfTmCut( int nId, int nCutterId, BOOL bInVsOut, BOOL bSaveOnEq) ; diff --git a/EgtKeyCodes.h b/EgtKeyCodes.h index bb4a0e4..d1d873d 100644 --- a/EgtKeyCodes.h +++ b/EgtKeyCodes.h @@ -25,7 +25,7 @@ //---------------------------------------------------------------------------- const int KEY_BASELIB_PROD = 207 ; -const int KEY_BASELIB_VER = 2609 ; +const int KEY_BASELIB_VER = 2610 ; const int KEY_BASELIB_LEV = 1 ; //----------------------------------------------------------------------------