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