找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
查看: 16230|回复: 2
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1
发表于 2007-7-27 12:09:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想用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);



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

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

[ 本帖最后由 falconer 于 2007-7-27 17:49 编辑 ]

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2007-7-27 12:11:24 | 只看该作者
拜托大家~~~~~·
3
发表于 2009-3-22 11:55:03 | 只看该作者
大约2年后,有一个我遇到了跟你一模一样的问题,也是“cannot create sweep trim body”,呵呵,找到这个帖子感觉很亲切:)能交流一下吗?sunelse@yahoo.cn
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-29 00:08 , Processed in 0.029074 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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