有人說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二次開發的實現代碼別人是看不見的