首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将VBA代码与打开的ETABS连接起来?

如何将VBA代码与打开的ETABS连接起来?
EN

Stack Overflow用户
提问于 2017-03-16 12:23:43
回答 2查看 4.4K关注 0票数 3

2015年ETABS的一个项目在我的个人电脑上开放。我想做一些改变,并通过一个VBA代码自动处理它。但我找到的所有示例代码如下:

代码语言:javascript
运行
复制
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项目已经在运行,我想连接到它,但我不知道如何!请帮帮我。

EN

Stack Overflow用户

发布于 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一起工作,那么您只需做以下工作

代码语言:javascript
运行
复制
    '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.文件中的例子(在记录的方法和属性下)在启动输入数据方面可能不完整,在这种情况下,它们只是给人留下如何使用各自方法和属性的印象。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42834016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档