iCAx开思工具箱

标题: 【讨论】UF_MODL_trim_body [打印本页]

作者: Fields2003    时间: 2003-5-7 10:32
标题: 【讨论】UF_MODL_trim_body
extern UFUNEXPORT int UF_MODL_trim_body(
tag_t target_body ,/* <I>
                   Target body to be trimmed.
                   */
tag_t tool_tag ,/* <I>
                Tag of face, datum plane, or plane to be used for trim.
                */
int direction_flag ,/* <I>
                    0 = Accept default direction
                    1 = Reverse direction
                    */
tag_t * trim_feature  /* <O>
                      Resultant trim_feature identifier tag
                      */
);

以上为此函数的声明,照理说这是最简单的函数了,可我怎么就是出错,我要实现的目标如下图所示,源程序如下,请高手指点:
//============================[1] Create a sphere====================    
    
   tag_t sphere_tag;
   double center[3]={0,  0,0};
   char sphere_diam[256];
   sphere_diam[0]='\0';
   sprintf(sphere_diam,"%f",84.8*2);
  
   UF_MODL_create_sphere1(UF_NULLSIGN,center,sphere_diam,[$sphere_tag)]
  
//============================[2] 2 Trim of sphere====================    
  
  tag_t dplane1;
  double sphere_radius=atof(sphere_diam)/2;
  double dplane1_origin[3];  
  dplane1_origin[0]=0;
  dplane1_origin[1]=0;
  dplane1_origin[2]=-80;
  double dplane1_dir[3]={0,0,1};
  UF_MODL_create_fixed_dplane(dplane1_origin,          dplane1_dir,[$dplane1)]
  
  tag_t dplane2;
  double dplane2_origin[3];  
  dplane2_origin[0]=0;
  dplane2_origin[1]=0;
  dplane2_origin[2]=-60;
  double dplane2_dir[3]={0,0,1};
  UF_MODL_create_fixed_dplane (dplane2_origin,dplane2_dir,[$dlane2)]
  int direction_flag=0;
  tag_t trim_left,trim_right;
  
  int ret=UF_MODL_trim_body(sphere_tag,
        dplane1,
        direction_flag,
        [$trim_left)]
  char test[256];
  sprintf(test,"%d",ret);
  uc1601(test,1);
  //从结果显示 ret=690025
作者: zzz    时间: 2003-5-7 10:45
你先在交互环境中做一下,看会不会出错。
作者: Fields2003    时间: 2003-5-7 11:51
zzz wrote:
你先在交互环境中做一下,看会不会出错。

  
谢谢版主!
嘿嘿,不太清楚交互环境,对不起,请指点
上面的图片是在api生成 sphere,dplane1,dplane2的基础上,在modling 模式下手工操作trim 实现的,不知道这是不是交互环境? 再次感谢!
作者: zzz    时间: 2003-5-7 11:53
是啊
  
可以使用UF_get_fail_message()看一看返回的错误到底是什么。
作者: Fields2003    时间: 2003-5-7 15:22
zzz wrote:
是啊  
  
  可以使用UF_get_fail_message()看一看返回的错误到底是什么。

  
Missing target body
上面为出错信息,请教:
语句 int ret=UF_MODL_trim_body(sphere_tag, dplane1,  direction_flag,[$trim_left)]
中 dplane1 怎么不是 target body???  
我在上面api语句的基础上,在modling模式中可以手动完成 trim
作者: Fields2003    时间: 2003-5-7 15:49
好开心啊,好开心啊,做出来了,原来是 body 和 feat 搞错了,呵呵,这个问题我发过一帖,zzz还回答了我哦,呵呵,只要在程序中加上一句
  
tag_t sphere_body;
UF_MODL_ask_feat_body(sphere_tag,[$sphere_body)]
UF_MODL_trim_body(sphere_body,  dplane1,  direction_flag,  [$trim_left)]
  
看来还是基础不行啊,原来 sphere 在UG里面被认为是 feat,那body到底是什么?麻烦zzz耐心告知基础问题.
作者: 胡招    时间: 2013-7-20 11:05
学习了




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3