2015年ETABS的一个项目在我的个人电脑上开放。我想做一些改变,并通过一个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项目已经在运行,我想连接到它,但我不知道如何!请帮帮我。
发布于 2017-06-27 15:10:31
您的示例代码基本上并且通常是打开ETABS 本身的和初始化新模型所需的代码,ETABSObject = CreateObject("CSI.ETABS.API.ETABSObject")
和ApplicationStart
方法的调用是直接的方法。
如果您引用安装目标(例如"C:\Program \Computers和Structure\ ETABS 2015\CSi API ETABS 2015.chm“一节中的ETABS文档文件文件),则”将Notes>Attaching释放到手动启动的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
,如果您想从windows打开它(比如使用命令提示符来打开程序而不是双击它们各自的图标),您仍然可以使用它,但是这当然需要一些错误处理和使用"Windows主机对象模型“。
3.文件中的例子(在记录的方法和属性下)在启动输入数据方面可能不完整,在这种情况下,它们只是给人留下如何使用各自方法和属性的印象。
https://stackoverflow.com/questions/42834016
复制相似问题