iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 24465|回复: 2
打印 上一主题 下一主题

紧急求助:UG二次开发中的“拉伸到曲面”

[复制链接]
跳转到指定楼层
楼主
发表于 2007-7-27 12:09:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我想用OPenAPI实现“拉伸到曲面”的功能。首先创建一个曲面,再调用UF_MODL_create_extrusion函数。代码如下;
  int obj_cnt;
  char *offsets[2] = {"0.0", "0.0"};
  UF_FEATURE_SIGN mode_sign = UF_NULLSIGN;

  UF_MODL_SWEEP_TRIM_object_t trim_object;

  int i, num;
  uf_list_p_t  face_list;
  char *limits[2]={ "0", "30" };
  char *taper_angle="0.0";
  tag_t trim_objects[1],line1, line2, line3, line4,line5, line6, line7, line8;
  tag_t *objects, generators[8];
  double pt1[3],dir[3];
  UF_CURVE_line_t sline1, sline2, sline3, sline4,sline5, sline6, sline7, sline8;
  pt1[0]=0.0;
  pt1[1]=0.0;
  pt1[2]=0.0;
/* line#1 */
  sline1.start_point[0] = 40.0;
  sline1.start_point[1] = 30.0;
  sline1.start_point[2] = 0.0;
  sline1.end_point[0] = 48.0;
  sline1.end_point[1] = 30.0;
  sline1.end_point[2] = 0.0;
  UF_CALL(UF_CURVE_create_line(&sline1,&line1));
/* line#2 */
  sline2.start_point[0] = 48.0;
  sline2.start_point[1] = 30.0;
  sline2.start_point[2] = 0.0;
  sline2.end_point[0] = 48;
  sline2.end_point[1] = 38;
  sline2.end_point[2] = 0.0;
  UF_CALL(UF_CURVE_create_line(&sline2,&line2));

/* line#3 */
  sline3.start_point[0] = 48;
  sline3.start_point[1] = 38;
  sline3.start_point[2] = 0.0;
  sline3.end_point[0] = 40;
  sline3.end_point[1] = 38;
  sline3.end_point[2] = 0.0;
  UF_CALL(UF_CURVE_create_line(&sline3,&line3));
/* line#4 */
  sline4.start_point[0] = 40;
  sline4.start_point[1] = 38;
  sline4.start_point[2] = 0.0;
  sline4.end_point[0] = 40;
  sline4.end_point[1] = 30;
  sline4.end_point[2] = 0.0;
  UF_CALL(UF_CURVE_create_line(&sline4,&line4));

...............
  
  /* line 4 */
  generators[0] = line1;
  generators[1] = line2;
  generators[2] = line3;
  generators[3] = line4;

  generators[4] = line5;
  generators[5] = line6;
  generators[6] = line7;
  generators[7] = line8;


  dir[0]=0.0; dir[1]=0.0; dir[2]=1.0;

  trim_objects[0] = bsurf_obj_id;//bsurf_obj_id是已经生成的曲面的tag
  trim_object.trim_count = 1;
  trim_object.trim_objects = trim_objects;
  trim_object.sign =  UF_MODL_SWEEP_TRIM_TO_FACE;
  
  int code = UF_MODL_create_extrusion(generators, 8, &trim_object,
                                   taper_angle,limits,offsets,
                                   pt1, false, true, dir,
                                   mode_sign,&objects,&obj_cnt);
  char mass[133];
  UF_get_fail_message(code,mass);
  uc1601(mass,1);

  UF_free(objects);



结果报错“不能创建修剪的扫掠体”

我是新手,请大家帮忙看一下这段程序有什么错误!多谢了!!!!

pic.jpg

12.28 KB, 下载次数: 4, 下载积分: 贡献 -2

现在的效果

pic1.jpg

11.91 KB, 下载次数: 4, 下载积分: 贡献 -2

我想要的效果

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
沙发
 楼主| 发表于 2007-7-27 12:11:24 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
发表于 2009-3-22 11:55:03 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

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

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-11-25 02:28 , Processed in 0.012996 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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