Developer: RhinoScript
Summary: Discusses how to determine the version of RhinoScript from a running script.
Is there a good way to distinguish between scripts written in Rhino 3.0 versus those written in Rhino 4.0?
There is really not a good visual way to determine what version of Rhino a script was written for. Keep in mind that all RhinoScript functions found in V3 are also found in V4.
If it is important to know what version of Rhino a script was written for, the scripter should leave some clue behind in the script file. Perhaps a comment is sufficent. They might also have a block of code that only allows the script to run in a particular version.
For example:
' Check if the [[developer:rhinoscript|RhinoScript]] version is greater that 3.0 SR5b If CLng(Rhino.Version) > 20060519 Then Rhino.Print "This RhinoScript requires Rhino 3.0" Exit Sub End If
RhinoScript's Version method returns the version of RhinoScript as a long integer. The version of RhinoScript generally cooresponds to the version of Rhino unless you have downloaded and installed a Labs version. The following constants define the values returned by RhinoScript over the last several releases:
Const RH_40_SR6 = 20090727 ' Rhino 4.0 SR6 Const RH_40_SR5B = 20090226 ' Rhino 4.0 SR5b Const RH_40_SR5 = 20090116 ' Rhino 4.0 SR5 Const RH_40_SR4B = 20080827 ' Rhino 4.0 SR4b Const RH_40_SR4 = 20080807 ' Rhino 4.0 SR4 Const RH_40_SR3 = 20080222 ' Rhino 4.0 SR3 Const RH_40_SR2 = 20071017 ' Rhino 4.0 SR2 Const RH_40_SR1 = 20070703 ' Rhino 4.0 SR1 Const RH_40_SR0 = 20070118 ' Rhino 4.0 SR0 Const RH_30_SR5B = 20060519 ' Rhino 3.0 SR5b Const RH_30_SR5 = 20060331 ' Rhino 3.0 SR5 Const RH_30_SR4 = 20050718 ' Rhino 3.0 SR4 Const RH_30_SR3C = 20040421 ' Rhino 3.0 SR3c Const RH_30_SR3B = 20031209 ' Rhino 3.0 SR3b Const RH_30_SR3 = 20031111 ' Rhino 3.0 SR3 Const RH_30_SR2 = 20030606 ' Rhino 3.0 SR2 Const RH_30_SR1 = 20030305 ' Rhino 3.0 SR1 Const RH_30_SR0C = 20021220 ' Rhino 3.0 SR0 CD3 Const RH_30_SR0B = 20021125 ' Rhino 3.0 SR0 CD2 Const RH_30_SR0 = 20021120 ' Rhino 3.0 SR0 CD1
You can determine the version of RhinoScript, and Rhino, that you are running using the following subroutine:
Sub PrintRhinoVersion() Select Case CLng(Rhino.Version) Case RH_40_SR6 Rhino.Print("Rhino 4.0 SR6") Case RH_40_SR5B Rhino.Print("Rhino 4.0 SR5b") Case RH_40_SR5 Rhino.Print("Rhino 4.0 SR5") Case RH_40_SR4B Rhino.Print("Rhino 4.0 SR4b") Case RH_40_SR4 Rhino.Print("Rhino 4.0 SR4") Case RH_40_SR3 Rhino.Print("Rhino 4.0 SR3") Case RH_40_SR2 Rhino.Print("Rhino 4.0 SR2") Case RH_40_SR1 Rhino.Print("Rhino 4.0 SR1") Case RH_40_SR0 Rhino.Print("Rhino 4.0 SR0") Case RH_30_SR5B Rhino.Print("Rhino 3.0 SR5b") Case RH_30_SR5 Rhino.Print("Rhino 3.0 SR5") Case RH_30_SR4 Rhino.Print("Rhino 3.0 SR4") Case RH_30_SR3C Rhino.Print("Rhino 3.0 SR3c") Case RH_30_SR3B Rhino.Print("Rhino 3.0 SR3b") Case RH_30_SR3 Rhino.Print("Rhino 3.0 SR3") Case RH_30_SR2 Rhino.Print("Rhino 3.0 SR2") Case RH_30_SR1 Rhino.Print("Rhino 3.0 SR1") Case RH_30_SR0C Rhino.Print("Rhino 3.0 SR0 CD3") Case RH_30_SR0B Rhino.Print("Rhino 3.0 SR0 CD2") Case RH_30_SR0 Rhino.Print("Rhino 3.0 SR0 CD1") Case Else Rhino.Print("Unknown Rhino version") End Select End Sub