ETABS 2015项目在我的电脑上开放。我想通过VBA代码自动进行一些更改和处理。但是我发现的所有示例代码都是这样的:
Public Sub Example()
Dim SapModel As cSapModel
Dim EtabsObject As cOAPI
Dim FileName as String
Dim ret As Integer = -1
'create ETABS object
EtabsObject = CreateObject("CSI.ETABS.API.ETABSObject")
'start ETABS application
ret = EtabsObject.ApplicationStart()
'create SapModel object
SapModel = EtabsObject.SapModel
'initialize model
ret = SapModel.InitializeNewModel()
'open an existing file - If no file exists, run the Save example first.
FileName = "c:\CSI_API_temp\example.edb"
ret = SapModel.File.OpenFile(FileName)
此代码只是在我的电脑中打开一个新的ETABS。但我的ETABS项目已经开始运行,我想连接到它,但我不知道怎么做! 请帮帮我。
答案 0 :(得分:1)
您的示例代码基本上是打开ETABS ITSELF 并初始化新模型所需的代码,
ETABSObject = CreateObject("CSI.ETABS.API.ETABSObject")
之后调用ApplicationStart
方法是直接的方法。
如果您在安装目的地中引用ETABS API文档文件(例如“C:\ Program Files \ Computers and Structures \ ETABS 2015 \ CSi API ETABS 2015.chm”),请参阅“发行说明>附加到”手动启动ETABS的实例“,或者如果您从链接中看到相同的部分 http://docs.csiamerica.com/help-files/etabs-api-2015/html/3ceb8889-9028-4de3-9c87-69a12055ade7.htm 你会发现代码(在VB.Net中)接近你的目标,但它不适用于vba,所以,你只需要做的就是这个
'The ret variable, just for method invocation convenience
Dim ret As Integer
'Create an instance of the currently opened Program
Dim myETABSObject As ETABS2015.cOAPI
Set myETABSObject = GetObject(, "CSI.ETABS.API.ETABSObject")
'Create an instance to the model
Dim myETABSModel As ETABS2015.cSapModel
Set myETABSModel = myETABSObject.SapModel
'Now, after the "reference instances" are obtained
'Initialize the model (using the model's instance of course)
ret = myETABSModel.InitializeNewModel() 'default units in kip_in_F
'Set the model templete, which is "Blank"
ret = myETABSModel.File.NewBlank()
您通常可以继续编码。
注意:如果未打开ETABS,则1- GetObject(CSI.ETABS.API.ETABSObject)
方法将引发错误。
2-你仍然可以使用GetObject
即使ETABS没有打开,如果你想从windows shell打开它(比如使用命令提示打开程序而不是双击各自的图标),但是这个当然需要一些错误处理和“Windows脚本宿主对象模型”的使用。
3-文档中的示例(在记录的方法和属性下)在启动输入数据方面可能不完整,在这种情况下,它们只是为了创建如何使用各自方法和属性的印象。