显示临时线、圆弧、圆、箭头及旋转等1 B1 l/ P4 O% Z! M9 U! ?4 |/ |8 V
1 blank和unblank
: J/ k( X5 X1 U; k% v {blank就是将显示的零件设置成为不可见属性。unblank操作同blank相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_OBJ_set_blank_status。定义如下:# f" k% [+ y! M- J
extern int UF_OBJ_set_blank_status(tag_t object_id , int blank_status);
6 s1 ^* E2 \4 }' \; w参数object_id是输入参数,表示被操作对象的标识。参数blank_status表示操作类型,是输入参数。blank_status有两种状态,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED。
6 [% o2 V a7 y- K2 i$ c2 highlight和unhighlight1 o3 M: b! G5 T- B4 ]2 K
highlight就是将显示的零件设置成为高亮。unhighlight操作同highlight相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_DISP_set_highlight ()。函数的原型如下:+ _; X& ~" a% o0 F+ J1 f$ k! Y
extern int UF_DISP_set_highlight (tag_t object_id, int action_switch );" n9 n& \( M' R3 p* i" O# F
参数object_id是输入参数,表示被操作对象的标识,参数action_switch也是一个输入参数,表示操作的类型,即action_switch为1时,将object_id所代表的对象高亮,action_switch为0时,将object_id所代表的对象回复到正常显示状态。! }5 N/ h) U- e! q
3 画线、圆弧、箭头3 c- p9 |9 T6 I+ K) w% j$ c+ B8 j; s
临时对象主要是在建模或者其它工作中其辅助作用的对象。利用refresh命令可以清除临时对象。下面介绍几种临时对象的操作。画临时的对象,需要用到一个结构和一个枚举,它们分别是UF_OBJ_disp_props_s和UF_DISP_view_type_e。结构UF_OBJ_disp_props_s的内容如表(),枚举UF_DISP_view_type_e的内容如表()。
- }$ u. j( Y }6 g4 P表:# e0 P( Z4 a0 _
struct UF_OBJ_disp_props_s {" M2 |$ [9 d: y' W* h0 F: B
int layer; 对象所在的层
1 Z: d! G3 h1 y6 ]7 T# S9 aint color; 对象的颜色/ B0 n$ I' b, v/ V! I" `
int blank_status; 对象的blank状态,两个,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED. ^2 a x6 ~, P7 j; ]4 k
int line_width;对象的线型,定义如下:UF_OBJ_WIDTH_NORMAL、UF_OBJ_WIDTH_THICK、
$ ]6 o' i( u0 E0 BUF_OBJ_WIDTH_THIN、UF_OBJ_WIDTH_ORIGINAL
! n: x& M% B! d& B% kint font;对象所拥有的字体
3 K& q, n8 M$ P) X% \4 r1 ulogical highlight_status; }; 对象的高亮状态表
1 K6 j2 `8 @2 t( x0 ^; RUF_DISP_USE_VIEW_TAG=0 使用由视标识使用视y in view specified by its tag' B5 F* B \9 R/ M7 Q- U, Z
UF_DISP_USE_ACTIVE_PLUS=1 使用active view 和 drawing views
0 {. Z3 S, Y( r' `4 Y6 HUF_DISP_USE_CURSOR=2 使用上次光标的位置
( z+ u9 K) L7 V; k' N: XUF_DISP_USE_ACTIVE_MINUS=3 仅使用 active views
8 y) m# { `- P6 V+ MUF_DISP_USE_WORK_VIEW=4 使用work view 1) 画一条临时线
9 u2 w" b( b, kextern int UF_DISP_display_temporary_line (
+ O- z: |+ V% W+ ^. v2 u# ?tag_t view_tag,
$ c8 q6 G5 T% D3 O1 p2 EUF_DISP_view_type_t which_views,
# R: h+ ?0 T' R. E7 {$ t. _double start_line[ 3 ],$ A+ J- k! ~3 a3 S0 l6 Z
double end_line[ 3 ],
6 t* C1 N/ L8 v- KUF_OBJ_disp_props_t * attrib );. f# E- V; V- F: i9 a# C: x
参数解释
4 g# l- T8 }' u, h) g0 D+ ltag_t view_tag 临时线所在的视的标识
2 ^+ _/ V* D7 u1 {; dUF_DISP_view_type_t which_views 所用视的类型
. `; v' L9 f: V+ ~* Y: edouble start_line[3] 线的起点坐标, x* _9 p% _" ?3 I I
double end_line[3] 线的终点坐标
% t% J1 f7 w0 b } VUF_OBJ_disp_props_t *attrib 线的属性 2) 画临时圆弧
0 s# q; M& n/ n. J9 q$ w! ~extern int UF_DISP_display_temporary_arc (
5 t. F& [5 u8 n- `% P0 J* Mtag_t view_tag,% e1 i* B4 S* {0 Y; Y$ d0 g6 g
UF_DISP_view_type_t which_views,
$ R* |9 [$ A( M+ t- R& c6 xdouble matrix[ 9 ],4 ~* R) e! V+ _, s5 u8 A& ^
double start_angle,
5 o) Z$ Y) ]* h* Qdouble end_angle,4 C- Z3 Z3 K' j5 J. p+ ?
double arc_center[ 3 ],
9 w' T+ C* V3 W5 [2 x* U: N# Bdouble radius,
( o' c* y4 u. y9 UUF_OBJ_disp_props_t * attrib );
2 c; z( V" R9 U: \! x4 d9 s参数解释:. b% g" r+ R# l; k. f; a$ s8 v
tag_t view_tag 临时圆弧标识3 S; e9 t2 W+ w& T
UF_DISP_view_type_t which_views 所用视的类型
" a! [. u5 p9 d; Z2 \7 Q5 zdouble matrix[9] 圆弧所在的坐标系矩阵
9 K" \* k; r: J2 T+ \* zdouble start_angle 弧的起始角3 @4 H2 e, P6 y8 f6 B' j
double end_ angle 弧的结束角, L* d3 T6 e- D" m( A c
double arc_center[3] 圆弧的中心
/ Z4 z; ^) i6 u, Pdouble radius 圆弧的半径9 N: B# M. S& T3 P3 O
UF_OBJ_disp_props_t *attrib 圆弧线的属性* _. |7 e* h _* I
Note: 起始角必须比结束角要小,而且起始角和结束角之差的绝对值要小于2л。 3) 画临时箭头) H1 J* i, v/ ]" `1 J
extern void UF_DISP_conehead (, b9 q0 ~. q4 N4 w4 Q4 R9 a
int display_flag,
2 z+ x |* Y3 i8 Hdouble coord[ ],
" s8 B( T; J3 p6 r! l' q# s6 b& ?double vector[ ],
. }3 c) p' h3 qint anchor_flag );
. Q* C$ u4 g) [& X. D0 m- }% p参数解释:
8 B' T5 o: ]$ C3 b" F8 [/ [ w- pint display_flag 箭头所在的视窗,定义如下: UF_DISP_ALL_VIEWS_BUT_DRAWING; UF_DISP_VIEW_OF_LAST_CURSOR ;UF_DISP_ALL_ACTIVE_VIEWS ;UF_DISP_WORK_VIEW_ONLY;! S; u% w: T/ L- ^) d
如果display_flag>0,则代表视的顺序号
% O) ?( P! ~" adouble coord[] 箭头的起点坐标4 S) W" u% |/ c! [1 z' P* h
double vector[] 箭头的方向向量
3 }! P/ i& M' ?$ sint anchor_flag 箭头的类型
+ }/ K' N4 h5 J" s+ [ |