diff --git a/EXE_NstCreateFlatParts.cpp b/EXE_NstCreateFlatParts.cpp index 8d06027..9101b0c 100644 --- a/EXE_NstCreateFlatParts.cpp +++ b/EXE_NstCreateFlatParts.cpp @@ -89,6 +89,10 @@ ApproxCurveIfNeeded( IGdbIterator* pEnt, double dToler) PolyArc PA ; double dTol = max( dToler, LIN_TOL_FINE) ; bool bOk = pCrv->ApproxWithArcsEx( dTol, ANG_TOL_STD_DEG, LIN_FEA_STD, PA) && pCC->FromPolyArc( PA) ; + // eliminazione di small Z + bOk = bOk && pCC->RemoveSmallDefects( 0.5 * dTol, ANG_TOL_STD_DEG) ; + // merge di archi identici di biarchi + bOk = bOk && pCC->MergeCurves( 0.5 * dTol, ANG_TOL_STD_DEG) ; bOk = bOk && pEnt->GetGDB()->ReplaceGeoObj( pEnt->GetId(), Release( pCC)) ; return bOk ; } diff --git a/EXeDllMain.cpp b/EXeDllMain.cpp index 877bb98..3c7c802 100644 --- a/EXeDllMain.cpp +++ b/EXeDllMain.cpp @@ -36,7 +36,6 @@ const int STR_DIM = 50 ; //----------------------------------------------------------------------------- static HINSTANCE s_hModule = nullptr ; -static char s_szEXeNameVer[STR_DIM] ; //----------------------------------------------------------------------------- BOOL APIENTRY @@ -71,10 +70,12 @@ DllMain( HMODULE hModule, DWORD dwReason, LPVOID lpReserved) const char* GetEXeVersion( void) { - std::string sVer ; - - GetModuleVersion( s_hModule, sVer) ; - sprintf_s( s_szEXeNameVer, STR_DIM, "%s%s", EXE_STR, sVer.c_str()) ; + static char s_szEXeNameVer[STR_DIM] = "" ; + if ( s_szEXeNameVer[0] == '\0') { + std::string sVer ; + GetModuleVersion( s_hModule, sVer) ; + sprintf_s( s_szEXeNameVer, STR_DIM, "%s%s", EXE_STR, sVer.c_str()) ; + } return s_szEXeNameVer ; }