显示临时线、圆弧、圆、箭头及旋转等: R3 h. R/ n5 ~+ U1 J+ H
1 blank和unblank
- T! A4 E! B: |, o/ l8 l+ yblank就是将显示的零件设置成为不可见属性。unblank操作同blank相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_OBJ_set_blank_status。定义如下:
: H; ]) J4 Y4 }2 v! @extern int UF_OBJ_set_blank_status(tag_t object_id , int blank_status);1 o0 Y4 f# \% Y
参数object_id是输入参数,表示被操作对象的标识。参数blank_status表示操作类型,是输入参数。blank_status有两种状态,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED。6 [9 D2 }- a$ ~9 S' D4 u' M8 \+ I! V
2 highlight和unhighlight
. N$ \1 Z) _9 D k1 ~highlight就是将显示的零件设置成为高亮。unhighlight操作同highlight相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_DISP_set_highlight ()。函数的原型如下:
& I/ y; B+ B P1 B* Dextern int UF_DISP_set_highlight (tag_t object_id, int action_switch );
# o/ [ R7 C e0 T% E9 j参数object_id是输入参数,表示被操作对象的标识,参数action_switch也是一个输入参数,表示操作的类型,即action_switch为1时,将object_id所代表的对象高亮,action_switch为0时,将object_id所代表的对象回复到正常显示状态。) ]0 @& H, t9 C; I& o( A8 b
3 画线、圆弧、箭头0 o+ j% Q+ ~' O I2 y
临时对象主要是在建模或者其它工作中其辅助作用的对象。利用refresh命令可以清除临时对象。下面介绍几种临时对象的操作。画临时的对象,需要用到一个结构和一个枚举,它们分别是UF_OBJ_disp_props_s和UF_DISP_view_type_e。结构UF_OBJ_disp_props_s的内容如表(),枚举UF_DISP_view_type_e的内容如表()。/ J0 b, n+ D7 Z4 Z+ C: K- @
表:, b' q" m2 G2 G$ H3 K4 {
struct UF_OBJ_disp_props_s {
_% R- E( i4 H( N4 wint layer; 对象所在的层
3 _8 F# b$ U0 V1 Eint color; 对象的颜色
1 h% `, d, Z1 {, t8 k: E) gint blank_status; 对象的blank状态,两个,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED |; o4 W1 p6 [% f6 b
int line_width;对象的线型,定义如下:UF_OBJ_WIDTH_NORMAL、UF_OBJ_WIDTH_THICK、' K/ U9 N3 \! u: N+ h8 }
UF_OBJ_WIDTH_THIN、UF_OBJ_WIDTH_ORIGINAL1 \$ |3 r9 V' S
int font;对象所拥有的字体1 K9 X/ q2 h1 f( L
logical highlight_status; }; 对象的高亮状态表
) q6 ?* {7 C: G7 }) T1 ?$ D5 nUF_DISP_USE_VIEW_TAG=0 使用由视标识使用视y in view specified by its tag
# v3 t7 U6 H4 K( CUF_DISP_USE_ACTIVE_PLUS=1 使用active view 和 drawing views+ M" {0 S. x b2 _& C
UF_DISP_USE_CURSOR=2 使用上次光标的位置
7 a$ Y6 z& t" F/ wUF_DISP_USE_ACTIVE_MINUS=3 仅使用 active views
2 U8 }* A) Z! r" N" n& _4 w, Q6 |UF_DISP_USE_WORK_VIEW=4 使用work view 1) 画一条临时线" x+ W1 j! Y$ A. e3 S N7 H# r6 x
extern int UF_DISP_display_temporary_line (
9 u, N0 W+ N. H0 n0 Htag_t view_tag,
6 t. a+ p0 f9 R; `! m, E6 yUF_DISP_view_type_t which_views,# `- D6 N/ Q$ c2 \ O* ^' ~( W
double start_line[ 3 ],' ^7 V+ |, V# m* y; I5 q2 ]9 O
double end_line[ 3 ],( u: I e) G: S( [( L
UF_OBJ_disp_props_t * attrib );( _' n* [8 v8 [# z8 T4 \9 H
参数解释2 b& u a( p0 @0 C
tag_t view_tag 临时线所在的视的标识+ \* ~) y" {4 T4 `4 ?
UF_DISP_view_type_t which_views 所用视的类型
3 J" F0 b# G: Jdouble start_line[3] 线的起点坐标
8 _6 i3 H. I% F- mdouble end_line[3] 线的终点坐标
( U/ ?: @3 E% e1 {" b1 U+ x9 z# xUF_OBJ_disp_props_t *attrib 线的属性 2) 画临时圆弧
: A3 ^! R! Y* ?, `2 B2 u Xextern int UF_DISP_display_temporary_arc (
+ j6 J8 D% T2 A7 C7 B q5 ^2 N5 xtag_t view_tag,
+ l, F" A7 C' }; gUF_DISP_view_type_t which_views,
7 E4 Y4 O* l' }/ r6 bdouble matrix[ 9 ]," r6 r m6 x& ~& z6 O
double start_angle,
k/ }, s, B) W' Cdouble end_angle,
2 h/ m- v4 I+ U+ T0 [double arc_center[ 3 ],
# a$ O, y* Z" @double radius,+ f1 o9 J% }/ w& m5 t H
UF_OBJ_disp_props_t * attrib );0 E! t7 l# B; A. I% T" u2 r
参数解释:
4 W/ I9 X8 N# z8 e& T; Htag_t view_tag 临时圆弧标识
) U1 X3 F: l! P" Y/ j- d: zUF_DISP_view_type_t which_views 所用视的类型
4 |' Y6 ^# Z v! I9 |+ E7 ydouble matrix[9] 圆弧所在的坐标系矩阵# ^7 F! A* c& U' Z' U
double start_angle 弧的起始角
* X5 a' h* }9 R+ F# F/ R& i/ ~( sdouble end_ angle 弧的结束角
0 R& z; m' z# f6 c; Vdouble arc_center[3] 圆弧的中心
# m, q) W# j5 o0 o* sdouble radius 圆弧的半径& ~6 R. T+ [2 A3 M3 J6 X2 ~! G
UF_OBJ_disp_props_t *attrib 圆弧线的属性
( Z7 V; b6 o9 {" sNote: 起始角必须比结束角要小,而且起始角和结束角之差的绝对值要小于2л。 3) 画临时箭头3 f+ N6 g- Y2 n0 k" A5 \( |
extern void UF_DISP_conehead (" v. {5 F0 f; p$ v
int display_flag,5 S3 x- `+ T: I( p# e+ ~
double coord[ ],
0 `& p1 c& t$ S3 a1 O5 Odouble vector[ ], j9 Y# ?" g- m9 M
int anchor_flag );& T) _# _* R$ _# ?* M
参数解释:3 ^9 L1 c8 V: b4 S
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;
% D% m$ h, O8 h: S* o如果display_flag>0,则代表视的顺序号. w$ y# M9 M( {, d3 o, U
double coord[] 箭头的起点坐标/ ]7 k7 V4 m! p9 ~. F
double vector[] 箭头的方向向量
1 L) K3 h4 t# O; `& K9 H( x) Eint anchor_flag 箭头的类型
% \: c. j. i& C0 @ |