源玛:
0 ]2 E3 I$ J8 D V9 M$ {
8 J3 U1 G6 f y* g! | S! `//////////////////////////////////////////////////////////////////////////////- m; m. a* f4 n- @* }- G) I" w
//0 n% H% f* o. `
// create_oper.cpp
1 e, i! G3 x0 ], u+ a2 N, H* `8 U9 f//
* s0 c" |: Y; k8 L! {// Description:
5 f% w2 `% R* i- r- r( c// Contains Unigraphics entry points for the application.+ z9 Q. s' O1 @' y& I
//+ r `' Y4 } Z K4 Y1 E0 o
////////////////////////////////////////////////////////////////////////////// w& v5 c5 _- ~
$ _5 s: e+ X1 D* S4 {1 y. f. {9 D
// Include files
- }; o+ [% }- s3 u4 z* [$ z4 M#include <uf.h>
: |9 ]- @" q2 I8 P5 q2 B6 I#include <uf_exit.h>" g4 ^# \ z! _* H% X
#include <uf_ui.h>
% R( h( L, F( @4 K! S" A9 }#include <uf_oper.h>
7 z3 s0 O4 k" A: j/ w#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
4 @1 i# l3 R5 \3 X# include <strstream>5 p+ i6 e6 _1 v0 N
# include <iostream>: S* ~4 m9 W" J4 H; H. u, T
using std: strstream;
2 T. c- c& k7 i; p$ } { using std::endl;
2 q' r: f- q( f8 a8 i# o. c, t3 ] using std::ends;9 b" ]1 y3 P2 I: a
using std::cerr;% d) \# J6 p. T
#else
4 Y% g5 M3 V6 k( w: {6 \5 b# include <strstream.h>
) j+ o( p. i6 }6 n- Q4 V# include <iostream.h>% s v6 n8 O Z' K" i- Q ^# U
#endif1 o' T; F5 M; z1 A, ~9 P
#include "create_oper.h"
/ V9 h+ B4 L( [2 s1 d1 g; R1 l7 e# B6 S$ Z) j, b- h
//----------------------------------------------------------------------------& t& O6 N( z h& i" x* `5 j7 Q
// Activation Methods/ p' h' c* W# a* e$ I- ?( W
//----------------------------------------------------------------------------
: J5 d4 H" d5 k3 {, e7 d Q2 }% v, b8 O3 S1 g: r
// Unigraphics Startup
& I' |. B, I: G' K, I) B+ p// This entry point activates the application at Unigraphics startup y$ x; X0 |9 {8 S; _
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen ), d J+ N6 n& x2 t: _0 C4 E
{
7 ]" W7 X- {0 x. [2 ] B /* Initialize the API environment */
8 m- H: Q' j4 P1 m: P% q4 r7 f int errorCode = UF_initialize();
9 E' r8 G& {1 |. N% d6 s4 c" z7 ]7 n5 K- s7 t
if ( 0 == errorCode )
% O1 [, E2 p9 @) a- J, d; D8 J" ` {6 g0 E9 O2 }/ ]8 F" d/ ^
/* TODO: Add your application code here */' u9 | d' l# c8 v! b0 [4 M
: V; a! o3 @* Z9 \ char *type_name="mill_planar";
: n6 b% l( {# d* a+ Y) p char *subtype_name="FACE_MILLING_AREA";
6 f6 \4 L+ ~' e4 p% m. G$ v tag_t oper_tag;
* A: w- P8 D- r; Q' Q; _/ e* O$ y3 C; u2 \
UF_OPER_create(type_name,subtype_name,&oper_tag);& Y7 C& X: j8 m& R: N* ^+ |
3 U0 w% l6 y( A" _, K" K( f
0 ~" ]' r( ~3 S3 |! g' T1 d9 Y
4 G! k' G0 u& c
8 W& {8 k" \; @. X6 l /* Terminate the API environment */
! Y5 Z$ w5 m# f3 E errorCode = UF_terminate();
B, L2 W* E! L7 a T7 O% ? }
: }& h$ A! k6 ?8 L) E. T7 G6 h+ V% B+ X+ l
/* Print out any error messages */& j) d8 \& G, ^5 l
PrintErrorMessage( errorCode );
* ?0 r1 Z. X" i- A2 S. ?}- l0 e* d0 u7 \2 @
) a2 j G+ ^! K
//----------------------------------------------------------------------------( k# r+ k7 n; d9 _% [9 j/ l
// Utilities, I# p. N$ _* _( |, V" J4 G! s
//----------------------------------------------------------------------------4 K1 X- ]$ Y/ @9 \+ C
) \. Y. L( h% L8 M+ l/ \// Unload Handler+ F2 T& J5 _. g6 L7 g6 z ]
// This function specifies when to unload your application from Unigraphics.0 f! Q, m7 L4 k9 F/ R) _
// If your application registers a callback (from a MenuScript item or a
2 t$ w; C) a8 [# W l// User Defined Object for example), this function MUST return
4 h- z( m4 b0 g( k o9 J3 s// "UF_UNLOAD_UG_TERMINATE".
+ |! ?0 ?2 R' J' xextern "C" int ufusr_ask_unload( void )
# p; e. r9 I: _0 {& Z{
0 t* X1 |4 G/ _4 ?4 f return( UF_UNLOAD_UG_TERMINATE );' ]- P# r# G; X4 s: e) B
}* V! h5 N; E4 z3 b
" I% ^) T" b5 K# v! M9 m$ m" k/* PrintErrorMessage/ @9 R$ C7 B( u1 ?" E o5 o
**
6 y, @4 J1 d: _1 i** Prints error messages to standard error and the Unigraphics status6 ^# _7 D# a/ V/ q5 E
** line. */
0 i$ g$ c% I. Bstatic void PrintErrorMessage( int errorCode )
5 w2 K# [: ~+ b{
! B+ F, E! T. T) w; |& I, I! X if ( 0 != errorCode )% C" I4 N( M% j7 h& u* e
{
% F' V% O V& B /* Retrieve the associated error message */
/ A; v, _: k4 ~: i/ G6 o! M char message[133];
8 b/ e# ]* d, A3 s1 b! M% J/ M UF_get_fail_message( errorCode, message );2 J" y t c1 ? m
3 T: f3 f9 A0 C9 \. D% C /* Print out the message */. K4 x; A$ ^, y7 m
UF_UI_set_status( message );9 K! u8 e" \* }3 m, D7 Q# W1 o
" h e: }! A$ N& N8 P- X9 _, O5 R& V/ F/ N
// Construct a buffer to hold the text.
# ` Q1 p- ]9 Y, C4 D! j9 j ostrstream error_message;4 b ~' A; ^; \0 X. f$ B
( Z% g! u- s; }& s5 L
// Initialize the buffer with the required text.5 x" |) U$ L: j% c
error_message << endl
2 J0 }7 C+ i. w, a3 ~: F7 j! q << "Error:" << endl
5 ^; o: Z) R( p0 I! \2 O' u << message2 P. c8 s* m8 H/ {' j
<< endl << endl << ends;3 i7 g1 t# R9 Q. S
1 u$ n4 a4 E/ p: J% x0 b // Write the message to standard error- f" I3 Y( F2 B. v; G
cerr << error_message.str();
% F) i6 S& {& e$ w/ L) F( Y, W$ p }
* [7 n9 J# b# U8 f9 e} |