[c++] NX二次开发创建四条直线并拉伸实体C++教程就上UG网

[复制链接]
ug9.0发表于 2016-5-29 08:04:58 | 显示全部楼层 |阅读模式
学UG二次开发,就上UG网:
本例NX二次开是是拉伸函数的中级应用教程,通过创建一组曲线,并须把其创建成实体,UG二次开发可以衍生很多功能,比如今天的实体拉伸,可以在此基础上对拉伸的实体进行布尔运算,创建倒角等;

UG二次开发

UG二次开发

二次开发创建直线并执行拉伸C++源码:
  1. /* TODO: Add your application code here */

  2.     /*中磊国际模具培训-创建四条直线并拉伸实体*/
  3.     tag_t line1, line2, line3, line4;//实体变量声明
  4.     tag_t *objects, generators[4];//创建一个组
  5.     UF_CURVE_line_t sline1, sline2, sline3, sline4;//创建四条曲线

  6.     /*学UG二次开发就上UG网-www.9sug.com 创建第一条直线 */
  7.     sline1.start_point[0] = 0.0;
  8.     sline1.start_point[1] = 0.0;
  9.     sline1.start_point[2] = 0.0;
  10.     sline1.end_point[0] = 0.0;
  11.     sline1.end_point[1] = 1.0;
  12.     sline1.end_point[2] = 0.0;
  13.     UF_CURVE_create_line(&sline1, &line1);

  14.     /*学UG二次开发就上UG网-www.9sug.com 创建第二条直线 */
  15.     sline2.start_point[0] = 0.0;
  16.     sline2.start_point[1] = 1.0;
  17.     sline2.start_point[2] = 0.0;
  18.     sline2.end_point[0] = 2.5;
  19.     sline2.end_point[1] = 3.5;
  20.     sline2.end_point[2] = 0.0;
  21.     UF_CURVE_create_line(&sline2, &line2);

  22.     /*学UG二次开发就上UG网-www.9sug.com 创建第三条直线 */
  23.     sline3.start_point[0] = 2.5;
  24.     sline3.start_point[1] = 3.5;
  25.     sline3.start_point[2] = 0.0;
  26.     sline3.end_point[0] = 1.0;
  27.     sline3.end_point[1] = 0.0;
  28.     sline3.end_point[2] = 0.0;
  29.     UF_CURVE_create_line(&sline3, &line3);

  30.     /*学UG二次开发就上UG网-www.9sug.com 创建第四条直线 */
  31.     sline4.start_point[0] = 1.0;
  32.     sline4.start_point[1] = 0.0;
  33.     sline4.start_point[2] = 0.0;
  34.     sline4.end_point[0] = 0.0;
  35.     sline4.end_point[1] = 0.0;
  36.     sline4.end_point[2] = 0.0;
  37.     UF_CURVE_create_line(&sline4, &line4);

  38.     /*学UG二次开发就上UG网-www.9sug.com 把曲线加入到组 */
  39.     generators[0] = line1;
  40.     generators[1] = line2;
  41.     generators[2] = line3;
  42.     generators[3] = line4;
  43.     UF_OBJ_set_layer(generators[0],256);
  44.     UF_OBJ_set_layer(generators[1], 256);
  45.     UF_OBJ_set_layer(generators[2], 256);
  46.     UF_OBJ_set_layer(generators[3], 256);
  47.     int obj_cnt;                     //创建拉伸特征的个数
  48.     char * limits[2] = { "0", "20" };     //开始值与结束值
  49.     char * offsets[2] = { "0", "0" };    //是否执行拉伸偏置
  50.     double region_point[3] = { 0, 0, 0 }; //位置点
  51.     double direction[3] = { 0, 0, 1 };    //拉伸失量


  52.     UF_MODL_create_extrusion(
  53.         generators,           //拉伸曲线组
  54.         4,                    //拉伸直线的数量
  55.         NULL,                 //空的结构体
  56.         "0.0",                //是否启用拉伸角度
  57.         limits,               //开始值与结束值
  58.         offsets,              //带偏置的拉伸
  59.         region_point,         //位置点
  60.         false,                //拉伸曲域
  61.         true,                 //true值为创建实体,false值为创建片体
  62.         direction,            //拉伸失量
  63.         UF_NULLSIGN,          //布尔运算
  64.         &objects,             //创建拉伸特征标识数组
  65.         &obj_cnt); //创建拉伸特征的数量

  66.     // 拉伸后的对象属于特征,如对其进行操作,需要把其从特征转化成实体
  67.     tag_t ug[1];
  68.     UF_MODL_ask_feat_body(objects[0], ug);      /* 从特征feature【objects[0]】 中取出body【body_obj_id[0]】 */
  69.     //UF_OBJ_set_layer(ug[0], 255);                 /* 对象移动到层 */

  70.             
  71.     /* Terminate the API environment */
复制代码


就上UG网淘宝直营店
您需要登录后才可以回帖 登录 | 注册UG网 用百度帐号登录

本版积分规则