mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-28 02:10:35 +05:00
23156: EDF 9626 SMESH: Dump study produces a non-working script
52874: List of available groups in 'Group' combo-box is empty for sub-mesh and group. 52871: Mesh Information dialog shows different number of nodes for group of elements Regression of Grids/smesh/sewing_00/A5
This commit is contained in:
parent
16224f624c
commit
8682ebb1eb
@ -8751,6 +8751,16 @@ SMESH_MeshEditor::SewFreeBorder (const SMDS_MeshNode* theBordFirstNode,
|
|||||||
else
|
else
|
||||||
newFaces.Append( myLastCreatedElems(i) );
|
newFaces.Append( myLastCreatedElems(i) );
|
||||||
}
|
}
|
||||||
|
// get segments adjacent to merged nodes
|
||||||
|
TListOfListOfNodes::iterator groupIt = nodeGroupsToMerge.begin();
|
||||||
|
for ( ; groupIt != nodeGroupsToMerge.end(); groupIt++ )
|
||||||
|
{
|
||||||
|
const list<const SMDS_MeshNode*>& nodes = *groupIt;
|
||||||
|
SMDS_ElemIteratorPtr segIt = nodes.front()->GetInverseElementIterator( SMDSAbs_Edge );
|
||||||
|
while ( segIt->more() )
|
||||||
|
segments.insert( segIt->next() );
|
||||||
|
}
|
||||||
|
|
||||||
// find coincident
|
// find coincident
|
||||||
TListOfListOfElementsID equalGroups;
|
TListOfListOfElementsID equalGroups;
|
||||||
if ( !segments.empty() )
|
if ( !segments.empty() )
|
||||||
|
@ -298,11 +298,12 @@ void SMESHGUI_Add0DElemsOnAllNodesOp::selectionDone()
|
|||||||
myDlg->myGroupListCmBox->clear();
|
myDlg->myGroupListCmBox->clear();
|
||||||
myDlg->myGroupListCmBox->addItem( QString() );
|
myDlg->myGroupListCmBox->addItem( QString() );
|
||||||
if ( !myIO.IsNull() && myIO->hasEntry()) {
|
if ( !myIO.IsNull() && myIO->hasEntry()) {
|
||||||
_PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
|
SMESH::SMESH_Mesh_var mesh = SMESH::GetMeshByIO( myIO );
|
||||||
_PTR(SObject) meshSO = aStudy->FindObjectID( myIO->getEntry() );
|
_PTR(SObject) meshSO = SMESH::ObjectToSObject( mesh );
|
||||||
_PTR(SObject) group0DRoot;
|
_PTR(SObject) group0DRoot;
|
||||||
if ( meshSO->FindSubObject( SMESH::Tag_0DElementsGroups, group0DRoot ))
|
if ( meshSO && meshSO->FindSubObject( SMESH::Tag_0DElementsGroups, group0DRoot ))
|
||||||
{
|
{
|
||||||
|
_PTR(Study) aStudy = SMESH::GetActiveStudyDocument();
|
||||||
_PTR(ChildIterator) group0DIter = aStudy->NewChildIterator( group0DRoot );
|
_PTR(ChildIterator) group0DIter = aStudy->NewChildIterator( group0DRoot );
|
||||||
for ( ; group0DIter->More(); group0DIter->Next() )
|
for ( ; group0DIter->More(); group0DIter->Next() )
|
||||||
{
|
{
|
||||||
|
@ -2912,8 +2912,8 @@ void SMESHGUI_MeshInfoDlg::showInfo( const Handle(SALOME_InteractiveObject)& IO
|
|||||||
{
|
{
|
||||||
SMESH::SMESH_IDSource_var obj = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
SMESH::SMESH_IDSource_var obj = SMESH::IObjectToInterface<SMESH::SMESH_IDSource>( IO );
|
||||||
if ( !CORBA::is_nil( obj ) ) {
|
if ( !CORBA::is_nil( obj ) ) {
|
||||||
myBaseInfo->showInfo( obj );
|
myAddInfo->showInfo( obj ); // nb of nodes in a group can be computed by myAddInfo,
|
||||||
myAddInfo->showInfo( obj );
|
myBaseInfo->showInfo( obj ); // and it will be used by myBaseInfo (IPAL52871)
|
||||||
myCtrlInfo->showInfo( obj );
|
myCtrlInfo->showInfo( obj );
|
||||||
|
|
||||||
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
myActor = SMESH::FindActorByEntry( IO->getEntry() );
|
||||||
|
@ -692,6 +692,23 @@ Handle(_pyCommand) _pyGen::AddCommand( const TCollection_AsciiString& theCommand
|
|||||||
{
|
{
|
||||||
//id_mesh->second->AddProcessedCmd( aCommand );
|
//id_mesh->second->AddProcessedCmd( aCommand );
|
||||||
|
|
||||||
|
// Wrap Export*() into try-except
|
||||||
|
if ( aCommand->MethodStartsFrom("Export"))
|
||||||
|
{
|
||||||
|
_AString tab = "\t";
|
||||||
|
_AString indent = aCommand->GetIndentation();
|
||||||
|
_AString tryStr = indent + "try:";
|
||||||
|
_AString newCmd = indent + tab + ( aCommand->GetString().ToCString() + indent.Length() );
|
||||||
|
_AString excStr = indent + "except:";
|
||||||
|
_AString msgStr = indent + "\tprint '"; msgStr += method + "() failed. Invalid file name?'";
|
||||||
|
|
||||||
|
myCommands.insert( --myCommands.end(), new _pyCommand( tryStr, myNbCommands ));
|
||||||
|
aCommand->Clear();
|
||||||
|
aCommand->GetString() = newCmd;
|
||||||
|
aCommand->SetOrderNb( ++myNbCommands );
|
||||||
|
myCommands.push_back( new _pyCommand( excStr, ++myNbCommands ));
|
||||||
|
myCommands.push_back( new _pyCommand( msgStr, ++myNbCommands ));
|
||||||
|
}
|
||||||
// check for mesh editor object
|
// check for mesh editor object
|
||||||
if ( aCommand->GetMethod() == "GetMeshEditor" ) { // MeshEditor creation
|
if ( aCommand->GetMethod() == "GetMeshEditor" ) { // MeshEditor creation
|
||||||
_pyID editorID = aCommand->GetResultValue();
|
_pyID editorID = aCommand->GetResultValue();
|
||||||
@ -1880,6 +1897,10 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
|
else if ( method == "GetSubMeshes" ) { // clear as the command does nothing (0023156)
|
||||||
|
theCommand->Clear();
|
||||||
|
}
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
else if ( method == "AddHypothesis" ) { // mesh.AddHypothesis(geom, HYPO )
|
else if ( method == "AddHypothesis" ) { // mesh.AddHypothesis(geom, HYPO )
|
||||||
myAddHypCmds.push_back( theCommand );
|
myAddHypCmds.push_back( theCommand );
|
||||||
// set mesh to hypo
|
// set mesh to hypo
|
||||||
@ -3564,11 +3585,9 @@ void _pyCommand::SetBegPos( int thePartIndex, int thePosition )
|
|||||||
TCollection_AsciiString _pyCommand::GetIndentation()
|
TCollection_AsciiString _pyCommand::GetIndentation()
|
||||||
{
|
{
|
||||||
int end = 1;
|
int end = 1;
|
||||||
if ( GetBegPos( RESULT_IND ) == UNKNOWN )
|
while ( end <= Length() && isblank( myString.Value( end )))
|
||||||
GetWord( myString, end, true );
|
++end;
|
||||||
else
|
return ( end == 1 ) ? _AString("") : myString.SubString( 1, end - 1 );
|
||||||
end = GetBegPos( RESULT_IND );
|
|
||||||
return myString.SubString( 1, Max( end - 1, 1 ));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
@ -3723,12 +3742,15 @@ const TCollection_AsciiString & _pyCommand::GetMethod()
|
|||||||
if ( GetBegPos( METHOD_IND ) == UNKNOWN )
|
if ( GetBegPos( METHOD_IND ) == UNKNOWN )
|
||||||
{
|
{
|
||||||
// beginning
|
// beginning
|
||||||
int begPos = GetBegPos( OBJECT_IND ) + myObj.Length();
|
int begPos = GetBegPos( OBJECT_IND );
|
||||||
bool forward = true;
|
bool forward = true;
|
||||||
if ( begPos < 1 ) {
|
if ( begPos < 1 ) {
|
||||||
begPos = myString.Location( "(", 1, Length() ) - 1;
|
begPos = myString.Location( "(", 1, Length() ) - 1;
|
||||||
forward = false;
|
forward = false;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
begPos += myObj.Length();
|
||||||
|
}
|
||||||
// store
|
// store
|
||||||
myMeth = GetWord( myString, begPos, forward );
|
myMeth = GetWord( myString, begPos, forward );
|
||||||
SetBegPos( METHOD_IND, begPos );
|
SetBegPos( METHOD_IND, begPos );
|
||||||
|
Loading…
Reference in New Issue
Block a user