diff --git a/MachMgrRawParts.cpp b/MachMgrRawParts.cpp index a015c25..2cc14ac 100644 --- a/MachMgrRawParts.cpp +++ b/MachMgrRawParts.cpp @@ -376,6 +376,10 @@ MachMgr::AddRawPart( int nSurfId, Color cCol) int nRawGroupId = GetCurrRawGroupId() ; if ( nRawGroupId == GDB_ID_NULL) return GDB_ID_NULL ; + // verifico che la superficie sia chiusa + const ISurf* pSurf = GetSurf( m_pGeomDB->GetGeoObj( nSurfId)) ; + if ( pSurf == nullptr || ! pSurf->IsClosed()) + return GDB_ID_NULL ; // recupero l'ingombro della superficie in globale BBox3d b3Surf ; if ( ! m_pGeomDB->GetGlobalBBox( nSurfId, b3Surf)) @@ -407,7 +411,7 @@ MachMgr::AddRawPart( int nSurfId, Color cCol) if ( IsNull( pCrvCompo)) return GDB_ID_NULL ; // recupero la superficie trimesh - ISurfTriMesh* pStm = GetSurfTriMesh( m_pGeomDB->GetGeoObj( nId)) ; + const ISurfTriMesh* pStm = GetSurfTriMesh( m_pGeomDB->GetGeoObj( nId)) ; if ( pStm == nullptr) return GDB_ID_NULL ; // recupero l'ingombro della superficie in locale