点击查看详细介绍

UG二次开发中简单拉伸函数UF_MODL_create_extruded详细说明与例子代码

lchooce99 9年前 4735 2

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


//头文件
#include <uf_modl.h>

//函数:
UF_MODL_create_extruded

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); //对象加入到对象列表尾部
char * 锥角="0.0"; //锥角
char 起始值[32]="";
char 终止值[32]="";
sprintf(起始值, "%.6f",5);
sprintf(终止值, "%.6f",10);
char * limit[ 2 ]={起始值,终止值};
double point[ 3 ]={0,0,0}; //不再使用
double direction[ 3 ]={0,0,1}; //拉伸方向
UF_FEATURE_SIGN sign=UF_NULLSIGN; //创建新的几何实体
UF_MODL_create_extruded (objects, 锥角, 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]);
// 对象加入到对象列表尾部
[/replysee]
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]);
[/replysee]
char * 锥角="0.0";
char 起始值[32]="";
char 终止值[32]="";
sprintf(起始值, "%.6f",5);
sprintf(终止值, "%.6f",10);
char * limit[ 2 ]={起始值,终止值};
double point[ 3 ]; //无效可以不写
double direction[ 3 ]={0,0,1}; //拉伸方向
UF_FEATURE_SIGN sign=UF_NULLSIGN; //创建新的几何实体

UF_MODL_create_extruded (objects, 锥角,limit, point,direction,sign,&features);//拉伸

2

最新回复 (2)
  • zhixiang 8年前
    1

    谢谢分享!!!!!!!!!!!!!!!!!

  • 我们的天空 3年前
    2

    怎么编辑拉伸呢?我想替换链表里面的内容

请登录后发表新帖