土木在线论坛 \ 建筑结构 \ SAP2000 \ SAP2000 API入门指南(一)从外部程序调用

SAP2000 API入门指南(一)从外部程序调用

发布于:2009-04-01 13:00:01 来自:建筑结构/SAP2000 4 4029 [复制转发]
在SAP2000 12的安装目录下,有一个SAP2000_API_Documentation.chm文件,这个文件就是API的文档,里面有入门指南、函数参考手册、样例代码等。我是从“Example 3 (Visual C# 2005)”这个样例代码学起的。当时我用VS2005,现在用VS2008一样OK。
需要特别注意的是,这个文档并没有及时更新,实际的函数接口可能跟文档里写得不一样,因此样例代码是在编译时会出错的。需要做一些更改才能正常运行。这些更改通常是大小写问题,估计CSI的人都用VB,对大小写不重视吧。还有一些是函数的参数个数或类型不符,但不太多,稍微修改一下就OK。
本文描述如何能运行“Example 3 (Visual C# 2005)”样例代码。环境为SAP2000 V12.0.2 + Visual Studio 2008.



1. 打开VS2008,新建项目,选C#, Windows窗体应用程序,名称为Example3,如下图所示。

1_newProject.png



2. 添加对SAP2000 API的引用。选菜单“项目/添加引用”,如下图:

2_addRef.png

在弹出的“添加引用”对话框中,选“浏览”标签,选中SAP2000目录下的SAP2000.exe文件,如下图。

3_addRefDialog.png

按“确定”按钮。VS2008生成了对SAP2000 API的引用。

在项目的“引用”中新增了“CsiGoCallbackLib”和“Sap2000”两项。可以展开“Sap2000”引用项看看,里面提供了许多类和方法,如下图.


4_objModel.png


3. 添加按钮。在解决方案中双击"form1.cs",在对话框中放置一个按钮,将该按钮的name改为"buttonTest", 将其Text改为“测试”,如下图。


5_form1.png


4. 为按钮添加代码。双击“测试”按钮,切换到代码视图,在函数buttonTest_Click中添加代码。我们将API文档的"Example 3 (Visual C# 2005)"中的代码粘贴到这里。存盘、编译。VS2008会报17个错误,都是“找不到类型或命名空间名称“SAP2000””。原因是引用了SAP2000 API后,VS2008自动给出的命名空间是“Sap2000”,而样例代码中的是"SAP2000",大小写不同。

5. 修改错误。将“SAP2000”全部替换为“Sap2000”。再编译,还有错误,包括以下地方:

ret = SapModel.View.RefreshView(0, ref temp_bool);

函数原型为:

int RefreshView(int Window, bool Zoom);
第2个参数前不应有ref,删除之,变为:

ret = SapModel.View.RefreshView(0, temp_bool);



错误:
ret = SapModel.LoadPatterns.Add("1", Sap2000.eLoadPatternType.LTYPE_OTHER, 1, ref temp_bool);
函数原型为:

int Add(string Name, eLoadPatternType MyType, double SelfWTMultiplier, bool AddAnalysisCase);
第4个参数前不应有ref,删除之,变为:

ret = SapModel.LoadPatterns.Add("1", Sap2000.eLoadPatternType.LTYPE_OTHER, 1, temp_bool);


将所有错误处按以上方法修改后,编译通过。



6. 建立文件夹C:SapAPI,程序会将SAP文件存放在这里。运行程序,按“测试”按钮。程序自动启动SAP2000,自动建模,自动分析,自动关闭SAP2000,并用一个对话框输出结果,如下图所示:


6_output.png


我们现在去看看程序自动建立的模型。用SAP2000打开C:SapAPIAPI_1-001.sdb,可以看到已建立好的模型,如下图:

7_model.png

[ 本帖最后由 ycf888 于 2009-4-1 13:07 编辑 ]

1_newProject.png


2_addRef.png


3_addRefDialog.png


4_objModel.png


5_form1.png


6_output.png


7_model.png

全部回复(4)

只看楼主 我来说两句
  • abs0071980
    abs0071980 沙发
    强人楼主,鉴定完毕。:handshake :handshake :handshake :handshake :handshake :handshake
    2010-12-05 12:16:05

    回复 举报
    赞同0
  • faithlg
    faithlg 板凳
    非常感谢
    2010-07-28 18:07:28

    回复 举报
    赞同0
  • fyhhh9999
    fyhhh9999 地板
    谢谢楼主的无私奉献,这个对我有很大的用处,再次感谢
    :time: :time: :time:
    2010-07-25 12:13:25

    回复 举报
    赞同0
  • 雪下大了
    :handshake
    2010-06-09 10:22:09

    回复 举报
    赞同0
评论帖子
评论即可得
+1经验值
+10土木币

请先 登录,再参与讨论!

相关推荐
这个家伙什么也没有留下。。。

SAP2000

返回版块

3.11 万条内容 · 129 人订阅

猜你喜欢

阅读下一篇

为什么没有“结构总体信息”

为什么我用的ETABS在选项>首选项>里都没有“结构总体信息”那一栏啊,原来用的8.48的就没有,刚刚下了置顶的9.0也还是没有啊而且我算了一个例子,但是打印出的结果里也没有“位移比”那一页,是为什么呢

请选择删除原因

回帖成功

经验值 +10