青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 1587|回复: 0

[教程] UG二次开发实用入门教程_与显示(视窗)相关的函数(DISP,VIEW)

[复制链接]
发表于 2014-4-6 20:23 | 显示全部楼层 |阅读模式

显示临时线、圆弧、圆、箭头及旋转等
5 v7 L1 ]0 Q% }7 J7 K) B6 }1 blank和unblank
. x4 G; j, i+ v6 h) b  a9 s5 ^blank就是将显示的零件设置成为不可见属性。unblank操作同blank相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_OBJ_set_blank_status。定义如下:
' @% C4 |- g/ K" ~extern int UF_OBJ_set_blank_status(tag_t object_id , int blank_status);8 ?8 G2 \' V7 N4 o6 p: r9 s
参数object_id是输入参数,表示被操作对象的标识。参数blank_status表示操作类型,是输入参数。blank_status有两种状态,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED。
0 w' d) n1 {5 k2 highlight和unhighlight
: T* b6 R& n% a" C! Thighlight就是将显示的零件设置成为高亮。unhighlight操作同highlight相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_DISP_set_highlight ()。函数的原型如下:: t* \0 K8 h- K
extern int UF_DISP_set_highlight (tag_t object_id, int action_switch );
: `3 c  y" @! `3 S( B9 A参数object_id是输入参数,表示被操作对象的标识,参数action_switch也是一个输入参数,表示操作的类型,即action_switch为1时,将object_id所代表的对象高亮,action_switch为0时,将object_id所代表的对象回复到正常显示状态。
1 C: `0 W. d0 M! S' p5 u3 画线、圆弧、箭头
1 `9 g8 n. V$ C+ g5 ~! {临时对象主要是在建模或者其它工作中其辅助作用的对象。利用refresh命令可以清除临时对象。下面介绍几种临时对象的操作。画临时的对象,需要用到一个结构和一个枚举,它们分别是UF_OBJ_disp_props_s和UF_DISP_view_type_e。结构UF_OBJ_disp_props_s的内容如表(),枚举UF_DISP_view_type_e的内容如表()。4 T' L8 A3 u  g) t8 r+ t
表:
7 E1 w- m7 X* dstruct UF_OBJ_disp_props_s {
3 R% W2 f' [% T6 z1 w" R0 [# f9 X/ t) nint layer; 对象所在的层  ]& q' o/ [& N$ v* z+ C
int color; 对象的颜色
. E7 B% |: {. G$ eint blank_status; 对象的blank状态,两个,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED, R7 @7 f% H/ ]8 S- G3 r
int line_width;对象的线型,定义如下:UF_OBJ_WIDTH_NORMAL、UF_OBJ_WIDTH_THICK、2 |3 N' c0 i2 e9 `
UF_OBJ_WIDTH_THIN、UF_OBJ_WIDTH_ORIGINAL
. @$ p! k6 f% Z$ h  \' N+ wint font;对象所拥有的字体6 Y2 b( m; m9 K5 n& i- M4 o
logical highlight_status; }; 对象的高亮状态表5 }: f+ c% o3 G+ F4 d
UF_DISP_USE_VIEW_TAG=0 使用由视标识使用视y in view specified by its tag
/ T3 V1 u3 L4 c* U0 MUF_DISP_USE_ACTIVE_PLUS=1 使用active view 和 drawing views6 Q: K" [$ `/ j5 j$ W( L1 W
UF_DISP_USE_CURSOR=2 使用上次光标的位置
; [" v+ m1 ?5 w+ JUF_DISP_USE_ACTIVE_MINUS=3 仅使用 active views" Z6 @" u; B6 L
UF_DISP_USE_WORK_VIEW=4 使用work view

1) 画一条临时线( Y3 Q" Y/ G- ]
extern int UF_DISP_display_temporary_line (
, @1 ^- f+ i1 ?) p9 ntag_t view_tag,! Z8 h- S3 E$ ~) Q+ k6 T
UF_DISP_view_type_t which_views,
& ]) R- V( n; \' C1 ndouble start_line[ 3 ],+ h0 d; a% s  y9 }! G1 G& q2 ?
double end_line[ 3 ],
+ c8 \# ~( |% t3 FUF_OBJ_disp_props_t * attrib );2 r4 T' Q0 Z: ~% v6 m) p7 z1 ]+ p. o
参数解释
) r/ J' ?& V2 W# H; c6 Htag_t view_tag 临时线所在的视的标识
& d- T6 D. U6 b: K/ O/ iUF_DISP_view_type_t which_views 所用视的类型% M" ~; {: P6 ?- D1 @0 j
double start_line[3] 线的起点坐标
: |! M. ?8 G; Hdouble end_line[3] 线的终点坐标
! n; m. V: m* K  \- S: {5 SUF_OBJ_disp_props_t *attrib 线的属性

2) 画临时圆弧
' {, R( x2 v. ^  u, ^' fextern int UF_DISP_display_temporary_arc (
- ^# Y# l0 g5 W# x: y  q! K& ptag_t view_tag,
- S2 d+ O2 Y, n, ^9 }& B/ QUF_DISP_view_type_t which_views,
: v2 T8 }2 b3 Edouble matrix[ 9 ],& [$ Q/ l8 |; \6 |2 x3 i
double start_angle,& B* S. v2 H+ S! U/ O
double end_angle,
( ^0 ?+ `: y) L6 o! Adouble arc_center[ 3 ],
( u  s: f! N9 A: R1 T3 }) wdouble radius,: L/ E( R+ u: k+ M+ a! t
UF_OBJ_disp_props_t * attrib );
  s1 `2 E, P* j2 k参数解释:: o6 Q3 P" \( V( k
tag_t view_tag 临时圆弧标识8 w, {3 J3 t$ `9 h) Z' M
UF_DISP_view_type_t which_views 所用视的类型1 Q! _( \* e: Y7 L3 v
double matrix[9] 圆弧所在的坐标系矩阵1 l/ y! ^0 H5 G/ A
double start_angle 弧的起始角
0 B. O6 \% v: y; j9 f# }! {  qdouble end_ angle 弧的结束角
+ t1 J. Z5 ?) qdouble arc_center[3] 圆弧的中心5 A8 v  {8 `- A" u; a& ]+ u6 s
double radius 圆弧的半径  b2 n" N" b: g# g
UF_OBJ_disp_props_t *attrib 圆弧线的属性. {0 v2 _1 N- t/ {% b0 l
Note: 起始角必须比结束角要小,而且起始角和结束角之差的绝对值要小于2л。

3) 画临时箭头7 L% I, t! A- V/ ], M9 i
extern void UF_DISP_conehead (
! P8 |& P# o1 v. n6 Y  ~$ iint display_flag,0 K5 F! D  \, Z1 e6 ^
double coord[ ],
" B0 L. c- G% D# t! M- [& _0 R# [double vector[ ],( B; m( ~( }: w
int anchor_flag );$ {& h, q! K' S; E: P# D$ l6 I
参数解释:+ U# n: w9 M& T3 U/ v* u4 B) J  \* q
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;
) H2 m% F+ \/ R3 ~2 n+ V0 O如果display_flag>0,则代表视的顺序号$ @4 m# p  B0 {  u4 t
double coord[] 箭头的起点坐标
) b1 l" P2 _( kdouble vector[] 箭头的方向向量# C; X8 E6 P+ V; r
int anchor_flag 箭头的类型

6 a' e/ J" T; Y" ~; j* T% Y! O
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-1-23 12:04 , Processed in 0.048515 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表