青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

显示临时线、圆弧、圆、箭头及旋转等
8 U$ ], m8 E3 r1 g1 }1 blank和unblank
! Q8 B, }! p+ F) p/ P+ T2 _- Gblank就是将显示的零件设置成为不可见属性。unblank操作同blank相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_OBJ_set_blank_status。定义如下:
6 v( }$ m! g! B5 Eextern int UF_OBJ_set_blank_status(tag_t object_id , int blank_status);
8 w; e1 D% N) ^9 a参数object_id是输入参数,表示被操作对象的标识。参数blank_status表示操作类型,是输入参数。blank_status有两种状态,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED。" k* e: R* p/ B! V# f( n
2 highlight和unhighlight
, }8 E) e3 l0 phighlight就是将显示的零件设置成为高亮。unhighlight操作同highlight相反,是将不可见的零件设置成为可见。这两个操作使用一个函数:UF_DISP_set_highlight ()。函数的原型如下:: L4 r* E- j% Q/ ~
extern int UF_DISP_set_highlight (tag_t object_id, int action_switch );1 j1 O0 s- |- ?0 a5 R2 p  V; T
参数object_id是输入参数,表示被操作对象的标识,参数action_switch也是一个输入参数,表示操作的类型,即action_switch为1时,将object_id所代表的对象高亮,action_switch为0时,将object_id所代表的对象回复到正常显示状态。' ~; f* D5 e5 m+ r7 `) E# d, |: H
3 画线、圆弧、箭头6 C+ ]$ f8 m5 }8 X
临时对象主要是在建模或者其它工作中其辅助作用的对象。利用refresh命令可以清除临时对象。下面介绍几种临时对象的操作。画临时的对象,需要用到一个结构和一个枚举,它们分别是UF_OBJ_disp_props_s和UF_DISP_view_type_e。结构UF_OBJ_disp_props_s的内容如表(),枚举UF_DISP_view_type_e的内容如表()。
' \  a3 ~. `( q1 j+ ?表:
% \- z$ P0 I( q: Vstruct UF_OBJ_disp_props_s {% |$ Z1 e% `* M( O+ r5 }
int layer; 对象所在的层
9 C- ^3 m9 S. @* t3 tint color; 对象的颜色
2 Y5 N! v$ z# M4 l! Tint blank_status; 对象的blank状态,两个,分别是:UF_OBJ_NOT_BLANKED和UF_OBJ_BLANKED# l; }% k7 a+ z8 _/ c0 r- T+ U
int line_width;对象的线型,定义如下:UF_OBJ_WIDTH_NORMAL、UF_OBJ_WIDTH_THICK、
1 ~( X2 e* _2 f5 h0 HUF_OBJ_WIDTH_THIN、UF_OBJ_WIDTH_ORIGINAL
" ]/ J4 ?% ^# ^' zint font;对象所拥有的字体6 m% E, d  L0 C. Y9 J2 x( C9 G
logical highlight_status; }; 对象的高亮状态表- F8 ]2 f( p  ^$ Y' p2 r& Q; v: N/ \
UF_DISP_USE_VIEW_TAG=0 使用由视标识使用视y in view specified by its tag# e) `# F, |. y: A# a/ z
UF_DISP_USE_ACTIVE_PLUS=1 使用active view 和 drawing views
$ B1 k9 C$ J8 O* H: i$ K6 v3 D3 ]& jUF_DISP_USE_CURSOR=2 使用上次光标的位置
! B  b0 y' u2 y3 Y' W7 a8 BUF_DISP_USE_ACTIVE_MINUS=3 仅使用 active views+ Y+ h- _& C! y4 W7 G
UF_DISP_USE_WORK_VIEW=4 使用work view

1) 画一条临时线) u, ~/ s9 r" V6 P0 ?* {
extern int UF_DISP_display_temporary_line (
& T  k8 F6 e# F; V3 A+ _7 @tag_t view_tag,1 O! }& D2 }3 ]4 G
UF_DISP_view_type_t which_views,. Q% \" X6 J+ h( Q' z
double start_line[ 3 ],( Z5 L9 M1 T4 W: y* s, W0 `
double end_line[ 3 ],
+ E5 t& Q0 @- L- m" u  ]9 p3 UUF_OBJ_disp_props_t * attrib );0 f, r' R2 M" D* P7 d
参数解释: p( [( D4 i0 T  \# M8 E
tag_t view_tag 临时线所在的视的标识
2 i8 W$ [$ ?* ~, o3 lUF_DISP_view_type_t which_views 所用视的类型: i% x+ t; H' {3 ?* b
double start_line[3] 线的起点坐标2 z+ e- ?  I8 @/ }" H
double end_line[3] 线的终点坐标
4 ~2 q$ ?7 h1 @' s5 r4 J- X# y+ v" HUF_OBJ_disp_props_t *attrib 线的属性

2) 画临时圆弧, P4 ~$ P* Q+ x, p
extern int UF_DISP_display_temporary_arc (4 H. S  T) s9 Y2 A& _1 s  l$ z. i
tag_t view_tag,9 |7 X; z2 z# A5 r7 u
UF_DISP_view_type_t which_views,
2 X0 [8 {% Q$ K% X1 ddouble matrix[ 9 ],. g  g" H6 W4 R) e# n# p
double start_angle,7 F! v# L) i5 q0 T' P& H
double end_angle,
% Z$ _: {% e" H, b% k1 wdouble arc_center[ 3 ],
% \5 w6 G" T. f4 E3 G+ J( @2 Adouble radius,
  @+ _2 o7 A9 R8 [- SUF_OBJ_disp_props_t * attrib );3 d- V2 |  r$ _- _, N& C& q4 i# C
参数解释:
1 U- n7 I0 p5 E) B6 dtag_t view_tag 临时圆弧标识  U, N! g' y5 `( w: @
UF_DISP_view_type_t which_views 所用视的类型
1 N. l0 B  S- W  Fdouble matrix[9] 圆弧所在的坐标系矩阵
% Y/ m% a" f* \2 udouble start_angle 弧的起始角* s" s) J% M8 z& q; {* M( C
double end_ angle 弧的结束角
/ L$ j( c  g" {2 w" Z7 Kdouble arc_center[3] 圆弧的中心0 |$ u" f* ]: n7 P# {0 F
double radius 圆弧的半径
7 v& G  I1 H! c+ xUF_OBJ_disp_props_t *attrib 圆弧线的属性0 t% R% x$ ^# R7 B  Y. Z* @& o
Note: 起始角必须比结束角要小,而且起始角和结束角之差的绝对值要小于2л。

3) 画临时箭头
. B7 V% m* B: S* k( X& uextern void UF_DISP_conehead (
$ T9 w3 r# b  Xint display_flag,' s6 F, r; v* i* L7 n
double coord[ ],* K) z& l6 ]4 H9 _4 ~8 v
double vector[ ],& E7 a! Y+ ~. C9 @
int anchor_flag );/ G- R8 d- B0 R5 f; y* ^0 Z, n
参数解释:: Q) g( ~1 Y9 [+ n
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;, I! i0 n6 S' i% x4 m
如果display_flag>0,则代表视的顺序号$ d8 x. n* M  M* x
double coord[] 箭头的起点坐标
! k+ A  m% T2 Q8 p% ldouble vector[] 箭头的方向向量3 ?0 W: ?4 m5 r8 B; |1 k& J/ F7 A8 Y
int anchor_flag 箭头的类型

0 f" i# Y9 h, `, Z0 V6 ^! w6 h
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-9-19 02:50 , Processed in 0.056374 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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