Jump to content
Sign in to follow this  

Recommended Posts

Hello,


 


I have written a TCL script that selects certain elements in my mesh. I want to have these elements put into a string array, so I can use this array to update a certain NASTRAN card, in comments, so I can use them later on in a different routine. The problem now, however, is whenever I try to use *createstringarray it gives back a 0 in the left corner.


 


The string is in a variable that needs to be substituted into *createstring array:


 


set elements {213 5342 53 213 642};


set $str [subst {\$BSURF 1 $elements}];


(Note that the BSURF is commented via $, hence the backslash)


 


*createstringarray 3 "\$beginbsurfs" $str "\$endbsurfs"


 


This following procedure returns a zero. What am I doing wrong?


 


Thank you for your help and time!


 


Jeffrey


Share this post


Link to post
Share on other sites
Guest

Hi Jeffrey,

 

please try the the following in line 2

 

set str [subst {\$BSURF 1 $elements}];

 

Only access to a variable needs a "$", not at creation time...

You can insert a check after this line:

 

tk_messageBox -message "String : $str"
 

Here you need the "$"

 

 

Regards,

Mario

Share this post


Link to post
Share on other sites

Hello Mario,


 


The "$" was a typo from my side. It appears that the $elements variable that is created in HyperMesh causes an error, while using a user created variable with set numbers seem to work perfectly:



set elements {213 5342 53 213 642};
set str [subst {\$BSURF 1 $elements}];
*createstringarray 3 "\$beginbsurfs" $str "\$endbsurfs"

Works. The following does not:


$elems is a list created in HyperMesh by means of a TCL script. This is just an ordinary but lengthy list.



set str [subst {\$BSURF 1 $elems}];
*createstringarray 3 "\$beginbsurfs" $str "\$endbsurfs"

Maybe the error window output gives more insight of what the problem is?



0
while executing
"*createstringarray 3 "\$beginbsurfs" $str "\$endbsurfs""
("uplevel" body line 1)
invoked from within
"uplevel #0 {*createstringarray 3 "\$beginbsurfs" $str "\$endbsurfs"}"
invoked from within
"interp eval $::tkcon::OPT(exec) $args"
(procedure "::tkcon::EvalSlave" line 2)
invoked from within
"EvalAttached $cmd"

Thanks for your help and time.


 


Jeffrey

Share this post


Link to post
Share on other sites
Guest

Hi,

 

sry, can't detect any error. For me it works for elements or elems.

 

Please check whats inside of $elems

 

set elems {213 5342 53 213 642};
tk_messageBox -message "Elementlist : $elems"

set str [subst {\$BSURF 1 $elems}];
tk_messageBox -message "String : $str"

*createstringarray 3 "\$beginbsurfs" $str "\$endbsurfs"
 

 

Normaly TCL strings are not limited, but maybe *createstringarray has a limit in string lenght. Please check it too.

 

Regards,

Mario

Share this post


Link to post
Share on other sites

Hello Mario,


 


I think the string length is limited. I've created a workaround, grouping ranges of values together. The string created is far smaller than the original string and it does create the string via this method.


 


Nonetheless, I've checked the items inside $elems and the information is just numbers, element ID numbers.


 


How and where could I check the maximum length of *createstringarray?


 


Thank you,


 


Jeffrey


Share this post


Link to post
Share on other sites
Guest

Hi Jeffrey,


 


i don't know a answer, so it is better to contact the Altair hotline.


 


Regards,


Mario

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...