NXOpen圖層操作_第1頁
NXOpen圖層操作_第2頁
NXOpen圖層操作_第3頁
NXOpen圖層操作_第4頁
NXOpen圖層操作_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、NXOpen圖層操作頭文件uf_layer.h中包含了操作圖層的一系列函數(shù),這些函數(shù)能夠完成如下工作: 查詢工作圖層; 查詢分類名稱,分類成員圖層,以及其描述; 查詢圖層狀態(tài); 遍歷圖層; 編輯分類描述; 編輯分類下的圖層; 設(shè)置圖層狀態(tài); 創(chuàng)建、查詢、或者編輯圖層分類。1. 查詢和設(shè)置圖層狀態(tài)圖層的狀態(tài)NX中最多有256個(gè)圖層,頭文件中的定義如下:#define UF_LAYER_MIN_LAYER (1) #define UF_LAYER_MAX_LAYER (256)圖層有四種狀態(tài):工作,活動(dòng),不活動(dòng)和參考圖層,對應(yīng)的定義如下:#define UF_LAYER_WORK_LAYER 1

2、#define UF_LAYER_ACTIVE_LAYER 2 #define UF_LAYER_REFERENCE_LAYER 3 #define UF_LAYER_INACTIVE_LAYER 4與圖層狀態(tài)相關(guān)的是一個(gè)結(jié)構(gòu)體UF_LAYER_status_info_s,也被定義為UF_LAYER_status_info_t類型,定義如下:struct UF_LAYER_status_info_s int layer_number; int layer_status; 其中l(wèi)ayer_number是圖層值,介于UF_LAYER_MIN_LAYER和UF_LAYER_MAX_LAYER之間,亦

3、即1-256(可包括),layer_status就是圖層狀態(tài),就是前面提到的四種之一。相關(guān)的函數(shù)有UF_LAYER_ask_work_layer、UF_LAYER_ask_status和UF_LAYER_set_status,第一個(gè)函數(shù)查詢工作圖層,后面兩個(gè)則分別是查詢和設(shè)置給定的圖層狀態(tài)。下面的測試代碼用于查詢工作圖層,并將下一個(gè)圖層作為工作圖層:void AskAndSetWorkLayer() int t; char msg80; UF_LAYER_ask_work_layer(&t); sprintf_s(msg,Work Layer is: %d,t); uc1601(msg,1);

4、 t+; if(tUF_LAYER_MAX_LAYER) t=UF_LAYER_MIN_LAYER; UF_LAYER_set_status(t,UF_LAYER_WORK_LAYER); UF_LAYER_ask_work_layer(&t); sprintf_s(msg,Work Layer is: %d,t); uc1601(msg,1);另外一個(gè)比較有意思的函數(shù)是UF_LAYER_set_all_but_work,也是用于設(shè)置狀態(tài)的,但是是除去工作圖層之后的其他圖層。與設(shè)置狀態(tài)相關(guān)的還有UF_LAYER_set_many_layers_status函數(shù),這個(gè)比較復(fù)雜。2. 遍歷圖層使用

5、函數(shù)UF_LAYER_cycle_by_layer遍歷一個(gè)圖層,這里遍歷的意思指查詢位于本圖層下的所有對象,函數(shù)原型如下:int UF_LAYER_cycle_by_layer(int layer_number, tag_t * object_tag)第一個(gè)參數(shù)提供待查詢的圖層號(hào),值為0-256,這時(shí)肯定有人會(huì)問,圖層號(hào)不是只有1-256之間嗎?是的,這里多的0并不是指的圖層,而是查詢所有圖層。而第二個(gè)參數(shù)則是所查詢到的對象的標(biāo)識(shí),在使用的時(shí)候,必須傳遞給一個(gè)為NULL_TAG的標(biāo)識(shí),這樣能讓程序知道如何工作,在第一次調(diào)用該函數(shù)的時(shí)候,返回第一個(gè)查找到的對象的標(biāo)識(shí),然后下一次調(diào)用的時(shí)候則是查找

6、下一個(gè)對象標(biāo)識(shí),等所有的對象都查詢完畢,則該變量被設(shè)置為NULL_TAG,表明查詢完畢。注意:在查詢循環(huán)中,切記不要試圖刪除對象,這會(huì)導(dǎo)致查詢下一個(gè)對象時(shí)出錯(cuò)。下面的測試代碼闡明如何查詢圖層22中的所有對象。void AskObjectsOnLayer22() int t=-1; char msg80; tag_t tag_obj=NULL_TAG; do UF_LAYER_cycle_by_layer(22,&tag_obj); t+; while (tag_obj!=NULL_TAG); sprintf_s(msg,Total Object(s) on Layer 22: %d,t); u

7、c1601(msg,1);由于采用的是dowhile循環(huán),因此在使用時(shí)應(yīng)將統(tǒng)計(jì)數(shù)目設(shè)置為-1。3. 與分類相關(guān)的函數(shù)在NX中,一個(gè)或者多個(gè)圖層可以形成一組,也就是分類的概念,這在NX的界面中,可以使用如下方式看到,Ctrl+L,然后在圖層設(shè)置中選中“類別顯示”,即可看到NX中預(yù)定義的分類:NX中預(yù)定義好了許多圖層分類,這將有助于模型文件的管理,例如,根據(jù)NX推薦的做法,草圖應(yīng)歸于21-60層,基準(zhǔn)應(yīng)位于61-80層(NX創(chuàng)建的基準(zhǔn)坐標(biāo)系就是位于61層)等,本人所在的公司就是按這個(gè)要求來執(zhí)行的。接下來我們看看與圖層分類相關(guān)的一些結(jié)構(gòu)和函數(shù)。結(jié)構(gòu)體UF_LAYER_category_info_s,

8、也被用作UF_LAYER_category_info_t,其定義如下:struct UF_LAYER_category_info_s char nameMAX_ENTITY_NAME_SIZE+1; logical layer_maskUF_LAYER_MAX_LAYER; char descrUF_LAYER_CAT_DESC_LEN+1; ;其中第一個(gè)參數(shù)是分類的名稱,其長度不應(yīng)超過實(shí)體名稱長度(128),第二個(gè)參數(shù)決定1-256號(hào)圖層是否屬于該圖層,如果對應(yīng)位為TRUE,例如layer_mask0=TRUE,則1號(hào)圖層屬于該分類,如果layer_mask134=FALSE,則表明該135

9、號(hào)圖層不屬于該分類。第三個(gè)參數(shù)是分類描述,簡單介紹該分類的用途,或者其他信息,長度不超過80。對分類的操作,無外乎創(chuàng)建、查詢和編輯等。先說說創(chuàng)建圖層分類。函數(shù)UF_LAYER_create_category用于創(chuàng)建一個(gè)分類,函數(shù)原型如下:int UF_LAYER_create_category(UF_LAYER_category_info_p_t category_info, tag_t * category)第一個(gè)參數(shù)就是前面提到過的結(jié)構(gòu)體,該結(jié)構(gòu)體包含了一個(gè)圖層分類應(yīng)該具有的三要素:名稱,所包含的圖層,以及描述,第二個(gè)參數(shù)則返回函數(shù)所創(chuàng)建的圖層分類標(biāo)識(shí)。下面的測試代碼創(chuàng)建了一個(gè)圖層,圖層中

10、包括了11,21,31,41號(hào)圖層。void CreateCategory() char CnameMAX_ENTITY_NAME_SIZE+1=LEMNISCATE; logical Clayer_maskUF_LAYER_MAX_LAYER; char CdescrUF_LAYER_CAT_DESC_LEN+1=Created By Lemniscate; UF_LAYER_category_info_t cate; strcpy_s(,Cname); strcpy_s(cate.descr,Cdescr); for(int i=0;iUF_LAYER_MAX_LAYER

11、;i+) cate.layer_maski=FALSE; cate.layer_mask10=TRUE; cate.layer_mask20=TRUE; cate.layer_mask30=TRUE; cate.layer_mask40=TRUE; tag_t Tcat=NULL_TAG; UF_LAYER_create_category(&cate,&Tcat);運(yùn)行效果如下:與圖層分類中三要素相對應(yīng)地,圖層分類相關(guān)的編輯函數(shù)有三個(gè),即對名稱、圖層和描述的編輯,函數(shù)分別為UF_LAYER_edit_category_name、UF_LAYER_edit_category_layer和UF_LAYER_edit_category_descr,這里就不展開細(xì)說。 圖層分類的查詢函數(shù)有兩個(gè),UF_LAYER_ask_category_tag和UF_LAYER_ask_category_info,前者根據(jù)圖層分類名稱查詢其圖層分類標(biāo)識(shí),后者則是根據(jù)圖層分類標(biāo)識(shí),去填充與之相關(guān)的UF_LAYER_categor

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論