青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

显示临时线、圆弧、圆、箭头及旋转等( i+ X1 D3 }, g! ]" O
1 blank和unblank" {6 ~) u- t' f+ |8 N- J* U7 g" ]1 d
blank就是将显示的零件设置成为不可见属性。unblank操作同blank相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_OBJ_set_blank_status。定义如下:
2 [  I2 S: p4 Q* r2 N) g9 _extern int UF_OBJ_set_blank_status(tag_t object_id , int blank_status);+ @9 c3 z4 I# r( Y: f* F% I
参数object_id是输入参数,表示被操作对象的标识。参数blank_status表示操作类型,是输入参数。blank_status有两种状态,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED。7 J0 N( B) E7 x/ }
2 highlight和unhighlight) e2 A& g6 t5 b: a& ?3 y2 |
highlight就是将显示的零件设置成为高亮。unhighlight操作同highlight相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_DISP_set_highlight ()。函数的原型如下:
( K. w4 w" e. v- ^5 \extern int UF_DISP_set_highlight (tag_t object_id, int action_switch );
3 _4 Z' B7 d. b, c1 a- {/ M' G参数object_id是输入参数,表示被操作对象的标识,参数action_switch也是一个输入参数,表示操作的类型,即action_switch为1时,将object_id所代表的对象高亮,action_switch为0时,将object_id所代表的对象回复到正常显示状态。) E: d2 N! W# X! Y3 h
3 画线、圆弧、箭头
6 H, }9 J: O/ _2 H9 q+ |临时对象主要是在建模或者其它工作中其辅助作用的对象。利用refresh命令可以清除临时对象。下面介绍几种临时对象的操作。画临时的对象,需要用到一个结构和一个枚举,它们分别是UF_OBJ_disp_props_s和UF_DISP_view_type_e。结构UF_OBJ_disp_props_s的内容如表(),枚举UF_DISP_view_type_e的内容如表()。
: W) @/ o1 N7 e; l表:
) F# f! T; p: t2 w5 u7 Zstruct UF_OBJ_disp_props_s {" F8 v. D$ H+ H% ?- ?# W
int layer; 对象所在的层' N# Y  ^* G; w+ f
int color; 对象的颜色
. K4 Z/ H6 l, a. [: m/ s  e# w0 B, Cint blank_status; 对象的blank状态,两个,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED: ]2 p9 a5 Y: ~, C$ }
int line_width;对象的线型,定义如下:UF_OBJ_WIDTH_NORMAL、UF_OBJ_WIDTH_THICK、( n: `" i/ V  e' ]& X! ~7 z0 c
UF_OBJ_WIDTH_THIN、UF_OBJ_WIDTH_ORIGINAL, p( s" t; a3 p& n  v" S
int font;对象所拥有的字体9 p# W/ |; Z8 L
logical highlight_status; }; 对象的高亮状态表' ^, V& v) [8 }4 ]' p! ^" [7 e# Q) |. K
UF_DISP_USE_VIEW_TAG=0 使用由视标识使用视y in view specified by its tag
+ N! f" [) f5 i9 LUF_DISP_USE_ACTIVE_PLUS=1 使用active view 和 drawing views
# e; P, P* J" {4 r% z8 j) Q* mUF_DISP_USE_CURSOR=2 使用上次光标的位置
) }' w' g. M( y5 fUF_DISP_USE_ACTIVE_MINUS=3 仅使用 active views- C  O; ^9 N( U0 W/ l
UF_DISP_USE_WORK_VIEW=4 使用work view

1) 画一条临时线. t% p8 t1 g2 g4 t! m! _/ p
extern int UF_DISP_display_temporary_line (
2 f$ q6 i9 J" M/ o9 m' Q) ptag_t view_tag,- X2 S) p: l3 E3 r
UF_DISP_view_type_t which_views,
. W% l" Y/ ^9 ]$ F0 }double start_line[ 3 ],
  w/ x% w) C  m) [* N) G! r! J, M" ?double end_line[ 3 ],
& D! h, E8 V$ q" z: XUF_OBJ_disp_props_t * attrib );- j) D# ?- a. G4 y! d& m, n
参数解释
$ I* c0 ?( }) Otag_t view_tag 临时线所在的视的标识& t" c) s5 @3 X. A
UF_DISP_view_type_t which_views 所用视的类型& `! \+ ?; M$ |' S  b" N
double start_line[3] 线的起点坐标% a% v7 J2 S4 J4 Q/ u
double end_line[3] 线的终点坐标
2 c. y; z" ^! C# b# k5 F2 gUF_OBJ_disp_props_t *attrib 线的属性

2) 画临时圆弧2 B- N: A# b& i: c- c
extern int UF_DISP_display_temporary_arc (
; S- S# g& Q8 b/ ftag_t view_tag,  m' R) o0 [0 O5 @
UF_DISP_view_type_t which_views,$ V' H4 R$ E& S& e7 R6 {
double matrix[ 9 ],
& {6 d$ I4 b0 o: C9 Mdouble start_angle,) u- z' x2 c  k& T, V
double end_angle,
  i$ O" {7 ]# Y. V- ]double arc_center[ 3 ],2 ]- [% g" G3 [+ `- g6 \3 D7 J# B
double radius,/ U8 P  I$ I; P7 h. k) w
UF_OBJ_disp_props_t * attrib );9 R7 f7 m; }& J% `; h# J
参数解释:+ ]( f" D1 ]. M/ S" p6 _
tag_t view_tag 临时圆弧标识' [# r) y1 `2 ~8 `
UF_DISP_view_type_t which_views 所用视的类型
. |' H0 ^5 O( A! A2 cdouble matrix[9] 圆弧所在的坐标系矩阵4 ?1 S' ]$ J( n, H
double start_angle 弧的起始角3 E5 u$ X0 u  K. o: W
double end_ angle 弧的结束角" l- k1 C. W+ _0 i) c( g
double arc_center[3] 圆弧的中心. X* X  v! k$ @" k+ J6 x: B
double radius 圆弧的半径
1 T! \* @2 I/ c3 k& NUF_OBJ_disp_props_t *attrib 圆弧线的属性
! E2 S% Y. l1 ^# w+ g& DNote: 起始角必须比结束角要小,而且起始角和结束角之差的绝对值要小于2л。

3) 画临时箭头% s, J" j% s3 D( [
extern void UF_DISP_conehead (5 }% A. m' |9 ]. K% ^( t5 Y
int display_flag,
/ w$ X6 T5 S0 {0 m% ]) Idouble coord[ ],0 M0 p0 @2 ^  d8 [8 _/ G& W; C
double vector[ ],3 F, @( m" d/ ^: t1 I0 f/ R
int anchor_flag );
5 x4 d. k! o* |( S8 f; r( E0 `参数解释:/ F3 B6 j& R/ h9 [
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;0 }9 n# Q0 X1 W! _$ o
如果display_flag>0,则代表视的顺序号
+ J5 t; d$ b6 s9 E* O" vdouble coord[] 箭头的起点坐标+ X- P0 s1 Q: k4 K" f; h" w# D
double vector[] 箭头的方向向量: l  q0 Y! X4 E, z2 _/ Z; J' L
int anchor_flag 箭头的类型


/ Y3 ^% d: r5 t/ W$ p* ?( P4 ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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