UG 2406 python 二次開發環境配置

方头狮發表於2024-07-04

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

相關文章