UG二次開發(fā)實用教程:工程圖的設置_第1頁
UG二次開發(fā)實用教程:工程圖的設置_第2頁
UG二次開發(fā)實用教程:工程圖的設置_第3頁
UG二次開發(fā)實用教程:工程圖的設置_第4頁
UG二次開發(fā)實用教程:工程圖的設置_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第8章 工程圖UG的制圖模塊(Drafting)為創(chuàng)建和管理工程圖提供了一個綜合的自動化工具組,使工程設計人員可以從UG三維實體模型得到完全相關的二維工程圖,可生成與實體模型相關的尺寸標注,保證了工程圖隨著實體模型的改變而同步更新,制圖模塊可快速創(chuàng)建二維圖的多個視圖,包括正視圖、軸測圖、各種剖視圖、輔助視圖和局部放大視圖等。制圖的一般過程如下:進行制圖的參數(shù)預設置,創(chuàng)建圖紙,插入視圖,插入符號,標注尺寸,插入表面粗糙度,文字注釋、標題欄、明細欄和填寫技術要求等。本章介紹如何利用UF函數(shù)實現(xiàn)制圖參數(shù)的預設置、創(chuàng)建圖紙、插入和編輯視圖、添加尺寸、輔助文本等相關的制圖功能。工程圖的UF函數(shù)定義主要包

2、含在頭文件uf_drf.h 和uf_draw.h中,其中在頭文件uf_drf.h中主要包括制圖的符號、標注、尺寸等函數(shù)的定義,在頭文件uf_draw.h中主要包括制圖時的創(chuàng)建及查詢截面線和視圖函數(shù)與類型的定義。8.1 工程圖的設置在創(chuàng)建工程圖前,應預先設置工程圖的有關參數(shù)。工程圖的參數(shù)預設置包括:系統(tǒng)制圖參數(shù)預設置,視圖顯示參數(shù)預設置,注釋與符號預設置等內容。在UG系統(tǒng)中可以從三個方面對工程圖的應用參數(shù)進行預設置:1.客戶缺省文件。通過ug_metric.def 或 ug_English.def 文件預設置相應的參數(shù),這部分內容通常由系統(tǒng)管理員按國標和企標統(tǒng)一標準來設定;2.部件文件制圖應用參

3、數(shù)預設置。在部件文件內預設置各種制圖參數(shù),這些設置將影響部件文件內所有制圖對象,并且這些設置對部件文件的影響優(yōu)先于客戶缺?。?.對部件文件內特定的對象進行參數(shù)預設置??筛淖儌€別制圖對象的參數(shù)預設置,將影響指定的制圖對象。這些改變優(yōu)先于客戶缺省文件和部件文件制圖應用參數(shù)預設置。8.1.1制圖參數(shù)預設置UF提供四個函數(shù)用來查詢和設置制圖的所有參數(shù),包括對部件文件和部件文件內特定的對象進行參數(shù)預查詢和設置,它們包含在頭文件uf_drf.h中。表6.1制圖參數(shù)預設置函數(shù)函數(shù)名稱函數(shù)功能UF_DRF_set_preferences系統(tǒng)制圖參數(shù)的預設置UF_DRF_ask_preferences查詢當前系

4、統(tǒng)制圖參數(shù)的設置UF_DRF_set_object_preferences指定制圖對象參數(shù)的預設置UF_DRF_ask_object_preferences通過制圖對象標識獲得制圖對象的參數(shù)設置對制圖參數(shù)進行預設置的步驟如下:1)利用查詢制圖參數(shù)的函數(shù)UF_DRF_ask_preferences()或UF_DRF_ask_object_preferences(),查詢當前的制圖參數(shù);2)修改當前不一致的制圖參數(shù);3)利用設置制圖參數(shù)的函數(shù)UF_DRF_set_preferences()或UF_DRF_set_preference()對制圖參數(shù)進行預設置。查詢系統(tǒng)制圖參數(shù)函數(shù)和設置制圖參數(shù)函數(shù)參

5、數(shù)相同,其中查詢系統(tǒng)制圖參數(shù)函數(shù)格式如下:int UF_DRF_ask_preferences(int mpi 100 /用于存儲制圖參數(shù)中的整型參數(shù)double mpr 70 /用于存儲制圖參數(shù)中的實型參數(shù)char * radius_value /半徑符號字符串,最多可由6個字符組成,由于內部要求,該字符串必須分配內存為char radius_val27char * diameter_value /直徑符號字符串,最多可由6個字符組成,由于內部要求,該字符串必須分配內存為char diameter_val27)函數(shù)可能的返回值為:UF_DRF_NO_ERRORS 表示沒有錯誤 UF_DRF_

6、crosshatch_file_not_found 表示剖面線定義文件不存在UF_DRF_INVALID_CROSSHATCH_FILE_FORMAT表示剖面線定義文件的格式不正確?設置制圖參數(shù)函數(shù)UF_DRF_set_preferences()參數(shù)與查詢制圖參數(shù)函數(shù)相同,其可能的返回值除以上三個外還包括:UF_DRF_material_definition_not_found 表示沒有定義材料查詢對象制圖參數(shù)函數(shù)與查詢系統(tǒng)制圖參數(shù)函數(shù)只多了第一個參數(shù)tag_t drf_object_tag用于指定對象標識,其它參數(shù)相同,函數(shù)可能的返回值為:UF_DRF_NO_ERRORS 表示沒有錯誤UF_

7、DRF_NOT_DRAFTING_OBJECT 表示指定對象不是制圖對象UF_DRF_crosshatch_file_not_found 表示剖面線定義文件不存在設置和查詢對象制圖參數(shù)函數(shù)參數(shù)相同,但可能的返回值除查詢對象制圖參數(shù)函數(shù)返回值還包括:UF_DRF_invalid_object 表示指定對象無效UF_DRF_material_definition_not_found 表示沒有定義材料UF_DRF_unable_to_create_crosshatching 表示剖面線不能創(chuàng)建8.1.2 視圖參數(shù)設置UF函數(shù)允許用戶控制視圖的抑制和自動更新,并可以設置和查詢視圖的視圖角、視圖比例和視

8、圖狀態(tài)等參數(shù),與視圖參數(shù)設置相關函數(shù)如表6.2所示,它們包含在頭文件uf_draw.h中。表6.2視圖參數(shù)設置函數(shù)函數(shù)名稱函數(shù)功能UF_DRAW_set_auto_update設置視圖自動更新UF_DRAW_ask_auto_update查詢關于視圖自動更新的參數(shù)預設置值,TRUE表示視圖自動更新;FALSE表示延時視圖更新UF_DRAW_set_suppress_view_updat設置視圖抑制更新UF_DRAW_ask_suppress_view_update查詢系統(tǒng)的延長視圖更新的參數(shù)值,如果系統(tǒng)參數(shù)為TRUE,則表示系統(tǒng)將延時視圖更新UF_DRAW_set_view_anchor定義錨

9、點。錨點必須是一個全息點(smart point)。UF_DRAW_ask_view_anchor獲得指定視圖的錨點UF_DRAW_set_view_angle設置視圖角為需要的值UF_DRAW_ask_view_angle獲得指定視圖的視圖角UF_DRAW_set_view_scale設置視圖比例為需要的值UF_DRAW_ask_view_scale查詢指定視圖的比例UF_DRAW_set_view_status設置視圖狀態(tài)為激活或參考UF_DRAW_ask_view_status查詢指定視圖的狀態(tài),激活或參考UF_DRAW_set_auto_update8.1.3 注釋參數(shù)設置UF函數(shù)允許

10、用戶查詢、設置注釋參數(shù),包括尺寸、線/箭頭、字體、符號、單位、半徑、區(qū)域填充/剖面線等所有注釋參數(shù)。與注釋參數(shù)設置相關函數(shù)如表6.3所示,它們包含在頭文件uf_drf.h中。表6.3注釋參數(shù)設置函數(shù)函數(shù)名稱函數(shù)功能UF_DRF_set_dimension_preferences UF_DRF_ask_dimension_preferences設置和查詢尺寸的參數(shù)預設置值包括箭頭符號、尺寸線、公差、精度、文本方位和放置類型等參數(shù)UF_DRF_set_units_format_preferences UF_DRF_ask_units_format_preferences設置和查詢單位參數(shù)的預設置包

11、括長度和角度尺寸的顯示方式及雙重尺寸的格式查詢單位的系統(tǒng)參數(shù)預設置值包括長度和角度尺寸的顯示方式及雙重尺寸的格式UF_DRF_set_symbol_preferences符號參數(shù)的預設置包括標識符號、用戶自定義符號、中心線及形位公差符號等。UF_DRF_ask_symbol_preferences查詢符號的系統(tǒng)參數(shù)預設置值包括標識符號、用戶自定義符號、中心線及形位公差符號等UF_DRF_set_line_arrow_preferences引導線、箭頭及尺寸和注釋的延長線的參數(shù)預設置UF_DRF_ask_line_arrow_preferences查詢引導線、箭頭及尺寸和注釋的延長線的系統(tǒng)參數(shù)預

12、設置值UF_DRF_set_lettering_preferences預設置各類字符的尺寸、字距、行距及字體等參數(shù)UF_DRF_ask_lettering_preferences查詢各類字符的尺寸、字距、行距及字體等系統(tǒng)參數(shù)預設置值UF_DRF_set_diameter_radius_preferences直徑和半徑尺寸顯示方式參數(shù)的預設置UF_DRF_ask_diameter_radius_preferencesUF_DRF_set_hatch_fill_preferences預設置剖面線和填充樣式的類型、比例、角度、距離、顏色和線型等參數(shù)UF_DRF_set_areafill_angle為

13、指定的區(qū)域填充對象設置區(qū)域填充的旋轉角度UF_DRF_set_areafill_scale為指定的區(qū)域填充對象設置區(qū)域填充的比例UF_DRF_set_areafill_material為指定的區(qū)域填充對象設置區(qū)域填充的材料。材料是通過類型為UF_DRF_valid_material_e的枚舉變量來定義的,包括軟木塞/毛氈、隔音材料、混凝土、泥土、巖石、沙、液相線、橫截木紋及縱向木紋等UF_DRF_ask_areafill_data查詢指定區(qū)域填充對象的參數(shù)包括:區(qū)域填充的比例、旋轉角度、填充材料和誤差UF_DRF_ask_ang_obj_units_format查詢角度尺寸的單位格式及公差格式

14、UF_DRF_ask_dim_info獲得指定尺寸的子類型,尺寸在工作坐標系中的原點坐標,尺寸線及相關聯(lián)的文本信息。其中輸出的類型為UF_DRF_dim_info_t的結構變量必須使用函數(shù)UF_DRF_free_dimension釋放UF_DRF_ask_chamfer_dimension_data獲得指定倒角尺寸的參數(shù)UF_DRF_set_retained_state設置工程圖中的注釋是否處于保留狀態(tài)。如果輸入UF_DRF_DELETE_RETAINED_ANNOTATIONS,所有與實體模型關聯(lián)的注釋,將可能隨實體模型修改而從視圖中刪除。如果輸入UF_DRF_KEEP_RETAINED_A

15、NNOTATIONS,則保留注釋UF_DRF_set_retain_color_font_width設置處于保留狀態(tài)注釋的顏色、線型及線寬。當工程圖中的注釋被設置處于保留狀態(tài)時,則模型修改后,所有與原模型相關的注釋將以設定的顏色、線型及線寬顯示實例實踐1.運行環(huán)境:新建或打開一個部件文件,進入制圖環(huán)境,插入一個視圖。2.程序代碼及注釋:#include <stdio.h>#include <string.h>#include <uf.h>#include <uf_drf.h>#include <uf_obj.h>#include &l

16、t;uf_ui.h>#include <uf_part.h>#include <uf_object_types.h>#include <uf_draw.h>#include <uf_modl.h>/* 設置尺寸參數(shù) */void set_dimension_parameters( void ) /* 設置變量定義 */ charmessage133; int mpi_array100; double mpr_array70; char rad_symbol27, dia_symbol27; UF_UI_open_listing_window

17、(); UF_UI_write_listing_window( "n設置前的系統(tǒng)工程圖參數(shù):nn" ); /* 查詢設置前的系統(tǒng)制圖參數(shù) */ UF_DRF_ask_preferences(mpi_array, mpr_array, rad_symbol, dia_symbol );sprintf( message,"尺寸值的小數(shù)位數(shù):mpi3 = %dn公差值的小數(shù)位數(shù):mpi4 = %dn", mpi_array3, mpi_array4 ); UF_UI_write_listing_window(message);sprintf( message,

18、"公差類型:mpi6 = %dn上公差:mpr24 = %fn下公差:mpr25 = %fn", mpi_array6, mpr_array24, mpr_array25 ); UF_UI_write_listing_window(message); /* 設置尺寸、公差等制圖參數(shù) */ mpi_array3 = 2; /* 設置尺寸值的小數(shù)位 */ mpi_array4 = 4; /* 設置公差值小數(shù)位 */ mpi_array6 = 4; /* 設置公差類型(單線雙向類) */ mpr_array24 = 0.00002; /* 設置上公差 */ mpr_array25

19、 = 0.00002; /* 設置下公差 */ UF_DRF_set_preferences( mpi_array, mpr_array, rad_symbol, dia_symbol ); UF_UI_write_listing_window( "nn設置后的系統(tǒng)工程圖參數(shù):nn" ); /* 查詢設置后的系統(tǒng)制圖參數(shù) */ UF_DRF_ask_preferences(mpi_array, mpr_array, rad_symbol, dia_symbol );sprintf( message,"尺寸值的小數(shù)位數(shù):mpi3 = %dn公差值的小數(shù)位數(shù):mpi4

20、 = %dn", mpi_array3, mpi_array4 ); UF_UI_write_listing_window(message);sprintf( message,"公差類型:mpi6 = %dn上公差:mpr24 = %fn下公差:mpr25 = %fn", mpi_array6, mpr_array24, mpr_array25 ); UF_UI_write_listing_window(message);/* 設置視圖比例 */void set_view_scale( void ) int num_views = 0; logical auto_

21、update; tag_t drawing_tag = NULL_TAG; tag_p_t view_list = NULL; tag_t exp_tag = NULL_TAG; /* 查詢當前圖紙標識 */ UF_DRAW_ask_current_drawing( &drawing_tag ); /* 獲得當前圖紙的視圖個數(shù)及標識 */ UF_DRAW_ask_views( drawing_tag, &num_views, &view_list ); /* 設置視圖自動更新 */ auto_update = true; if ( num_views > 0 )

22、UF_DRAW_set_auto_update (view_list0, &auto_update); /* 設置視圖比例 */ UF_MODL_create_exp_tag ("1.5", &exp_tag); UF_DRAW_set_view_parm_scale (view_list0, exp_tag); UF_free( view_list );extern void ufusr( char * param, int * retcod, int param_len ) if(!UF_initialize() /* 對話框設置參數(shù) */ char *

23、cp1 = "設置制圖參數(shù)" int ip2 = 0; char cp3238 = "設置尺寸參數(shù)", "設置視圖比例" ; int ip4 = 2; int value; value = uc1603( cp1, ip2, cp3, ip4 ); switch( value ) case 5: /* 設置尺寸參數(shù) */ set_dimension_parameters( ); break; case 6: /* 設置視圖比例 */ set_view_scale( ); break; default: uc1601( "發(fā)生

24、了錯誤!", 0 ); UF_terminate(); 3.運行結果在編譯連接后,通過FileExecuteUser Function調用生成的動態(tài)鏈接庫文件。此時界面彈出一個用戶選擇對話框,如圖6-1所示。當用戶選擇“設置尺寸參數(shù)”選項后,新建的尺寸標注將加上公差標注,尺寸保留兩位小數(shù),并且彈出一個消息對話框,列出參數(shù)設置前后的值,結果如圖6-2、6-3所示。當用戶選擇“設置視圖比例”選項后,當前圖紙上的視圖將放大1.5倍。圖6-1工程圖參數(shù)設置選擇對話框圖6-2尺寸參數(shù)設置消息框 ( a ) 參數(shù)設置前 ( b )參數(shù)設置后圖6-3尺寸參數(shù)設置效果比較8.2 圖框模板文件的導入導

25、入模板文件時,要注意導入模式的設置。如果希望在新文件中保持模板文件的原始圖層,設置導入方式為原始圖層模式;如果希望把模板文件導入到新文件的工作圖層中來,設置導入方式為工作層模式。導入后如果希望對模板文件進行整體操作,可以將模板文件作為組( group )導入,便于對模板文件的整體修改。參數(shù)設置代碼如下:UF_import_part_modes_t modes;modes.layer_mode = 1; / 0 = Merge on work layer; 1 = Merge on original layermodes.group_mode = 1; / 0 = Merge ungrouped

26、; 1 = Merge groupedmodes.plist_mode = 1;modes.view_mode = 1;modes.cam_mode = FALSE;double dest_csys6 = 1,0,0,0,1,0;double dest_point6 = 0,0,0;tag_t group;UF_PART_import(file_name,&modes,dest_csys,dest_point,1,&group);在二維制圖中,把企業(yè)常用的標準圖框做成模板文件,在需要時導入,這樣可以節(jié)省時間,提高設計效率。為了能夠自動填寫圖紙中的標題欄,可以在模板文件中先定義零

27、件屬性,如序號、編碼、名稱、數(shù)量、圖號、規(guī)格和材料等,并設置好屬性在標題欄中的放置位置,然后將模板文件導入。但是,由于模板文件的屬性并不隨模板文件的導入而導入,因此,為了使模板文件的附屬信息與二維制圖的標題欄關聯(lián),在建立二維圖前必須定義和模板文件中屬性名稱相同的屬性,然后導入模板,這樣可以在模板文件中的屬性和新建二維圖紙的屬性之間建立鏈接關系,通過改變屬性值即可編輯標題欄。 8.3 工程圖的創(chuàng)建和管理新建圖紙時需要指定圖紙的名稱、圖紙尺寸、比例、投影角度和單位,其中圖紙尺寸、比例、投影角度和單位參數(shù)是通過類型為UF_DRAW_info_t的結構體變量來指定的,而設置圖紙尺寸共有三種方式,包括:

28、公制和英制兩種標準尺寸及用戶自定義,其是通過類型為UF_DRAW_size_union_u的共用體變量來控制的,metric_size_code表示公制尺寸定義,english_size_code表示英制尺寸定義,custom_size表示用戶自定義。在大多數(shù)工程圖操作的UF函數(shù)中,當輸入的圖紙名為一個空字符串時(雙引號之間不能有空格),系統(tǒng)一般默認為當前圖紙。 相關函數(shù)表6.4、6.5分別為創(chuàng)建、管理和查詢工程圖的函數(shù),其函數(shù)的聲明主要包含在頭文件uf_draw.h中。表6.4創(chuàng)建和管理圖紙函數(shù)函數(shù)名稱函數(shù)功能和要點UF_DRAW_create_drawing新建一張圖紙,返回新建圖紙的標識

29、UF_DRAW_open_drawing打開指定圖紙UF_DRAW_delete_drawing刪除指定圖紙UF_DRAW_rename_drawing重新命名指定圖紙UF_DRAW_set_display_state設置圖紙狀態(tài),“1”表示實體模型的顯示;“2”表示工程視圖的顯示UF_DRAW_set_drawing_info編輯或修改當前圖紙的參數(shù),包括:大小,比例,投影角度和單位。如果當膠圖紙有一個或多個輔助視圖或正交視圖,則不能改變當前圖紙的投影角度。注意:只能編輯當前圖紙的參數(shù)UF_DRAW_set_drawing_ref_pt設置指定圖紙上指定視圖的參考點,以控制視圖在圖紙上的位置

30、。如果指定的圖紙為空字符串,則表示當前圖紙;如果指定的視圖為空字符串,則表示當前視圖表6.5查詢圖紙信息函數(shù)函數(shù)名稱函數(shù)功能和要點UF_DRAW_ask_current_drawing返回當前圖紙的標識UF_DRAW_ask_drawing_of_view獲得指定圖成員視圖所在的圖紙標識,如果為ULL_TAG則表示沒有找到對應的圖紙UF_DRAW_ask_drawing_info獲得指定圖紙的參數(shù),包括:大小,比例,投影角度和單位UF_DRAW_ask_drawings獲得當前工作部件的圖紙數(shù)量及標識UF_DRAW_ask_num_drawings獲得當前工作部件的圖紙數(shù)量UF_DRAW_as

31、k_drawing_ref_pt獲得指定圖成員視圖在圖紙上的參考點,如果輸入的圖成員視圖為NULL_TAG,則工作視圖被使用;如果輸入的不是圖成員視圖,則函數(shù)返回錯誤實例實踐1.運行環(huán)境:新建一個部件文件。2.程序代碼及注釋:#include <stdio.h>#include <uf.h>#include <uf_defs.h>#include <uf_draw.h>#include <uf_ui.h>extern void ufusr( char *param, int *retcode, int param_len) if(!U

32、F_initialize() int num_drawings; char messageMAX_LINE_SIZE + 1; /* 創(chuàng)建第一張圖紙的變量定義 */ tag_t fdrawing_tag = NULL_TAG; char fdrawing_nameMAX_ENTITY_NAME_SIZE = "first_drawing" UF_DRAW_info_t fdrawing_info; /* 創(chuàng)建第二張圖紙的變量定義 */ tag_t sdrawing_tag = NULL_TAG; char sdrawing_nameMAX_ENTITY_NAME_SIZE

33、= "second_drawing" UF_DRAW_info_t sdrawing_info; /* 設置圖紙的參數(shù) */ fdrawing_info.drawing_scale = 1.0; fdrawing_jection_angle = UF_DRAW_THIRD_ANGLE_PROJECTION; fdrawing_info.size.metric_size_code = UF_DRAW_A1; fdrawing_info.size_state = UF_DRAW_METRIC_SIZE; fdrawing_info.units = UF_PART

34、_METRIC; /* 創(chuàng)建第一張圖紙 */ UF_DRAW_create_drawing( fdrawing_name, &fdrawing_info, &fdrawing_tag); /* 獲得第一張圖紙的參數(shù) */ UF_DRAW_ask_drawing_info( fdrawing_tag, &sdrawing_info ); /* 在第一張圖紙參數(shù)的基礎上創(chuàng)建第二張圖紙 */ sdrawing_info.drawing_scale = 2.0; sdrawing_info.size.metric_size_code = UF_DRAW_A3; UF_DRAW_

35、create_drawing( sdrawing_name, &sdrawing_info, &sdrawing_tag); /* 為第一張圖紙更名 */ UF_DRAW_rename_drawing( fdrawing_tag, "my_first_drawing" ); UF_DRAW_open_drawing( fdrawing_tag ); /* 獲得當前部件文件中圖紙的數(shù)量,并輸出到消息框中 */ UF_DRAW_ask_num_drawings( &num_drawings ); UF_UI_open_listing_window();

36、sprintf(message,"當前部件文件共有: %d 張圖紙。", num_drawings ); UF_UI_write_listing_window(message); UF_terminate();3.運行結果編譯連接后,通過FileExecuteUser Function調用生成的動態(tài)鏈接庫文件。結果將在部件導航器中創(chuàng)建兩張圖紙,分別名為:second_drawing和my_first_drawing,如圖6-4所示。同時彈出一個消息對話框,顯示當前部件中圖紙的數(shù)量,如圖6-5所示。圖6-4創(chuàng)新工程圖圖6-5查詢工程圖參數(shù)消息框8.4 建立和編輯視圖建立和編輯

37、視圖包括:新建視圖、刪除視圖、移動視圖、復制視圖、對齊視圖、建立破斷視圖及編輯視圖等。UF函數(shù)允許用戶在圖紙上新建不同投影方向的視圖,可以基于父視圖建立各類常規(guī)剖視圖、正交視圖、輔助視圖、細節(jié)視圖、實體軸測圖、立體剖視圖、展開剖視圖等,并可控制放置的視圖比例、視圖邊界及位置。用戶可以利用UF函數(shù)來編輯圖視圖,包括移動/復制圖視圖、更新圖視圖及定義圖視圖的邊界和查詢圖視圖的各種信息。輸入視圖時視圖的參數(shù)是通過類型為UF_DRAW_view_info_s的結構體變量來定義的,其中包括設置視圖的比例,是否使用參考點,是否繼承邊界,是否傳遞注釋等。在UF視圖操作函數(shù)中,當給定的視圖名為一個空字符串(雙

38、引號之間不能有空格)或NULL_TAG時,則系統(tǒng)默認為當前視圖。圖成員視圖的名稱需要一個字符“”以表明它是一個圖成員視圖。 相關函數(shù)表6.6、6.7、6.8分別為創(chuàng)建、管理和查詢視圖的函數(shù),其函數(shù)的聲明主要包含在頭文件uf_draw.h中。 表6.6創(chuàng)建視圖函數(shù)函數(shù)名稱函數(shù)功能及要點UF_DRAW_import_view輸入一個視圖到當前圖紙上UF_DRAW_add_orthographic_view放置主視圖的正交視圖到當前圖紙上,其中投影方向是通過類型為UF_DRAW_proj_dir_e的枚舉變量來定義的。如果沒有指定投影方向,則投影方向由圖紙參考點的位置相對于父視圖的中點來確定UF_D

39、RAW_add_auxiliary_view放置輔助視圖到當前圖紙上UF_DRAW_add_detail_view放置模型視圖的矩形局部詳圖到當前圖紙上,需要定義局部詳圖比例UF_DRAW_add_circ_detail_view放置模型視圖的圓形局部詳圖到當前圖紙上,需要定義局部詳圖比例UF_DRAW_create_simple_sxview創(chuàng)建一個簡單剖視圖。其中只需提定箭頭方向,而箭頭位置將自動產生UF_DRAW_create_stepped_sxview創(chuàng)建一個階梯剖視圖。在函數(shù)中至少要提供一個截面線段,同時一個剖切線不能超過49個截面線段;如果輸入兩個剖切位置而沒有定義折彎位置,是系

40、統(tǒng)將產生一個折彎位置;如果輸入兩個相連的折彎位置,系統(tǒng)將忽略第二個折彎位置;如果沒有定義箭頭位置,系統(tǒng)將自動產生UF_DRAW_create_half_sxview創(chuàng)建一個半剖視圖。其中截面線段的數(shù)量至少為2(剖切線段和折彎線段),如果用戶定義箭頭位置,則截面線段的數(shù)量為3UF_DRAW_create_revolved_sxview創(chuàng)建一個旋轉剖視圖。在函數(shù)中一個剖切線不能超過49個截面線段;如果輸入兩個剖切位置而沒有定義折彎位置,是系統(tǒng)將產生一個折彎位置;如果輸入兩個相連的折彎位置,系統(tǒng)將忽略第二個折彎位置;如果沒有定義箭頭位置,系統(tǒng)將自動產生UF_DRAW_create_unfolded_

41、sxview創(chuàng)建一個展開剖視圖。如果沒有定義箭頭位置,系統(tǒng)將自動產生UF_DRAW_create_breakout創(chuàng)建一個截除的剖視圖。 表6.7編輯視圖函數(shù)函數(shù)名稱函數(shù)功能UF_DRAW_move_view移動當前圖紙上的指定視圖到指定位置UF_DRAW_move_view_to_drawing移動當前圖紙上的指定視圖到目標圖紙上。如果目標圖紙比指定視圖小,則返回錯誤UF_DRAW_copy_view復制當前圖紙上的視圖。當結合函數(shù)UF_DRAW_move_view一起使用時,可以復制視圖到當前圖紙上任意位置;結合函數(shù)UF_DRAW_move_view_to_drawing一起使用時,可以復

42、制當前圖紙上的視圖到別的圖紙上的指定位置UF_DRF_update_views更新指定圖紙上一個或多個視圖。共有三種更新方式:自動更新,更新所有視圖,更新指定視圖;如果更新指定視圖,則必須輸入視圖名稱。如果指定的圖紙不是當前圖紙,則打開指定圖紙,使其成為當前圖紙。如果指定的圖紙為空字符串,系統(tǒng)則默認當前圖紙。UF_DRAW_upd_out_of_date_views更新指定圖紙上所有過時視圖。如果指定圖紙為NULL_TAG,則更新當前部件中所有圖紙上的視圖UF_DRAW_update_one_view更新指定圖紙上指定視圖UF_DRAW_define_view_auto_rect利用自動的矩形

43、定義指定視圖的視圖邊界。UF_DRAW_define_view_boundary定義指定視圖的視圖邊界。有效的曲線類型為:UF_line_type,UF_circle_type和UF_spline_type,所有的曲線在視圖必須可見,如果曲線的類型為UF_circle_type,則這個圓必須位于視圖平面上。UF_DRAW_define_view_manual_rect利用人工矩形定義指定視圖的視圖邊界。UF_DRAW_define_bound_by_objects利用對象定義指定視圖的視圖邊界。 表6.8查詢視圖函數(shù)函數(shù)名稱函數(shù)功能UF_DRF_is_object_out_of_date查詢圖

44、紙或視圖的更新或延時的狀態(tài)。如果輸出為TRUE,則表示對象處于延時狀態(tài)UF_DRAW_ask_num_views獲得指定圖紙上視圖的個數(shù)。如果指定的圖紙標識為NULL_TAG,則系統(tǒng)默認為當前圖紙UF_DRAW_ask_view_borders獲得當前圖紙上指定視圖的邊界。如果指定的視圖標識為NULL_TAG,則系統(tǒng)默認為當前視圖UF_DRAW_ask_view_of_drawing獲得指定圖紙上的視圖標識。如果指定圖紙上沒有視圖,則輸出NULL_TAGUF_DRAW_ask_views獲得當前圖紙上視圖的數(shù)量及標識。如果指定的圖紙標識為NULL_TAG,則系統(tǒng)默認為當前圖紙 實例實踐1.運行

45、環(huán)境:新建或打開一個部件文件,創(chuàng)建一個零件。2.程序代碼及注釋:#include <stdio.h>#include <uf.h>#include <uf_part.h>#include <uf_drf.h>#include <uf_draw.h>#include <uf_obj.h>#include <uf_ui.h>void ufusr (char *param, int *retcode, int paramLen) if (!UF_initialize() int num_views; char mes

46、sageMAX_LINE_SIZE + 1; /* 定義圖紙變量 */ char drawing_nameMAX_ENTITY_NAME_SIZE = "my_drawing" UF_DRAW_info_t drawing_info; tag_t drawing_tag = NULL_TAG; tag_t view_tag = NULL_TAG; /* 定義前視圖變量 */ tag_t front_view_tag = NULL_TAG; char *front_view_name = "FRONT" double front_reference_poi

47、nt2 = 210.0, 400.0; /* 定義軸測視圖變量 */ tag_t tri_view_tag = NULL_TAG; char *tri_view_name = "TFR-TRI" double tri_reference_point2 = 630.0, 120.0; /* 定義俯視圖變量 */ UF_DRAW_proj_dir_t bottom_projection_direction = UF_DRAW_project_below; double bottom_reference_point2 = 210.0, 120.0; tag_t bottom_vi

48、ew_tag = NULL_TAG; /* 定義左視圖變量 */ UF_DRAW_proj_dir_t left_projection_direction = UF_DRAW_project_left; double left_reference_point2 = 630.0, 400.0; tag_t left_view_tag = NULL_TAG; /* 創(chuàng)建并打開圖紙 */ drawing_info.drawing_scale = 1.0; drawing_jection_angle = UF_DRAW_THIRD_ANGLE_PROJECTION; drawing_i

49、nfo.size.metric_size_code = UF_DRAW_A1; drawing_info.size_state = UF_DRAW_METRIC_SIZE; drawing_info.units = UF_PART_METRIC; UF_DRAW_create_drawing( drawing_name, &drawing_info,&drawing_tag); UF_DRAW_open_drawing( drawing_tag ); /* 設置視圖參數(shù) */ UF_DRAW_view_info_t view_info; UF_DRAW_initialize_v

50、iew_info( &view_info ); view_info.view_status = UF_DRAW_ACTIVE_VIEW; view_info.anchor_point = NULL_TAG; view_info.view_scale = 1.0; view_info.use_ref_pt = TRUE; view_info.inherit_boundary = TRUE; /* 創(chuàng)建前視圖 */ UF_OBJ_cycle_by_name( front_view_name, &view_tag ); if( view_tag != NULL_TAG ) UF_DR

51、AW_import_view( drawing_tag, view_tag, front_reference_point, &view_info, &front_view_tag ); UF_DRAW_define_view_auto_rect( front_view_tag ); view_tag = NULL_TAG; /* 創(chuàng)建軸測視圖 */ UF_OBJ_cycle_by_name( tri_view_name, &view_tag ); if( view_tag != NULL_TAG ) UF_DRAW_import_view( drawing_tag, v

52、iew_tag, tri_reference_point, &view_info, &tri_view_tag ); UF_DRAW_define_view_auto_rect( tri_view_tag ); /* 創(chuàng)建俯視圖 */ if( front_view_tag != NULL_TAG ) UF_DRAW_add_orthographic_view( drawing_tag, front_view_tag, bottom_projection_direction, bottom_reference_point, &bottom_view_tag ); UF_DRAW_define_view_auto_rect( bottom_view_tag ); /* 創(chuàng)建左視圖 */ if( front_view_tag != NULL_TAG ) UF_DRAW_add_orthographic_view( drawing_tag, front_view_tag, left_projection_direction, left_reference_point, &left_view_tag ); UF_DRAW_define_view_auto_rect( left_view_tag ); /*查詢當前圖紙的視圖個數(shù) */

溫馨提示

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

評論

0/150

提交評論