最近更新于 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()

用内置 Python 的话,就没有丰富的三方库了。
设置操作记录语言为 Python
文件 – 实用工具 – 用户默认设置

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

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

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

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

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

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

以管理员身份打开记事本,然后编辑 “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"

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

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

解决 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.
打开编辑系统环境变量

点开环境变量

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

用代码运行测试
import tkinter as tk
root = tk.Tk()
root.mainloop()

运行后创建图形窗口成功

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

打开 Pylance 的设置

在 Extra Paths 设置
NX路径\UGOPEN\pythonStubs

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