我正在尝试使用ETABS2015 API。作为第一步,我正在复制ETABS API帮助中的一个示例。该示例在VB .NET中。
该示例首先通过指向程序.exe位置来创建API类对象。 这是在VB .NET中使用
实现的Set ETABSObject = myHelper.CreateObject("Path\To\EXE")
CreateObject是ETABS2015中类Helper的方法。
我在Python中尝试以下内容来实现等效。
import clr
import math
import System
import sys
sys.path
sys.path.append("C:\\Program Files\\Computers and Structures\\ETABS 2015\\")
clr.AddReferenceToFile("ETABS2015.dll")
import ETABS2015
path = 'C:\\Program Files\\Computers and Structures\\ETABS 2015\\ETABS.exe'
eObj = ETABS2015.Helper.CreateObject(path)
运行脚本会给我TypeError:CreateObject()只需要2个参数(给定1个)。我不知道如何纠正这个问题。有什么建议吗?
我确实注意到了许多类似错误的问题,但大多数问题都需要修改方法功能。但在这种情况下,我无法访问该方法,因为它是从dll中读取的。
谢谢。
答案 0 :(得分:2)
尝试将eObj = ETABS2015.Helper.CreateObject(path)
单独分为两个步骤
以下是我的例子:
import System
import clr
clr.AddReferenceToFileAndPath(r"C:\Program Files\Computers and Structures\ETABS 2016\ETABS2016.dll")
from ETABS2016 import *
path = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles), "Computers and Structures", "ETABS 2015", "ETABS.exe")
helper = Helper()
csiApp = helper.CreateObject(path)
csiApp.ApplicationStart()
Model=csiApp.SapModel