X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_2smeshpy.cxx;h=aed61ba95ee2c267a97bd70cdadc7996e7f0d6bd;hp=876365b0c6e16a769f742dc1fca594a1f353bb39;hb=refs%2Ftags%2FV9_0_0;hpb=30ce546b0c5099ad1112929e2db94810e683e54b diff --git a/src/SMESH_I/SMESH_2smeshpy.cxx b/src/SMESH_I/SMESH_2smeshpy.cxx index 876365b0c..aed61ba95 100644 --- a/src/SMESH_I/SMESH_2smeshpy.cxx +++ b/src/SMESH_I/SMESH_2smeshpy.cxx @@ -50,29 +50,29 @@ #include #endif -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyObject ,Standard_Transient); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyCommand ,Standard_Transient); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyHypothesisReader,Standard_Transient); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyGen ,_pyObject); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyMesh ,_pyObject); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pySubMesh ,_pyObject); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyMeshEditor ,_pyObject); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyHypothesis ,_pyObject); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pySelfEraser ,_pyObject); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyGroup ,_pyObject); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyFilter ,_pyObject); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyAlgorithm ,_pyHypothesis); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyComplexParamHypo,_pyHypothesis); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyNumberOfSegmentsHyp,_pyHypothesis); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pyLayerDistributionHypo,_pyHypothesis); -OCCT_IMPLEMENT_STANDARD_RTTIEXT(_pySegmentLengthAroundVertexHyp,_pyHypothesis); +IMPLEMENT_STANDARD_RTTIEXT(_pyObject ,Standard_Transient); +IMPLEMENT_STANDARD_RTTIEXT(_pyCommand ,Standard_Transient); +IMPLEMENT_STANDARD_RTTIEXT(_pyHypothesisReader,Standard_Transient); +IMPLEMENT_STANDARD_RTTIEXT(_pyGen ,_pyObject); +IMPLEMENT_STANDARD_RTTIEXT(_pyMesh ,_pyObject); +IMPLEMENT_STANDARD_RTTIEXT(_pySubMesh ,_pyObject); +IMPLEMENT_STANDARD_RTTIEXT(_pyMeshEditor ,_pyObject); +IMPLEMENT_STANDARD_RTTIEXT(_pyHypothesis ,_pyObject); +IMPLEMENT_STANDARD_RTTIEXT(_pySelfEraser ,_pyObject); +IMPLEMENT_STANDARD_RTTIEXT(_pyGroup ,_pyObject); +IMPLEMENT_STANDARD_RTTIEXT(_pyFilter ,_pyObject); +IMPLEMENT_STANDARD_RTTIEXT(_pyAlgorithm ,_pyHypothesis); +IMPLEMENT_STANDARD_RTTIEXT(_pyComplexParamHypo,_pyHypothesis); +IMPLEMENT_STANDARD_RTTIEXT(_pyNumberOfSegmentsHyp,_pyHypothesis); +IMPLEMENT_STANDARD_RTTIEXT(_pyLayerDistributionHypo,_pyHypothesis); +IMPLEMENT_STANDARD_RTTIEXT(_pySegmentLengthAroundVertexHyp,_pyHypothesis); using namespace std; using SMESH::TPythonDump; /*! * \brief Container of commands into which the initial script is split. - * It also contains data coresponding to SMESH_Gen contents + * It also contains data corresponding to SMESH_Gen contents */ static Handle(_pyGen) theGen; @@ -185,7 +185,7 @@ namespace { _AString comment; _pyID obj = cmd->GetObject(); - if ( obj.Search( "print " ) == 1 ) + if ( obj.Search( "print(" ) == 1 ) return; // print statement if ( !obj.IsEmpty() && obj.Value( obj.Length() ) == ')' ) @@ -294,6 +294,8 @@ namespace { // - FT_BelongToMeshGroup = 22 // v 8.1.0: FT_Undefined == 48, new items: // - FT_NodeConnectivityNumber= 22 + // v 8.5.0: FT_Undefined == 49, new items: + // - FT_Deflection2D = 22 // // It's necessary to continue recording this history and to fill // undef2newItems (see below) accordingly. @@ -316,6 +318,7 @@ namespace { undef2newItems[ 46 ].push_back( 39 ); undef2newItems[ 47 ].push_back( 22 ); undef2newItems[ 48 ].push_back( 22 ); + undef2newItems[ 49 ].push_back( 22 ); ASSERT( undef2newItems.rbegin()->first == SMESH::FT_Undefined ); } @@ -440,6 +443,18 @@ namespace { } } } + + bool _FilterArg( const _AString& theArg ) + { + static std::list<_AString> filteredArgs; + static bool initialized = false; + if ( !initialized ) { + initialized = true; + filteredArgs.push_back( "SMESH.MED_V2_1" ); + filteredArgs.push_back( "SMESH.MED_V2_2" ); + } + return std::find( filteredArgs.begin(), filteredArgs.end(), theArg ) != filteredArgs.end(); + } } //================================================================================ @@ -461,7 +476,6 @@ SMESH_2smeshpy::ConvertScript(std::list< TCollection_AsciiString >& theScrip Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod, Resource_DataMapOfAsciiStringAsciiString& theObjectNames, std::set< TCollection_AsciiString >& theRemovedObjIDs, - SALOMEDS::Study_ptr& theStudy, const bool theToKeepAllCommands) { std::list< TCollection_AsciiString >::iterator lineIt; @@ -484,7 +498,6 @@ SMESH_2smeshpy::ConvertScript(std::list< TCollection_AsciiString >& theScrip theGen = new _pyGen( theEntry2AccessorMethod, theObjectNames, theRemovedObjIDs, - theStudy, theToKeepAllCommands ); for ( lineIt = theScriptLines.begin(); lineIt != theScriptLines.end(); ++lineIt ) @@ -498,7 +511,7 @@ SMESH_2smeshpy::ConvertScript(std::list< TCollection_AsciiString >& theScrip MESSAGE_BEGIN ( std::endl << " ######## RESULT ######## " << std::endl<< std::endl ); #endif - // clean commmands of removed objects depending on myIsPublished flag + // clean commands of removed objects depending on myIsPublished flag theGen->ClearCommands(); // reorder commands after conversion @@ -516,7 +529,6 @@ SMESH_2smeshpy::ConvertScript(std::list< TCollection_AsciiString >& theScrip set<_pyID> createdObjects; createdObjects.insert( "smeshBuilder" ); createdObjects.insert( "smesh" ); - createdObjects.insert( "theStudy" ); for ( cmd = theGen->GetCommands().begin(); cmd != theGen->GetCommands().end(); ++cmd ) { #ifdef DUMP_CONVERSION @@ -544,7 +556,6 @@ SMESH_2smeshpy::ConvertScript(std::list< TCollection_AsciiString >& theScrip _pyGen::_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod, Resource_DataMapOfAsciiStringAsciiString& theObjectNames, std::set< TCollection_AsciiString >& theRemovedObjIDs, - SALOMEDS::Study_ptr& theStudy, const bool theToKeepAllCommands) : _pyObject( new _pyCommand( "", 0 )), myNbCommands( 0 ), @@ -553,7 +564,6 @@ _pyGen::_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod myRemovedObjIDs( theRemovedObjIDs ), myNbFilters( 0 ), myToKeepAllCommands( theToKeepAllCommands ), - myStudy( SALOMEDS::Study::_duplicate( theStudy )), myGeomIDNb(0), myGeomIDIndex(-1) { // make that GetID() to return TPythonDump::SMESHGenName() @@ -562,11 +572,11 @@ _pyGen::_pyGen(Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod GetCreationCmd()->GetString() += "="; // Find 1st digit of study entry by which a GEOM object differs from a SMESH object - if ( !theObjectNames.IsEmpty() && !CORBA::is_nil( theStudy )) + if ( !theObjectNames.IsEmpty() ) { // find a GEOM entry _pyID geomID; - SALOMEDS::SComponent_wrap geomComp = theStudy->FindComponent("GEOM"); + SALOMEDS::SComponent_wrap geomComp = SMESH_Gen_i::getStudyServant()->FindComponent("GEOM"); if ( geomComp->_is_nil() ) return; CORBA::String_var entry = geomComp->GetID(); geomID = entry.in(); @@ -603,7 +613,7 @@ const char* _pyGen::AccessorMethod() const //================================================================================ /*! * \brief Convert a command using a specific converter - * \param theCommand - the command to convert + * \param theCommand - the command to convert */ //================================================================================ @@ -688,7 +698,7 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand _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?'"; + _AString msgStr = indent + "\tprint('"; msgStr += method + "() failed. Invalid file name?')"; myCommands.insert( --myCommands.end(), new _pyCommand( tryStr, myNbCommands )); aCommand->Clear(); @@ -740,15 +750,16 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand else if ( method == "MakeBoundaryElements") meshID = aCommand->GetResultValue(2); - if ( method.Search("MakeGroups") != -1 || - method == "ExtrusionAlongPathX" || - method == "ExtrusionAlongPathObjX" || - method == "DoubleNodeGroupNew" || - method == "DoubleNodeGroupsNew" || - method == "DoubleNodeElemGroupNew" || - method == "DoubleNodeElemGroupsNew"|| - method == "DoubleNodeElemGroup2New"|| - method == "DoubleNodeElemGroups2New" + if ( method.Search("MakeGroups") != -1 || + method == "ExtrusionAlongPathX" || + method == "ExtrusionAlongPathObjX" || + method == "DoubleNodeGroupNew" || + method == "DoubleNodeGroupsNew" || + method == "DoubleNodeElemGroupNew" || + method == "DoubleNodeElemGroupsNew" || + method == "DoubleNodeElemGroup2New" || + method == "DoubleNodeElemGroups2New" || + method == "AffectedElemGroupsInRegion" ) groups = aCommand->GetResultValue(); else if ( method == "MakeBoundaryMesh" ) @@ -857,8 +868,8 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand aCommand->GetString() += tmpCmd.GetString(); } // IMP issue 0021014 - // set GetCriterion(elementType,CritType,Compare,Treshold,UnaryOp,BinaryOp,Tolerance) - // 1 2 3 4 5 6 7 + // set GetCriterion(elementType,CritType,Compare,Threshold,UnaryOp,BinaryOp,Tolerance) + // 1 2 3 4 5 6 7 // instead of "SMESH.Filter.Criterion( // Type,Compare,Threshold,ThresholdStr,ThresholdID,UnaryOp,BinaryOp,Tolerance,TypeOfElement,Precision) // 1 2 3 4 5 6 7 8 9 10 @@ -966,7 +977,7 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand //================================================================================ /*! * \brief Convert the command or remember it for later conversion - * \param theCommand - The python command calling a method of SMESH_Gen + * \param theCommand - The python command calling a method of SMESH_Gen */ //================================================================================ @@ -1101,7 +1112,7 @@ void _pyGen::Process( const Handle(_pyCommand)& theCommand ) static TStringSet smeshpyMethods; if ( smeshpyMethods.empty() ) { const char * names[] = - { "SetEmbeddedMode","IsEmbeddedMode","SetCurrentStudy","GetCurrentStudy", + { "SetEmbeddedMode","IsEmbeddedMode","UpdateStudy","GetStudy", "GetPattern","GetSubShapesId", "" }; // <- mark of array end smeshpyMethods.Insert( names ); @@ -1212,7 +1223,7 @@ void _pyGen::PlaceSubmeshAfterItsCreation( Handle(_pyCommand) theCmdUsingSubmesh //================================================================================ /*! - * \brief Clean commmands of removed objects depending on myIsPublished flag + * \brief Clean commands of removed objects depending on myIsPublished flag */ //================================================================================ @@ -1275,8 +1286,8 @@ void _pyGen::Free() //================================================================================ /*! * \brief Add access method to mesh that is an argument - * \param theCmd - command to add access method - * \retval bool - true if added + * \param theCmd - command to add access method + * \retval bool - true if added */ //================================================================================ @@ -1294,8 +1305,8 @@ bool _pyGen::AddMeshAccessorMethod( Handle(_pyCommand) theCmd ) const //================================================================================ /*! * \brief Add access method to algo that is an object or an argument - * \param theCmd - command to add access method - * \retval bool - true if added + * \param theCmd - command to add access method + * \retval bool - true if added */ //================================================================================ @@ -1316,8 +1327,8 @@ bool _pyGen::AddAlgoAccessorMethod( Handle(_pyCommand) theCmd ) const //================================================================================ /*! * \brief Find hypothesis by ID (entry) - * \param theHypID - The hypothesis ID - * \retval Handle(_pyHypothesis) - The found hypothesis + * \param theHypID - The hypothesis ID + * \retval Handle(_pyHypothesis) - The found hypothesis */ //================================================================================ @@ -1334,10 +1345,10 @@ Handle(_pyHypothesis) _pyGen::FindHyp( const _pyID& theHypID ) //================================================================================ /*! * \brief Find algorithm able to create a hypothesis - * \param theGeom - The shape ID the algorithm was created on - * \param theMesh - The mesh ID that created the algorithm - * \param theHypothesis - The hypothesis the algorithm should be able to create - * \retval Handle(_pyHypothesis) - The found algo + * \param theGeom - The shape ID the algorithm was created on + * \param theMesh - The mesh ID that created the algorithm + * \param theHypothesis - The hypothesis the algorithm should be able to create + * \retval Handle(_pyHypothesis) - The found algo */ //================================================================================ @@ -1358,8 +1369,8 @@ Handle(_pyHypothesis) _pyGen::FindAlgo( const _pyID& theGeom, const _pyID& theMe //================================================================================ /*! * \brief Find subMesh by ID (entry) - * \param theSubMeshID - The subMesh ID - * \retval Handle(_pySubMesh) - The found subMesh + * \param theSubMeshID - The subMesh ID + * \retval Handle(_pySubMesh) - The found subMesh */ //================================================================================ @@ -1375,8 +1386,8 @@ Handle(_pySubMesh) _pyGen::FindSubMesh( const _pyID& theSubMeshID ) //================================================================================ /*! * \brief Change order of commands in the script - * \param theCmd1 - One command - * \param theCmd2 - Another command + * \param theCmd1 - One command + * \param theCmd2 - Another command */ //================================================================================ @@ -1393,15 +1404,15 @@ void _pyGen::ExchangeCommands( Handle(_pyCommand) theCmd1, Handle(_pyCommand) th int nb1 = theCmd1->GetOrderNb(); theCmd1->SetOrderNb( theCmd2->GetOrderNb() ); theCmd2->SetOrderNb( nb1 ); -// cout << "BECOME " << theCmd1->GetOrderNb() << "\t" << theCmd1->GetString() << endl -// << "BECOME " << theCmd2->GetOrderNb() << "\t" << theCmd2->GetString() << endl << endl; + // cout << "BECOME " << theCmd1->GetOrderNb() << "\t" << theCmd1->GetString() << endl + // << "BECOME " << theCmd2->GetOrderNb() << "\t" << theCmd2->GetString() << endl << endl; } //================================================================================ /*! * \brief Set one command after the other - * \param theCmd - Command to move - * \param theAfterCmd - Command ater which to insert the first one + * \param theCmd - Command to move + * \param theAfterCmd - Command ater which to insert the first one */ //================================================================================ @@ -1413,8 +1424,8 @@ void _pyGen::SetCommandAfter( Handle(_pyCommand) theCmd, Handle(_pyCommand) theA //================================================================================ /*! * \brief Set one command before the other - * \param theCmd - Command to move - * \param theBeforeCmd - Command before which to insert the first one + * \param theCmd - Command to move + * \param theBeforeCmd - Command before which to insert the first one */ //================================================================================ @@ -1426,8 +1437,8 @@ void _pyGen::SetCommandBefore( Handle(_pyCommand) theCmd, Handle(_pyCommand) the //================================================================================ /*! * \brief Set one command before or after the other - * \param theCmd - Command to move - * \param theOtherCmd - Command ater or before which to insert the first one + * \param theCmd - Command to move + * \param theOtherCmd - Command ater or before which to insert the first one */ //================================================================================ @@ -1454,7 +1465,7 @@ void _pyGen::setNeighbourCommand( Handle(_pyCommand)& theCmd, // void _pyGen::addFilterUser( Handle(_pyCommand)& theCommand, const Handle(_pyObject)& user ) // { - // No more needed after adding _pyObject::myArgCommands +// No more needed after adding _pyObject::myArgCommands // const char filterPrefix[] = "aFilter0x"; // if ( theCommand->GetString().Search( filterPrefix ) < 1 ) @@ -1480,7 +1491,7 @@ void _pyGen::setNeighbourCommand( Handle(_pyCommand)& theCmd, //================================================================================ /*! * \brief Set command be last in list of commands - * \param theCmd - Command to be last + * \param theCmd - Command to be last */ //================================================================================ @@ -1492,8 +1503,8 @@ Handle(_pyCommand)& _pyGen::GetLastCommand() //================================================================================ /*! * \brief Set method to access to object wrapped with python class - * \param theID - The wrapped object entry - * \param theMethod - The accessor method + * \param theID - The wrapped object entry + * \param theMethod - The accessor method */ //================================================================================ @@ -1505,7 +1516,7 @@ void _pyGen::SetAccessorMethod(const _pyID& theID, const char* theMethod ) //================================================================================ /*! * \brief Generated new ID for object and assign with existing name - * \param theID - ID of existing object + * \param theID - ID of existing object */ //================================================================================ @@ -1545,7 +1556,7 @@ bool _pyGen::AddObject( Handle(_pyObject)& theObj ) } else if ( theObj->IsKind( STANDARD_TYPE( _pyMeshEditor ))) { add = myMeshEditors.insert( make_pair( theObj->GetID(), - Handle(_pyMeshEditor)::DownCast( theObj ))).second; + Handle(_pyMeshEditor)::DownCast( theObj ))).second; } else { add = myObjects.insert( make_pair( theObj->GetID(), theObj )).second; @@ -1673,7 +1684,7 @@ bool _pyGen::IsNotPublished(const _pyID& theObjID) const // either the SMESH object is not in study or it is a GEOM object if ( IsGeomObject( theObjID )) { - SALOMEDS::SObject_wrap so = myStudy->FindObjectID( theObjID.ToCString() ); + SALOMEDS::SObject_wrap so = SMESH_Gen_i::getStudyServant()->FindObjectID( theObjID.ToCString() ); if ( so->_is_nil() ) return true; CORBA::Object_var obj = so->GetObject(); return CORBA::is_nil( obj ); @@ -1789,7 +1800,7 @@ _pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd, const _pyID& meshId): //================================================================================ /*! * \brief Convert an IDL API command of SMESH::SMESH_Mesh to a method call of python Mesh - * \param theCommand - Engine method called for this mesh + * \param theCommand - Engine method called for this mesh */ //================================================================================ @@ -1976,16 +1987,26 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand ) // ---------------------------------------------------------------------- else if ( theCommand->MethodStartsFrom( "Export" )) { - if ( method == "ExportToMED" || // ExportToMED() --> ExportMED() - method == "ExportToMEDX" ) // ExportToMEDX() --> ExportMED() + if ( method == "ExportToMED" || // ExportToMED() --> ExportMED() + method == "ExportToMEDX" || // ExportToMEDX() --> ExportMED() + method == "ExportMED" ) { theCommand->SetMethod( "ExportMED" ); - if ( theCommand->GetNbArgs() == 5 ) + // filter out deprecated version parameter + vector< _AString > args; + for ( int i = 1; i <= theCommand->GetNbArgs(); i++ ) { + if ( !_FilterArg( theCommand->GetArg( i ) ) ) + args.push_back( theCommand->GetArg( i ) ); + } + theCommand->RemoveArgs(); + for ( uint i = 0; i < args.size(); i++ ) + theCommand->SetArg( i+1, args[i] ); + if ( theCommand->GetNbArgs() == 4 ) { // ExportToMEDX(...,autoDimension) -> ExportToMEDX(...,meshPart=None,autoDimension) - _AString autoDimension = theCommand->GetArg( 5 ); - theCommand->SetArg( 5, "None" ); - theCommand->SetArg( 6, autoDimension ); + _AString autoDimension = theCommand->GetArg( 4 ); + theCommand->SetArg( 4, "None" ); + theCommand->SetArg( 5, autoDimension ); } } else if ( method == "ExportCGNS" ) @@ -2011,6 +2032,15 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand ) TCollection_AsciiString newMethod = method; newMethod.Remove( /*where=*/7, /*howmany=*/6 ); theCommand->SetMethod( newMethod ); + // filter out deprecated version parameter + vector< _AString > args; + for ( int i = 1; i <= theCommand->GetNbArgs(); i++ ) { + if ( !_FilterArg( theCommand->GetArg( i ) ) ) + args.push_back( theCommand->GetArg( i ) ); + } + theCommand->RemoveArgs(); + for ( uint i = 0; i < args.size(); i++ ) + theCommand->SetArg( i+1, args[i] ); // make the 1st arg be the last one (or last but three for ExportMED()) _pyID partID = theCommand->GetArg( 1 ); int nbArgs = theCommand->GetNbArgs() - 3 * (newMethod == "ExportMED"); @@ -2122,7 +2152,7 @@ bool _pyMesh::NeedMeshAccess( const Handle(_pyCommand)& theCommand ) const char * names[] = { "ExportDAT","ExportUNV","ExportSTL","ExportSAUV", "RemoveGroup","RemoveGroupWithContents", "GetGroups","UnionGroups","IntersectGroups","CutGroups","CreateDimGroup","GetLog","GetId", - "ClearLog","GetStudyId","HasDuplicatedGroupNamesMED","GetMEDMesh","NbNodes","NbElements", + "ClearLog","HasDuplicatedGroupNamesMED","GetMEDMesh","NbNodes","NbElements", "NbEdges","NbEdgesOfOrder","NbFaces","NbFacesOfOrder","NbTriangles", "NbTrianglesOfOrder","NbQuadrangles","NbQuadranglesOfOrder","NbPolygons","NbVolumes", "NbVolumesOfOrder","NbTetras","NbTetrasOfOrder","NbHexas","NbHexasOfOrder", @@ -2427,7 +2457,7 @@ void _pyMeshEditor::Process( const Handle(_pyCommand)& theCommand) "ExtrusionAlongPathX","ExtrusionAlongPathObject1D","ExtrusionAlongPathObject2D", "ExtrusionSweepObjects","RotationSweepObjects","ExtrusionAlongPathObjects", "Mirror","MirrorObject","Translate","TranslateObject","Rotate","RotateObject", - "FindCoincidentNodes","MergeNodes","FindEqualElements", + "FindCoincidentNodes","MergeNodes","FindEqualElements","FillHole", "MergeElements","MergeEqualElements","SewFreeBorders","SewConformFreeBorders", "FindCoincidentFreeBorders", "SewCoincidentFreeBorders", "SewBorderToSide","SewSideElements","ChangeElemNodes","GetLastCreatedNodes", @@ -2436,7 +2466,7 @@ void _pyMeshEditor::Process( const Handle(_pyCommand)& theCommand) "Scale","ScaleMakeMesh","RotateMakeMesh","RotateObjectMakeMesh","MakeBoundaryMesh", "MakeBoundaryElements", "SplitVolumesIntoTetra","SplitHexahedraIntoPrisms", "DoubleElements","DoubleNodes","DoubleNode","DoubleNodeGroup","DoubleNodeGroups", - "DoubleNodeElem","DoubleNodeElemInRegion","DoubleNodeElemGroup", + "DoubleNodeElem","DoubleNodeElemInRegion","DoubleNodeElemGroup","AffectedElemGroupsInRegion", "DoubleNodeElemGroupInRegion","DoubleNodeElemGroups","DoubleNodeElemGroupsInRegion", "DoubleNodesOnGroupBoundaries","CreateFlatElementsOnFacesGroups","CreateHoleSkin" ,"" }; // <- mark of the end @@ -2619,7 +2649,7 @@ bool _pyMeshEditor::CanClear() //================================================================================ /*! * \brief _pyHypothesis constructor - * \param theCreationCmd - + * \param theCreationCmd - */ //================================================================================ @@ -2632,8 +2662,8 @@ _pyHypothesis::_pyHypothesis(const Handle(_pyCommand)& theCreationCmd): //================================================================================ /*! * \brief Creates algorithm or hypothesis - * \param theCreationCmd - The engine command creating a hypothesis - * \retval Handle(_pyHypothesis) - Result _pyHypothesis + * \param theCreationCmd - The engine command creating a hypothesis + * \retval Handle(_pyHypothesis) - Result _pyHypothesis */ //================================================================================ @@ -2722,9 +2752,9 @@ bool _pyHypothesis::IsWrappable(const _pyID& theMesh) const //================================================================================ /*! * \brief Convert the command adding a hypothesis to mesh into a smesh command - * \param theCmd - The command like mesh.AddHypothesis( geom, hypo ) - * \param theAlgo - The algo that can create this hypo - * \retval bool - false if the command can't be converted + * \param theCmd - The command like mesh.AddHypothesis( geom, hypo ) + * \param theAlgo - The algo that can create this hypo + * \retval bool - false if the command can't be converted */ //================================================================================ @@ -2787,7 +2817,7 @@ bool _pyHypothesis::Addition2Creation( const Handle(_pyCommand)& theCmd, //================================================================================ /*! * \brief Remember hypothesis parameter values - * \param theCommand - The called hypothesis method + * \param theCommand - The called hypothesis method */ //================================================================================ @@ -3140,7 +3170,7 @@ void _pyHypothesis::setCreationArg( const int argNb, const _AString& arg ) //================================================================================ /*! * \brief Remember hypothesis parameter values - * \param theCommand - The called hypothesis method + * \param theCommand - The called hypothesis method */ //================================================================================ @@ -3195,8 +3225,8 @@ void _pyComplexParamHypo::Process( const Handle(_pyCommand)& theCommand) { CreationMethod& crMethod = type2meth->second; while ( (int) crMethod.myArgs.size() < i+1 ) - crMethod.myArgs.push_back( "[]" ); - crMethod.myArgs[ i ] = theCommand->GetArg( 1 ); // arg value + crMethod.myArgs.push_back( "[]" ); + crMethod.myArgs[ i ] = theCommand->GetArg( 1 ); // arg value } myArgCommands.push_back( theCommand ); } @@ -3240,7 +3270,7 @@ void _pyComplexParamHypo::Flush() //================================================================================ /*! * \brief Convert methods of 1D hypotheses to my own methods - * \param theCommand - The called hypothesis method + * \param theCommand - The called hypothesis method */ //================================================================================ @@ -3277,9 +3307,9 @@ void _pyLayerDistributionHypo::Process( const Handle(_pyCommand)& theCommand) //================================================================================ /*! * \brief - * \param theAdditionCmd - command to be converted - * \param theMesh - mesh instance - * \retval bool - status + * \param theAdditionCmd - command to be converted + * \param theMesh - mesh instance + * \retval bool - status */ //================================================================================ @@ -3381,9 +3411,9 @@ void _pyLayerDistributionHypo::Flush() //================================================================================ /*! * \brief additionally to Addition2Creation, clears SetDistrType() command - * \param theCmd - AddHypothesis() command - * \param theMesh - mesh to which a hypothesis is added - * \retval bool - conversion result + * \param theCmd - AddHypothesis() command + * \param theMesh - mesh to which a hypothesis is added + * \retval bool - conversion result */ //================================================================================ @@ -3463,9 +3493,9 @@ void _pyNumberOfSegmentsHyp::Flush() /*! * \brief Convert the command adding "SegmentLengthAroundVertex" to mesh * into regular1D.LengthNearVertex( length, vertex ) - * \param theCmd - The command like mesh.AddHypothesis( vertex, SegmentLengthAroundVertex ) - * \param theMesh - The mesh needing this hypo - * \retval bool - false if the command can't be converted + * \param theCmd - The command like mesh.AddHypothesis( vertex, SegmentLengthAroundVertex ) + * \param theMesh - The mesh needing this hypo + * \retval bool - false if the command can't be converted */ //================================================================================ @@ -3508,7 +3538,7 @@ bool _pySegmentLengthAroundVertexHyp::Addition2Creation( const Handle(_pyCommand //================================================================================ /*! * \brief _pyAlgorithm constructor - * \param theCreationCmd - The command like "algo = smeshgen.CreateHypothesis(type,lib)" + * \param theCreationCmd - The command like "algo = smeshgen.CreateHypothesis(type,lib)" */ //================================================================================ @@ -3521,9 +3551,9 @@ _pyAlgorithm::_pyAlgorithm(const Handle(_pyCommand)& theCreationCmd) //================================================================================ /*! * \brief Convert the command adding an algorithm to mesh - * \param theCmd - The command like mesh.AddHypothesis( geom, algo ) - * \param theMesh - The mesh needing this algo - * \retval bool - false if the command can't be converted + * \param theCmd - The command like mesh.AddHypothesis( geom, algo ) + * \param theMesh - The mesh needing this algo + * \retval bool - false if the command can't be converted */ //================================================================================ @@ -3541,8 +3571,8 @@ bool _pyAlgorithm::Addition2Creation( const Handle(_pyCommand)& theCmd, //================================================================================ /*! * \brief Return starting position of a part of python command - * \param thePartIndex - The index of command part - * \retval int - Part position + * \param thePartIndex - The index of command part + * \retval int - Part position */ //================================================================================ @@ -3559,8 +3589,8 @@ int _pyCommand::GetBegPos( int thePartIndex ) const //================================================================================ /*! * \brief Store starting position of a part of python command - * \param thePartIndex - The index of command part - * \param thePosition - Part position + * \param thePartIndex - The index of command part + * \param thePosition - Part position */ //================================================================================ @@ -3575,7 +3605,7 @@ void _pyCommand::SetBegPos( int thePartIndex, int thePosition ) //================================================================================ /*! * \brief Returns whitespace symbols at the line beginning - * \retval TCollection_AsciiString - result + * \retval TCollection_AsciiString - result */ //================================================================================ @@ -3592,7 +3622,7 @@ TCollection_AsciiString _pyCommand::GetIndentation() //================================================================================ /*! * \brief Return substring of python command looking like ResultValue = Obj.Meth() - * \retval const TCollection_AsciiString & - ResultValue substring + * \retval const TCollection_AsciiString & - ResultValue substring */ //================================================================================ @@ -3732,7 +3762,7 @@ const TCollection_AsciiString & _pyCommand::GetObject() //================================================================================ /*! * \brief Return substring of python command looking like ResVal = Obj.Method() - * \retval const TCollection_AsciiString & - Method substring + * \retval const TCollection_AsciiString & - Method substring */ //================================================================================ @@ -3775,7 +3805,7 @@ bool _pyCommand::IsMethodCall() //================================================================================ /*! * \brief Return substring of python command looking like ResVal = Obj.Meth(Arg1,...) - * \retval const TCollection_AsciiString & - Arg substring + * \retval const TCollection_AsciiString & - Arg substring */ //================================================================================ @@ -3876,8 +3906,8 @@ int _pyCommand::GetArgBeginning() const //================================================================================ /*! * \brief Check if char is a word part - * \param c - The character to check - * \retval bool - The check result + * \param c - The character to check + * \retval bool - The check result */ //================================================================================ @@ -3890,10 +3920,10 @@ static inline bool isWord(const char c, const bool dotIsWord) //================================================================================ /*! * \brief Looks for a word in the string and returns word's beginning - * \param theString - The input string - * \param theStartPos - The position to start the search, returning word's beginning - * \param theForward - The search direction - * \retval TCollection_AsciiString - The found word + * \param theString - The input string + * \param theStartPos - The position to start the search, returning word's beginning + * \param theForward - The search direction + * \retval TCollection_AsciiString - The found word */ //================================================================================ @@ -4024,9 +4054,9 @@ std::list< _pyID > _pyCommand::GetStudyEntries( const TCollection_AsciiString& s //================================================================================ /*! * \brief Look for position where not space char is - * \param theString - The string - * \param thePos - The position to search from and which returns result - * \retval bool - false if there are only space after thePos in theString + * \param theString - The string + * \param thePos - The position to search from and which returns result + * \retval bool - false if there are only space after thePos in theString */ //================================================================================ @@ -4044,14 +4074,14 @@ bool _pyCommand::SkipSpaces( const TCollection_AsciiString & theString, int & th //================================================================================ /*! * \brief Modify a part of the command - * \param thePartIndex - The index of the part - * \param thePart - The new part string - * \param theOldPart - The old part + * \param thePartIndex - The index of the part + * \param thePart - The new part string + * \param theOldPart - The old part */ //================================================================================ void _pyCommand::SetPart(int thePartIndex, const TCollection_AsciiString& thePart, - TCollection_AsciiString& theOldPart) + TCollection_AsciiString& theOldPart) { int pos = GetBegPos( thePartIndex ); if ( pos <= Length() && theOldPart != thePart) @@ -4083,9 +4113,9 @@ void _pyCommand::SetPart(int thePartIndex, const TCollection_AsciiString& thePar //================================================================================ /*! - * \brief Set agrument - * \param index - The argument index, it counts from 1 - * \param theArg - The argument string + * \brief Set argument + * \param index - The argument index, it counts from 1 + * \param theArg - The argument string */ //================================================================================ @@ -4186,9 +4216,9 @@ bool _pyCommand::SetDependentCmdsAfter() const //================================================================================ /*! * \brief Insert accessor method after theObjectID - * \param theObjectID - id of the accessed object - * \param theAcsMethod - name of the method giving access to the object - * \retval bool - false if theObjectID is not found in the command string + * \param theObjectID - id of the accessed object + * \param theAcsMethod - name of the method giving access to the object + * \retval bool - false if theObjectID is not found in the command string */ //================================================================================ @@ -4276,7 +4306,7 @@ void _pyObject::ClearCommands() //================================================================================ /*! * \brief Return method name giving access to an interaface object wrapped by python class - * \retval const char* - method name + * \retval const char* - method name */ //================================================================================ @@ -4408,39 +4438,39 @@ _pySubMesh::_pySubMesh(const Handle(_pyCommand)& theCreationCmd, bool toKeepAgrC bool _pySubMesh::CanBeArgOfMethod(const _AString& theMethodName) { return false; -// // names of all methods where a sub-mesh can be used as argument -// static TStringSet methods; -// if ( methods.empty() ) { -// const char * names[] = { -// // methods of SMESH_Gen -// "CopyMesh", -// // methods of SMESH_Group -// "AddFrom", -// // methods of SMESH_Measurements -// "MinDistance", -// // methods of SMESH_Mesh -// "ExportPartToMED","ExportCGNS","ExportPartToDAT","ExportPartToUNV","ExportPartToSTL", -// "RemoveSubMesh", -// // methods of SMESH_MeshEditor -// "ReorientObject","Reorient2D","TriToQuadObject","QuadToTriObject","SplitQuadObject", -// "SplitVolumesIntoTetra","SmoothObject","SmoothParametricObject","ConvertFromQuadraticObject", -// "RotationSweepObject","RotationSweepObjectMakeGroups","RotationSweepObject1D", -// "RotationSweepObject1DMakeGroups","RotationSweepObject2D","RotationSweepObject2DMakeGroups", -// "ExtrusionSweepObject","ExtrusionSweepObjectMakeGroups","ExtrusionSweepObject0D", -// "ExtrusionSweepObject0DMakeGroups","ExtrusionSweepObject1D","ExtrusionSweepObject2D", -// "ExtrusionSweepObject1DMakeGroups","ExtrusionSweepObject2DMakeGroups", -// "ExtrusionAlongPathObjX","ExtrusionAlongPathObject","ExtrusionAlongPathObjectMakeGroups", -// "ExtrusionAlongPathObject1D","ExtrusionAlongPathObject1DMakeGroups", -// "ExtrusionAlongPathObject2D","ExtrusionAlongPathObject2DMakeGroups","MirrorObject", -// "MirrorObjectMakeGroups","MirrorObjectMakeMesh","TranslateObject","Scale", -// "TranslateObjectMakeGroups","TranslateObjectMakeMesh","ScaleMakeGroups","ScaleMakeMesh", -// "RotateObject","RotateObjectMakeGroups","RotateObjectMakeMesh","FindCoincidentNodesOnPart", -// "FindCoincidentNodesOnPartBut","FindEqualElements","FindAmongElementsByPoint", -// "MakeBoundaryMesh","Create0DElementsOnAllNodes", -// "" }; // <- mark of end -// methods.Insert( names ); -// } -// return methods.Contains( theMethodName ); + // names of all methods where a sub-mesh can be used as argument + // static TStringSet methods; + // if ( methods.empty() ) { + // const char * names[] = { + // // methods of SMESH_Gen + // "CopyMesh", + // // methods of SMESH_Group + // "AddFrom", + // // methods of SMESH_Measurements + // "MinDistance", + // // methods of SMESH_Mesh + // "ExportPartToMED","ExportCGNS","ExportPartToDAT","ExportPartToUNV","ExportPartToSTL", + // "RemoveSubMesh", + // // methods of SMESH_MeshEditor + // "ReorientObject","Reorient2D","TriToQuadObject","QuadToTriObject","SplitQuadObject", + // "SplitVolumesIntoTetra","SmoothObject","SmoothParametricObject","ConvertFromQuadraticObject", + // "RotationSweepObject","RotationSweepObjectMakeGroups","RotationSweepObject1D", + // "RotationSweepObject1DMakeGroups","RotationSweepObject2D","RotationSweepObject2DMakeGroups", + // "ExtrusionSweepObject","ExtrusionSweepObjectMakeGroups","ExtrusionSweepObject0D", + // "ExtrusionSweepObject0DMakeGroups","ExtrusionSweepObject1D","ExtrusionSweepObject2D", + // "ExtrusionSweepObject1DMakeGroups","ExtrusionSweepObject2DMakeGroups", + // "ExtrusionAlongPathObjX","ExtrusionAlongPathObject","ExtrusionAlongPathObjectMakeGroups", + // "ExtrusionAlongPathObject1D","ExtrusionAlongPathObject1DMakeGroups", + // "ExtrusionAlongPathObject2D","ExtrusionAlongPathObject2DMakeGroups","MirrorObject", + // "MirrorObjectMakeGroups","MirrorObjectMakeMesh","TranslateObject","Scale", + // "TranslateObjectMakeGroups","TranslateObjectMakeMesh","ScaleMakeGroups","ScaleMakeMesh", + // "RotateObject","RotateObjectMakeGroups","RotateObjectMakeMesh","FindCoincidentNodesOnPart", + // "FindCoincidentNodesOnPartBut","FindEqualElements","FindAmongElementsByPoint", + // "MakeBoundaryMesh","Create0DElementsOnAllNodes", + // "" }; // <- mark of end + // methods.Insert( names ); + // } + // return methods.Contains( theMethodName ); } //================================================================================ @@ -4507,13 +4537,13 @@ _pyGroup::_pyGroup(const Handle(_pyCommand)& theCreationCmd, const _pyID & id) //} //else { // ------------------------->>>>> GroupOnGeom( geom, name, typ ) - _pyID type = theCreationCmd->GetArg( 1 ); - _pyID name = theCreationCmd->GetArg( 2 ); - theCreationCmd->SetMethod( "GroupOnGeom" ); - theCreationCmd->RemoveArgs(); - theCreationCmd->SetArg( 1, geom ); - theCreationCmd->SetArg( 2, name ); - theCreationCmd->SetArg( 3, type ); + _pyID type = theCreationCmd->GetArg( 1 ); + _pyID name = theCreationCmd->GetArg( 2 ); + theCreationCmd->SetMethod( "GroupOnGeom" ); + theCreationCmd->RemoveArgs(); + theCreationCmd->SetArg( 1, geom ); + theCreationCmd->SetArg( 2, name ); + theCreationCmd->SetArg( 3, type ); //} } else if ( method == "CreateGroupFromFilter" )