問題描述:
如何通過 Python 調(diào)用 API 關(guān)聯(lián)已經(jīng)打開的 SAP2000?
解答:
關(guān)于 Python 開發(fā)環(huán)境的配置可以參考文章《SAP2000 API 二次開發(fā) - Python 示例》。環(huán)境配置完畢后可以通過以下腳本關(guān)聯(lián)已經(jīng)打開的 SAP2000,再在關(guān)聯(lián)模型的基礎(chǔ)上進(jìn)行后續(xù)操作。
Import os
#導(dǎo)入操作系統(tǒng)接口模塊
Import sys
#用于訪問 Python 編譯器使用的變量及交互函數(shù)
import comtypes.client
#導(dǎo)入 comtypes.client 模塊。Python 訪問 COM 對(duì)象需要借助 Comtypes 包,該包可以輕松同時(shí)實(shí)現(xiàn)自定義的訪問和基于 COM 接口的調(diào)度。
mySapObject=comtypes.client.GetActiveObject(“CSI.SAP2000.API.SapObject”)
#獲取運(yùn)行的 SAP2000 對(duì)象,也就是已經(jīng)打開的 SAP2000。
SapModel=mySapObject.SapModel #創(chuàng)建 SapModel 對(duì)象
SapModel.initializeNewModel() #初始化模型
SapModel.File.NewBlank() #新建空白模型
# 添加其他的內(nèi)容
mySapObject.ApplicationExit(True) #關(guān)閉 SAP2000
SapModel=None #將對(duì)象設(shè)置為空
mySapObject=None #斷開用戶程序與 SAP2000 的關(guān)聯(lián),釋放占用的系統(tǒng)內(nèi)存。