结构分析软件SAP2000建模的二次开发技术

2023-02-20

1 SAP2000介绍

SAP2000是由美国Computersand Structures Inc. (CSI) 公司开发研制的通用结构分析与设计软件。SAP2000已有近40年的发展历史, 是美国乃至全球工人的结构分析计算程序, 在世界范围内广泛应用。工程师可以在同一个界面中完成建模、分析和设计, 可以通过不同的视图窗口将结构的模型信息、分析结果和设计结果同时展现给用户, 而且可以在不同显示含义的视图中直接进行与该显示状态相关的操作, 比如, 在模型信息中查看修改模型信息、在分析结果显示视图中选择显示构件的内力详细输出、在设计结果中进行构建的交互式设计等。设计方面, SAP2000采用传统设计方式与交互式图形方式相结合进行结构设计, 这种设计方式可以大大提高工程师的效率。

1 SAP2000二次开发的意义

1.1 对软件产品的功能进行扩充或根据特殊需要组合扩展功能

由于SAP2000软件系统提供了相应的软件开发包SDK (Software develop kit) 。二次开发人员可以根据SDK中提供的公开的API (应用程序接口) 来访问软件原有的一些基本功能, 并要据这些基本功能组合, 扩展进而形成更加专业或新的功能以完成用户特殊的需求。

1.2 与第三方软件无缝地连接

SAP2000作为一款大型、通用的有限元分析软件, 其面向的是一般用户, 解决的工程问题也是较常见的类型, 而对于比较特殊或复杂的工程问题形式, 工程技术人员可以开发一些子程序, 再利用SAP2000卓越的前后处理功能使问题得到很好的解决, 这一过程的实现就是通过二次开发技术将自编的软件与SAP2000高效、无缝地连接起来, 建立二者之间的通讯。由此, 第三方开发者可以创建与SAP2000丰富紧密的双向连接, 允许准确地转换模型至SAP2000, 由SAP2000控制执行过程, 并从SAP2000中提取分析和设计信息。

2 SAP2000二次开的主要步骤

从SAP2000 V11.00版开始CSI公司为我们了对其进行二次开发的技术文档, 里面包括上千个应用程序接口函数 (API) , 这使得用户创建、分析、设计模型的过程自动化完成, 并能获得用户定制的分析与设计结果。这样做可以省去许多创建模型的中间过程, 只根据用户的实际需求创建模型, 大大缩短了结构模型的创建、分析时间, 省时省力。对SAP2000进行二次开发这一过程主要是利用组件对象模型技术, 在进程外创建组件。可以使用大多数主要的编程语言通过API函数来创建一个SAP2000进程。这包括VBA (Visual Basic for Applications) 、Visual Basic 2005、Visual C#2005、Intel Visual Fortran v9。由于VBA简单易学, 并被嵌入到了Microsoft Excel中, 可以直接利用它编写程序, 所以, 文章采用VBA以创建一个二维框架模型为例说明对SAP2000进行二次开发的主要步骤。第一步:要使用SAP2000的API, 就要在外部应用程序中添加对SAP2000的引用, 本例从Microsoft Excel中添加对其SAP2000的引用。启动Microsoft Excel, 选择工具→宏→Visual Basic编辑器, 打开VBA编辑器。插入模块后选择工具→引用, 在“引用”对话框中勾选SAP2000复选框, 这样就添加了对SAP2000的引用。第二步:创建一个SAP2000对象实例。代码Dim Sap Object As SAP2000.Sap Object‘创建对象变量Set Sap Object=New SAP2000.Sap Object‘创建SAP2000对象实例。第三步:启动SAP200程序。代码是Sap Object.Application Start。至此, 你可以打开一个已经存在的模型, 也可以创建一个新模型。第四步:定义一个模型对象, 用Sap Model代替Sap Object.Sap Model, 代码是Dim Sap Model As c Sap Mode

Set Sap Model=Sap Object.Sap Model当完成了模型的创建后, 你可以关闭Sap2000应用程序, 代码是Sap Object.Application Exi True

第五步:释放模型和对象占用的空间, 代码是Set Sap Model=Nothing

Set Sap Object=Nothing‘这是很重要的一步, 它中断了你的应用程序和SAP2000应用程序的连接, 并释放系统资源, 如果你没有写上面代码, SAP2000应用程序就没有完全终止, 你可以在任务管理器中看到它仍在运行。

3 完整的实例代码

把以上描述的步骤应用到创建一个二维框架模型的例子中, 其完整的VBA代码如下:

程序最后的运行结果如图1所示。

这样就在程序中创建了一个楼层数为3, 开间数为3, 楼层高度为124英寸, 开间为200的二维门式框架。

4 结语

SAP2000已经发展成为一个集成化的建筑结构分析与设计软件, 它采用独特的图形操作界面系统 (GUI) , 利用面向对象的操作方法来建模, 编辑方式与Auto CAD类似, 可以方便地建立各种复杂的结构模型, 同时辅以大量的工程模板, 大大提高了用户建模的效率, 并且可以导入导出包括Auto CAD在内的常用格式的数据文件, 极大方便了用户的使用。在SAP2000功能如此强大的基础上, 为了方便用户解决特定的问题, 这些问题可能不需要使用SAP2000直接进行建模, 或者是虽然SAP2000的功能如此强大, 但实际的工程的项目仍然有可能非常复杂。研究单位针对这些专门领域的工程项目, 一般都有多年甚至数十年的专门研究, 有可能发展了一套专有的或扩展了通用分析计算软件, 但一般来说, 这些程序都缺少好的前后处理模块。那么, 通过二次开发技术, 这些专有的或扩展的计算模块, 完全可以无缝的集成到SAP2000平台中, 使软件解决问题的能力更为强大和方便。

摘要:文章介绍了利用VBA语言对SAP2000结构分析和设计软件进行二次开发的技术, 从实例出发阐述对SAP2000进行二次开发的主要步骤, 利用这一技术可以使工程师专注于实际问题的主要方面, 省却许多中间的计算过程, 大大缩短设计时间, 提高工作效率。

关键词:SAP2000,二次开发,API,VBA,对象模型

参考文献

[1] 北京金土木软件技术有限公司等.SAP2000中文版使用指南[M].北京:人民交通出版社, 2006 (9) :4~8.

[2] 北京金土木软件技术有限公司网站:www.bjcks.com/company/datum/2007050801.htm.

[3] 韩松, 邓迎春, 何道君[译].Paul McFedries.Office 2000 VBA 编程技术[M].北京:电子工业出版社, 2000, 2.

上一篇:解决留守儿童问题的“三步曲”下一篇:全自动梯形微板法检测RhD血型影响因素探讨