python - 从 python (NXOpen) 连接到 Siemens NX 服务器; pythonnet GetObject 类型错误

标签 python typeerror remoting python.net nxopen

我正在尝试从 Siemens NX 服务器(在同一台机器上,即本地主机上)获取 Session 对象。
我正在将 python 3.6 与 pythonnet 一起使用,因为远程连接(显然)只能通过 .NET 工作——我对 pythonnet 非常陌生(到目前为止只尝试过这个功能)。

我需要通过远程的 Session 对象,因为我想从界面中获取一些用户输入,因此不能通过 run_journal 进行批处理。

该方法基于我在这里找到的内容:https://github.com/pythonnet/pythonnet/issues/276 ,但我收到错误“ TypeError: No method matches given arguments for GetObject

import NXOpen
import clr
import System

theSession = System.Activator.GetObject(NXOpen.Session, "http://localhost:4574/Session")

我也试过 GetObject(type(NXOpen.Session), ...)有同样的错误。

如何将 NXOpen 对象类型输入 GetObject 函数?

或者,有没有更好的方法可以使用 Python 远程连接到 Siemens NX Session?

服务器是示例 NXOpen .NET 远程服务器,位于\Siemens\NX 12.0\UGOPEN\SampleNXOpenApplications.NET\RemotingExample\Server

最佳答案

晚了,但似乎我终于找到了解决方案。首先,当我为所有用户安装 python 时,我复制了 NX python 模块目录中的所有 NXOpen 库(我不使用 IDE,只使用 Notepad++)。
这是一个工作示例,使用 python.exe file.py 和 .NET 远程处理服务器运行良好。

import clr
from System import Activator

import sys
import math

# Managed NXOpen DLL's goes also in this directory
sys.path.append('C:/Siemens/NX 11/NXBIN/python')

clr.AddReference('NXOpen')
import NXOpen

def main() : 

    m_Session = Activator.GetObject(NXOpen.Session, "http://127.0.0.1:4567/NXOpenSession")
    m_WorkPart = m_Session.Parts.Work

    print(m_Session.Parts.Display.FullPath)

if __name__ == '__main__':
    main()

关于python - 从 python (NXOpen) 连接到 Siemens NX 服务器; pythonnet GetObject 类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59216947/

相关文章:

python - 如何在使用 range() 函数从列表中删除项目时迭代列表?

python - Matplotlib/Imshow/透明层无处不在但某些点

python - python、pandas中string.contains的反转

javascript - 无法使用 Gantry 4 Framework 在 Joomla 3.0 上使用 Bootstrap 工具提示

javascript - Firebase:TypeError:fbRef.child 不是函数

c# - 在 C# 中与 Windows 服务对话的 Windows 应用程序?

python - 打印可能存在也可能不存在的嵌套字典值

javascript - Undefined 不是 this.state 对象上的对象

c# - 如何跨 AppDomain 将引用作为方法参数传递?

c# - 是否可以在没有序列化的情况下在应用程序之间共享对象?