ug/Open API的用户界面接口通过大量的子过程显示提示信息、接收信息及菜单,并等候用户应答。这些子过程是uc1600~uc1613,这些提示信息被显示在UG主界面的暗示行,一般说来,暗示行允许显示80个字符,但还依赖于所使用的字体。下面简单介绍部分函数的功能及其使用方法。7 U+ B( }) y8 H* g& |( `; g" I
(1)函数uc1600():用于获取用户的字符串输入。
% ]$ J3 L( Z7 u& A' W. c5 R: q(2)函数uc1607():显示键盘输入界面并获取整数输入,返回值及参数说明如下。
: U- n% @4 ^' w v7 b 1:回退。
* X+ Z' y8 ]. ]; n _0 b3 M1 b6 w" o 2:取消。2 o4 C# R& f* e4 G+ A+ @. A
 3:接收(无用户输入时)。& Y6 h1 Y, A, J5 a) ^
 4:接收(有用户输入时)。
+ i6 a6 e% u7 U1 C3 g 8:不允许状态,不能启动对话框。9 u# [ z2 o! {2 R/ b% |; \
(3)函数uc1608():显示键盘输入菜单界面并获取整型或实型输入,返回值及参数说明等同于函数uc1607()。
5 G% k1 z+ o4 \$ g0 q' `$ I(4)函数uc1609():显示键盘输入对话框并获取实型数,该函数与uc1607()类似。' T& o2 w$ _. o, a9 l5 @' o$ t
(5)函数uc1613():显示键盘输入菜单,并获取整型、实型及字符串数据,该函数与uc1608()类似。
" l$ y/ A8 V. o下面的例子来说明函数uc1609的使用方法:
$ Q+ |4 L7 N8 b% U, N$ M: \! J0 ?UF_PART_ask_display_part,用于查询当前显示的part文件;
& e. a* b+ K7 n3 y函数UF_MODL_create_exp用于创建表达式;, ?, z# n; R+ h9 d/ l0 U- E% b3 t
函数UF_MODL_edit_exp用于修改表达式。# X# k$ d) \# X( y0 {
创建获取用户输入的对话框。
#include <string.h>
: t; Z2 o8 e. p2 `#include <math.h>
! \2 b+ t1 f W#include <stdio.h>
) f r2 ~2 H' \3 a- \. H0 d#include <stdlib.h>
% v! Z% u- Y- o, _#include <uf_defs.h>2 ~4 U* G( Z" d1 A1 y5 q2 \
#include <uf_curve.h>% V5 G5 Y9 f- S+ o: [9 o, w
#include <uf_modl.h>( b1 U. C! |5 D- D3 o
#include <uf_part.h>
char *cp1 = "CUTTER DATA";
5 z9 S9 ]2 y* echar cp2[][16]={"Diameter", "Cut Length", "Flute Blade" };( w; Z5 Q8 M4 }
int ir6, ip3 = 3 ;" G* j* S5 t& f0 @% r- h
double tool_data[] = { 3, 3, 1 };1 N0 W+ v9 a) E2 x
int ip5[] = { 6,6,6 };
3 k2 n$ \4 e9 m: G8 Echar dia[20], cut[20], flute[20], tmp[20];
9 N. Q) Y7 y) Kint actprt;
, I9 U) C# E/ X6 z# d6 I6 rir6 = uc1609( cp1, cp2, ip3, tool_data, ip5 );
- M7 i& N9 m" h" @$ b2 G2 Qstrcpy(dia,"dia=");$ }6 d/ M( Y0 }; Z9 }
sprintf(tmp,"%f",tool_data[0]);
. B& U4 V" T; W, J+ cstrcat(dia, tmp);
$ H- _2 A7 t9 G: `strcpy(cut,"cut=");6 r! u: L* c6 P3 L# O- w. _; z
sprintf(tmp,"%f",tool_data[1]);
8 u" @7 X* n" Q, y1 }5 Kstrcat(cut, tmp);9 M6 n5 @0 C( P0 P3 i0 v" O3 Y% z
strcpy(flute,"flute=");7 L2 D0 o) F+ ~; k' ~, u6 U
sprintf(tmp,"%f",tool_data[2]);
0 k0 Q. ^0 M8 A% Ostrcat(flute, tmp);
; e) ~, ]4 D) k1 |/ D' d. ?actprt = UF_PART_ask_display_part(); /* check if active part */: z* s3 D8 Y* G" w/ k
if( actprt != NULL_TAG)8 ~1 ~! P0 x: W3 r2 ]1 } T
{ ir6 = UF_MODL_create_exp(dia);0 o0 U. U5 L: _1 M
if( ir6 != 0) ir6=UF_MODL_edit_exp(dia);# f; z( `) P. v/ n# J2 x
ir6 = UF_MODL_create_exp(cut);
4 }& R: G2 [+ \if( ir6 != 0) ir6=UF_MODL_edit_exp(cut);9 _; M6 w6 ^/ V' l! T
ir6 = UF_MODL_create_exp(flute);
& S5 J! `: x6 ~& c' {3 ]if( ir6 != 0) ir6=UF_MODL_edit_exp(flute);}