diff --git a/EXE_GdbGetCurve.cpp b/EXE_GdbGetCurve.cpp index f94086c..b05d061 100644 --- a/EXE_GdbGetCurve.cpp +++ b/EXE_GdbGetCurve.cpp @@ -163,7 +163,7 @@ ExeCurveIsFlat( int nId, Plane3d& Plane, bool bUseExtrusion, double dToler) return false ; // recupero la curva ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ; - // ne verifico la planarità + // ne verifico la planarit� return ( pCurve != nullptr && pCurve->IsFlat( Plane, bUseExtrusion, dToler)) ; } @@ -293,7 +293,7 @@ ExeCurveNearestExtremityToPoint( int nId, const Point3d& ptP, bool& bStart) VERIFY_GEOMDB( pGeomDB, false) // recupero la curva ICurve* pCurve = GetCurve( pGeomDB->GetGeoObj( nId)) ; - // recupero quale estremo è più vicino al punto + // recupero quale estremo � pi� vicino al punto return ( pCurve != nullptr && pCurve->GetNearestExtremityToPoint( ptP, bStart)) ; } @@ -369,7 +369,7 @@ ExeCurveMinAreaRectangleXY( int nId, int nRefId, Frame3d& frRect, double& dDimX, PL.LocToLoc( frCrv, pGeomDB->GetGridFrame()) ; else if ( bOk && nRefId != nId) { Frame3d frDest ; - // nRefId può essere un gruppo o una entità + // nRefId pu� essere un gruppo o una entit� if ( pGeomDB->GetGroupGlobFrame( nRefId, frDest) || pGeomDB->GetGlobFrame( nRefId, frDest)) PL.LocToLoc( frCrv, frDest) ; @@ -680,6 +680,7 @@ ExeCurveCompoNormVersor( int nId, int nSimpCrv, int nRefId, Vector3d& vtNorm) return TransformVector( pGeomDB, nId, nRefId, vtNorm) ; } + //---------------------------------------------------------------------------- int ExeShowCurveBezierControlPoints( int nCrvId, int* pnCount) @@ -740,17 +741,13 @@ ExeShowCurveBezierControlPoints( int nCrvId, int* pnCount) //else // pGeoPt->Set( pCrvBezier->GetControlPoint( i) * pCrvBezier->GetControlWeight( i)) ; pGeoPt->Set( pCrvBezier->GetControlPoint( i)) ; - int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParent, pGeoPt) ; - if ( nFirstId == GDB_ID_NULL) - nFirstId = nId ; - if ( nId != GDB_ID_NULL) - ++nCount ; - } - // restituisco i risultati - if ( pnCount != nullptr) - *pnCount = nCount ; - return nFirstId ; + else + pGeoPt->Set( pCrvBezier->GetControlPoint( i) * pCrvBezier->GetControlWeight( i)) ; + int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, nParent, pGeoPt) ; + if ( nFirstId == GDB_ID_NULL) + nFirstId = nId ; + if ( nId != GDB_ID_NULL) + ++nCount ; } - else - return GDB_ID_NULL ; + return GDB_ID_NULL ; } diff --git a/EXE_GdbModifySurf.cpp b/EXE_GdbModifySurf.cpp index f6df9d2..41265a3 100644 --- a/EXE_GdbModifySurf.cpp +++ b/EXE_GdbModifySurf.cpp @@ -1214,3 +1214,24 @@ ExeSurfBzTrim( int nId, int nCutterId) } return bOk ; } + +//---------------------------------------------------------------------------- +bool +ExeSurfTmSetSmoothAng( int nId, double dAngDeg) +{ + IGeomDB* pGeomDB = GetCurrGeomDB() ; + VERIFY_GEOMDB( pGeomDB, false) + // recupero la superficie trimseh da trimmare + ISurfTriMesh* pSrfTm = GetSurfTriMesh( pGeomDB->GetGeoObj( nId)) ; + if ( pSrfTm == nullptr) + return false ; + pSrfTm->SetSmoothAngle( dAngDeg) ; + ExeSetModified() ; + // se richiesto, salvo il comando Lua equivalente + if ( IsCmdLog()) { + string sLua = "EgtSurfTmSetSmoothAng(" + ToString( nId) + "," + + ToString( dAngDeg) ; + LOG_INFO( GetCmdLogger(), sLua.c_str()) ; + } + return true ; +} diff --git a/LUA_GdbGetCurve.cpp b/LUA_GdbGetCurve.cpp index 78650fb..8f0b7b0 100644 --- a/LUA_GdbGetCurve.cpp +++ b/LUA_GdbGetCurve.cpp @@ -142,7 +142,7 @@ LuaCurveIsACircle( lua_State* L) double dToler = EPS_SMALL ; LuaGetParam( L, 2, dToler) ; LuaClearStack( L) ; - // verifico se curva è equivalente ad una circonferenza + // verifico se curva � equivalente ad una circonferenza Point3d ptCen ; Vector3d vtN ; double dRad ; @@ -166,7 +166,7 @@ LuaCurveIsARectangle( lua_State* L) double dToler = EPS_SMALL ; LuaGetParam( L, 2, dToler) ; LuaClearStack( L) ; - // verifico se curva è equivalente ad un rettangolo + // verifico se curva � equivalente ad un rettangolo Point3d ptP ; Vector3d vtL1 ; Vector3d vtL2 ; @@ -188,7 +188,7 @@ LuaCurveIsATrapezoid( lua_State* L) double dToler = EPS_SMALL ; LuaGetParam( L, 2, dToler) ; LuaClearStack( L) ; - // verifico se curva è equivalente ad un trapezio + // verifico se curva � equivalente ad un trapezio Point3d ptP ; Vector3d vtB1 ; Vector3d vtL1 ; @@ -538,7 +538,7 @@ LuaShowCurveBezierControlPoints( lua_State* L) // 1 parametro : nCrvId int nCrvId ; LuaCheckParam( L, 1, nCrvId) - LuaClearStack( L) ; + LuaClearStack( L) ; int nCount = 0 ; int nId = ExeShowCurveBezierControlPoints( nCrvId, &nCount) ; // restituisco il risultato diff --git a/LUA_GdbModifySurf.cpp b/LUA_GdbModifySurf.cpp index 58e046d..34802cd 100644 --- a/LUA_GdbModifySurf.cpp +++ b/LUA_GdbModifySurf.cpp @@ -582,6 +582,22 @@ LuaSurfBzTrim( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaSurfTmSetSmoothAng( lua_State* L) +{ + // 2 parametri : nId, nCutterId + int nId ; + LuaCheckParam( L, 1, nId) + double dAngDeg ; + LuaCheckParam( L, 2, dAngDeg) + LuaClearStack( L) ; + // aggiorno lo smooth angle della superficie + bool bOk = ExeSurfTmSetSmoothAng( nId, dAngDeg) ; + LuaSetParam( L, bOk) ; + return 1 ; +} + //------------------------------------------------------------------------------- bool LuaInstallGdbModifySurf( LuaMgr& luaMgr) @@ -616,5 +632,6 @@ LuaInstallGdbModifySurf( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmSetShowEdges", LuaSurfTmSetShowEdges) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmGetShowEdges", LuaSurfTmGetShowEdges) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSurfBzTrim", LuaSurfBzTrim) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtSurfTmSetSmoothAng", LuaSurfTmSetSmoothAng) ; return bOk ; }