iCAx开思工具箱

标题: 【求助】zzz和高手帮忙:关于移动物体 [打印本页]

作者: mzgcoco    时间: 2004-10-20 01:57
标题: 【求助】zzz和高手帮忙:关于移动物体
我在一个对话框中,用按钮创建了一个block,然后在同一个对话框中,用
scale real控件来控制它沿z向动态移动,可是用函数UF_OBJ_is_transferable查询得到这个block is not transferable,请问如何解决这个问题啊?
还有移动物体的函数是uf5947_嘛?谢谢!!!!!
作者: suye007    时间: 2004-10-20 10:05
block is not transferable
也就是block不能移动,不知道你是怎么建立这个立方体的,是直接通过block命令吗?还是先画线再拉伸?
作者: mzgcoco    时间: 2004-10-20 10:13
我是直接用UF_MODL_create_block1创建的,直接输入坐标,应该没有和其他object关联吧
作者: suye007    时间: 2004-10-20 10:29
那可能就是scale real或者uf5947出错了吧
作者: mzgcoco    时间: 2004-10-20 12:39
用UF_OBJ_is_transferable显示物体就不可移动,好像跟uf5947和scale real没什么关系吧?
作者: suye007    时间: 2004-10-20 13:16
我试过UF_MODL_create_block1()得到的实体,通过uf5947移动,没有什么问题啊
作者: mizzle    时间: 2004-10-20 13:20
suye007能不能把你做的移动物体的代码给大家看一下呀。
有时候说,理解的不透彻
作者: suye007    时间: 2004-10-20 13:44
呵呵,没什么,觉得程序很小,就贴出来好了,觉得mzgcoco 所说的移动不了可能和这个函数没有使用有关UF_MODL_ask_feat_body()
static void do_ugopen_api(void)
{
    UF_FEATURE_SIGN  sign=UF_NULLSIGN;
  double  origin[ 3 ]={0,0,0};
  double  direction[ 3 ]={0,0,1};
  char height[]="10.0",diam[]="10.0";
  tag_t cyl_obj_id,body_obj_id;
  
  double matrix[16];  
  double length[3]={10,10,0};
  int count1=1, copyFlag=1, layer=-1, curveFlag=1, rtState;
  tag_t nr7,nr8;
  
  UF_MODL_create_cyl1 (sign, origin, height, diam, direction, [$cyl_obj_id )]
  UF_MODL_ask_feat_body(cyl_obj_id, [$ body_obj_id )]
  
  //UF_MTX4_identity( matrix );  
    FTN(uf5943)(length,matrix);
    FTN(uf5947)(matrix, [$body_obj_id , &count1, &copyFlag, &layer, &curveFlag, &nr7, &nr8, &rtState)]
  
}
作者: 深夜摔键盘    时间: 2004-10-20 13:48
好象楼主兄弟理解错误的说。
函数UF_OBJ_is_transferable查询得到这个block is not transferable,这里的transferable应该不是几何变换里的平移。这个transferable,联想一下UG有个translate工具,负责各种文档的转换的。
  
UG中,只要是几何对象,都可以参与几何变换(旋转,平移)
作者: mzgcoco    时间: 2004-10-20 19:01
suye007 兄说对了,是没有调用UF_MODL_ask_feat_body()  
能否详细讲一下,这个函数的作用嘛?
作者: suye007    时间: 2004-10-20 19:50
其实就是根据block的feature得到它的body,因为UF_MODL_create_block1()的参数带回的只是feature,uf5947是需要对body操作,UF_MODL_ask_feat_body() 可以完成feature_tag向body_tag的转换
作者: zzz    时间: 2004-10-21 14:03
有特征的实体是不能移动的。
作者: goodluckwu    时间: 2004-10-28 16:11
关键就是你的block是有参数的,有参数的物体是不能SCALE的,那个函数我实验过,这么操作不行。我也实验过去掉它的参数然后再缩放,还是不行。究竟怎么样才行现在我还没找到方法,那位仁兄要是找到了拜托告诉我一声:)




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