1. 程式人生 > 其它 >UG二次開發NXOpen-Python(八) 程式碼保護

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