首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从python (NXOpen)连接到西门子NX服务器;pythonnet GetObject TypeError

从python (NXOpen)连接到西门子NX服务器;pythonnet GetObject TypeError
EN

Stack Overflow用户
提问于 2019-12-06 16:31:10
回答 1查看 2.6K关注 0票数 5

我试图从西门子NX服务器(在同一台机器上,即本地主机上)获取会话对象。我在pythonnet中使用python3.6,因为远程连接(显然)只通过.NET工作--我对pythonnet非常陌生(到目前为止只尝试了这一功能)。

我需要通过远程的会话对象,因为我想从界面获取一些用户输入,因此通过run_journal批处理不是一个选项。

这种方法是基于我在这里发现的:https://github.com/pythonnet/pythonnet/issues/276,但是我得到了错误"TypeError: No方法匹配给定的GetObject参数“

代码语言:javascript
复制
import NXOpen
import clr
import System

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

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

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

或者,是否有更好的方法可以使用Python远程连接到西门子NX会话?

服务器是西门子\NX 12.0\UGOPEN\SampleNXOpenApplications.NET\RemotingExample\Server中找到的示例NXOpen .NET远程服务器。

EN

回答 1

Stack Overflow用户

发布于 2020-10-01 06:18:15

虽然晚了,但看来我还是找到了解决办法。首先,当我为所有用户安装python时,我在NXOpen模块目录中复制了所有NXOpen库(我不使用IDE,只使用Notepad++)。

下面是一个工作示例,它可以在python.exe file.py和.NET远程处理服务器上正常运行。

代码语言:javascript
复制
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()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59216947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档