I am trying to write a Rhinoscipt program to run from the Windows command prompt that closes Rhino when it is complete. At the end of my code, I have been successfully using Rhino.Exit; however, it doesn’t work when I try to use it to abort the script in case of an error.
The script below attempts to create geometry using a parameter-driven Grasshopper file. It then checks if any geometry exists, writing the current state to a flag and exiting if necessary. I have tested the code and found that the flag is correctly written as “0” if there is no geometry; but then why doesn’t Rhino.Exit run?
Any help would be greatly appreciated.
Call Main() Sub Main() ' Auto-bake a Grasshopper file that can fail to generate geometry under certain conditions ' (This is not an issue with the file and cannot always be determined in advance) ' Check that geometry was created Dim objects objects = Rhino.AllObjects(False,True) ' Get the file system object Dim objFSO, objStream Set objFSO = CreateObject("Scripting.FileSystemObject") ' Open a text file to write to Set objStream = objFSO.CreateTextFile("GHflag.txt", True) If Err Then MsgBox Err.Description Exit Sub End If ' Print flag file If IsArray(objects) Then ' Print Success objStream.WriteLine("1") Else ' Print Fail objStream.WriteLine("0") Rhino.DocumentModified(False) Rhino.Exit End If ' Close the file objStream.Close Set objStream = Nothing Set objFSO = Nothing ' Do other stuff ' ... ' Exit Rhino Rhino.DocumentModified(False) Rhino.Exit End Sub