|
include <stdio.h>
, Z! J4 c6 g( T8 E; a5 Z#include <uf.h>$ |; P( R0 e7 h/ U* K
#include <uf_ui.h>
$ N9 `4 M, m: w! }4 h/ l0 v/ W#include <uf_attr.h>' A% |3 v/ ^% _
#include <uf_modl_utilities.h>
3 N# G! T' a) b& S L1 i% t#include <uf_modl.h>
: N7 U- u) w; _. V- T* Q#include <uf_attr.h>
: T, S$ N4 A7 F: ^$ q) {#include "A2.h"
( K( p( M( {6 [; e4 k/ X, C/ b9 y/ O4 r- K+ i
5 }" P: k7 `% h2 K& |# K' Y
/*****************************************************************************8 A. B+ _" `) u( ]
** Activation Methods' m" N* R0 Y- j, j4 X5 Q) q3 w7 ~) `' z
*****************************************************************************/# x) R: [# ]$ W5 S
9 ?) F. z* d6 w& ]# s/* Explicit Activation
: p0 _8 J) P: N2 r** This entry point is used to activate the application explicitly, as in
0 W/ r! @5 F8 c** "File->Execute ug/Open->User Function..." */
" {+ d2 C% h. ?# E) r) O1 T% avoid do_open_api()9 k/ P2 F/ |! ?! h" S
{
9 ]8 U5 C( z7 U5 W4 Z9 x tag_t object=NULL_TAG,feat_tag;$ B5 f% }6 E" V4 w' S
int count=0,found=0,i;2 v2 ^) H) A8 O4 B; N- ]* S
uf_list_p_t feature_tag_list;
* ]: _) ^+ {2 w9 i4 A8 o, ^ char *feat_type,mess[100],sval[100];
: O9 m2 i$ I, j f4 T _ UF_ATTR_value_t attr_value;9 T, R$ h, w6 [ @$ [0 z* a- v' v
5 Q E2 h5 D& I1 @2 c0 _ UF_MODL_ask_object(70,0,&object);" K( v9 h( y0 u ]8 a9 v& l* p
if(object!=NULL_TAG)' p- R) \% y* W. J J
{1 D# q" z4 }+ V$ B8 V. i* w: S
UF_MODL_create_list(&feature_tag_list);
7 b. k: S5 m6 z; g& g UF_MODL_ask_body_feats(object,&feature_tag_list);9 w% V r: A' t- L
UF_MODL_ask_list_count(feature_tag_list,&count);4 k* C0 I3 s+ {
for(i=0;i<count;i++)3 n- w" {( ? Y7 j' A) B% @
{
" G: l9 G8 ?7 f/ ]! ~ UF_MODL_ask_list_item(feature_tag_list,i,&feat_tag);
( u. ? u, {9 a6 _7 p& A* H UF_MODL_ask_feat_type(feat_tag,&feat_type);
% Y7 N5 C' @- Y0 ?: y. y if(strcmp(feat_type,"SIMPLE HOLE")==0)4 p4 o& S7 c! u& i5 h! V
{5 K+ M% u/ c1 @+ }9 n9 l
found=1;break;
4 L. r5 S* S. f; J* i t9 u }! `' _ w" o. T
}4 E. g2 g5 y5 j' A: N2 _9 |
}# [6 ~0 Q0 i: U P) o8 |* D4 v
if(found)
! {9 l9 M0 x8 D' N" x8 h5 k9 K$ |/ Y {/ V/ ~. A8 A7 b6 ^$ [+ _
attr_value.value.string=sval;
' j' c9 P: b; q$ o; { UF_ATTR_read_value(feat_tag,"孔标题",UF_ATTR_string,&attr_value);' w. g! K c, h! @ y" p( H& \
sprintf(mess,"孔标题的属性值为:\n%s",attr_value.value);
) \ j) p1 @! P( G5 |7 W# u uc1601(mess,1);& D& }# A8 v0 T9 p, ~: q
} K7 \$ r! h* s6 P8 L) N
else
' f9 g* b; H+ o4 T; ^8 l( O uc1601("没有找到实体或类型为 SIMPLE HOLE 的孔",1);. X [5 @& C6 q
}
' f+ V5 O, P: H0 J4 v. `( U! X4 {& @$ v" m- M2 P& Z8 R
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )' @: E8 z- ^& y* B# l0 m: P& P
{; s$ K) Y: r; X5 n3 v
/* Initialize the API environment */
) F: _$ A2 C1 ~# z4 v# J, t. n int errorCode = UF_initialize();, i/ r" E7 k5 ?1 z+ F/ u% K& J
# q& L6 M! T4 F# g, i$ g E if ( 0 == errorCode )
- X2 ~) U5 G9 N7 Z5 [7 d( @ {& y3 z* ?1 Q: T4 P* @3 ~6 D2 P
/* TODO: Add your application code here */
5 s2 F3 ~8 R x. r do_open_api();0 r/ L: n+ L8 x% Z0 [" H' \
/* Terminate the API environment */( t+ x" m# g# T4 W8 P
errorCode = UF_terminate();* H# y; h, @1 i4 T* ~
}
# \4 Y8 |2 ]& X, t; |& Q
, |7 V w" P& b /* Print out any error messages */
8 L8 |* Y+ i! }7 D- ?+ x1 w4 F( m PrintErrorMessage( errorCode );( k3 K0 Q( v4 c$ f. P0 v8 ]( i
}
/ g# S* v& x2 [" Q- Z/*****************************************************************************& P2 W' l+ j- ?- p
** Utilities
- b2 j4 f% `" w*****************************************************************************/$ c$ a7 D* _9 l$ X
( E2 ?& u8 j" v- y/* Unload Handler
( K+ [& c. Q4 L** This function specifies when to unload your application from Unigraphics.
: e2 I: w/ F# i* q) X. {** If your application registers a callback (from a MenuScript item or a
8 e/ ?8 t2 B: ]2 k" R3 S** User Defined Object for example), this function MUST return
6 J# l0 U+ j& i+ e** "UF_UNLOAD_UG_TERMINATE". */# E' u) V( [: B% ^2 L
extern int ufusr_ask_unload( void )
& X* W" |" Y+ ]) C8 w8 E- K: @( ?# a{# N' R7 n4 l. j, H/ ?$ j9 e, u& J
return( UF_UNLOAD_IMMEDIATELY );* A% g5 `( \7 k2 m: y( R3 p% h
}4 j* n( F( A4 j6 c& F0 ^
2 v' \% V5 i- ?0 @) r
/* PrintErrorMessage$ e/ _5 X4 |( I5 ~3 j$ {: t
**
A; k% v% Q: ~( {** Prints error messages to standard error and the Unigraphics status
5 _* d! u% f j- j/ c( X5 P** line. */
1 l. [% T# s5 `3 N" {, qstatic void PrintErrorMessage( int errorCode )
8 c6 W% H- x( {; y; h{
6 k# `5 [/ y: D if ( 0 != errorCode ); Q# Q' y% D3 c% l; `. V
{$ u8 x. {; y c7 ?: L1 |
/* Retrieve the associated error message */
3 `& N: P( b7 P( Q' O. Z/ `, H8 C char message[133];6 e6 Z t! d8 Q. I6 D7 C+ ]7 r
UF_get_fail_message( errorCode, message );
' t3 T' Q$ X0 Q# P! c7 N( _
3 M+ Q8 ]5 Z0 \/ y& v /* Print out the message */4 o) g% S7 r0 l4 k; z/ m O, n
UF_UI_set_status( message );8 j- r9 e( H# O7 L% K3 u
* v6 s4 q" K) j$ K5 \5 Z3 m fprintf( stderr, "%s\n", message );/ P/ ^6 Z( r8 Z; X
}* e: ~- J. k7 k, L5 n
}0 \7 l6 h+ f, p
|
|