cmd->Clear();
return;
}
- // comment a command having not created args
- for ( int iArg = cmd->GetNbArgs(); iArg; --iArg )
+ // check if an Object was created in the script
+ _AString comment;
+ const _pyID& obj = cmd->GetObject();
+ if ( !obj.IsEmpty() && cmd->IsStudyEntry( obj ) && !presentObjects.count( obj ))
+ {
+ comment = "not created Object";
+ theGen->ObjectCreationRemoved( obj );
+ }
+ // check if a command has not created args
+ for ( int iArg = cmd->GetNbArgs(); iArg && comment.IsEmpty(); --iArg )
{
const _pyID& arg = cmd->GetArg( iArg );
if ( arg.IsEmpty() || arg.Value( 1 ) == '"' || arg.Value( 1 ) == '\'' )
for ( ; id != idList.end(); ++id )
if ( !theGen->IsGeomObject( *id ) && !presentObjects.count( *id ))
{
- cmd->Comment();
- cmd->GetString() += " ### " ;
- cmd->GetString() += *id + " has not been yet created";
- for ( int i = 0; i < cmd->GetNbResultValues(); i++ ) {
- _pyID objID = cmd->GetResultValue( i+1 );
- theGen->ObjectCreationRemoved( objID ); // objID.SetName( name ) is not needed
- }
- return;
+ comment += *id + " has not been yet created";
+ break;
}
}
- // comment a command having not created Object
- const _pyID& obj = cmd->GetObject();
- if ( !obj.IsEmpty() && cmd->IsStudyEntry( obj ) && !presentObjects.count( obj ))
+ // treat result objects
+ const _pyID& result = cmd->GetResultValue();
+ if ( !result.IsEmpty() && result.Value( 1 ) != '"' && result.Value( 1 ) != '\'' )
+ {
+ list< _pyID > idList = cmd->GetStudyEntries( result );
+ list< _pyID >::iterator id = idList.begin();
+ for ( ; id != idList.end(); ++id )
+ if ( comment.IsEmpty() )
+ presentObjects.insert( *id );
+ else
+ theGen->ObjectCreationRemoved( *id ); // objID.SetName( name ) is not needed
+ }
+ // comment the command
+ if ( !comment.IsEmpty() )
{
cmd->Comment();
- cmd->GetString() += " ### not created object" ;
- for ( int i = 0; i < cmd->GetNbResultValues(); i++ ) {
- _pyID objID = cmd->GetResultValue( i+1 );
- theGen->ObjectCreationRemoved( objID ); // objID.SetName( name ) is not needed
- }
+ cmd->GetString() += " ### ";
+ cmd->GetString() += comment;
}
- const _pyID& result = cmd->GetResultValue();
- if ( result.IsEmpty() || result.Value( 1 ) == '"' || result.Value( 1 ) == '\'' )
- return;
- list< _pyID > idList = cmd->GetStudyEntries( result );
- list< _pyID >::iterator id = idList.begin();
- for ( ; id != idList.end(); ++id )
- presentObjects.insert( *id );
}
//================================================================================
undef2newItems[ 44 ].push_back( 37 );
undef2newItems[ 45 ].push_back( 36 );
undef2newItems[ 46 ].push_back( 39 );
+
+ ASSERT( undef2newItems.rbegin()->first == SMESH::FT_Undefined );
}
int iType = Type.IntegerValue();
if ( arg.Search( "SMESH.PointStruct" ) == 1 ||
arg.Search( "SMESH.DirStruct" ) == 1 )
{
- _pyCommand workCmd( arg );
- if ( workCmd.GetNbArgs() == 1 ) // SMESH.DirStruct( SMESH.PointStruct(x,y,z))
+ Handle(_pyCommand) workCmd = new _pyCommand( arg );
+ if ( workCmd->GetNbArgs() == 1 ) // SMESH.DirStruct( SMESH.PointStruct(x,y,z))
{
- workCmd = _pyCommand( workCmd.GetArg( 1 ));
+ workCmd = new _pyCommand( workCmd->GetArg( 1 ) );
}
- if ( workCmd.GetNbArgs() == 3 ) // SMESH.PointStruct(x,y,z)
+ if ( workCmd->GetNbArgs() == 3 ) // SMESH.PointStruct(x,y,z)
{
_AString newArg = "[ ";
- newArg += ( workCmd.GetArg( 1 ) + ", " +
- workCmd.GetArg( 2 ) + ", " +
- workCmd.GetArg( 3 ) + " ]");
+ newArg += ( workCmd->GetArg( 1 ) + ", " +
+ workCmd->GetArg( 2 ) + ", " +
+ workCmd->GetArg( 3 ) + " ]");
theCommand->SetArg( i, newArg );
}
}
// ----------------------------------------------------------------------
else if ( theCommand->MethodStartsFrom( "Export" ))
{
- if ( method == "ExportToMED" || // ExportToMED() --> ExportMED()
- method == "ExportToMEDX" ) { // ExportToMEDX() --> ExportMED()
+ if ( method == "ExportToMED" || // ExportToMED() --> ExportMED()
+ method == "ExportToMEDX" ) // ExportToMEDX() --> ExportMED()
+ {
theCommand->SetMethod( "ExportMED" );
+ if ( theCommand->GetNbArgs() == 5 )
+ {
+ // ExportToMEDX(...,autoDimension) -> ExportToMEDX(...,meshPart=None,autoDimension)
+ _AString autoDimension = theCommand->GetArg( 5 );
+ theCommand->SetArg( 5, "None" );
+ theCommand->SetArg( 6, autoDimension );
+ }
}
else if ( method == "ExportCGNS" )
{ // ExportCGNS(part, ...) -> ExportCGNS(..., part)
TCollection_AsciiString newMethod = method;
newMethod.Remove( 7, 6 );
theCommand->SetMethod( newMethod );
- // make the 1st arg be the last one
+ // make the 1st arg be the last one (or last but one for ExportMED())
_pyID partID = theCommand->GetArg( 1 );
- int nbArgs = theCommand->GetNbArgs();
+ int nbArgs = theCommand->GetNbArgs() - (newMethod == "ExportMED");
for ( int i = 2; i <= nbArgs; ++i )
theCommand->SetArg( i-1, theCommand->GetArg( i ));
theCommand->SetArg( nbArgs, partID );
return EMPTY;
if ( myBegPos.Length() < thePartIndex )
return UNKNOWN;
+ ASSERT( thePartIndex > 0 );
return myBegPos( thePartIndex );
}
{
while ( myBegPos.Length() < thePartIndex )
myBegPos.Append( UNKNOWN );
+ ASSERT( thePartIndex > 0 );
myBegPos( thePartIndex ) = thePosition;
}
if ( i <= Length() )
{
myString.Insert( i, "#" );
- for ( int iPart = 0; iPart < myBegPos.Length(); ++iPart )
+ for ( int iPart = 1; iPart <= myBegPos.Length(); ++iPart )
{
int begPos = GetBegPos( iPart + 1 );
if ( begPos != UNKNOWN )