ETABS 2015 OAPI和Python - TypeError - CreateObject只需要2个参数(给定1个)

时间:2016-12-19 17:08:19

标签: python api

我正在尝试使用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中读取的。

谢谢。

1 个答案:

答案 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