NX二次开发-基于PycharmIDE的NXOpen Python开发环境配置

因为工作上需要做FreeCAD二次开发,要学习点Python,也就顺便玩玩NX是怎么用Python开发的,断断续续看了很久,也没搞出来。

今晚突然有想法,就又来搞搞看。

首先声明这个不是我想出来的,是在网上参考大神的文章,照着做出来的。

参考资料

https://zhuanlan.zhihu.com/p/343432265

http://www.nxopen.cn/thread-1224-1-1.html

API

https://docs.plm.automation.siemens.com/data_services/resources/nx/11/nx_api/custom/en_US/nxopen_python_ref/index.html

https://community.sw.siemens.com/s/question/0D54O000061xInoSAE/configuring-pycharm-for-nxopen-in-python

可以说我是完全按照这篇文章一模一样做的,就连NX的版本和Python的版本都是一模一样按照他这个去下载安装的,我就是想看看照着到底能不能做出来。

 最后是照着做出来了,但是还是有些问题没解决。

环境搭建步骤

1.安装NX1953

2.查找NX1953是用哪个版本的Python解释器

 3.去官网下载Python3.8.3版本安装包

https://www.python.org/downloads/

https://www.python.org/downloads/release/python-383/

4.安装Python3.8.3

5.安装Pycharm

6.写bat脚本(这个是重点)

rem the nx installation dir. if there are spaces in the path, it needs to be quoted like here - quotes around the whole equation
SET "UGII_BASE_DIR=D:Program FilesSiemensNX1953"
rem these two are not used by nx, just for setting the path
SET UGII_ROOT_DIR=%UGII_BASE_DIR%UGII
SET UGII_NXBIN_DIR=%UGII_BASE_DIR%NXBIN
rem the installed python interpreter, version 3.6 for nx12
SET PYTHON=D:Python38
SET INTERPRETER=%PYTHON%;%PYTHON%DLLs;%PYTHON%Lib;%PYTHON%Libsite-packages
SET PYTHONPATH=%INTERPRETER%;%UGII_BASE_DIR%
xbinpython
SET PATH=%PATH%;%UGII_NXBIN_DIR%;%UGII_ROOT_DIR%
start "" "D:PyCharminpycharm64.exe"

 这里更改要注意的地方可能就是路径带空格的,要不要用引号括起来,我没测试,大家要测试下。

装NX1847以下版本的,类似NX 11路径都是有空格的

7.以管理员双击启动脚本(Pycharm就自动启动,自动配置好环境了)

我的因为之前就打开过了,所有已经有一个带代码的py文件了,你们第一次打开应该是需要新建一个py的,新建的时候选择我们装的那个python解释器就行了。

 创建完可能就是这个样子

 8.Pycharm自动加载NX的pyd库,识别里面的类和方法(这个过程,我的很慢,我等了一个多小时才全部加载出所有pyd里的方法)

9.开始写代码自动提示代码(演示下提示代码)

问题点:

1.pyd下面的类和方法好像没有完全识别出来,只能往下调一层或者两层,在往下调好像就出不来的。

UF的往下就调不出来了

2.所有的操作都是基于这三句的,但是拿workPart就调不出方法了,不提示了,这不是很操蛋,没办法像VS那样去提示

 

3.在Pycharm中没办法像VS那样设断点单步调试,没办法添加进程,而且py脚本在NX中只能在录制操作记录里执行(以我目前想到的添加进程调试方法,只能用VS2017或者2019打开py文件,然后添加进程到NX,在点击按钮执行

py文件,进入断点开始单步调试,目前我做FreeCAD添加进程调试就是这样做的,也很不方便,VS也不识别提示py代码)

 或者手动添加一个按钮去执行

其实我是比较期望实现,在Pycharm中写代码一执行,不但可以提示代码,最好还能单步调试,跟PyQt或者PySide结合开发对话框,用BlockUI现在肯定是可以的了。

还可以直接在NX里创建块,可视化实时操作。我以前在CATIA小狼的视频里看到过,他在CATIA中的实现。

https://www.bilibili.com/video/BV1Qj411f7Ky?from=search&seid=1690453761214189993

不知道NX能不能实现,没查到相关资料

总而言之,用Python做NX开发挺不好弄的,很多UFUN的功能NXOpen Python封装不全,Python脚本语言执行很慢,py代码是公开的,编译成pyc也可以被反编译回去,可能要做成pyd库去用。

pyc反编译网址 https://tool.lu/pyc/

而且也很难成为主流,出去找二次开发工作的话,肯定是首选C++,其次C# .net开发

暂时研究到这里,后续有进展在补充到下面

程序员阿飞

2021年4月14日

作者: 阿飞

出处: https://www.cnblogs.com/nxopen2018/>

关于作者:......

如有问题, 可在底部(留言)咨询.

原文地址:https://www.cnblogs.com/nxopen2018/p/14660492.html