API 示例:将节点数据写入文件

所用编程语言中提供的标准文件功能(例如 VBScript 的 File.Write)用来写入外部文件和启动外部程序。

本示例创建新的逗号分隔值文件 (*.csv),并将模型中每个节点的以下信息写入文件:

完成写入文件后,将启动外部应用程序(记事本)显示文件。

'%RunPerInstance
'@
'@ DESCRIPTION
'@ Extract all Nodal Coordinates to a comma separated text file
'@ 
'@
'@ SYNTAX
'@ WriteNodalData
'@
'@ PARAMETERS
'@ none 
'@
'@ DEPENDENCIES/LIMITATIONS
'@  
'@
'@ History
'@ Created DRA 9/8/2006
'@@ 
Option Explicit
SetLocale("en-us")
Dim SynergyGetter, Synergy
On Error Resume Next
Set SynergyGetter = GetObject(CreateObject("WScript.Shell").ExpandEnvironmentStrings("%SAInstance%"))
On Error GoTo 0
If (Not IsEmpty(SynergyGetter)) Then
  Set Synergy = SynergyGetter.GetSASynergy
Else
  Set Synergy = CreateObject("synergy.Synergy")
End If
Synergy.SetUnits "METRIC"

Dim StudyDoc, App
Dim FS, TemporaryFolder, TempFolder, Name, lFile
Dim Str, Node, NodeNumber, Coord

Set StudyDoc = Synergy.StudyDoc()

'Open a File in the users temporary Directory
Set FS = CreateObject("Scripting.FileSystemObject")
TemporaryFolder = 2
Set TempFolder = FS.GetSpecialFolder(TemporaryFolder)
Name = "data.txt"
Set lFile = TempFolder.CreateTextFile(Name, True)

' Write File Header
Str = "Node" & "," & "X" & "," & "Y" & "," & "Z" &  vbCrLf
lFile.Write Str

' Loop through all nodal
Set Node = StudyDoc.GetFirstNode()
While Not Node Is Nothing
        NodeNumber = StudyDoc.GetEntityID(Node)
        Set Coord = StudyDoc.GetNodeCoord(Node)
        Str = NodeNumber & "," & Coord.X & "," & Coord.Y  & "," & Coord.Z & vbCRLF
        lFile.Write Str
        Set Node = StudyDoc.GetNextNode(Node)
Wend

' Close File
lFile.Close

' Notify user where the file is located
MsgBox "Nodal Data Recorded In File" & vbCRLF & TempFolder.Path & "\" & Name 
 
' Open the File in Notepad
Set App = WScript.CreateObject("WScript.Shell")
Dim Command
Command = "notepad.exe " & TempFolder.Path & "\" & Name 
App.Run Command

MsgBox "Script Complete"
Wscript.Quit