b.cpp代码如下:
//////////////////////////////////////////////////////////////////////////////
//
// b.cpp
//
// Description:
// Contains Unigraphics entry points for the application.
//
//////////////////////////////////////////////////////////////////////////////
// Include files
#include <uf.h>
#include <uf_exit.h>
#include <uf_ui.h>
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
# include <strstream>
# include <iostream>
using std:strstream;
using std::endl;
using std::ends;
using std::cerr;
#else
# include <strstream.h>
# include <iostream.h>
#endif
#include "b.h"
//----------------------------------------------------------------------------
// Activation Methods
//----------------------------------------------------------------------------
// Unigraphics Startup
// This entry point activates the application at Unigraphics startup
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
{
/* Initialize the API environment */
int errorCode = UF_initialize();
if ( 0 == errorCode )
{
/* TODO: Add your application code here */
do_ugOPEN_api();
/* Terminate the API environment */
errorCode = UF_terminate();
}
/* Print out any error messages */
PrintErrorMessage( errorCode );
}
//----------------------------------------------------------------------------
// Utilities
//----------------------------------------------------------------------------
// Unload Handler
// This function specifies when to unload your application from Unigraphics.
// If your application registers a callback (from a MenuScript item or a
// User Defined Object for example), this function MUST return
// "UF_UNLOAD_UG_TERMINATE".
extern "C" int ufusr_ask_unload( void )
{
return( UF_UNLOAD_UG_TERMINATE );
}
/* PrintErrorMessage
**
** Prints error messages to standard error and the Unigraphics status
** line. */
static void PrintErrorMessage( int errorCode )
{
if ( 0 != errorCode )
{
/* Retrieve the associated error message */
char message[133];
UF_get_fail_message( errorCode, message );
/* Print out the message */
UF_UI_set_status( message );
// Construct a buffer to hold the text.
ostrstream error_message;
// Initialize the buffer with the required text.
error_message << endl
<< "Error:" << endl
<< message
<< endl << endl << ends;
// Write the message to standard error
cerr << error_message.str();
}
}
static void do_ugOPEN_api(void)
{
UF_FEATURE_SIGN sign=UF_NULLSIGN;
UF_FEATURE_SIGN sign1=UF_POSITIVE;
double block_orig[3]={0.0,0.0,0.0};
double block_orig1[3]={0.0,0.0,2.5};
char *block_len[3]={"1","2","3"};
char *block_len1[3]={"1","2","3"};
tag_t blk_obj;
tag_t blk1_obj;
int i_ret;
i_ret=UF_MODL_creat_block1(sign,block_orig,block_len,&blk_obj);
i_ret=UF_UI_OPEN_listing_windows();
if(i_ret==0)
UF_UI_write_listing_windows("成功创建block\n");
else
{
UF_UI_write_listing_windows("创建block失败\n");
return;
}
i_ret=UF_MODL_creat_block1(sign1,block_orig1,block_len1,&blk1_obj);
if(i_ret==0)
UF_UI_write_listing_windows("成功创建block\n");
else
{
UF_UI_write_listing_windows("创建block失败\n");
return;
}
}