UG二次开发NXOpen-Python(八) 代码保护
有人说python是脚本语言,在进行NX的二次开发时,不能像C++、.Net、Java那样能编译成dll文件,也就是说自己的代码实现完全暴露在外面,所以NXOpen-python没有什么价值,仅能用于学习及爱好
其实也不完全是这样,用python进行NXOpen二次开发一是为了学习,二是python用起来确实方便,而且掌握NXOpen二次开发的关键不在于语言,而在于对NX软件的使用熟练度,至于一定的源码保护,python也可以实现,NX中也能使用,需要用到的模块:easycython,举个简单的例子
import NXOpen def testPYD(): #打印“testPYD”,你可以实现其它任意不想给别人看见的功能 theSession: NXOpen.Session = NXOpen.Session.GetSession() lw: NXOpen.ListingWindow = theSession.ListingWindow lw.Open() lw.WriteLine("testPYD!!")
比如说我们想实现一个功能,具体的实现不想给别人看见,我们将以上代码保存为pydtest.pyx,然后直接在命令行输入:easycython pydtest.pyx,得到pydtest.cp36-win_amd64.pyd文件,将“cp36-win_amd64”去掉,文件名变成pydtest.pyd,为了验证效果,我们再新建一个runTestPyd.py文件,文件内容如下:
from pydtest import testPYD def main(): testPYD() if __name__ == "__main__": main()
将该文件与上面的pydtest.pyd放到同一文件夹,然后在NX中ALT+F8,运行runTestPyd.py
可以看到,NX中能正常运行,pyd文件是不好进行反编译的,也就是说你NX二次开发的实现代码别人是看不见的