请选择 进入手机版 | 继续访问电脑版

唐康林NX二次开发论坛

 找回密码
 立即注册
搜索
热搜: nxopen ufun
查看: 193|回复: 1

[求助] UF_MODL_create_extrude_trim_opts

[复制链接]

4

主题

15

帖子

71

积分

见龙在田

Rank: 2

积分
71
发表于 2018-4-18 10:32:03 | 显示全部楼层 |阅读模式
  1. <div>......</div><div>int <span style='display: inline !important; float: none; background-color: transparent; color: rgb(68, 68, 68); font-family: Tahoma,Helvetica,"SimSun",sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px; word-wrap: break-word;'>n_pts = 5;</span></div><div><span style='display: inline !important; float: none; background-color: transparent; color: rgb(68, 68, 68); font-family: Tahoma,Helvetica,"SimSun",sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px; word-wrap: break-word;'>double step_dir[3] = {0.0, 0.0, 1.0};</span></div><div>......</div><div>UF_MODL_SWEEP_TRIM_object_t trim_ptr = {NULL, 1, UF_MODL_SWEEP_TRIM_TO_FACE, NULL, 0 };
  2.         char *offsets[2] = { "0.0", "0.0" };
  3.         double region_point[3] = { 0.0, 0.0, 0.0 };
  4.         tag_t *objects[4];
  5.         int n_objects[4];
  6.     tag_t extrude_array[4];

  7.         for (int i = 0; i < n_pts-1; i++)
  8.         {
  9.                 UF_MODL_create_fixed_dplane(points_l[i+1], step_dir, &dplane_tag[i]);
  10.                 trim_ptr.trim_objects = &dplane_tag[i];

  11.                 UF_DISP_set_highlight(h_line_tag[i], 1);
  12.                 UF_DISP_set_highlight(l_v_line_tag[i], 1);
  13.                 UF_DISP_set_highlight(r_v_line_tag[i], 1);
  14.                 UF_DISP_set_highlight(h_line_tag[i+1], 1);  //
  15.                 extrude_array[0]=h_line_tag[i];
  16.                 extrude_array[1]=l_v_line_tag[i];
  17.                 extrude_array[2]=r_v_line_tag[i];
  18.                 extrude_array[3]=h_line_tag[i+1];

  19.                 uc1601("here",1);
  20.                 UF_MODL_create_extrude_trim_opts(
  21.                                 extrude_array,
  22.                                 4,
  23.                                 &trim_ptr,
  24.                                 DO_NOT_EXTEND_AND_EXTEND_TRIM_FACE ,
  25.                                 "0.0",
  26.                                 NULL,
  27.                                 offsets,
  28.                                 region_point,
  29.                                 FALSE,
  30.                                 TRUE,
  31.                                 step_dir,
  32.                                 UF_NEGATIVE,
  33.                                 &objects[i],
  34.                                 &n_objects[i]
  35.                                 );
  36.                 if (n_objects > 0) UF_free(objects);
  37.         UF_free(extrude_array);
  38.         }
  39. </div>
复制代码
请问为什么执行到UF_MODL_create_extrude_trim_opts就会提示函数捕获到异常?
想通过拉伸到基准平面,线手动拉伸可以。

TIM图片20180418102827.png
回复

使用道具 举报

4

主题

15

帖子

71

积分

见龙在田

Rank: 2

积分
71
 楼主| 发表于 2018-4-19 15:52:40 | 显示全部楼层
  1.         //4.拉伸创建的line
  2.         /*拉伸参数*/
  3.         /*UF_MODL_SWEEP_TRIM_object_t trim_ptr = {NULL, 1, UF_MODL_SWEEP_TRIM_TO_FACE, NULL, 0 };*/
  4.         UF_MODL_SWEEP_TRIM_object_t trim_ptr = {};
  5.         char *taper_angle="0.0";
  6.         char *limits[2]={ "0.0", "2.0" };
  7.         char *offsets[2] = { "0.0", "0.0" };
  8.         double region_point[3] = { 0.0, 0.0, 0.0 };
  9.         tag_t *objects[4];
  10.         int n_objects[4];
  11.     tag_t extrude_array[4];

  12.         for (int i = 0; i < n_pts-1; i++)
  13.         {
  14.                 //UF_MODL_create_fixed_dplane(points_l[i+1], step_dir, &dplane_tag[i]);
  15.                 //trim_ptr.trim_objects = &dplane_tag[i];

  16.                 extrude_array[0]=h_line_tag[i];
  17.                 extrude_array[1]=l_v_line_tag[i];
  18.                 extrude_array[2]=r_v_line_tag[i];
  19.                 extrude_array[3]=h_line_tag[i+1];
  20.                 uc1601("here",1);
  21.                 UF_MODL_create_extrude_trim_opts(
  22.                                 extrude_array,
  23.                                 4,
  24.                                 &trim_ptr,
  25.                                 DO_NOT_EXTEND_AND_EXTEND_TRIM_FACE ,
  26.                                 "0.0",
  27.                                 limits,
  28.                                 offsets,
  29.                                 region_point,
  30.                                 FALSE,
  31.                                 TRUE,
  32.                                 step_dir,
  33.                                 UF_NULLSIGN,
  34.                                 &objects[i],
  35.                                 &n_objects[i]
  36.                                 );
  37.                 if (n_objects > 0) UF_free(objects[i]);
  38.         }
复制代码

trim_ptr为NULL时,可以根据limits来进行拉伸,为什么一加上trimming就不行了?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋| ( 蜀ICP备16014681号

GMT+8, 2018-5-22 15:44 , Processed in 0.084982 second(s), 27 queries .

Powered by www.nxopen.cn

© 2001-2013 nxopen.cn

快速回复 返回顶部 返回列表