APP下载

UG二次开发实现实体质量属性测量

2012-09-21李寒杰韩

中国科技信息 2012年20期
关键词:工程学院二次开发徐州

李寒杰韩 翔

1.徐州东方传动机械有限公司研究所,徐州 2211162.徐州工程学院机电工程学院,徐州 221000

UG二次开发实现实体质量属性测量

李寒杰1韩 翔2

1.徐州东方传动机械有限公司研究所,徐州 2211162.徐州工程学院机电工程学院,徐州 221000

利用UG/Open API二次开发实现实体质量属性测量,并给出关键代码。

UG/Open API;质量属性;测量

利用与UG软件交互的方法测量实体模型质量,需要经过一系列交互操作,过程较繁琐。本文利用UG/Open API二次开发实现了实体质量属性测量,并将它放在UG用户菜单上,使用非常方便。此法同时对系统集成开发也有参考意义。

API提供了质量分析接口函数UF_ MODL_ask_mass_props_3d ( ),它可进行的实体质量分析内容有:实体表面积、体积、质量、质心、惯性矩、惯性积、主轴、力矩、回转半径等。

下面给出开发的关键部分代码。为了使程序有较广的适用范围,实体选择采用人机交互形式。

static void do_ugopen_api()

{

int type=1,unit=3,accuracy=1;

int response,count,I, zero=0;

double acc_val[11]

={.01,0,0,0,0,0,0,0, 0, 0,0};

double density, massprop[47];

double massprop_stat[13];

tag_t *body=NULL, solbody;

UF_MODL_density_units_t units = UF_MODL_grams_centimeters;

int ip3=1;

double density1[1]={7830.0};

char *cp1="输入实体密度";

char cp2[1][16]={"实体密度(g/ cm3)"};

char result[133];

UF_UI_select_with_class_dialog

("实体质量属性分析","选择实体",

UF_UI_SEL_SCOPE_ANY_IN_ ASSEM BLY,

NULL,NULL, &response, &count, &body); //选择实体

uc1609(cp1,cp2,ip3,density1,0); // 输入实体密度

density=density1[0];

solbody=body[0];

UF_MODL_set_body_density (solbody, units, density); //设置实体密度

if ( body != NULL )

{

UF_MODL_ask_mass_props_3d( body, count, type,unit,density, accuracy, acc_val, massprop,massprop_ stat); //实体质量分析

for (i=0; i<47; i++)

{

printf("[%d]= %f ",i,massprop[i]);

}

for (i=0; i< count; i++)

{

U_DISP_set_highlight(body[i],zero);

}

UF_free(body);

}

…程序结果如图1、2所示。

图1 选择实体对话框

图2 输入实体密度

[1]董正卫,田立中,付宜利编著,徐海峰审校.UG/OPEN API编程基础.北京:清华大学出版社,2002

[2]孙家广等.计算机图形学(第3版).北京:清华大学出版社,1998

10.3969/j.issn.1001-8972.2012.20.036

李寒杰(1978—),男,江苏徐州人,徐州东方传动机械有限公司研究所所长,主要研究方向:机械设计及制造。

猜你喜欢

工程学院二次开发徐州
福建工程学院
疫散待春回
福建工程学院
化学与材料工程学院简介
爆笑三国 第三回 三让徐州
徐州过年纪实
苏翠2号梨在徐州的引种表现及配套栽培技术
福建工程学院
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发