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()
      
相关推荐
何大春1 分钟前
【弱监督语义分割】Self-supervised Image-specific Prototype Exploration for WSSS 论文阅读
论文阅读·人工智能·python·深度学习·论文笔记·原型模式
在下不上天10 分钟前
Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复
大数据·开发语言·python
SEVEN-YEARS13 分钟前
深入理解TensorFlow中的形状处理函数
人工智能·python·tensorflow
EterNity_TiMe_18 分钟前
【论文复现】(CLIP)文本也能和图像配对
python·学习·算法·性能优化·数据分析·clip
Suyuoa29 分钟前
附录2-pytorch yolov5目标检测
python·深度学习·yolo
好看资源平台2 小时前
网络爬虫——综合实战项目:多平台房源信息采集与分析系统
爬虫·python
进击的六角龙2 小时前
深入浅出:使用Python调用API实现智能天气预报
开发语言·python
檀越剑指大厂2 小时前
【Python系列】浅析 Python 中的字典更新与应用场景
开发语言·python
湫ccc2 小时前
Python简介以及解释器安装(保姆级教学)
开发语言·python
孤独且没人爱的纸鹤2 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai