购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
UF对象操作必要说明
uf_list_p_t 对象列表有自动判断相同功能
也就是说我们加入到对象列表里的对象都是唯一的,相同的TAG不可能加入2次,会自动过滤掉相同的TAG。
uf_list_p_t body_list; // 变量body_list为 对象列表
UF_MODL_create_list(&body_list); // 第一次使用必须写上初始化列表
UF_MODL_put_list_item(body_list, object_tag); // object_tag对象加入到body_list对象列表尾部
int b=0; UF_MODL_ask_list_count(face_list,&b); //获得一个实体列表的长度实体数量

●●●请先
登陆 或
注册 后查看●●●
//有关对象的选择列表
UF_UI_add_to_sel_list 加入到对象选择列表
UF_UI_ask_sel_list_count 返回对象选择列表数量
UF_UI_remove_from_sel_list 从对象选择列表中删除
UF_UI_ask_sel_object_list 返回对象选择列表数量 和 tag_t
UF_UI_remove_all_from_sel_list 从选择列表中删除所有对象和选择
在与模型相关的操作函数中,一些查询函数以 UF_MODL_ask_xxxx 为前缀,
对于存在 标识的实体、特征、面和边,在使用形如 UF_MODL_xxxx 的函数进行操作时,
要特别注意在 函数的输入参数中使用正确的标识。在使用形如 UF_MODL_xxxx 的函数时,
一个容易犯的错 误与模型的创建层次有关,模型正确的层次关系是实体→特征→面→边,
按降序排列。当 创建了第一个基体时(如使用函数 UF_MODL_create_block1( )创建一个长方体),
不要认 为函数返回的是实体标识,要获得实体的标识必须调用函数 UF_MODL_ask_feat_body( )。
一个部件中包含不止一个实体时,
如果希望在其中某个实体上执行操作,如添加特征、 执行布尔运算,必须确定操作的目标实体。
如果部件中只有一个实体或目标实体是最后操作的实体则不需要指定。
extern int UF_MODL_ask_feat_body (tag_t feature_obj_id, tag_t * body_obj_id );
在UF函数中必须分清它是针对Body操作的,还是针对Feature
操作,还是针对Object操作的。
Feature、Body和Object之间相互转换的UF函数为:
//从特征feature 中取出body
extern int UF_MODL_ask_feat_body (tag_t feature_obj_id, tag_t *body_obj_id );
//从特征feature 中取出object
extern int UF_MODL_ask_feat_object (tag_t feature, int * n_eids, tag_t **eids );
//从body中取出特征链features
extern int UF_MODL_ask_body_feats (tag_t body, uf_list_p_t *feature_tag_list );
//从object 中取出特征feature
extern int UF_MODL_ask_object_feat (tag_t object_tag, tag_t *feature_tag );
//例子:创建方体并修改颜色
#include <uf_modl.h>
#include <uf_obj.h>
double corner_pt[3]={0,0,0}; //定位极点
char * edge_len[3]={"5","10","15"}; //大小(x,y,z)
tag_t blk_tag=NULL_TAG;
UF_MODL_create_block1(UF_NULLSIGN,corner_pt,edge_len,&blk_tag); //创建方体
UF_MODL_ask_feat_body (blk_tag,&blk_tag); //从特征中取出实体
UF_OBJ_set_color(body_obj_id,216); //改颜色