1 //特征过多时不建议使用
2
3
4
5 UF_initialize();
6
7 Session *theSession = Session::GetSession(); //获得Session绘画
8 Part *workPart(theSession->Parts()->Work()); //获得工作部件
9
10 UF_UI_open_listing_window();
11 Features::FeatureCollection *fc = workPart->Features();//迭代
12 Features::FeatureCollection::iterator itr = fc->begin();//获得第一个特征
13 tag_t bbb=NULL_TAG;
14 char *feature_name = NULL;
15 for (; itr != fc->end(); ++itr) //循环获得所有特征
16 {
17 Features::Feature*fcList = (*itr); //获得特征赋值给fcList
18 UF_MODL_ask_feat_name(fcList->Tag(), &feature_name);
19 UF_UI_write_listing_window(feature_name);
20 UF_UI_write_listing_window("\n");
21 bbb=fcList->Tag();
22 }
23
24 UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔
25 double Corner_pt[3] = { 0.0, 0.0, 0.0 };//设置原点
26 char *Edge_Len[3] = { "100", "100", "100" };//设置长宽高
27 tag_t BlkTag = NULL_TAG;
28 UF_MODL_create_block(Sign, NULL_TAG, Corner_pt, Edge_Len, &BlkTag);
29 tag_t bodytag = NULL_TAG;
30 UF_MODL_ask_feat_body(bbb,&bodytag);
31 uf_list_p_t featlist;
32 UF_MODL_ask_body_feats(bodytag, &featlist);//获取特征链表
33 tag_t reference_feature ;
34
35 UF_MODL_reorder_feature(BlkTag, featlist,2);//排到选择特征前
36 UF_MODL_reorder_feature(BlkTag, featlist,1);//在移到特征后
37 UF_free(featlist);
38
39 UF_terminate();