问题描述:
如何通过 Python 调用 API 来启动 SAP2000?
解答:
除 Python 语言外,SAP2000 的 API 接口还支持 VBA、VB、C#、Intel Visual Fortran、C++、MATLAB 等多种开发语言。用户可根据实际情况,挑选适合自己的编程语言做二次开发。对于从未接触过编程的结构工程师,推荐首选 Python 语言,毕竟上手难度低,简单易学,可以从图 1 中的Example 7 和 Example 8 入门。
图1. API 帮助文档(程序安装路径下获取)
关于 Python 开发环境的配置,建议参考文章《SAP2000 API 二次开发 - Python 示例》,此处不再赘述。环境配置完毕后,用户可以通过以下脚本启动 SAP2000。
Import os
#导入操作系统接口模块
Import sys
#用于访问 Python 编译器使用的变量及交互函数
Import comtypes.client
#导入 comtypes.client 模块。Python 访问 COM 对象需要借助 Comtypes 包,该包可以轻松同时实现自定义的访问和基于 COM 接口的调度。
helper=comtypes.client.CreateObject("SAP2000v1.Helper")
#创建 API 帮助对象
mySapObject=helper.CreateObject(r"C:\ProgramFiles\ComputersandStructures\SAP200024\SAP2000.exe")
#从指定路径创建 mySapObject 实例
mySapObject=helper.CreateObjectProgID("CSI.SAP2000.API.SapObject")
#将启动最新安装的 SAP2000 版本创建 mySapObject 实例。
mySapObject.ApplicationStart() #启动 SAP2000
SapModel=mySapObject.SapModel #创建 SapModel 对象
SapModel.InitializeNewModel(9) #初始化模型,并修改单位制 9=N_mm_C
SapModel.File.NewBlank() #创建一个空白的 model
# 添加其他的内容
mySapObject.ApplicationExit(True) #关闭 SAP2000
SapModel=None #将对象设置为空
mySapObject=None #断开用户程序与 SAP2000 的关联,释放占用的系统内存。