zoukankan      html  css  js  c++  java
  • 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/>

    关于作者:......

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

  • 相关阅读:
    定义Java类实现字节流转字符流
    zookeeper中的QuorumPeerMain解析
    Hadoop集群搭建(cluster setup),ssh免密后一直要求输入密码的原因
    cd .ssh返回-bash: cd: .ssh:No such file or directory怎么办
    安装jdk配置环境变量后jps command not found
    Redis简介二
    bash重定向
    Redis简介
    maven项目下pom.xml依赖报错
    《《《zTree视频学习笔记
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/14660492.html
Copyright © 2011-2022 走看看