快捷导航 上传作品

[c++] uf简单拉伸

[复制链接]
梅雷工具箱发表于 2015-6-25 14:12:27 | 显示全部楼层 |阅读模式
uf简单拉伸

头文  #include <uf_modl.h>
函数  UF_MODL_create_extruded

UG/Open API 提供了相当多的函数用于创建拉伸特征,这里介绍四个常用的函数。其

他函数基本与此类似只是参数与应用场合稍有不同。函数 UF_MODL_create_extruded()用

于创建拉伸实体,拉伸锥角(taper angle)与界限(limit)为字符串变量,在使用时可

以表达式的形式输入。当使用锥角选项时,只能拉伸直线或圆弧,如果拉伸开放的截面,

必须将拉伸锥角设置为 0 (如 char *taper_angle = "0.0"),该函数的参数说明如表 5-4所示。


extern int UF_MODL_create_extruded (
uf_list_p_t objects,
char * taper_angle,
char * limit[ 2 ],
double point[ 3 ],
double direction[ 3 ],
UF_FEATURE_SIGN sign,
uf_list_p_t * features );


        参    数                  I/O 类型         描    述       
        uf_list_p_t  objects       Input        拉伸对象的标识链表       
                                                       
        char * taper_angle           Input        拉伸锥角       
                                                       
        char * limit[2]                   Input        拉伸界限:limit[0]为拉伸起始值;limit[1]为拉伸终止值       
                                                       
        double point[3]                   Input        不再使用       
                                                       
        double direction[3]        Input        拉伸方向       
                                                       
        UF_FEATURE_SIGN sign           Input        布尔操作类型       
                                               
uf_list_p_t * features           Output to be freed          建的拉伸特征的标识链表,使用函数 UF_MODL_delete_list()释放内存       
                                                          
                                                       
//【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】
//UF_FEATURE_SIGN   sign=UF_NULLSIGN; //创建新的几何实体
//UF_FEATURE_SIGN   sign=UF_POSITIVE; //添加到目标实体,做加运算                                       
//UF_FEATURE_SIGN   sign=UF_NEGATIVE; //从目标实体中去除,做减运算
//UF_FEATURE_SIGN   sign=UF_UNSIGNED; //与目标实体做交运算

//【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】
//咧1,创建一条直线做拉伸操作生成片体
  tag_t object_tag;
UF_CURVE_line_t line_coords;  //直线函数      
line_coords.start_point[0]=0; //启始点坐标
line_coords.start_point[1]=0;
line_coords.start_point[2]=0;
line_coords.end_point[0]=10;  //终止点坐标
line_coords.end_point[1]=10;
line_coords.end_point[2]=0;
UF_CURVE_create_line(&line_coords,&object_tag); //创建一条直线


    uf_list_p_t objects,features;  //对象列表
    UF_MODL_create_list(&objects);               // 必须写上不然下一条代码不成立   
    UF_MODL_put_list_item(objects, object_tag);  // object_tag对象加入到objects对象列表尾部
char * taper_angle="0.0";      //锥角
char * limit[ 2 ]={"5","10"};  //起始值,终止值
double point[ 3 ]={0,0,0};     //不再使用
double direction[ 3 ]={0,0,1}; //拉伸方向
UF_FEATURE_SIGN   sign=UF_NULLSIGN; //创建新的几何实体
UF_MODL_create_extruded (objects, taper_angle, limit, point, direction, sign, &features);//拉伸


//【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】
//咧2,创建7条直线形成封闭区域做拉伸操作生成实体
   tag_t object_tag[7];
UF_CURVE_line_t line_coords;  //直线函数      
line_coords.start_point[0]=0; //启始点坐标
line_coords.start_point[1]=0;
line_coords.start_point[2]=0;
line_coords.end_point[0]=10;  //终止点坐标
line_coords.end_point[1]=0;
line_coords.end_point[2]=0;
UF_CURVE_create_line(&line_coords,&object_tag[0]); //创建一条直线
line_coords.start_point[0]=0; //启始点坐标
line_coords.start_point[1]=0;
line_coords.start_point[2]=0;
line_coords.end_point[0]=0;  //终止点坐标
line_coords.end_point[1]=10;
line_coords.end_point[2]=0;
UF_CURVE_create_line(&line_coords,&object_tag[1]); //创建一条直线
line_coords.start_point[0]=0; //启始点坐标
line_coords.start_point[1]=10;
line_coords.start_point[2]=0;
line_coords.end_point[0]=10;  //终止点坐标
line_coords.end_point[1]=10;
line_coords.end_point[2]=0;
UF_CURVE_create_line(&line_coords,&object_tag[2]); //创建一条直线
line_coords.start_point[0]=10; //启始点坐标
line_coords.start_point[1]=10;
line_coords.start_point[2]=0;
line_coords.end_point[0]=10;  //终止点坐标
line_coords.end_point[1]=0; //
line_coords.end_point[2]=0;
UF_CURVE_create_line(&line_coords,&object_tag[3]); //创建一条直线
line_coords.start_point[0]=2; //启始点坐标
line_coords.start_point[1]=2;
line_coords.start_point[2]=0;
line_coords.end_point[0]=5;  //终止点坐标
line_coords.end_point[1]=2;
line_coords.end_point[2]=0;
UF_CURVE_create_line(&line_coords,&object_tag[4]); //创建一条直线
line_coords.start_point[0]=5; //启始点坐标
line_coords.start_point[1]=2;
line_coords.start_point[2]=0;
line_coords.end_point[0]=2;  //终止点坐标
line_coords.end_point[1]=5;
line_coords.end_point[2]=0;
UF_CURVE_create_line(&line_coords,&object_tag[5]); //创建一条直线
line_coords.start_point[0]=2; //启始点坐标
line_coords.start_point[1]=5;
line_coords.start_point[2]=0;
line_coords.end_point[0]=2;  //终止点坐标
line_coords.end_point[1]=2; //
line_coords.end_point[2]=0;
UF_CURVE_create_line(&line_coords,&object_tag[6]); //创建一条直线




    uf_list_p_t objects,features;  //对象列表
    UF_MODL_create_list(&objects);               // 必须写上不然下一条代码不成立   
    UF_MODL_put_list_item(objects, object_tag[0]);  // object_tag[0]对象加入到objects对象列表尾部
        UF_MODL_put_list_item(objects, object_tag[1]);
        UF_MODL_put_list_item(objects, object_tag[2]);
        UF_MODL_put_list_item(objects, object_tag[3]);
        UF_MODL_put_list_item(objects, object_tag[4]);
        UF_MODL_put_list_item(objects, object_tag[5]);
        UF_MODL_put_list_item(objects, object_tag[6]);
char * taper_angle="0.0";      //锥角
char * limit[ 2 ]={"5","10"};  //起始值,终止值
double point[ 3 ];             //无效可以不写
double direction[ 3 ]={0,0,1}; //拉伸方向
UF_FEATURE_SIGN   sign=UF_NULLSIGN; //创建新的几何实体

//拉伸
UF_MODL_create_extruded (
                                                 objects,
                                                 taper_angle,   //锥角
                                                 limit,         //起始值,终止值
                                                 point,         //无效可以不写
                                                 direction,     //拉伸方向
                                                 sign,          //布尔操作类型
                                                 &features);    //返回对象


//【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】【】










_____________________________________________________________________________ _

中磊UG二次开发教程 梅雷著 qq1821117007
学UG就上UG网 http://www.9sug.com/
就上UG网淘宝直营店
回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 注册UG网

本版积分规则