显示临时线、圆弧、圆、箭头及旋转等
! }( G9 E% r6 Z9 h# D1 blank和unblank
& U8 Y& N4 J6 U" o! a, Z" Ablank就是将显示的零件设置成为不可见属性。unblank操作同blank相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_OBJ_set_blank_status。定义如下:
9 r6 C/ ?0 E# @- P) q/ D4 jextern int UF_OBJ_set_blank_status(tag_t object_id , int blank_status);2 l% h/ `9 C9 Z9 L: {
参数object_id是输入参数,表示被操作对象的标识。参数blank_status表示操作类型,是输入参数。blank_status有两种状态,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED。% H, O6 |2 R' {. n* z# j1 C
2 highlight和unhighlight
# I5 H" T, ~: b# _# phighlight就是将显示的零件设置成为高亮。unhighlight操作同highlight相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_DISP_set_highlight ()。函数的原型如下:$ b' k1 U9 i& U5 _" a$ a# x& x; y
extern int UF_DISP_set_highlight (tag_t object_id, int action_switch );1 M9 d2 {2 V2 a; X0 z- ^% {
参数object_id是输入参数,表示被操作对象的标识,参数action_switch也是一个输入参数,表示操作的类型,即action_switch为1时,将object_id所代表的对象高亮,action_switch为0时,将object_id所代表的对象回复到正常显示状态。
* u4 [! j& u: k+ F3 画线、圆弧、箭头9 L2 ~7 [2 U$ ^; D' Z
临时对象主要是在建模或者其它工作中其辅助作用的对象。利用refresh命令可以清除临时对象。下面介绍几种临时对象的操作。画临时的对象,需要用到一个结构和一个枚举,它们分别是UF_OBJ_disp_props_s和UF_DISP_view_type_e。结构UF_OBJ_disp_props_s的内容如表(),枚举UF_DISP_view_type_e的内容如表()。
7 [( f$ b2 X2 ~表:0 K: e" L4 b0 @$ i+ \( c
struct UF_OBJ_disp_props_s {; M5 J8 L0 T( P: ~
int layer; 对象所在的层% i8 ? b) I# k5 ?5 ~! _# E
int color; 对象的颜色
5 T D, H5 B/ k/ ^1 kint blank_status; 对象的blank状态,两个,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED
' u: d8 G( |+ h5 g# C* P. yint line_width;对象的线型,定义如下:UF_OBJ_WIDTH_NORMAL、UF_OBJ_WIDTH_THICK、$ k; H, k' l0 i0 T6 r j
UF_OBJ_WIDTH_THIN、UF_OBJ_WIDTH_ORIGINAL
1 H; r# b% t( P4 I7 t) ^int font;对象所拥有的字体 |: z% Q: |6 W
logical highlight_status; }; 对象的高亮状态表
1 Q2 L9 J% e/ P& N- q8 ~, X* mUF_DISP_USE_VIEW_TAG=0 使用由视标识使用视y in view specified by its tag: X3 `; Y) O {; g. [
UF_DISP_USE_ACTIVE_PLUS=1 使用active view 和 drawing views" R8 Y. n { [) g2 P
UF_DISP_USE_CURSOR=2 使用上次光标的位置; j1 _ ?$ m5 l6 R, i
UF_DISP_USE_ACTIVE_MINUS=3 仅使用 active views8 t. w1 u6 @% z1 X" s
UF_DISP_USE_WORK_VIEW=4 使用work view 1) 画一条临时线
. c+ \* ?5 m* E8 O4 s- Xextern int UF_DISP_display_temporary_line (
4 n6 ]: P+ g2 S; k: t3 ]4 dtag_t view_tag,7 N T: k5 v0 J# B" Q3 r* J
UF_DISP_view_type_t which_views,: X- r3 p. e" r- L5 v; K7 [8 I& Y) }3 `
double start_line[ 3 ],; [2 F3 ~- \. P% }! V
double end_line[ 3 ]," G' v) f$ d( E5 v+ N3 I4 W
UF_OBJ_disp_props_t * attrib );! X; M9 I; Z0 h* V$ S% U5 n
参数解释3 g @5 J6 H8 u7 B1 u; e
tag_t view_tag 临时线所在的视的标识
3 R" ~) M1 d3 B- D" |' mUF_DISP_view_type_t which_views 所用视的类型
9 y" d. v9 T. |" k; X; c! wdouble start_line[3] 线的起点坐标- H. \7 ^/ G( R+ u
double end_line[3] 线的终点坐标
: ~: A% [& ]5 o( s' kUF_OBJ_disp_props_t *attrib 线的属性 2) 画临时圆弧
# Z. R: B% ?4 j! d! b% @1 v$ wextern int UF_DISP_display_temporary_arc (0 M2 A1 r0 z* w/ b
tag_t view_tag, @- x2 o h, ?% {: E2 a& A7 F& F
UF_DISP_view_type_t which_views,
3 r: S. `# U7 E$ t9 g! |double matrix[ 9 ],4 O2 ^$ ~1 m3 y
double start_angle,7 o& M" a& \, Y& Q9 y
double end_angle,
: g$ } _# R# b/ e2 rdouble arc_center[ 3 ],
% S& [9 N! x% |: odouble radius,
- M4 [/ Y7 s: w# f7 N: f" b! T+ FUF_OBJ_disp_props_t * attrib );& {. h% F( b) V0 r( w4 l' U D! }
参数解释:
/ @: Y+ a7 Q* y/ |tag_t view_tag 临时圆弧标识# ]7 f$ w3 H8 S
UF_DISP_view_type_t which_views 所用视的类型& h4 o2 i. B) C, h* i
double matrix[9] 圆弧所在的坐标系矩阵
) B! w$ y+ c) `0 U9 l3 adouble start_angle 弧的起始角5 I* S: n( i+ r: {3 K) E4 S& u
double end_ angle 弧的结束角
( _+ Z @) d9 a2 _: z" a z; ?double arc_center[3] 圆弧的中心( f* }$ {+ v# ]- E- r4 [9 L1 X6 N2 h# p
double radius 圆弧的半径* V- O2 U2 W) x8 L! P4 \
UF_OBJ_disp_props_t *attrib 圆弧线的属性
' Q5 ]0 G/ J) `/ S9 N' \9 R2 a% _Note: 起始角必须比结束角要小,而且起始角和结束角之差的绝对值要小于2л。 3) 画临时箭头( S0 f' t- I3 \' r
extern void UF_DISP_conehead (1 E$ R) g/ [3 B& N/ h& p# Y
int display_flag,6 w4 Q t! I z8 }# v7 B
double coord[ ],
8 t0 T# ]* D: T' ^+ G6 ndouble vector[ ],
* F9 j" L: M k# Z1 \. Uint anchor_flag );3 }% P; c5 ?4 ^7 e9 S4 }. K4 j4 A9 ~; z
参数解释:: y9 e. `( G" ?/ |$ t
int display_flag 箭头所在的视窗,定义如下: UF_DISP_ALL_VIEWS_BUT_DRAWING; UF_DISP_VIEW_OF_LAST_CURSOR ;UF_DISP_ALL_ACTIVE_VIEWS ;UF_DISP_WORK_VIEW_ONLY;
4 \- {# M8 j! D. |$ I如果display_flag>0,则代表视的顺序号
/ j6 Z z8 @3 E$ F& hdouble coord[] 箭头的起点坐标; L6 E6 i2 p% b- v
double vector[] 箭头的方向向量
+ B! f" S6 X' bint anchor_flag 箭头的类型 ' }6 R/ ~' O+ Q1 ]
|