新浪博客

SAP2000 API入门指南(三)在Excel中使用SAP2000 API

2009-04-09 15:49阅读:
作者:余承飞(酷鱼,QQ: 1931045538)
酷鱼的博客: http://blog.sina.com.cn/xcoolfish
在SAP2000 API入门指南(一)和(二)中,用的都是VS2008和C#,有朋友反映说工具太偏编程了,对于结构工程师来说,主要使用的还是Excel。确实,VS2008安装起来太麻烦的,而Excel应该是结构工程师的必备工具,如果用Excel来调用SAP2000,就不需要额外安装任何东西。

SAP2000自带的API文档,里面的例子都是Excel VBA编的。本文详细介绍如何在Excel中编写和使用SAP2000 API。

以Office 2003为例,先打开Excel,选择菜单“工具/宏/Visual Basic编辑器”,如下图所示:
SAP2000 <wbr>API入门指南(三)在Excel中使用SAP2000 <wbr>API

这时会出现“Microsoft Visual Basic - Book 1”窗口。在左侧目录树中双击“ThisWorkBook”,如下图所示。
SAP2000 <wbr>API入门指南(三)在Excel中使用SAP2000 <wbr>API


再给程序添加引用。选择菜单“工具/引用”,如下图所示:
SAP2000 <wbr>API入门指南(三)在Excel中使用SAP2000 <wbr>API

在出现的“引用”对话框中,找到“Sap2000v12”并勾选它,如下图所示。如果出现多项“Sap2000v12”,是因为安装过多次SAP2000 V12又没有卸载干净的原因,可通过下面的“定位”文件夹信息确定要勾选哪个。
SAP2000 <wbr>API入门指南(三)在Excel中使用SAP2000 <wbr>API

按“确定按钮”。在代码窗口中输入以下代码(这些代码都是API文档里带的):
Sub MyProgram()
'dimension variables
Dim SapObject As Sap2000.SapObject
Dim SapModel As cSapModel
Dim ret As Long
'create an instance of the Sap2000 object
Set SapObject = New Sap2000.SapObject
'start the Sap2000 application
SapObject.ApplicationStart
'create the SapModel object
Set SapModel = SapObject.SapModel
'initialize model
ret = SapModel.InitializeNewModel
'call Sap2000 API functions here to perform desired tasks
'in this example a new 2D frame is created from template
ret = SapModel.File.New2DFrame(PortalFrame, 3, 124, 3, 200)
'close the Sap2000 application, if desired
SapObject.ApplicationExit False
'set the objects to Nothing
'at the end of your program ALWAYS terminate the objects in this manner
Set SapModel = Nothing
Set SapObject = Nothing
End Sub
Sub Main()
Call MyProgram
End Sub
点击工具栏中的“运行”按钮,如下图所示:
SAP2000 <wbr>API入门指南(三)在Excel中使用SAP2000 <wbr>API

程序运行,SAP2000自动启动,绘制一个2D Frame,然后自动关闭。

关闭编程窗口,再将此Excel文档保存、关闭。需要注意的是,为了能运行已经编好的程序,在打开此Excel文档之前,要将宏安全性设为“中”,并在打开文档时选择“启用宏”。

如果你用的是Office 2007,默认情况下是找不到Visual Basic开发窗口的,需要先设置一下选项。先在菜单里选择“Excel选项”,如下图:
SAP2000 <wbr>API入门指南(三)在Excel中使用SAP2000 <wbr>API

然后在选项对话框中勾选“在功能区显示开发工具选项卡”,如下图所示:
SAP2000 <wbr>API入门指南(三)在Excel中使用SAP2000 <wbr>API
OK, that's it! Enjoy!
追加:6年过去了,软件都更新了,我新写了一篇 《在Office 2010的Excel中使用SAP2000 v15的OAPI》

我的更多文章

下载客户端阅读体验更佳

APP专享