在设计过程中,对于一些复杂的节点或是关键的构件,我们有时候会采用ABAQUS、ANSYS等通用有限元软件进行分析。在这一过程中,建模往往会花费大量的时间。
SAP2000 API 支持Python在内的多种编程语言,用户可以通过编写程序控制SAP2000,调用各种功能,实现建模、分析、后处理等;同时ABAQUS提供了用Python进行二次开发的能力。于是我想,是否可以利用Python将ABAQUS与SAP2000连接,使ABAQUS可以直接访问SAP2000的模型信息,在SAP2000中选择一个节点或是一个构件,就可以在ABAQUS中直接将模型建出。本文是我对解决这一问题的过程进行的一些整理。
整体思路大致如下:
1. 实现在ABAQUS中访问SAP2000。
2. 通过SAP2000 API读取建模时所需要的信息,如截面尺寸、节点坐标等。
3. 利用Python在ABAQUS中进行参数化建模。在以往的文章中有过介绍,本文不再赘述。
01.
安装comtypes包
SAP2000二次开发的帮助文档(CSi_OAPI_Documentation.chm)中,给出了Python访问SAP2000的方法:
//访问已经打开的SAP2000模型
1. import comtypes.client
2. SapObject &