X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_2smeshpy.cxx;h=e8bc862a90dd119667e2afc63ddeaf5a8254f506;hp=e6a75758389dc35bd44de7de90fc6a5c63fa449c;hb=5d0b75d9d1a9935ec419e820e6dde45a665dd978;hpb=6883e45c6b4bf088fa71d0299d3a35383f283fbe diff --git a/src/SMESH_I/SMESH_2smeshpy.cxx b/src/SMESH_I/SMESH_2smeshpy.cxx index e6a757583..e8bc862a9 100644 --- a/src/SMESH_I/SMESH_2smeshpy.cxx +++ b/src/SMESH_I/SMESH_2smeshpy.cxx @@ -292,6 +292,8 @@ namespace { // - FT_ConnectedElements = 39 // v 7.6.0: FT_Undefined == 47, new items: // - FT_BelongToMeshGroup = 22 + // v 8.1.0: FT_Undefined == 48, new items: + // - FT_NodeConnectivityNumber= 22 // // It's necessary to continue recording this history and to fill // undef2newItems (see below) accordingly. @@ -313,6 +315,7 @@ namespace { undef2newItems[ 45 ].push_back( 36 ); undef2newItems[ 46 ].push_back( 39 ); undef2newItems[ 47 ].push_back( 22 ); + undef2newItems[ 48 ].push_back( 22 ); ASSERT( undef2newItems.rbegin()->first == SMESH::FT_Undefined ); } @@ -683,6 +686,7 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand _AString indent = aCommand->GetIndentation(); _AString tryStr = indent + "try:"; _AString newCmd = indent + tab + ( aCommand->GetString().ToCString() + indent.Length() ); + _AString pasCmd = indent + tab + "pass"; // to keep valid if newCmd is erased _AString excStr = indent + "except:"; _AString msgStr = indent + "\tprint '"; msgStr += method + "() failed. Invalid file name?'"; @@ -690,6 +694,7 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand aCommand->Clear(); aCommand->GetString() = newCmd; aCommand->SetOrderNb( ++myNbCommands ); + myCommands.push_back( new _pyCommand( pasCmd, ++myNbCommands )); myCommands.push_back( new _pyCommand( excStr, ++myNbCommands )); myCommands.push_back( new _pyCommand( msgStr, ++myNbCommands )); } @@ -903,7 +908,7 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand Threshold = SMESH + types[ iGeom ]; #ifdef _DEBUG_ // is types complete? (compilation failure mains that enum GeometryType changed) - int _assert[( sizeof(types) / sizeof(const char*) == nbTypes ) ? 1 : -1 ]; _assert[0]=1; + int _asrt[( sizeof(types) / sizeof(const char*) == nbTypes ) ? 2 : -1 ]; _asrt[0]=_asrt[1]; #endif } if (Type == "SMESH.FT_EntityType") @@ -922,8 +927,8 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand if ( -1 < iGeom && iGeom < nbTypes ) Threshold = SMESH + types[ iGeom ]; #ifdef _DEBUG_ - // is types complete? (compilation failure mains that enum EntityType changed) - int _assert[( sizeof(types) / sizeof(const char*) == nbTypes ) ? 1 : -1 ]; _assert[0]=1; + // is 'types' complete? (compilation failure mains that enum EntityType changed) + int _asrt[( sizeof(types) / sizeof(const char*) == nbTypes ) ? 2 : -1 ]; _asrt[0]=_asrt[1]; #endif } } @@ -1564,7 +1569,7 @@ void _pyGen::CheckObjectIsReCreated( Handle(_pyObject)& theObj ) const bool isHyp = theObj->IsKind( STANDARD_TYPE( _pyHypothesis )); Handle(_pyObject) existing; if( isHyp ) - existing = Handle(_pyObject)::DownCast( FindHyp( theObj->GetID() ) ); + existing = FindHyp( theObj->GetID() ); else existing = FindObject( theObj->GetID() ); if ( !existing.IsNull() && existing != theObj ) @@ -1622,9 +1627,10 @@ Handle(_pyObject) _pyGen::FindObject( const _pyID& theObjID ) const return id_obj->second; } { - map< _pyID, Handle(_pyMesh) >::const_iterator id_obj = myMeshes.find( theObjID ); + _pyGen* me = const_cast< _pyGen* >( this ); + map< _pyID, Handle(_pyMesh) >::iterator id_obj = me->myMeshes.find( theObjID ); if ( id_obj != myMeshes.end() ) - return Handle(_pyObject)::DownCast( id_obj->second ); + return id_obj->second; } // { // map< _pyID, Handle(_pyMeshEditor) >::const_iterator id_obj = myMeshEditors.find( theObjID ); @@ -2044,7 +2050,7 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand ) { addCmd = *cmd; cmd = addHypCmds.erase( cmd ); - if ( !theGen->IsToKeepAllCommands() && CanClear() ) { + if ( !theGen->IsToKeepAllCommands() /*&& CanClear()*/ ) { addCmd->Clear(); theCommand->Clear(); } @@ -3470,28 +3476,31 @@ bool _pySegmentLengthAroundVertexHyp::Addition2Creation( const Handle(_pyCommand _pyID vertex = theCmd->GetArg( 1 ); - // the problem here is that segment algo will not be found + // the problem here is that segment algo can be not found // by pyHypothesis::Addition2Creation() for , so we try to find // geometry where segment algorithm is assigned - Handle(_pyHypothesis) algo; _pyID geom = vertex; + Handle(_pyHypothesis) algo = theGen->FindAlgo( geom, theMeshID, this ); while ( algo.IsNull() && !geom.IsEmpty()) { // try to find geom as a father of geom = FatherID( geom ); algo = theGen->FindAlgo( geom, theMeshID, this ); } - if ( algo.IsNull() ) + if ( algo.IsNull() || geom.IsEmpty() ) return false; // also possible to find geom as brother of veretex... + // set geom instead of vertex theCmd->SetArg( 1, geom ); - // set vertex as a second arg - if ( myCurCrMethod->myArgs.size() < 1) setCreationArg( 1, "1" ); // :( - setCreationArg( 2, vertex ); - // mesh.AddHypothesis(vertex, SegmentLengthAroundVertex) --> - // theMeshID.LengthNearVertex( length, vertex ) - return _pyHypothesis::Addition2Creation( theCmd, theMeshID ); + // SegmentLengthAroundVertex = Regular_1D.LengthNearVertex( length ) + if ( _pyHypothesis::Addition2Creation( theCmd, theMeshID )) + { + // set vertex as a second arg + theCmd->SetArg( 2, vertex ); + + return true; + } } return false; }