The following is a short example demonstrating a complete Scan&Solve stress simulation using calls to SnSScript from RhinoScript. The example includes:
For conciseness, this example contains minimal error checking.
Option Explicit
Call Main()
Sub Main()
Dim objSnSPlugIn , strObject
On Error Resume Next
Set objSnSPlugIn = Rhino.GetPluginObject("SnSScript")
If Err Then
MsgBox Err.Description
Exit Sub
End If
strObject = Rhino.GetObject("Select a solid")
'reset the SnS data attached to the object
objSnSPlugIn.Reset strObject
'set the material for simulation
objSnSPlugIn.SetMaterial strObject, "Acrylic, Cast"
'add a face restraint
objSnSPlugIn.AddFaceRestraint strObject, "Restraint Face 1", 1, "xyz"
'add a vector load on a face
Dim vecLoad(3)
vecLoad(0) = 10
vecLoad(1) = 20
vecLoad(2) = 30
objSnSPlugIn.AddFaceVectorLoad strObject, "Vector Load Face 2", 2, vecLoad, True
'compute the stress solution
objSnSPlugIn.Solve strObject, 10000
'turn on display of solution
objSnSPlugIn.SolutionDisplayEnable strObject, "DSPT", 100
End Sub
| Line # | Description |
|---|---|
| 1 | Only scripts with Option Explicit specified can be debugged in the RhinoScript editor (Monkey). |
| 4 | Declare variables before use. |
| 7-11 | Obtain a reference to the SnSScript plug-in, exit if an error occurs. |
| 13 | Prompt the user to select a solid from the Rhino document. The solid is identified by its GUID stored in strObject. |
| 15 | Clear the Scan&Solve data attached to the object. |
| 17 | Set the material for the solid, "Acrylic, Cast" in this case. |
| 19 | Add a restraint named "Restraint Face 1" to face 1. Restrain in x, y, and z. |
| 21-24 | Declare and define an array to use as vector load. |
| 25 | Add a vector load named "Vector Load Face 2" to face 2. True indicates load is applied per face. |
| 27 | Compute the solution using 10000 elements. |
| 29 | Display the total displacement "DSPT" and magnify the deflection by 100. To disable the display of the solution, call objSnSPlugIn.SolutionDisplayDisable strObject. |