【NX二次開發】用戶出口函數介紹


        用戶出口(User Exit)是NX Open 中的一個重要概念。NX在運行過程中某些特定的位置存在規定的出口,當進程執行到這些出口時,NX會自動檢查用戶是否在此處已定義了指向內部程序位置的環境變量:若沒有定義,則以NX默認的方式繼續運行下去;若已定義,則從該處自動運行用戶定制的應用程序。利用不同的User Exit,可使用戶定制的應用程序在NX運行到特定點時被自動執行。每個User Exit 都有唯一的出口名稱,以便用戶在子程序中調用,不同的 User Exit使用不同的出口函數,最常用的 User Exit是ufsta()與 ufusr(),ufsta()是NX菜單啟動時的 User Exit,ufusr()是直接激活的 User Exit。通常情況下,User Exit函數的參數和返回值都相同。User Exit函數的定義如下:void 入口函數名(char * param,int * retcode,int rlen);其中param和retcode 是輸出參數,rlen 是指參數param 的長度,由NX系統自動處理。
       根據最后的附表,可以完成許多調用dll的方法。下面以打開部件時運行dll為例

         第一步 設置環境變量:

       方法1(不推薦):右鍵計算機->屬性->高級系統設置->環境變量

       方法2:打開 ".....\Siemens\NX 12.0\UGII\ugii_env_ug.dat",搜索找到打開部件時運行dll,對應的環境變量USER_RETRIEVE,在ugii_env_ug.dat文件中搜一下(如下圖),然后 將“#USER_RETRIEVE=”  改為  “USER_RETRIEVE=D:\WangPaiFeiXingYuan.dll” 。

         

        第二步 設置出口函數:

       打開部件時運行dll需要設置入口為ufget,例子:

 1 #include <uf.h>
 2 #include <uf_ui.h>
 3 #include <uf_exit.h>
 4 extern DllExport void ufget(char *param, int *returnCode, int rlen)//注意入口不是ufusr
 5 {
 6     UF_initialize();
 7     uc1601("Hello 王牌飛行員!", 1);
 8     UF_terminate();
 9 }
10 
11 extern int ufusr_ask_unload(void)
12 {
13     return (UF_UNLOAD_IMMEDIATELY);
14 }

          生成的dll放到 上一步環境變量指定的路徑。

           

 

          第三步 打開NX,點擊打開部件,測試成功!

           

附:環境變量、用戶出口對應表。

描述 環境變量 入口函數
Open Part USER_RETRIEVE ufget
New Part USER_CREATE ufcre
Save Part USER_FILE ufput
Save Part As USER_SAVEAS ufsvas
Import Part USER_MERGE ufmrg
Execute GRIP Program USER_GRIP ufgrp
Add Existing Part USER_RCOMP ufrcp
Export Part USER_FCOMP uffcp
Component Where-used USER_WHERE_USED ufusd
Plot File USER_PLOT ufplt
2D Analysis Using Curves USER_AREAPROPCRV uf2da
User Defined Symbols USER_UDSYMBOL ufuds
Open CLSF USER_CLS_OPEN ufclso
Save CLSF USER_CLS_SAVE ufclss
Rename CLSF USER_CLS_RENAME ufclsr
Generate CLF USER_CL_GEN ufclg
Postprocess CLSF USER_POST ufpost
Create Component USER_CCOMP ufccp
Change Displayed Part USER_CDISP ufcdp
Change Work Part USER_CWORK ufcwp
Remove Component USER_DCOMP ufdcp
Reposition Component USER_MCOMP ufmcp
Substitute Component Out USER_SCOMP1 ufscpo
Substitute Component In USER_SCOMP2 ufscpi
Open Spreadsheet USER_SPRD_OPN ufspop
Close Spreadsheet USER_SPRD_CLO ufspcl
Update Spreadsheet USER_SPRD_UPD ufspup
Finish Updating Spreadsheet USER_SPRD_UPF ufspuf
Replace Reference Set USER_RRSET ufrrs
Rename Component USER_NCOMP ufncp
NX Startup USER_STARTUP ufsta
Access Genius Library Management System USER_GENIUS ufgen
Execute DebUG GRIP USER_GRIPDEBUG ufgrpd
Execute User Function USER_UFUNC ufufun
Initialize new operation USER_CREATE_OPER ufnopr
CAM Startup USER_CAM_STARTUP ufcams

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM