NX/UG二次開發—建模—UDO

最近學習了一下UDO,以下主要講一下我遇到的一些疑問和筆記,希望對新手有一些幫助。(在UG安裝目錄下有個官方例子用NXopen函數寫的,大家可以參考一下..\Siemens\NX 11.0\UGOPEN\SampleNXOpenApplications\C++\UDO)

1、UDO的名稱:UDO的類名不能和UG其他特徵重名,當UDO被實例化時,會被賦予一個友好名稱(其實就是你在導航欄裏看到的名字,或者類選擇器裏看到的名字)。

2、UDO的創建順序:首先調用UF_UDOBJ_create_class創建UDO類,然後調用UF_UI_add_to_class_sel將UDO類添加到選擇框的列表中,其次在調用UF_UDOBJ_set_query_class_id,使用戶可以查詢這個類的ID。如果想讓UDO選擇自有對象的行爲在調用函數UF_UDOBJ_set_owned_object_selection。最後註冊你需要的回調:顯示、選擇、刪除、更新、編輯等,用到的函數有:UF_UDOBJ_register_display_cb、UF_UDOBJ_register_edit_cb、UF_UDOBJ_register_update_cb等。

3、然後創建UDO特徵:如果不是自有鏈接,使用UF_UDOBJ_add_links添加鏈接對象,那麼需要先創建你要鏈接的對象,然後創建UDO特徵。調用UF_UDOBJ_create_udo創建UDO實例,然後調用UF_UDOBJ_create_udo_feature_from_udo創建UDO特徵,也就是你在模型歷史記錄裏看到的那個特徵。如果是自有鏈接使用:UF_UDOBJ_add_owning_links。添加一些參數:UF_UDOBJ_add_doubles、UF_UDOBJ_add_integers UF_UDOBJ_add_volumesUF_UDOBJ_add_lengthsUF_UDOBJ_add_areas,添加字符串:UF_UDOBJ_add_strings

4.如果需要二次編輯功能自己在剛纔註冊的編輯回調裏寫創建對話框類,然後show一下。由於UDO是UG啓動自動加載,需要入口函數ufsta()。將dll放到用戶自定義目錄下的UDO文件夾下。

以下簡單說明一下函數用法:

UF_UDOBJ_add_areas 添加面積參數  
UF_UDOBJ_add_doubles 添加double類型參數
UF_UDOBJ_add_integers 添加整形參數

UF_UDOBJ_add_lengths 添加長度參數

UF_UDOBJ_add_links 添加一個鏈接到指定的NX對象

UF_UDOBJ_add_owning_links 添加對象擁有一個UDO對象自己的鏈接

UF_UDOBJ_add_strings 添加字符串

UF_UDOBJ_add_volumes 添加字體積參數

UF_UDOBJ_ask_class_data 查找指定的類名稱和用戶友好名稱

UF_UDOBJ_ask_class_id_of_name 給定的類的名稱找到一類的ID
UF_UDOBJ_clear_link_status 清除一個UDO的鏈路狀態
UF_UDOBJ_clear_udo_status 清除出過期的UDO的狀態
UF_UDOBJ_create_class 創建一個類,給定一個類的名字,和友好的名字
UF_UDOBJ_create_udo 創建一個UDO實例
UF_UI_add_to_class_sel 把UDO友好名稱添加到選擇對話框
UF_UDOBJ_create_udo_feature創建一個UDO特徵
UF_UDOBJ_cycle_udos_by_class 遍歷UDO
UF_UDOBJ_ask_udo_data 獲取udo的信息
UF_UDOBJ_free_udo_data釋放獲取的udo信息

 

有其他問題可以留言,互相學習。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章