iCAx开思工具箱

标题: 各位高手,为何我的程序实现不了减运算? [打印本页]

作者: bennycheung23    时间: 2005-12-9 17:21
标题: 各位高手,为何我的程序实现不了减运算?
各位高手:
          我的目的是实现图中的两个实体的减运算,将长方体减去图中红色的实体。以下是我的程序,麻烦各位高手指点指点。还有,请各位高手指点一下  UF_OBJ_cycle_objs_in_part(part, UF_solid_type, &solid)的参数是如何传递的?谢谢了!


int ZHTWAIXING_kqfangkuai_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{   
     int i=0, type, sub_type, body_type, num_result;
         tag_t part, solid, tag_solid[4], *result_body;
         char mess[133];
         solid=NULL_TAG;

     /* Make sure User Function is available. */  
     if ( UF_initialize() != 0)
          return ( UF_UI_CB_CONTINUE_DIALOG );

     /* ---- Enter your callback code here ----- */
         part=UF_PART_ask_display_part();
          UF_OBJ_cycle_objs_in_part(part, UF_solid_type, &solid);     
  do
   {
     UF_OBJ_ask_type_and_subtype(solid, &type, &sub_type);

     if(sub_type == UF_solid_body_subtype)
     {
       UF_MODL_ask_body_type (solid, &body_type );
       if (body_type==UF_MODL_SOLID_BODY)
       {
         tag_solid[i]=solid;
                 sprintf(mess,"%d",tag_solid[i]);
                i++;
        //         uc1601(mess,1);
                 }
     }
     UF_OBJ_cycle_objs_in_part(part, UF_solid_type, &solid);
   }while(solid != NULL_TAG);


  UF_MODL_subtract_bodies( tag_solid[0], tag_solid[1], &num_result, &result_body );

     UF_terminate ();

    /* Callback acknowledged, do not terminate dialog */
    return (UF_UI_CB_CONTINUE_DIALOG);
   
    /* or Callback acknowledged, terminate dialog.    */
    /* return ( UF_UI_CB_EXIT_DIALOG );               */

}
作者: bennycheung23    时间: 2005-12-9 17:43
标题: 此为对应的贴图
此为对应的贴图
作者: pzytony    时间: 2005-12-9 18:10
严重错误,你要同时判断主类型和子类型!

     UF_OBJ_ask_type_and_subtype(solid, &type, &sub_type);
     if(type == [UF_solid_type && sub_type == UF_solid_body_subtype)
     ……

此外,你的两个实体减的顺序未定,减反了咋办?
作者: bennycheung23    时间: 2005-12-10 16:50
版主pzytony,那两个实体的减的如何定呢?target_body是长方体,而tool body是红色的实体?请指点
作者: bennycheung23    时间: 2005-12-10 17:05
pzytony,我将你写的那行程序改了,但还是没有反应,就算是减错的操作subtract也不有啊?请问上面的程序还有什么原因呢?
作者: Afang    时间: 2005-12-12 11:33
代码好像没有问题,完全copy可以正确运行,你确认你当前的PART只有2个SOLID吗?确认的话,最好用UF_CALL跟踪一下。。。




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