UG 2406 python 二次开发环境配置

UG 2406 python 二次开发环境配置

项目地址

https://gitee.com/unm001/nx2406.git

安装python

  1. 安装 python 3.10.11
    D:\prog\python\python310

  2. 新建 python 项目文件夹

    • E:\work\UG 下拉取
      git clone https://gitee.com/unm001/nx2406.git
    • E:\work\UG\nx2406 改名为 E:\work\UG\PROG
  3. 安装 vscode 并打开文件夹 E:\work\UG\PROG

  4. 更新 pip源

    找到 pip_config.py 执行并选择源。推荐 清华大学

  5. 测试pip
    pip install numpy

联动UG

  1. 安装 UG 2406
    D:\prog\UG2406

  2. 把UG的python 路径添加

    • 系统环境变量 PYTHONPATH

    • 内容

      复制代码
      D:\prog\UG2406\NXBIN\python
    • 作用是找到 NXOpen ,可以import

    • 找到 text_sys_path.py 执行
      结果是:

      复制代码
      e:\WORK\UG\PROG
      D:\prog\UG2406\NXBIN\python
      D:\prog\python\python310\python310.zip
      D:\prog\python\python310\DLLs
      D:\prog\python\python310\lib
      D:\prog\python\python310
      D:\prog\python\python310\lib\site-packages
      ------------------------------
  3. 把系统路径模块复制到ug python 的目录

    • 复制 E:\WORK\UG\PROG\ug_path.pyD:\prog\UG2406\NXBIN\python\ug_path.py
  4. 新建._pth 文件

    • 位置 D:\prog\UG2406\NXBIN\python\python310._pth

    • 内容

      复制代码
      python310.zip
      .
      # Uncomment to run site.main() automatically
      import site
    • 作用是让ug内执行py程序时,可以引用pip的模块

  5. 在UG里新建一个用户命令

    • 执行 ug_sys_test.py

    • 文件要点:

      • 先要

        复制代码
        from ug_path import ug_path_init
        
        # add python path to sys.path
        ug_path_init()

        这是把UG外面的python pip包的路径添加到系统里,可以找到并import, 并且设置程序运行的当前目录.

      • 引用的dlx文件在 ./dlg/ 目录下,系统生成的 BLOCK UI 的 .py 文件,引用的 dlx 文件路径要改一下。
        /dlg/sys_test_main.py文件里 原文

        复制代码
        self.theDlxFileName = "sys_test_main.dlx"

        更改为

        复制代码
        # self.theDlxFileName = "sys_test_main.dlx"
        self.theDlxFileName = "dlg/sys_test_main.dlx"
      • 新建类,并重写响应的函数。

      • 重写 main 函数。

    • 如果引用外部包,文件头最好加上 #nx: threaded

      1. 引用 numpy 等包时,不卡
      2. 如果文件更改了,要重启UG才行
    • 如果程序执行不了。可能的错误点:

      1. sys.path 设置不正确,没有包括所需要的路径,可以手动添加。
      2. 当前目录不正确。os.getcwd 和 os.chcwd 可以改变当前目录。
      3. #nx: threaded 的问题

    NXOpen 如何代码提示

    • 执行 make_pyi.py ,生成/NXOpen (约63.5M)。

    • 把生成的/NXOpen 移动到 UG里的 /NXBIN/python 下。

    • 这个生成的提示不一定准确,以官方的帮助文件为准。

    • 如果函数的返回值 vscode 识别不了类型,可以手动指定类型。例如

      复制代码
      ss:NXOpen.Session = NXOpen.Session.GetSession()
相关推荐
会员源码网2 小时前
Python中生成器函数与普通函数的区别
python
Java水解2 小时前
Python开发从入门到精通:Web框架Django实战
后端·python
曲幽4 小时前
FastAPI + PostgreSQL 实战:给应用装上“缓存”和“日志”翅膀
redis·python·elasticsearch·postgresql·logging·fastapi·web·es·fastapi-cache
Lupino7 小时前
别再只聊 AI 写代码了:技术负责人要把“变更治理”提到第一优先级
python·docker·容器
Flittly8 小时前
【从零手写 ClaudeCode:learn-claude-code 项目实战笔记】(6)Context Compact (上下文压缩)
python·agent
曲幽19 小时前
FastAPI + PostgreSQL 实战:从入门到不踩坑,一次讲透
python·sql·postgresql·fastapi·web·postgres·db·asyncpg
用户8356290780511 天前
使用 C# 在 Excel 中创建数据透视表
后端·python
码路飞1 天前
FastMCP 实战:一个 .py 文件,给 Claude Code 装上 3 个超实用工具
python·ai编程·mcp
dev派1 天前
AI Agent 系统中的常用 Workflow 模式(2) Evaluator-Optimizer模式
python·langchain
前端付豪1 天前
AI 数学辅导老师项目构想和初始化
前端·后端·python