UG二次開發 PYTHON 環境配置
阿新 • • 發佈:2022-03-14
NX 二次開發 PYTHON VSCODE 環境配置
我電腦上裝的是WIN11 NX1988
-
在電腦的UG的安裝資料夾內找到 python
一般在 xx\NXBIN
在所在的資料夾內,執行python 可以找到版本資訊。 -
在電腦上裝版本高度相同的 python
包括大版本和小版本 -
在UGii 資料夾下,找到 ugii_env.dat 用記事本開啟
配置python的庫的路徑 (這個可以參考唐老師的文章 )
UGII_PYTHONPATH=...
注意:可以在電腦的環境變數裡設定,但優先順序沒有在這裡設定高。 -
在vscode裡,裝上 pydev外掛。
- 設定 forcedBuiltins
"python.pydev.forcedBuiltins": [ "NXOpen", "NXOpen.ALP", "NXOpen.AME", "NXOpen.AnimationDesigner", "NXOpen.Annotations", "NXOpen.Appearance", "NXOpen.Assemblies", "NXOpen.AutomatedTesting", "NXOpen.AutomatedTestingCase", "NXOpen.BlockStyler", "NXOpen.BodyDes", "NXOpen.CableRouter", ... ]
-
小技巧
-
在一個地方建一個資料夾,history
history/ |- bmps/ |- dlx/ | |- zzz.dlx | |- zzz.py |- spt/ | |- __init__.py | |- yyy.py |- xxx.py
xxx.py 就是自己定義的命令
bmps 資料夾存放命令圖示
dlx 資料夾存放使用者定義ui塊
spt 方件夾 用於存放自定義的一些常用函式 -
在xxx.py 檔案中,
import os os.chdir(os.path.dirname(os.path.abspath(__file__)))
這樣,把工作目錄更改到 history, 再 from sup import yyy 就不會找不到。
-
dlx資料夾中, 把 zzz.py開啟,
def __init__(self): try: self.theSession = NXOpen.Session.GetSession() self.theUI = NXOpen.UI.GetUI() self.theDlxFileName = "./dlx/zzz.dlx" ...
原文是
self.theDlxFileName = "zzz.dlx"
, 加上./dlx/
這樣,在xxx.py 中,from dlx.zzz import zzz as _zzz
可以正常工作
-
在xxx.py中,
class zzz(_zzz): ...
過載原來的
apply_cb(self)
等函式,實現自己想要的功能。 -
在xxx.py中,把zzz.py的一部分 複製過來
def main(): ... if __name__ == "__main__": main()
加到檔案最後
-
在UG 中新建使用者命令,引用xxx.py,就可以執行了。
-
在spt資料夾裡,加一個printer.py
class Printer: theSession = None lw = None def __init__(self, session): self.theSession = session self.lw = self.theSession.ListingWindow self.lineLength = 130 def info(self, obj): if self.lw is None: self.lw = self.theSession.ListingWindow s = str(obj) l = len(s) if not self.lw.IsOpen: self.lw.Open() for i in range(l // self.lineLength + 1): self.lw.WriteLine( s[i * self.lineLength : i * self.lineLength + self.lineLength] )
在 xxx.py中
from spt.printer import Printer info=Printer(NXOpen.Session.GetSession()).info
可以用
info(xxx)
列印一些提示資訊。
-