- 积分
- 0
- 注册时间
- 2004-3-11
- 仿真币
-
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2004-4-4 17:37:19
|
显示全部楼层
来自 江苏南京
回复: 回复: 【讨论】终于实现基于isight的ug-icem-cfx5最优化设计
perch88 wrote:
恭喜大牛!
给大家分享一下你改正的ug例子亚,谢谢!呵呵
如果你现在的项目不保密,能share就更好啦:)
ylai原著中的FILE文件指针应该在主函数开头定义,PrintErrorMessage函数没有定义,下面使我在其基础之上做的修改,当然程序的详细内容请参考ug的开发帮助,写的非常详细,可以根据自己具体要求进行开发:
#include "stdio.h"
#include <uf.h>
#include <uf_part.h>
#include <uf_obj.h>
#include <uf_object_types.h>
#include <uf_attr.h>
#include <uf_curve.h>
#include <uf_csys.h>
#include <uf_cfi.h>
#include <uf_modl.h>
#include <uf_error.h>
static void PrintErrorMessage( int errorCode );
// Main routine
extern void main( char argc, char *argv[] )
{
FILE *MassFile;
//variables define by lx
// char StrFlag[25]="a=";
tag_t solbody = NULL_TAG;
tag_t part_tag;
UF_PART_load_status_t error_status;
int num_parts;
int response = 2;
int type = 1;
int unit = 3;
int accuracy = 1;
int count = 0;
int zero = 0;
// int i;
int status;
double acc_val[11] = {.01,0,0,0,0,0,0,0,0,0,0};
double density = 1.0;
double massprop[47];
double massprop_stat[13];
/* Initialize the API environment */
int errorCode = UF_initialize();
if ( 0 == errorCode )
{
/* TODO: Add your application code here */
status = UF_PART_open("aa.prt",&part_tag,&error_status);
if (status) PrintErrorMessage(status);
num_parts = error_status.n_parts;
UF_free_string_array(num_parts,error_status.file_names);
status = UF_MODL_import_exp ("aaexp.exp" , 0 );
if ( status != 0 )
{
PrintErrorMessage( status);
}
else
{
status = UF_MODL_update ( );
if ( status != 0 )
{
PrintErrorMessage( status);
}
else
{
status = UF_PART_save ( );
if ( status !=0)
{
PrintErrorMessage( status);
}
}
}
status = UF_OBJ_cycle_by_name ("DISK", &solbody);
/* if sheet bodies were selected */
/* if ( solbody != NULL )
{
UF_MODL_ask_mass_props_3d(&solbody,
1, 1, 3, 1.0, 1,
acc_val,
massprop,
massprop_stat);
// FILE *MassFile;
// double radius=200; //半径为200毫米
// double height=1000*massprop[1]/(radius*radius*3.1415926);
// char str;
if((MassFile=fopen("volume.exp","w"))!=NULL)
{
// fprintf(MassFile,"radius=%f\n",radius);
// fprintf(MassFile,"height=%f\n",height);
fprintf(MassFile,"volume=%f\n",1000*massprop[1]);
//fwrite(StrFlag,sizeof( char ), 25, MassFile);
//printf("%d",
//f/write(
fclose( MassFile );
}
*/
// UF_free(&solbody);
}
else
{
PrintErrorMessage(status);
}
status = UF_PART_close (part_tag, 1, 1);
if ( status !=0)
{
PrintErrorMessage( status);
}
/* Terminate the API environment */
errorCode = UF_terminate();
}
/* Print out any error messages */
PrintErrorMessage( status);
exit(0);
}
/* PrintErrorMessage
**
** Prints error messages to standard error. */
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 */
fprintf( stderr, "%s\n", message );
}
} |
评分
-
1
查看全部评分
-
|