Work on hypermesh while macro is running in background?

Altair Forum User
Altair Forum User
Altair Employee
edited October 2020 in Community Q&A

Hello,

 

Is it possible to work on hypermesh when we are running a Tcl/Tk script?

 

I would like to use 'after 10000' command to halt the execution of the script for some time and I would like to work on hypermesh meanwhile.

 

Thank you.

Answers

  • llyle_20499
    llyle_20499 New Altair Community Member
    edited September 2018

    Hi Harish,

     

    If i'm not wrong, after 10000 will merely delay execution of next line. So what operation do you want to do in hypermesh? 

  • Q.Nguyen-Dai
    Q.Nguyen-Dai Altair Community Member
    edited September 2018

    IMHO, Hypermesh session can't run on multi-thread proc. So you can't do different tasks in parallel.

    @ Altair's experts: correct me if I'm wrong?

     

  • Altair Forum User
    Altair Forum User
    Altair Employee
    edited September 2018

    Hi Livil Lyle,  'after 10000' I gave as an example. Actually, I would like the execution of the program to be halted by 30 minutes.

     

    Basically, I'm trying to write a 'save as' reminder program, which saves the file every 30min in a specified format.

     

     

     

  • tinh
    tinh Altair Community Member
    edited September 2018

    Hi Harish

    To halt a runnning script, you can use tkwait

    Ex:

    proc ::p_RunningScript args {

        #a very long time script

        for {set i 0} {$i<1000000000} {incr i}

              Do something...

              if {!($i%1000)} update

              if {$::halt} {

                   tkwait variable ::halt

             }

        }

    }

     

    #before running, indicate halt=0

    set ::halt 0

    ::p_RunningScript

     

    #to halt above script, set halt = 1

    set ::halt 1

    #then call your save as reminder

    p_SaveAsReminder

     

    #to continue the halt script:

    set ::halt 0

     

    ;)/emoticons/default_wink.png' srcset='/emoticons/wink@2x.png 2x' title=';)' width='20' />