iCAx开思工具箱

标题: 高手 [打印本页]

作者: 刘亮    时间: 2005-5-12 17:53
标题: 高手
我想从一个实体比如长方体中抽取边沿线,想用下面的函数
  
extern UFUNEXPORT int UF_MODL_create_curve_from_edge(
tag_t edge_id ,/* <I>
               Object identifier of the edge
               */
tag_t * ugcrv_id  /* <O>
                  Identifier of the extracted curve
                  */
);
  
edge_id 我怎么获得啊???
作者: mizzle    时间: 2005-5-12 22:28
int irc = 0;
     char *message = "Select Face";
     UF_UI_selection_options_t opts;
     UF_UI_mask_t mask;
     int response;
     tag_t face_tag, view;
     double cursor[3];
     int unhighlight=0;
  
     UF_initialize();
     opts.other_options = 0;
     opts.reserved = NULL;
     opts.num_mask_triples = 1;
     opts.mask_triples = [$mask]
/* set up selectable type, subtype, solid type */
     opts.mask_triples->object_type = UF_face_type;
     opts.mask_triples->object_subtype = 0;
     opts.mask_triples->solid_type = UF_UI_SEL_FEATURE_BODY;
/* set selection scope to be work part */
     opts.scope = UF_UI_SEL_SCOPE_WORK_PART;
     irc = UF_UI_select_single(message,&opts,&response,
                               [$face_tag,cursor,&view)]
  
     if(irc == 0)
   {
     uc1601("create edge from face",0);
           
   }
   int res_edge = 0;
   uf_list_p_t   edge_list;  
   res_edge = UF_MODL_ask_face_edges(face_tag,[$edge_list)]
   if(res_edge == 0)
   {
     uc1601("create curve from edge",0);
   }
     
     int res_list_count = 0,count;
   res_list_count = UF_MODL_ask_list_count(edge_list,[$count)]
   tag_t object;
   int res_tag;
     int i = 0;
   while(i<=count)
   {
     res_tag = UF_MODL_ask_list_item(edge_list,i,[$object)]
     int res_curve = 0;
       tag_t ugcrv_id;  
  
       res_curve = UF_MODL_create_curve_from_edge(object,[$ugcrv_id)]
           
  
            i++;
   }
     
   UF_DISP_set_highlight(face_tag,0);
作者: 刘亮    时间: 2005-5-13 11:01
谢谢楼上的兄弟
我已搞定
作者: 刘亮    时间: 2005-5-13 11:01
谢谢楼上的兄弟
我已搞定
作者: 刘亮    时间: 2005-5-13 11:01
谢谢楼上的兄弟
我已搞定




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