Siemens NX 2506 使用外部 Python

最近更新于 2025-10-26 23:35

前言

我这里安装的 NX 2506,用这段代码打印出了 NX 内置的 Python 的信息
Python 是 3.12.9 版本

import sys
import NXOpen

def main():
    session = NXOpen.Session.GetSession()
    lw = session.ListingWindow
    lw.Open()

    # 打印 Python 版本
    lw.WriteLine("Python 版本: " + sys.version)
    lw.WriteLine("Python 可执行文件路径: " + sys.executable)

    # 打印库路径
    lw.WriteLine("Python 库路径列表:")
    for p in sys.path:
        lw.WriteLine("  " + p)

if __name__ == "__main__":
    main()

file

用内置 Python 的话,就没有丰富的三方库了。

设置操作记录语言为 Python

文件 – 实用工具 – 用户默认设置
file

基本环境 – 用户界面 – 操作记录
操作记录语言选 Python,文件格式看自己,Python 我都用 UTF-8
file

这里相当于设置默认 py,这样打开操作记录文件的时候默认也是筛选 py,不需要手动去切换文件打开对话框的筛选器
file

设置外部 Python

基础设置

我电脑上安装了多个版本的 Python,但是我试了 3.13.8,会出现"无法初始化 Python 解释器"的错误。
file

NX 内置的版本是 3.12.9,后面我试了自己装的 3.12.10,就可以正常使用,也就是要保证次版本号相同。
后续设置涉及到路径,所以需要获取 Python 路径和 NX 的安装路径。
在终端执行
可以获取已安装的 Python 的安装路径

py -0p

我选中的这个路径就要用到,后称“Python路径”
file

在资源管理器输入 %UGII_BASE_DIR% 回车,可以进入 NX 安装目录
file

这个路径要用到,后称“NX路径”
file

以管理员身份打开记事本,然后编辑 “NX路径\UGII\ugii_env.dat”
按下面示例写入,其中的 “Python路径” 和 “NX路径” 自行 替换为上面所述的 2 个路径

UGII_PYTHON_LIBRARY_DIR="Python路径"
UGII_PYTHONPATH="Python路径;Python路径\DLLs;Python路径\Lib;Python路径\Lib\site-packages;NX路径\design_tools\checkmate\python;NX路径\automated_testing\python;NX路径\NXBIN\python"

file

然后可以创建一个 py 文件测试,代码可以用我开头给出的代码,启动 NX
Alt+F8 打开操作记录管理器,或者按 Alt+F11打开操作记录编辑器,打开代码文件
file

运行测试,使用我自己的 3.12.10 版本运行成功
file

解决 Tkinter 无法使用的问题

当测试 Tkinter 时,发现报错
报错是说没找到 TCL,这里需要手动设置 TCL 路径

Line 0 : Traceback (most recent call last):
  File "C:\Users\iyatt\Desktop\test.py", line 30, in <module>
    root = tk.Tk()
           ^^^^^^^
  File "C:\Users\iyatt\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 2346, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_tkinter.TclError: Can't find a usable init.tcl in the following directories: 
    {C:/Program Files/Siemens/NX2506/nxbin/lib/tcl8.6} {C:/Program Files/Siemens/NX2506/lib/tcl8.6} {C:/Program Files/Siemens/lib/tcl8.6} {C:/Program Files/Siemens/NX2506/library} {C:/Program Files/Siemens/library} {C:/Program Files/Siemens/tcl8.6.15/library} {C:/Program Files/tcl8.6.15/library}

This probably means that Tcl wasn't installed properly.

Can't find a usable init.tcl in the following directories: 
    {C:/Program Files/Siemens/NX2506/nxbin/lib/tcl8.6} {C:/Program Files/Siemens/NX2506/lib/tcl8.6} {C:/Program Files/Siemens/lib/tcl8.6} {C:/Program Files/Siemens/NX2506/library} {C:/Program Files/Siemens/library} {C:/Program Files/Siemens/tcl8.6.15/library} {C:/Program Files/tcl8.6.15/library}

This probably means that Tcl wasn't installed properly.

打开编辑系统环境变量
file

点开环境变量
file

在上面用户变量部分,新建
变量名:TCL_LIBRARY
变量值:Python路径\tcl\tcl8.6
file

用代码运行测试

import tkinter as tk

root = tk.Tk()
root.mainloop()

file

运行后创建图形窗口成功
file

使用 VScode 作为编辑器

目前还没有直接用 VScode 调试的方法,只是可以设置用 VScode 写代码,有代码提示,效率比用 NX 的编辑器高,运行还是得在 NX 里执行。
VScode 已安装 Python 插件的情况下
file

打开 Pylance 的设置
file

在 Extra Paths 设置

NX路径\UGOPEN\pythonStubs

file

这样用 VScode 写代码的时候就可以提示 NXopen 的库函数

Siemens NX 2506 使用外部 Python
Scroll to top
打开目录