I have a lengthy SKILL script on a layout and it would be helpful to be able to see progress as it occurs. Is there a way to have the layout update at selected points in the script?
Also, the CIW is updating but doesn't make its first update visible until part way through the script after several printf statements have executed. Is there a way to force an update to the CIW as printf statements are executed?
Having this capability would help with the user interface so that users can plan their activities better and not be confused by what might look like a frozen script.
Maybe 'hiRedraw' can do the layout window update for you.
I did not understand exactly what update progess you want to be shown in the CIW.
In reply to berndfi:
Maybe hiFlush is what you want? Alternatively use hiDisplayProgressBox() or hiSetProgressBar() - and related functions - to get some visual feedback of progress.
In reply to Andrew Beckett:
Thanks guys for your suggestions, however, neither hiFlush or hiRedraw seemed to have any effect. I placed them thruought the script and it still waits until about 3 out of 5 steps have completed before updating the CIW and the layout display doesn't update until the very end. It is like SKILL just wants to run at full speed without updating the display or CIW until it reaches some point in execution and gets a microsecond to service system display tasks.
In Visual Basic there is a doEvents command that forces servicing Windows commands - that would be nice to have in SKILL.
Maybe if I put some sleep commands in it will allow the display updates to occur.
I will try the progress bar ideas, although that will not be as good as if I could see the actual progress.
In reply to thomas1000:
One issue is that Virtuoso (and SKILL) are not multi-threaded. That said, potentially there might be the opportunity to do some kind of cooperative update - but the problem is that some of those events might require SKILL - and so if it is blocked at the time, they would fail.
So it's not an easy problem to solve. Making a large long-lived application thread-safe is far from trivial and will take some considerable time.
I have a program, much like mark net, for tracing nets. I added a feature that would stop the program at a user defined interval (every 10 seconds, for example) which is useful when tracing large power supplies. Though it is not ideal, since it doesn't dynamically show the hilighting, it does allow us to see incremental highlights of the power rail and we can cancel the command if we have seen what we want without having to wait for it to complete. Basically the skill code pops open a dialog box and asks the user if they want to continue. If your program must always run to completion this may not be acceptable.