ug/Open API的用户界面接口通过大量的子过程显示提示信息、接收信息及菜单,并等候用户应答。这些子过程是uc1600~uc1613,这些提示信息被显示在UG主界面的暗示行,一般说来,暗示行允许显示80个字符,但还依赖于所使用的字体。下面简单介绍部分函数的功能及其使用方法。- C$ w$ V9 `) P0 \9 G
(1)函数uc1600():用于获取用户的字符串输入。
' ?1 Q8 k: f3 j(2)函数uc1607():显示键盘输入界面并获取整数输入,返回值及参数说明如下。
( k* Z- Q: R7 T/ U 1:回退。
, X5 T7 b3 b% |, j 2:取消。+ i' S$ n' T. E/ R
 3:接收(无用户输入时)。
# ~2 c/ }. {1 k( q 4:接收(有用户输入时)。% ~& O1 v5 ?+ l4 u- s) s( Q" k0 q
 8:不允许状态,不能启动对话框。
# w4 \5 Z* v# z(3)函数uc1608():显示键盘输入菜单界面并获取整型或实型输入,返回值及参数说明等同于函数uc1607()。
: N1 F p( t/ e' F% b(4)函数uc1609():显示键盘输入对话框并获取实型数,该函数与uc1607()类似。$ P( ~, U) X- [9 `
(5)函数uc1613():显示键盘输入菜单,并获取整型、实型及字符串数据,该函数与uc1608()类似。
' b/ l8 a+ y- q6 \1 A2 B; {; ~8 j% X下面的例子来说明函数uc1609的使用方法:1 ?6 |4 ]$ t8 ` a/ G1 M
UF_PART_ask_display_part,用于查询当前显示的part文件;
' u7 @; d6 l% b$ h函数UF_MODL_create_exp用于创建表达式;
% [% g& U7 }' p) I7 z* z" F" Z1 W函数UF_MODL_edit_exp用于修改表达式。" |, Y; m# l* {9 b
创建获取用户输入的对话框。
#include <string.h>. O' W" o$ m `! D: A
#include <math.h>9 {. E( ]8 Q) T
#include <stdio.h>
) E' ^ @8 F/ t#include <stdlib.h>* P: Y7 `# G! B0 s1 @) Y1 v
#include <uf_defs.h>' W. R& S; K8 ~% M+ z; I8 u
#include <uf_curve.h>
2 w) P3 z2 } \- ]- u: j" J- ^#include <uf_modl.h>
; p X: _6 I' j* A2 s. Q#include <uf_part.h>
char *cp1 = "CUTTER DATA";+ z; k5 e- b) c# |" J' C
char cp2[][16]={"Diameter", "Cut Length", "Flute Blade" };
0 K) x) H- K! W% z' dint ir6, ip3 = 3 ;
7 N8 S! A; W7 B1 c, c& ?double tool_data[] = { 3, 3, 1 };: U# Z8 T3 G0 _6 f# H: g. `( g/ c6 F
int ip5[] = { 6,6,6 };9 A: x S& r2 r# e$ @1 Q6 y6 B' b
char dia[20], cut[20], flute[20], tmp[20];3 K0 ?: o7 q% |" O6 h: U
int actprt;3 |, s1 I; `' A7 ]
ir6 = uc1609( cp1, cp2, ip3, tool_data, ip5 );* J2 `) K1 F/ ]. f6 c A7 L
strcpy(dia,"dia=");
5 i" Z) d G% i( |7 y) J) J$ ~( jsprintf(tmp,"%f",tool_data[0]);
B* b: N8 c9 h I2 O2 ystrcat(dia, tmp);
6 G0 I1 E2 S9 v0 |- W) I7 N/ r) Lstrcpy(cut,"cut=");4 `- s$ g; U( U1 R
sprintf(tmp,"%f",tool_data[1]);' U+ {! u# x. a2 Q' t
strcat(cut, tmp);
) o4 A( t0 {+ i: ?0 Gstrcpy(flute,"flute=");
+ B' t. H% h7 l O" X! u! p6 _sprintf(tmp,"%f",tool_data[2]);
3 D# u; G) ? B$ q8 T4 \9 `( S4 G8 N- Lstrcat(flute, tmp);4 [1 z, S( H0 p% c; D8 ?
actprt = UF_PART_ask_display_part(); /* check if active part */# l) {" K. a- F) E q1 r2 S. z
if( actprt != NULL_TAG)
* H$ ~# A5 w6 ]5 P. ?, ^{ ir6 = UF_MODL_create_exp(dia);' k: P% e+ ~6 }6 @
if( ir6 != 0) ir6=UF_MODL_edit_exp(dia);, z- ?" p: d8 n; o/ G* x
ir6 = UF_MODL_create_exp(cut);
3 E; m( M$ ]$ H4 Zif( ir6 != 0) ir6=UF_MODL_edit_exp(cut);' \* K$ e- j3 ?
ir6 = UF_MODL_create_exp(flute);2 J. t' U& k5 U, B
if( ir6 != 0) ir6=UF_MODL_edit_exp(flute);}