diff --git a/EXE_GdbCreateSurf.cpp b/EXE_GdbCreateSurf.cpp index 56971ba..59ae3e7 100644 --- a/EXE_GdbCreateSurf.cpp +++ b/EXE_GdbCreateSurf.cpp @@ -222,7 +222,7 @@ ExeCreateSurfFrDisk( int nParentId, const Point3d& ptOrig, double dRad, int nRef //------------------------------------------------------------------------------- int -ExeCreateSurfFrFatCurve( int nParentId, int nCrvId, double dRad, bool bSquaredEnds, bool bSquaredMids) +ExeCreateSurfFrFatCurve( int nParentId, int nCrvId, double dRad, bool bSquaredEnds, bool bSquaredMids, double dLinTol) { IGeomDB* pGeomDB = GetCurrGeomDB() ; VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL) @@ -245,7 +245,7 @@ ExeCreateSurfFrFatCurve( int nParentId, int nCrvId, double dRad, bool bSquaredEn // eseguo la trasformazione (viene eseguita solo se i riferimenti sono diversi pCopCrv->LocToLoc( frCrv, frLoc) ; // creo la regione - PtrOwner pSfr( GetSurfFlatRegionFromFatCurve( Release( pCopCrv), dRad, bSquaredEnds, bSquaredMids)) ; + PtrOwner pSfr( GetSurfFlatRegionFromFatCurve( Release( pCopCrv), dRad, bSquaredEnds, bSquaredMids, dLinTol)) ; bOk = bOk && ! IsNull( pSfr) ; // inserisco la superficie nel DB int nNewId = ( bOk ? pGeomDB->AddGeoObj( GDB_ID_NULL, nParentId, Release( pSfr)) : GDB_ID_NULL) ; diff --git a/EXE_GdbModifyCurve.cpp b/EXE_GdbModifyCurve.cpp index bbbe097..81db255 100644 --- a/EXE_GdbModifyCurve.cpp +++ b/EXE_GdbModifyCurve.cpp @@ -102,14 +102,14 @@ ExeOffsetCurve( int nId, double dDist, int nType) //---------------------------------------------------------------------------- int -ExeOffsetCurveAdv( int nId, double dDist, int nType, int* pnCount) +ExeOffsetCurveAdv( int nId, double dDist, int nType, int* pnCount, double dLinTol) { IGeomDB* pGeomDB = GetCurrGeomDB() ; VERIFY_GEOMDB( pGeomDB, GDB_ID_NULL) // recupero la curva const ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ; // eseguo l'offset - OffsetCurve OffsCrv ; + OffsetCurve OffsCrv( dLinTol) ; bool bOk = OffsCrv.Make( pCurve, dDist, nType) ; // salvo le curve di offset int nRefId = nId ; diff --git a/EgtExecutor.rc b/EgtExecutor.rc index c3d5625..133ffaf 100644 Binary files a/EgtExecutor.rc and b/EgtExecutor.rc differ diff --git a/LUA_GdbCreateSurf.cpp b/LUA_GdbCreateSurf.cpp index 18f4830..13db858 100644 --- a/LUA_GdbCreateSurf.cpp +++ b/LUA_GdbCreateSurf.cpp @@ -147,7 +147,7 @@ LuaCreateSurfFlatRegion( lua_State* L) static int LuaCreateSurfFrFatCurve( lua_State* L) { - // 4 o 5 parametri : ParentId, nCrvId, dRad, bSquared [,bSquaredMids] + // 4 o 5 o 6 parametri : ParentId, nCrvId, dRad, bSquared [, bSquaredMids] [, dLinTol] int nParentId ; LuaCheckParam( L, 1, nParentId) int nCrvId ; @@ -158,9 +158,11 @@ LuaCreateSurfFrFatCurve( lua_State* L) LuaCheckParam( L, 4, bSquared) bool bSquaredMids = bSquared ; LuaGetParam( L, 5, bSquaredMids) ; + double dLinTol = 10 * EPS_SMALL ; + LuaGetParam( L, 6, dLinTol) ; LuaClearStack( L) ; // creo una regione piana - int nId = ExeCreateSurfFrFatCurve( nParentId, nCrvId, dRad, bSquared, bSquaredMids) ; + int nId = ExeCreateSurfFrFatCurve( nParentId, nCrvId, dRad, bSquared, bSquaredMids, dLinTol) ; // restituisco il risultato if ( nId != GDB_ID_NULL) LuaSetParam( L, nId) ; diff --git a/LUA_GdbModifyCurve.cpp b/LUA_GdbModifyCurve.cpp index 8e55001..e952639 100644 --- a/LUA_GdbModifyCurve.cpp +++ b/LUA_GdbModifyCurve.cpp @@ -60,17 +60,19 @@ LuaOffsetCurve( lua_State* L) static int LuaOffsetCurveAdv( lua_State* L) { - // 2 o 3 parametri : Id, dDist [, nType] + // 2 o 3 o 4 parametri : Id, dDist [, nType] [, dLinTol] int nId ; LuaCheckParam( L, 1, nId) double dDist ; LuaCheckParam( L, 2, dDist) int nType = ICurve::OFF_FILLET ; LuaGetParam( L, 3, nType) ; + double dLinTol = 10 * EPS_SMALL ; + LuaGetParam( L, 4, dLinTol) ; LuaClearStack( L) ; // offset della curva int nCount ; - int nNewId = ExeOffsetCurveAdv( nId, dDist, nType, &nCount) ; + int nNewId = ExeOffsetCurveAdv( nId, dDist, nType, &nCount, dLinTol) ; if ( nCount >= 0) { LuaSetParam( L, nNewId) ; LuaSetParam( L, nCount) ;