快捷导航 上传作品

[c++] NX二次开发在圆柱的相切面创建孔C++教程就上UG网

[复制链接]
ug9.0发表于 2016-5-31 06:43:37 | 显示全部楼层 |阅读模式
学UG就上UG网:
在本例UG二次开发中,使用到了三个函数,它们分别是创建圆柱、创建基准平面、创建孔,UF_MODL_create_simple_hole(创建孔函数);

C++UG二次开发

C++UG二次开发

UG二次开发C++源码:

  1. #include <uf_obj.h>
  2. #include <uf_layer.h>


  3.     /*中磊国际模具培训-创建对话框式布尔运算*/

  4.         tag_t view_tag = NULL_TAG;
  5.         
  6.         /*学NX二次开发就上UG网-www.9sug.com圆柱参数 */

  7.         double cyl_origin[3] = { 0, 0, 0 };
  8.         char * cyl_height = "10";
  9.         char * cyl_diam = "20";
  10.         double cyl_direction[3]{0, 0, 1};
  11.         tag_t cyl_obj_id;
  12.         uf_list_p_t face_list;

  13.         /*学NX二次开发就上UG网-www.9sug.com创建基准平面 */
  14.         int num_refs = 1;
  15.         tag_t object_tags[3];
  16.         tag_t object_tags1[3];
  17.         int point_select[3] = { 0, 1, 0};
  18.         int which_plane = 1;
  19.         char *offset_string = "5.0";
  20.         int num_dplanes;
  21.         tag_t dplane_tag[2];
  22.         tag_t dplane_tag1[2];

  23.         int layer_fea_nu;
  24.         tag_t * layer_fea_id;

  25.         /*学NX二次开发就上UG网-www.9sug.com创建孔参数 */
  26.         double location[3] = { 5, 0, 10 };
  27.         double direction[3] = { -1, 0, 0 };
  28.         char * diame = "5";
  29.         char * depth = "20";
  30.         char * angle = "0";
  31.         tag_t face_li;
  32.         tag_t face_t1;
  33.         tag_t hole_obj_id;

  34.         /*学NX二次开发就上UG网-www.9sug.com圆柱参数 */

  35.         UF_MODL_create_cyl1(UF_NULLSIGN, cyl_origin, cyl_diam, cyl_height, cyl_direction, &cyl_obj_id);
  36.         
  37.         /*获得圆柱体所有的面,存入链表*/
  38.         UF_MODL_ask_feat_faces(cyl_obj_id, &face_list);
  39.         UF_MODL_ask_list_item(face_list, 2, &object_tags[0]);
  40.         UF_MODL_delete_list(&face_list);

  41.         /*设置61为工作层,将以下创建的基准平面放到61层*/
  42.         UF_LAYER_set_status(61, UF_LAYER_WORK_LAYER);
  43.         /*创建基准平面*/
  44.         UF_MODL_create_relative_dplane(num_refs, object_tags, point_select,
  45.             which_plane, NULL, NULL, "0.0", &num_dplanes, dplane_tag);

  46.         /*获得基准平面的object Tag*/
  47.         object_tags1[0] = dplane_tag[0];
  48.         UF_MODL_ask_feat_object(dplane_tag[0], &layer_fea_nu, &layer_fea_id);
  49.         UF_OBJ_set_blank_status(layer_fea_id[0], UF_OBJ_BLANKED);
  50.         UF_free(layer_fea_id);
  51.         /*由第一个基准平面偏置出第二个基准平面,使第二个基准平面与圆柱平面相切*/
  52.         UF_MODL_create_relative_dplane(1, object_tags1, point_select, which_plane,
  53.             NULL, NULL, offset_string, &num_dplanes, dplane_tag1);


  54.         /*设置第一层为工作层*/
  55.         UF_LAYER_set_status(1, UF_LAYER_WORK_LAYER);
  56.         /*创建孔特征*/
  57.         face_li = dplane_tag1[0];
  58.         face_t1 = object_tags[0];
  59.         UF_MODL_create_simple_hole(location, direction, diame,
  60.             depth, angle, face_li, face_t1, &hole_obj_id);

  61.         /*调整视图到合适大小*/
  62.         UF_VIEW_ask_work_view(&view_tag);
  63.         UF_VIEW_fit_view(view_tag, 0.7);

  64.         

  65.     /* Terminate the API environment */
复制代码


就上UG网淘宝直营店
回复

使用道具 评分 举报

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

本版积分规则