ug/Open API的用户界面接口通过大量的子过程显示提示信息、接收信息及菜单,并等候用户应答。这些子过程是uc1600~uc1613,这些提示信息被显示在UG主界面的暗示行,一般说来,暗示行允许显示80个字符,但还依赖于所使用的字体。下面简单介绍部分函数的功能及其使用方法。
. R; K: z+ m: a" y7 P(1)函数uc1600():用于获取用户的字符串输入。
) D. t# ] H/ K8 i9 z K(2)函数uc1607():显示键盘输入界面并获取整数输入,返回值及参数说明如下。
- P1 @. @% `% @' s6 L# f9 J! o; U 1:回退。
' F4 b4 d! Z: Y% o. O 2:取消。# E) @8 C. G- r) o- ?' y6 p
 3:接收(无用户输入时)。/ G0 [, _9 D9 j& h! R
 4:接收(有用户输入时)。
# @. {- E; d+ G" H5 | 8:不允许状态,不能启动对话框。; z4 i+ f* t5 N; Y
(3)函数uc1608():显示键盘输入菜单界面并获取整型或实型输入,返回值及参数说明等同于函数uc1607()。
8 C; Y) |- t1 }3 |6 o" ~7 k(4)函数uc1609():显示键盘输入对话框并获取实型数,该函数与uc1607()类似。
$ e6 n' t5 H# ^( ?% `8 ^(5)函数uc1613():显示键盘输入菜单,并获取整型、实型及字符串数据,该函数与uc1608()类似。
. x+ {9 t4 Q$ s ?, I下面的例子来说明函数uc1609的使用方法:
_6 q, O; H& F$ MUF_PART_ask_display_part,用于查询当前显示的part文件;) Z+ K0 s" u8 a* k
函数UF_MODL_create_exp用于创建表达式;. y0 p9 ~0 f9 p9 l+ x: P# d
函数UF_MODL_edit_exp用于修改表达式。
6 ^. j7 t% Y2 h$ |创建获取用户输入的对话框。
#include <string.h>" x7 B- Q- r ~4 V
#include <math.h>
6 |" s3 A r: s% K7 Q#include <stdio.h>3 O3 {& Z# ~% y( l9 R
#include <stdlib.h>
: ~% Q* q7 H4 A; O#include <uf_defs.h>
: g1 o2 t4 D) |3 \#include <uf_curve.h>
! h$ [7 j" y, p0 O#include <uf_modl.h>
, l! P4 _* `3 a& `, E& [#include <uf_part.h>
char *cp1 = "CUTTER DATA";8 M. }- c _% h! z
char cp2[][16]={"Diameter", "Cut Length", "Flute Blade" };' f& e5 X+ w: x' y0 N' }
int ir6, ip3 = 3 ;
% F( I3 ?8 A8 E% w( T& v( w9 Y& Adouble tool_data[] = { 3, 3, 1 };7 t* @' D6 Z7 \( Q; k$ M `# _- w0 w" I
int ip5[] = { 6,6,6 };9 o; \& ^6 P, q. \
char dia[20], cut[20], flute[20], tmp[20];* { G, l2 w# d+ |8 B; E+ e- A b
int actprt;8 b5 q8 ?* A/ [
ir6 = uc1609( cp1, cp2, ip3, tool_data, ip5 );9 D$ Q; g K4 F& V! G( D$ [
strcpy(dia,"dia=");
: V& _4 e0 }+ q7 ]7 o; M2 Q+ [sprintf(tmp,"%f",tool_data[0]);6 e9 X | H* Q6 H4 Q% ]
strcat(dia, tmp);
0 y+ r- `' s. d1 Zstrcpy(cut,"cut=");
3 Z2 \3 b2 z# u3 m( osprintf(tmp,"%f",tool_data[1]);, b( z' H- U) {* J
strcat(cut, tmp);
3 ~3 N2 {- S6 X& Q K3 ^& B) ?3 G- mstrcpy(flute,"flute=");
8 @/ i+ G& F( R' F4 Y1 Z* Usprintf(tmp,"%f",tool_data[2]);* }! m* P0 x/ X6 T3 ^
strcat(flute, tmp);% ~( Y' F8 i' o9 l
actprt = UF_PART_ask_display_part(); /* check if active part */; g4 G' l# l2 M7 i1 q
if( actprt != NULL_TAG) y4 \6 h0 e, t- X, }; _. [
{ ir6 = UF_MODL_create_exp(dia);
4 P3 D1 E/ C: ^if( ir6 != 0) ir6=UF_MODL_edit_exp(dia);# Y; J* _1 X' P
ir6 = UF_MODL_create_exp(cut);
0 z: [9 t- ^% [6 J8 }9 j+ \if( ir6 != 0) ir6=UF_MODL_edit_exp(cut);' e; H8 i% X2 D" j
ir6 = UF_MODL_create_exp(flute);2 ^2 M5 E& F- F+ E" r% M
if( ir6 != 0) ir6=UF_MODL_edit_exp(flute);}