完整6 UG二次开发实用教程第六章.docx

上传人:b****1 文档编号:433743 上传时间:2022-10-10 格式:DOCX 页数:92 大小:1,008.28KB
下载 相关 举报
完整6 UG二次开发实用教程第六章.docx_第1页
第1页 / 共92页
完整6 UG二次开发实用教程第六章.docx_第2页
第2页 / 共92页
完整6 UG二次开发实用教程第六章.docx_第3页
第3页 / 共92页
完整6 UG二次开发实用教程第六章.docx_第4页
第4页 / 共92页
完整6 UG二次开发实用教程第六章.docx_第5页
第5页 / 共92页
点击查看更多>>
下载资源
资源描述

完整6 UG二次开发实用教程第六章.docx

《完整6 UG二次开发实用教程第六章.docx》由会员分享,可在线阅读,更多相关《完整6 UG二次开发实用教程第六章.docx(92页珍藏版)》请在冰豆网上搜索。

完整6 UG二次开发实用教程第六章.docx

完整6UG二次开发实用教程第六章

第六章零件设计

UG的特征建模功能非常强大,UG中几乎所有的几何特征都可以利用UG/OPENAP进行创建。

UG/OPENAP提供诸如UF_MODL_create_XXX_XXX函数用于创建几何特征,提供诸如UF_MODL_ask_XXX_X的函数用于查询特征的属性。

但是通常情况下,修改几何特征往往要通过几何特征的参数来实现。

6.1基本概念

1、明确特征的几何描述

利用函数UF_MODL_create_XXX_XXX建几何特征,首先要明确几何特征的几何描述。

以最简单的圆锥为例,可以通过函数UF_MODL_create_cone1(创建一个圆锥,但是如果你

对圆锥特征的几何描述不清楚,你就不能明白函数UF_MODL_create_cone1(中参数的含义。

如果你在使用函数UF_MODL_create_cone1(创建圆锥特征之前,知道在三维空间中描述一个圆锥,需要知道圆锥的原点、高度、底部和顶部的直径、方向。

此时你使用函数UF_MODL_create_cone1(时,

intUF_MODL_create_cone1(UF_FEATURE_SIGNsigndoubleorigin[3]char*height

char*diam[2]

doubledirection[3]tag_t*cone_obj_id)

也就是说,在创建任何特征之前,要明确特征的几何描述。

2、分清函数参数的类型

在二次开发过程中,必须分清UF函数是针对特征(Feature)操作、还是对象(Object)操作,还是实体(Body)操作。

特征是将用户对UG实体的所有操作过程都以特征的方式记录下来,一个实体往往可以拥有多个特征,如一个block经过倒角(blend),钻孔(hole)后,那么在这个实体上就存在了三个特征,并且按照时间先后顺序排列。

对象是指uf_object_types.h中说明的对象,包括:

体(),表面,边缘,直线(line),圆(circle)、二次曲线(conic)和样条曲线(spline)等几何对象,还有基准轴(datumaxis),基准面(datumplane)、草图(sketch)、表达式、颜色、线型、组等非几何对象。

Body是指UG实体。

利用UF函数可以从Body中得到所有在其上操作过的Feature。

特征、对象和实体之间可以相互访问,可以从Feature中得到相应的Body

UF_MODL_ask_feat_body

UF_MODL_ask_feat_faces

UFMODLaskfeatedges

UF_MODL_ask_body_feats

UFMODLaskedgefeats

UF_MODL_ask_face_feats

UF_MODL_ask_body_faces

UF_MODL_ask_body_edges

UF_MODL_ask_face_body

UFMODLaskfaceedges

UF_MODL_ask_edge_body

UFMODLaskedgefaces

用UF_MODL_ask_feat_body可以获得与特征相连的体标识,相应的如果已知某个体标识,也可以利用函数UF_MODL_ask_body_feats获得与之相连的所有特征标识。

3、建模思路

UG基于特征的建模过程是仿真零件的加工过程。

采用UG/OPENAP建立零件模型时,可先在NX交互界面下生成实体模型,再根据其操作过程运用相应的API函数。

UF_MODL_create_cyl1()

UF_MODL_create_simple_hole()

UF_MODL_create_edge_blend()

6.1创建体素特征

基本体素是基本的解析外形,包括:

长方体、圆柱体、圆锥体和球。

UF函数允许用户

创建和查询所有的基本体素特征,创建和查询基本体素的函数声明主要包含在头文件uf_modl.h中。

特征名

函数名

UF_MODL_create_block1

UF_MODL_create_block

UF_MODL_ask_block_parms

圆柱

UF_MODL_create_cyl1

UF_MODL_create_cyl

UF_MODL_ask_cylinder_parms

圆锥

UF_MODL_create_cone1

UF_MODL_create_cone

UF_MODL_ask_cone_parms

UF_MODL_create_sphere1

UF_MODL_create_sphere

UFMODLasksphereparms

表6-1与体素特征相关的函数

下面以如何创建长方体为例,讲解创建体素特征,我们可以利用UF_MODL_create_block1()创建一个长方体,该函数包括三个输入参数和输出参数。

intUF_MODL_create_block1

UF_FEATURE_SIGNsign//

输入参数,布尔操作标记

doublecorner_pt[3]char*edge_len[3]

tag_t*blk_obj_id

//输入参数,长方体的原点

//输入参数,长方体的长宽高

//输出参数,长方体的特征标识

其中,sign表示布尔操作的标记,表示新建的长方体与已存目标体的布尔操作方式,包括:

UF_NULLSIGN=不进行布尔操作

UF_POSITIVE=与已存目标体加操作

UF_NEGATIVE=与已存目标体减操作UF_UNSIGNED=与已存目标体相交操作

 

corner_pt表示长方体的原点,为底面斜角点,如下图所示,圆柱和圆锥的原点为底面中点,球的原点为球心位置。

edge_len是一个字符串数组,表示长方体的长宽高,可以直接赋值,也可以使用表达式赋值,比如:

char*block_len[3]={“1","2","3"};

char*block_len[3]={“bl_length=1","bl_width=2","bl_Height=3"};

如果直接赋值,将由系统自动生成“pn”格式的表达式,如果采用表达式赋值,此时在表达式中将会出现相应的表达式,建议米用表达式方式赋值。

blk_obj_id是输出参数,通过tag_t指针输出新建长方体的特征标识,如果需要可以

通过函数UF_MODL_ask_feat_bod礙得对应特征的实体对象标识。

创建长方体特征的函数除UF_MODL_create_block1()夕卜,还有UF_MODL_create_block()。

事实上,UF_MODL_create_block()比UF_MODL_create_block1()多了一个参数tag_t类型的输入参数targ_tag,该参数表示当进行布尔操作时,可以通过该参数指定目标体,如果不进行布尔操作可将参数设置为NULL_TAG

例6-1通过一个选择菜单,让用户选择创建不同的基本体素特征例6-1创建基本体素

#include

#include

#include

#include

#include

#includeexternvoidufusr(char*param,int*retcod,intparam_len){

/*对话框设置*/

char*cp1="请选择";

intip2=0;

charcp3[4][38]={"创建一个块(Block)",

"创建一个圆柱(Cylinder)",

"创建一个圆锥(Cone)",

"创建一个球体(Sphere)"};

intip4=4;

intvalue;

tag_tview_tag=NULL_TAG;

UF_FEATURE_SIGNsign=UF_NULLSIGN;

/*Block的变量声明区*/

doubleblk_corner[3]={0.0,0.0,0.0};

char*blk_edge_len[3]={"10.0","20.0","30.0"};tag_tblk_obj_id;

/*Cylinder的变量声明区*/doublecyl_origin[3]={0.0,0.0,0.0};char*cyl_height="20.0";

char*cyl_diam="10.0";

doublecyl_direction[3]={0.0,0.0,1.0};

tag_tcyl_obj_id;

/*Cone的变量声明区*/

doublecone_origin[3]={0.0,0.0,0.0};

char*cone_height="20.0";

char*cone_diam[2]={"30.0","20.0"};doublecone_direction[3]={0.0,0.0,1.0};tag_tcone_obj_id;

/*Sphere的变量声明区*/

doublesphere_center[3]={0.0,0.0,0.0};char*sphere_diam="30.0";

tag_tsphere_obj_id;

if(!

UF_initialize())

{

/*显示菜单*/

value=uc1603(cp1,ip2,cp3,ip4);switch(value)

{

case5:

/*创建Block(块)*/

UF_MODL_create_block1(sign,blk_corner,blk_edge_len,&blk_obj_id);

break;

case6:

/*创建Cylinder(圆柱)*/

UF_MODL_create_cyl1(

sign,cyl_origin,cyl_height,cyl_diam,cyl_direction,

&cyl_obj_id);

break;

case7:

/*创建Cone(圆锥)*/

UF_MODL_create_cone1(sign,cone_origin,cone_height,cone_diam,cone_direction,&cone_obj_id);

break;

case8:

/*创建Sphere(球体)*/

UF_M0DL_create_sphere1(sign,sphere_center,sphere_diam,&sphere_obj」d);

break;

default:

uc1601("发生了错误!

",0);

}

/*调整视图到合适的大小*/

UF_VIEW_ask_work_view(&view_tag);

UF_VIEW_fit_view(view_tag,0.7);

/*保存文件*/

UF_PART_save();

UF_terminate();

}

}

在编译连接后,新建或打开一个部件文件。

通过FilefExecute

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1