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

iCAx开思网

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

【求助】关于UG二次开发的问题,急!!!

[复制链接]
31
发表于 2002-11-26 22:54:45 | 只看该作者
谢谢,我也在上周末买了那本书。总的来讲,一般。把ug的帮助文档翻译并总结了一下,例子也是那上面的。
32
发表于 2003-4-5 08:35:50 | 只看该作者
各位版主,大家好!在此,感谢各位的帮助。我这个问题,可以说是重提了,希望能帮助解决。我有如下代码:
static void do_section(void)  
{
    tag_t autobody_tag,part_tag,section_tag;
  double section_point[3];
  double plane_normal[3];
  tag_t *objects;
  tag_t planes[1];  
  int type, subtype;
    UF_CURVE_section_general_data_t general_data;  
    UF_CURVE_section_planes_data_t planes_data;  
    UF_CURVE_section_parallel_data_t parallel_data;  
  tag_t section_curves_feature,*section_curves;
    int num_section_curves;
  int num_objects1=0;
  
   part_tag = UF_PART_ask_display_part();  
    autobody_tag = NULL_TAG;  
    UF_OBJ_cycle_objs_in_part(part_tag, UF_solid_type, [$autobody_tag)]  
   while(autobody_tag!=NULL_TAG)  
   {   
     UF_OBJ_ask_type_and_subtype(autobody_tag, [$type, &subtype)]
       if(subtype ==UF_solid_face_subtype)
     {
  
             num_objects1++;
       objects=[$autobody_tag]
     }
     UF_OBJ_cycle_objs_in_part(part_tag, UF_solid_type, [$autobody_tag)]    }  
       
    section_point[0] = 0.0;
    section_point[1] = 20.0;
    section_point[2] = 0.0;
  
    plane_normal[0] = 0.0;
    plane_normal[1] = 1.0;
    plane_normal[2] = 0.0;
    UF_CALL(UF_MODL_create_plane(section_point, plane_normal, [$section_tag))]   
   
    planes[0] = section_tag;  
  
    general_data.associate = 1;  
    general_data.objects = objects;  
    general_data.num_objects =num_objects1;  
    general_data.grouping = 0;  
    general_data.join_type = 0;  
    general_data.tolerance = 0.0254;  
  
    planes_data.planes = planes;  
    planes_data.num_planes = 1;  
  
     UF_CALL (UF_CURVE_section_from_planes (&general_data, &planes_data,  
                     [$section_curves_feature))]  
  
    printf (" section curves feature tag is %d\n", section_curves_feature);  
  
    parallel_data.base_plane = section_tag;  
    parallel_data.step_distance = 50.0;  
    parallel_data.start_distance = 0.0;  
    parallel_data.end_distance = 500.0;  
  
    UF_CALL (UF_CURVE_section_from_parallel_planes (&general_data,&parallel_data,  
                     [$section_curves_feature))]  
  
    UF_CALL (UF_CURVE_ask_feature_curves (section_curves_feature,  
                       [$num_section_curves, &section_curves))]  
  
    UF_free (section_curves);  
}
我用这段代码对如下图的件做截面线,总是不行,我还改变许多别的方式,都没成功,请版主帮忙看一下,谢谢!!!
33
发表于 2003-4-5 09:10:06 | 只看该作者
你用下面的代码没有作出来,那就是你的问题了。我自己前两天才编了,使用良好。
//include the head files needed.
tag_t body_tag=NULL_TAG;
tag_t feat_tag=NULL_TAG;
tag_t part_tag=NULL_TAG;
  
//get the tag of the current display part.
Part_tag=UF_PART_ask_display_part();
// find the solid body by a feature associated with it.
  feat_type=UF_feature_type;
  UF_OBJ_cycle_objs_in_part(part, feat_type, [$feat_tag)]
  if(feat_tag==NULL_TAG)
  {
    uc1601("no feature found",1);
    UF_terminate();
  }
  UF_MODL_ask_feat_body(feat_tag, [$body_tag)]
  if(body_tag==NULL_TAG)
  {
    uc1601("no feature found",1);
    UF_terminate();
  }
34
发表于 2003-4-5 11:34:36 | 只看该作者
lcfq wrote:
你用下面的代码没有作出来,那就是你的问题了。我自己前两天才编了,使用良好。  
  //include the head files needed.  
  tag_t body_tag=NULL_TAG;  
  tag_t feat_tag=NULL_TAG;  
  tag_t part_tag=NULL_TAG;  
  
  //get the tag of the current display part.  
  Part_tag=UF_PART_ask_display_part();  
  // find the solid body by a feature associated with it.  
    feat_type=UF_feature_type;  
    UF_OBJ_cycle_objs_in_part(part, feat_type, [$feat_tag)]  
    if(feat_tag==NULL_TAG)  
    {  
      uc1601("no feature found",1);  
      UF_terminate();  
    }  
    UF_MODL_ask_feat_body(feat_tag, [$body_tag)]  
    if(body_tag==NULL_TAG)  
    {  
      uc1601("no feature found",1);  
      UF_terminate();  
    }

  
谢谢楼上的兄弟!我考虑,如果用你这段代码取代我的那段的前半部分,那么我后面的函数UF_CURVE_section_from_planes 的参数将如何设置,尤其是参数general_data.num_objects 将如何设置?再者,你的这段代码是否能将件的所有部分都读取出来呢?
35
发表于 2003-4-5 15:05:41 | 只看该作者
我写的部分只是找到block的tag。
36
发表于 2003-4-5 21:54:08 | 只看该作者
lcfq wrote:
我写的部分只是找到block的tag。

  
如果找block的tag,不用你的那段了,用前面版主提供的那段更好吗。你能不能考虑一下我目前这个问题,另外版主和其他兄弟都来献计献策啊,谢谢!
37
发表于 2003-4-6 20:45:01 | 只看该作者
各位版主,麻烦您从百忙中抽时间帮我看看好吗,谢谢!!!
38
发表于 2003-4-7 14:06:09 | 只看该作者
郁闷啊,怎么没人回答呢?
39
发表于 2003-4-7 14:44:40 | 只看该作者
我觉得你的函数用的有问题。UF_CURVE_section_from_planes是用来获得一个section,不是截面线。求截面线必须用求交的方法。
40
发表于 2003-4-7 14:53:25 | 只看该作者
对不起,这个函数应该可以。如果对其中的参数设置没有什么心得的话,我建议你先摸一下交互环境中的操作。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025-1-29 08:35 , Processed in 0.023310 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2025 www.iCAx.org

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