diff --git a/EXE_GdbGetPocketing.cpp b/EXE_GdbGetPocketing.cpp index 74f9642..87cf099 100644 --- a/EXE_GdbGetPocketing.cpp +++ b/EXE_GdbGetPocketing.cpp @@ -59,7 +59,7 @@ ExePocketing( const int nId, double dRad, double dStep, double dAngle, int nType // eseguo Pocketing ICRVCOMPOPOVECTOR vCrvCompoRes ; - bool bOk = CalcPocketing( pSfr, dRad, 0, dStep, dAngle, nType, bSmooth, vCrvCompoRes) ; + bool bOk = CalcPocketing( pSfr, dRad, 0, dStep, dAngle, nType, bSmooth, nullptr, vCrvCompoRes) ; nFirstId = GDB_ID_NULL ; nCrvCount = int( vCrvCompoRes.size()) ; if ( bOk && nCrvCount > 0) { diff --git a/EXE_GdbGetSurf.cpp b/EXE_GdbGetSurf.cpp index b968c6c..9c4a813 100644 --- a/EXE_GdbGetSurf.cpp +++ b/EXE_GdbGetSurf.cpp @@ -986,6 +986,8 @@ MyGetSurfTmParSilhouettes( const INTVECTOR& vIds, const Point3d& ptOn, const Vec PtrOwner pCrvCompo( CreateCurveComposite()) ; if ( ! pCrvCompo->FromPolyLine( vPL[i])) return GDB_ID_NULL ; + // assegno direzione di estrusione + pCrvCompo->SetExtrusion( vtNL) ; // la porto nel riferimento destinazione pCrvCompo->LocToLoc( frSurf, frDest) ; // la inserisco nel DB geometrico diff --git a/EXE_GdbModifySurf.cpp b/EXE_GdbModifySurf.cpp index 41265a3..4e4d3cf 100644 --- a/EXE_GdbModifySurf.cpp +++ b/EXE_GdbModifySurf.cpp @@ -102,6 +102,33 @@ MyExplodeSurfTriMesh( int nId, int& nCount) // restituisco risultati return nFirstId ; } + // recupero il numero di gusci + int nShells = pStm->GetShellCount() ; + // se ci sono più gusci, separo questi + if ( nShells > 1) { + int nFirstId = GDB_ID_NULL ; + nCount = 0 ; + for ( int i = 0 ; i < nShells ; ++ i) { + ISurfTriMesh* pFac = pStm->CloneShell( i) ; + if ( pFac == nullptr) + continue ; + // inserisco la superficie nello stesso gruppo e nello stesso posto del GeomDB + int nNewId = pGeomDB->InsertGeoObj( GDB_ID_NULL, nId, GDB_BEFORE, pFac) ; + if ( nNewId == GDB_ID_NULL) + return GDB_ID_NULL ; + // copio gli attributi + if ( ! pGeomDB->CopyAttributes( nId, nNewId)) + return GDB_ID_NULL ; + // aggiorno contatori + if ( nFirstId == GDB_ID_NULL) + nFirstId = nNewId ; + ++ nCount ; + } + // elimino la superficie originale + pGeomDB->Erase( nId) ; + // restituisco risultati + return nFirstId ; + } // recupero il numero di facce int nFacets = pStm->GetFacetCount() ; // se ci sono più facce, separo queste diff --git a/EXE_MachMgr.cpp b/EXE_MachMgr.cpp index 1a2c6cf..febf6b1 100644 --- a/EXE_MachMgr.cpp +++ b/EXE_MachMgr.cpp @@ -21,9 +21,11 @@ #include "/EgtDev/Include/EXeExecutor.h" #include "/EgtDev/Include/EXeConst.h" #include "/EgtDev/Include/EGkStringUtils3d.h" +#include "/EgtDev/Include/EMkToolConst.h" #include "/EgtDev/Include/EMkOperationConst.h" #include "/EgtDev/Include/EMkSimuGenConst.h" #include "/EgtDev/Include/EGnFileUtils.h" +#include "/EgtDev/Include/EGnEgtUUID.h" #include "/EgtDev/Include/EgtStringConverter.h" #include "/EgtDev/Include/EgtPointerOwner.h" @@ -1472,6 +1474,21 @@ ExeTdbGetCurrToolThLength( double& dThLen) return pMachMgr->TdbGetCurrToolThLength( dThLen) ; } +//----------------------------------------------------------------------------- +bool +ExeTdbCurrToolIsStandardDraw( bool& bStandard) +{ + IMachMgr* pMachMgr = GetCurrMachMgr() ; + VERIFY_MACHMGR( pMachMgr, false) + // recupero il nome del disegno dell'utensile + string sDraw ; + if ( ! pMachMgr->TdbGetCurrToolParam( TPA_DRAW, sDraw)) + return false ; + // verifico il tipo + bStandard = IsUUID( GetFileTitleEgt( sDraw)) ; + return true ; +} + //----------------------------------------------------------------------------- int ExeTdbCurrToolDraw( int nGenCtx, int nToolCtx) diff --git a/EgtExecutor.rc b/EgtExecutor.rc index 0968823..c44c7be 100644 Binary files a/EgtExecutor.rc and b/EgtExecutor.rc differ diff --git a/LUA_MachMgr.cpp b/LUA_MachMgr.cpp index 6091b1a..ea3db56 100644 --- a/LUA_MachMgr.cpp +++ b/LUA_MachMgr.cpp @@ -1629,6 +1629,22 @@ LuaTdbGetCurrToolThLength( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaTdbIsCurrToolStandardDraw( lua_State* L) +{ + // nessun parametro + LuaClearStack( L) ; + // recupero lo stato + bool bStandard ; + bool bOk = ExeTdbCurrToolIsStandardDraw( bStandard) ; + if ( bOk) + LuaSetParam( L, bStandard) ; + else + LuaSetParam( L) ; + return 1 ; +} + //------------------------------------------------------------------------------- static int LuaTdbGetCurrToolDraw( lua_State* L) @@ -4214,6 +4230,7 @@ LuaInstallMachMgr( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtTdbGetCurrToolMaxDepth", LuaTdbGetCurrToolMaxDepth) ; bOk = bOk && luaMgr.RegisterFunction( "EgtTdbGetCurrToolThDiam", LuaTdbGetCurrToolThDiam) ; bOk = bOk && luaMgr.RegisterFunction( "EgtTdbGetCurrToolThLength", LuaTdbGetCurrToolThLength) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtTdbIsCurrToolStandardDraw", LuaTdbIsCurrToolStandardDraw) ; bOk = bOk && luaMgr.RegisterFunction( "EgtTdbGetCurrToolDraw", LuaTdbGetCurrToolDraw) ; bOk = bOk && luaMgr.RegisterFunction( "EgtTdbReload", LuaTdbReload) ; bOk = bOk && luaMgr.RegisterFunction( "EgtTdbSave", LuaTdbSave) ;