Canceling a Python script in Rhino
In Rhino 6, when a script is running and it is not waiting for user input, it can be cancelled by pressing the ESC. In Rhino.Python this is done by adding a scriptcontext.escape_test
test.
The following script is not be cancelled by pressing the ESC key.
def TightLoopEscapeTest(): for i in range(10000): TightLoopEscapeTest()
By scriptcontext.escape_test
function the loop can now be canceled:
import scriptcontext def TimeConsumingTask(): for i in range(10000): # Was escape key pressed? if (scriptcontext.escape_test(False)): print "TimeConsumingTask cancelled." break print i TimeConsumingTask()
It might be necessary to press the ESC
key a couple times to catch the scriptcontext.escape_test
test in the correct state.