NX10.0以后,NXOpen增加了对Python的支持,Python有多强大不用解释,本来UG自带操作记录编辑器(如下图)可以用来录制操作记录,也能编辑和运行python程序,但没人会用那个编辑器来进行二次开发,为了能更方便的利用Python对UG进行二次开发,最好是设置使用外部Python版本运行NX中的Python脚本,这样不仅可以使用强大的Python第三方库,而且结合IDE的使用,可以让写代码变得稍微轻松点,至少有代码提示。根据NX文档,NX12.0使用的Python版本为3.6.1,所以得在电脑中安装python3.6,小版本无所谓。设置如下: 打开G:\Program Files\Siemens\NX 12.0\UGII\ugii_env.dat,增加两行,其中,注意根据python3.6及NX的实际安装位置进行相应修改: - <font face="宋体" size="3">UGII_PYTHON_LIBRARY_DIR="D:\Program Files\Python36"
- UGII_PYTHONPATH="D:\Program Files\Python36;D:\Program Files\Python36\DLLs;D:\Program Files\Python36\Lib;D:\Program Files\Python36\Lib\site-packages;D:\Program Files\Python36\libs;G:\Program Files\Siemens\NX 12.0\NXBIN\python"</font>
复制代码 为了验证设置是否有效,新建一个文本,后缀名改为.py,写入代码如下: - <font face="宋体" size="3">import NXOpen
- session=NXOpen.Session.GetSession()
- lw=session.ListingWindow
- lw.Open()
- lw.WriteLine('Hello World')</font>
复制代码 打开NX12.0,Alt+F8,选择刚才的文件,运行,结果如下: 这就说明设置成功,下面利用python自带的IDLE来测试下代码提示,新建一个文本文档,文件名改为nxopen.pth,打开文件,输入: G:\Program Files\Siemens\NX 12.0\NXBIN\python(按NX实际安装路径更改) 然后将nxopen.pth放入D:\Program Files\Python36\Lib\site-packages文件夹中(按python实际安装路径更改),打开IDLE,首先import NXOpen,然后就可以正常提示了 当然,一般不使用IDLE进行开发,官方推荐是Eclipse+pydev,其实pycharm也是可以的,vscode试了试代码提示出不来,不知道什么原因,pydev代码提示如下: - <font face="宋体" size="3">#nx: threaded
- import pydevd
- pydevd.settrace()
- import NXOpen_UF
- import NXOpen
- theUfSession: NXOpen_UF.UFSession = NXOpen_UF.UFSession.GetUFSession()
- modl: NXOpen_UF.ModlFeatures = theUfSession.ModlFeatures
- ui: NXOpen_UF.Ui = theUfSession.Ui
- ui.OpenListingWindow()
- block_t = modl.CreateBlock(NXOpen_UF.ModlFeatureSigns.NULLSIGN, 0, [0.0, 0.0, 0.0],
- ["100", "50", "30"])
- block_t1 = modl.CreateBlock1(NXOpen_UF.ModlFeatureSigns.NULLSIGN, [
- 100.0, 0.0, 0.0], ["100", "50", "30"])
- block_o = NXOpen.TaggedObjectManager.GetTaggedObject(block_t)
- block_o1 = NXOpen.TaggedObjectManager.GetTaggedObject(block_t1)
- ui.WriteListingWindow(f"{block_t}:{block_o}\n")
- ui.WriteListingWindow(f"{block_t1}:{block_o1}\n")</font>
复制代码 代码前三行是为了调试用的,调试界面如下:
|