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()

UG 2406 python 二次开发环境配置的更多相关文章

  1. C#进行CAD二次开发环境配置

    最近被公司分配到了做CAD二次开发.也是初次接触这方面的东西,其实是有些无从下手的感觉.因为公司这边也没有人有时间带我,只能是自己看书,然后再写一些Demo,再结合实际的应用来一点点的学习.废话不多说 ...

  2. Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)

    Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)准备内容 Revit 2019开发环境的搭建,需要安装的内容如下: Revit 2019(主要的开发环境) Vi ...

  3. xshell远程终端操作Ubuntu server安装LAMP环境之最详细笔记之二PHP开发环境配置

    前言: 昨天学会了安装server,今天试着通过远程终端xshell来安装LAMP,搭配一下开发环境,也有集成环境可以一键安装使用,还是瞎折腾一下,手动一步一步搭建一下这个开发环境. 接上一篇:ubu ...

  4. grafana二次开发环境配置(windows10)

    安装说明: 由于在windows环境安装grafana,第一次安装的是8.2.2版本,后端编译时一直报错,故安装了8.1.7 该错误在 grafana 的源码问题中可以找到,但针对 windows 暂 ...

  5. Python安装及开发环境配置

    Python的语法简洁,功能强大,有大量的第三方开发包(模块).同时Python不像java一样对内存要求非常高,适合做一些经常性的任务方面的编程.根据codeeval网站数据统计显示,连续三年,Py ...

  6. gdal 1.9+python 2.7开发环境配置

    最近项目使用Cesium平台基于WegGl做web地球,其中关于地形数据有一种支持格式为terrain的地形数据.这种格式可以通过一个python工具切dem来得到. 下面记录下配置gdal+pyth ...

  7. JMeter二次开发环境配置

    本文主要介绍如何在Eclipse中配置JMeter开发环境. 一.下载JMeter源码 1.在JMeter官网下载二进制包和源码包: 解压备用: 二进制解压后文件夹名称为“jmeter_release ...

  8. Python开发:Windows下Python+Eclipse+Pydev开发环境配置

    一.配置前的准备: 1.安装jdk: 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/index.html 2.安装Ecl ...

  9. Python的SublimeText开发环境配置

    1.完成Python的默认安装之后要设置环境变量,系统环境变量Path中加入Python的安装目录";C:/Python27" 2.配置Python编译环境,修改[C:\Progr ...

  10. vim python和golang开发环境配置

    首先在-下新建目录.vim和配置文件.vimrc,.vimrc内容如下: syntax on set nocompatible filetype off set rtp+=~/.vim/bundle/ ...

随机推荐

  1. [2]自定义Lua解析方式

    [2]自定义Lua解析方式 在上文中我们学会学会更改加载路径,加载对应文件夹下的Lua脚本. 默认解析加载的lua脚本存在的文件位置非AB包或者Resources文件夹下往往不能随包体更新,这显然不符 ...

  2. 【OpenVINO™】基于 C# 和 OpenVINO™ 部署 Blazeface 模型实现人脸检测

     前言 OpenVINO C# API 是一个 OpenVINO 的 .Net wrapper,应用最新的 OpenVINO 库开发,通过 OpenVINO C API 实现 .Net 对 OpenV ...

  3. 多个docker容器如何共享网络

    目录 多个docker容器如何共享网络 一.创建共享网络 二.docker-compose 启动容器共享网络 参考文档: 多个docker容器如何共享网络 一.创建共享网络 无论哪种方式,第一步都是创 ...

  4. 在Biwen.QuickApi中整合一个极简的发布订阅(事件总线)

    闲来无聊在我的Biwen.QuickApi中实现一下极简的事件总线,其实代码还是蛮简单的,对于初学者可能有些帮助 就贴出来,有什么不足的地方也欢迎板砖交流~ 首先定义一个事件约定的空接口 public ...

  5. docker之docker-compose

    docker-compose就是个二进制的工具,它可以单机编排,批量管理多个容器 [root@mcwk8s01 harbor]# file /usr/local/bin/docker-compose ...

  6. ControlNet

    ControlNets 允许您选择图像来引导 AI,使其更紧密地跟随您的控制图像.您可以选择一个过滤器来预处理图像,以及已知(或自定义)控制网络模型之一. 虽然这听起来与图像到图像相似,但 Contr ...

  7. 【Sqlserver】查看所有数据库的大小 创建日期 名称 版本级别 状态

    EXEC  sp_helpdb

  8. 什么是Token?为什么大模型要计算Token数

    本文分享自华为云社区<[技术分享]什么是Token?为什么GPT基于Token定价>,作者:开天aPaaS小助手Tracy. 在使用LLM大模型时,我们经常会遇到一个关键词,叫:Token ...

  9. 关于 ajax在前端提示SyntaxError: Unexpected end of JSON input

    前几日,在开发微信公众号上的网页时候,前端采用h5+jquery开发,后端采用ASP.net的ashx接收前端的参数,restful采用的是java开发,由于在ASP.ENT的 webconfig中增 ...

  10. ES5的继承语法

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...