[c++] NX二次开发镜像特征C++源码教程下载就上UG网学UG

[复制链接]
ug9.0发表于 2016-6-5 07:01:18 | 显示全部楼层 |阅读模式
学UG二次开发就上UG网:
镜像特征UF函数:UF_MODL_create_mirror_body(先在UG中创建一个特征,然后对这个特征创建镜像);镜像零件在UG模具设计的二次开发中,应用非常的广泛,比如创建边锁、回位弹簧等等;

镜像C++源码

镜像C++源码

UG二次开发镜像特征C++源码:
  1. #define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X)))

  2.     static int report(char *file, int line, char *call, int irc)
  3.     {
  4.         if (irc)
  5.         {
  6.             char    messg[133];
  7.             printf("%s, line %d:  %s\n", file, line, call);
  8.             (UF_get_fail_message(irc, messg)) ?
  9.                 printf("    returned a %d\n", irc) :
  10.                 printf("    returned error %d:  %s\n", irc, messg);
  11.         }
  12.         return(irc);
  13.     }

  14.     static void do_ugopen_api(void)
  15.     {
  16.         int units = UF_PART_ENGLISH;
  17.         int arc_mode = 1;
  18.         int align = 1, end_point = 0, body_type = 0;

  19.         char   *part_name = "mirror";

  20.         double tol[3] = { 0.1, 0.1, 0.1 };
  21.         double pt1[3], pt2[3], pt3[3];
  22.         double value[6];
  23.         double ctr_point[3] = { 50.0, 5.0, 0.0 };
  24.         double direction[3] = { 0.0, 0.0, -1.0 };

  25.         UF_STRING_t   guide, spine;

  26.         tag_t part_tag, arc1_tag, arc2_tag, sheet_tag, mirror_tag, dplane;
  27.         tag_t thicken_tag, body_tag;

  28.         /* create new part */

  29.         UF_CALL(UF_PART_new(part_name, units, &part_tag));


  30.         /* create the first arc */
  31.         pt1[0] = 0.0; pt1[1] = 0.0; pt1[2] = 0.0;
  32.         pt2[0] = 50.0; pt2[1] = 10.0; pt2[2] = 0.0;
  33.         pt3[0] = 100.0; pt3[1] = 0.0; pt3[2] = 0.0;
  34.         FTN(uf5063) (&arc_mode, pt1, pt2, pt3, &arc1_tag);

  35.         /* create the second arc */
  36.         pt1[0] = 0.0; pt1[1] = 0.0; pt1[2] = 100.0;
  37.         pt2[0] = 50.0; pt2[1] = 10.0; pt2[2] = 100.0;
  38.         pt3[0] = 100.0; pt3[1] = 0.0; pt3[2] = 100.0;
  39.         FTN(uf5063) (&arc_mode, pt1, pt2, pt3, &arc2_tag);

  40.         /* create the ruled sheet body */
  41.         UF_MODL_create_string_list(2, 2, &guide);

  42.         guide.num = 2;
  43.         guide.string[0] = 1;
  44.         guide.dir[0] = 1;
  45.         guide.id[0] = arc1_tag;
  46.         guide.string[1] = 1;
  47.         guide.dir[1] = 1;
  48.         guide.id[1] = arc2_tag;
  49.         spine.num = 0;

  50.         UF_CALL(UF_MODL_create_ruled(&guide,
  51.             &spine,
  52.             &align,
  53.             value,
  54.             &end_point,
  55.             &body_type,
  56.             UF_NULLSIGN,
  57.             tol,
  58.             &sheet_tag));
  59.         UF_MODL_free_string_list(&guide);


  60.         /* create the thickened sheet solid */

  61.         UF_CALL(UF_MODL_create_thicken_sheet(sheet_tag,
  62.             "1.0",
  63.             "0.0",
  64.             UF_NULLSIGN,
  65.             &thicken_tag));

  66.         /* Create Datum Plane */
  67.         UF_CALL(UF_MODL_create_fixed_dplane(ctr_point, direction, &dplane));


  68.         /* Get body tag of thickened sheet body */
  69.         UF_CALL(UF_MODL_ask_feat_body(thicken_tag, &body_tag));

  70.         /* Create a mirrored body */
  71.         UF_CALL(UF_MODL_create_mirror_body(body_tag, dplane, &mirror_tag));

  72.     }

  73. 调用子程序:

  74.     /* TODO: Add your application code here */

  75.     /*中磊国际模具培训-镜像实例*/
  76.     {
  77.         if (!UF_CALL(UF_initialize()))
  78.         {
  79.             do_ugopen_api();
  80.             UF_CALL(UF_terminate());
  81.         }
  82.     }
复制代码




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

本版积分规则