Sampling Example

The following short example demonstrates sampling a Scan&Solve solution on a uniform grid of points and writing the values to a text file.

For conciseness, this example contains minimal error checking.

Option Explicit

Call Main()
Sub Main()
        
        Dim objSnSPlugIn, strObject, arrBox, dblSpacing, queryPt, dblValue
        Dim objFSO, objFile, strFileLocation
        Dim x, y, z
        On Error Resume Next
    
        Set objSnSPlugIn = Rhino.GetPluginObject("SnSScript")
        objSnSPlugIn.SetOutputOnOff False
        
        'Prompt for the output filename
        strFileLocation = Rhino.SaveFileName("Output Filename", "*.txt", "", "RS_Output.txt", "txt")
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        If Not IsNull(strFileLocation) Then
                Set objFile = objFSO.CreateTextFile(strFileLocation, True)
        End If
    
        'Prompt for the solid and the sample spacing
        strObject = Rhino.GetObject("Select a solid")
        dblSpacing = Rhino.RealBox("Sample spacing", 0.1, "Enter sample spacing")
        
        If Not IsNull(strObject) Then
                arrBox = Rhino.BoundingBox(strObject)
                If IsArray(arrBox) Then
                        For z = arrBox(0)(2) To arrBox(6)(2) Step dblSpacing
                                For y = arrBox(0)(1) To arrBox(6)(1) Step dblSpacing
                                        For x = arrBox(0)(0) To arrBox(6)(0) Step dblSpacing
                                                queryPt = Array(x, y, z)
                                                'Sample the solution at the specified point and write to a file
                                                dblValue = objSnSPlugIn.QuerySolutionValue(strObject, "DSPT", queryPt)
                                                If Not isNull(objFile) Then
                                                        objFile.WriteLine x & "," & y & "," & z & ":" & dblValue
                                                Else
                                                        Rhino.Print x & "," & y & "," & z & ":" & dblValue
                                                End If
                                        Next
                                Next
                        Next
                End If
        End If
End Sub
Line #Description
1Only scripts with Option Explicit specified can be debugged in the RhinoScript editor (Monkey).
4-8Declare variables before use.
11Obtain a reference to the SnSScript plug-in, exit if an error occurs.
12Turn off SnSScript command line output.
22Prompt the user to select a solid from the Rhino document. The solid is identified by its GUID stored in strObject.
23Prompt the user for a sample spacing.
26Obtain the bounding box for the object.
28-30Three nested loops to cover the bounding box.
31Construct the query point.
32Query the solution value at the point.
34-38Write the value to a file or the command line if the file is not open.