diff --git a/EXE_MachMgr.cpp b/EXE_MachMgr.cpp index 6109c6a..e33ac9a 100644 --- a/EXE_MachMgr.cpp +++ b/EXE_MachMgr.cpp @@ -689,6 +689,16 @@ ExeGetRawPartCenter( int nRawId, Point3d& ptCen) return pMachMgr->GetRawPartCenter( nRawId, ptCen) ; } +//----------------------------------------------------------------------------- +bool +ExeGetRawPartBBox( int nRawId, BBox3d& b3Raw) +{ + IMachMgr* pMachMgr = GetCurrMachMgr() ; + VERIFY_MACHMGR( pMachMgr, false) + // recupero il bounding box del grezzo + return pMachMgr->GetRawPartBBox( nRawId, b3Raw) ; +} + //----------------------------------------------------------------------------- int ExeSplitFlatRawPartWithMachinings( int nRawId, const INTVECTOR& vMchId) diff --git a/EXE_NstPartNesting.cpp b/EXE_NstPartNesting.cpp index 99bd514..c464d0d 100644 --- a/EXE_NstPartNesting.cpp +++ b/EXE_NstPartNesting.cpp @@ -1409,7 +1409,7 @@ MyMovePartCluster( IGeomDB* pGeomDB, const INTVECTOR& vTrueIds, BBox3d b3Cluster } // Se movimento risultante nullo, non faccio alcunché - vtMoveXY = vtDir * ( dLen - EPS_SMALL) ; + vtMoveXY = vtDir * dLen ; if ( vtMoveXY.IsSmall()) return true ; diff --git a/LUA_MachMgr.cpp b/LUA_MachMgr.cpp index 25e8fb9..237e3ef 100644 --- a/LUA_MachMgr.cpp +++ b/LUA_MachMgr.cpp @@ -616,7 +616,7 @@ LuaGetRawPartCenter( lua_State* L) int nRawId ; LuaCheckParam( L, 1, nRawId) LuaClearStack( L) ; - // traslo il grezzo + // recupero il centro del grezzo Point3d ptCen ; bool bOk = ExeGetRawPartCenter( nRawId, ptCen) ; // restituisco il risultato @@ -627,6 +627,25 @@ LuaGetRawPartCenter( lua_State* L) return 1 ; } +//------------------------------------------------------------------------------- +static int +LuaGetRawPartBBox( lua_State* L) +{ + // 1 parametro : nRawId + int nRawId ; + LuaCheckParam( L, 1, nRawId) + LuaClearStack( L) ; + // recupero il bounding box del grezzo + BBox3d b3Raw ; + bool bOk = ExeGetRawPartBBox( nRawId, b3Raw) ; + // restituisco il risultato + if ( bOk) + LuaSetParam( L, b3Raw) ; + else + LuaSetParam( L) ; + return 1 ; +} + //------------------------------------------------------------------------------- static int LuaSplitFlatRawPartWithMachinings( lua_State* L) @@ -3172,6 +3191,7 @@ LuaInstallMachMgr( LuaMgr& luaMgr) bOk = bOk && luaMgr.RegisterFunction( "EgtMoveToCenterRawPart", LuaMoveToCenterRawPart) ; bOk = bOk && luaMgr.RegisterFunction( "EgtMoveRawPart", LuaMoveRawPart) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetRawPartCenter", LuaGetRawPartCenter) ; + bOk = bOk && luaMgr.RegisterFunction( "EgtGetRawPartBBox", LuaGetRawPartBBox) ; bOk = bOk && luaMgr.RegisterFunction( "EgtSplitFlatRawPartWithMachinings", LuaSplitFlatRawPartWithMachinings) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetPartInRawPartCount", LuaGetPartInRawPartCount) ; bOk = bOk && luaMgr.RegisterFunction( "EgtGetFirstPartInRawPart", LuaGetFirstPartInRawPart) ;