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中的函数介绍
java·c语言·开发语言·前端·笔记·python·学习
茫茫人海一粒沙5 分钟前
Python 代码编写规范
开发语言·python
林浩2336 分钟前
Python——异常处理机制
python
数据分析螺丝钉32 分钟前
力扣第240题“搜索二维矩阵 II”
经验分享·python·算法·leetcode·面试
小蜗笔记1 小时前
在Python中实现多目标优化问题(7)模拟退火算法的调用
开发语言·python·模拟退火算法
TANGLONG2221 小时前
【C语言】数据在内存中的存储(万字解析)
java·c语言·c++·python·考研·面试·蓝桥杯
魏大橙2 小时前
Fastjson反序列化
开发语言·python
立黄昏粥可温2 小时前
Python 从入门到实战34(实例2:绘制蟒蛇)
开发语言·python
柚乐果果2 小时前
数据分析实战简例
java·大数据·python
luthane2 小时前
python 实现djb2哈希算法
python·算法·哈希算法