本文主要是介绍NX二次开发——进阶(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、链表及相关函数的用法
函数 | 说明 |
---|---|
UF_MODL_create_list | 创建一个链表,并返回链表的头指针 |
UF_MODL_put_list_item | 插入元素到链表中,不检验对象是否重复,或者已经存在 |
UF_MODL_ask_list_count | 获取链表对象数量,从头开始遇到null_tag结束 |
UF_MODL_ask_list_item | 查询链表对象标识,给个位置返回标识 |
UF_MODL_delete_list_item | 删除链表的对象,给一个tag就可以删除链表的对象 |
UF_MODL_delete_list | 删除整个链表 |
使用链表进行拉伸
void MyClass::do_it()
{// TODO: add your code hereUF_initialize();//创建第一条直线UF_CURVE_line_t line1;//起始点坐标line1.start_point[0] = 0.0;line1.start_point[1] = 0.0;line1.start_point[2] = 0.0;//终止点坐标line1.end_point[0] = 10.0;line1.end_point[1] = 0.0;line1.end_point[2] = 0.0;tag_t line1TAG[3];UF_CURVE_create_line(&line1, &line1TAG[0]);//创建第二条直线UF_CURVE_line_t line2;//起始点坐标line2.start_point[0] = 10.0;line2.start_point[1] = 0.0;line2.start_point[2] = 0.0;//终止点坐标line2.end_point[0] = 10.0;line2.end_point[1] = 10.0;line2.end_point[2] = 0.0;//tag_t line2TAG = NULL_TAG;UF_CURVE_create_line(&line2, &line1TAG[1]);//创建第三条直线UF_CURVE_line_t line3;//起始点坐标line3.start_point[0] = 10.0;line3.start_point[1] = 10.0;line3.start_point[2] = 0.0;//终止点坐标line3.end_point[0] = 0.0;line3.end_point[1] = 0.0;line3.end_point[2] = 0.0;//tag_t line3TAG = NULL_TAG;UF_CURVE_create_line(&line3, &line1TAG[2]);//创建链表uf_list_t *objectlist = NULL;UF_MODL_create_list(&objectlist);for (int i = 0; i < 3; i++){UF_MODL_put_list_item(objectlist, line1TAG[i]);}//定义拉伸参数char *taper = "0";//拔模的角度char *limit[2] = { "0.0","20.0" };//起始-终止double point[3] = { 0.0,0.0,0.0 };//点double dir[3] = { 0.0,0.0,1.0 };//矢量方向UF_FEATURE_SIGN sign = UF_NULLSIGN;uf_list_t *Fea = NULL;UF_MODL_create_extruded2(objectlist, taper, limit, point, dir, sign, &Fea);//删除链表UF_MODL_delete_list(&objectlist);UF_terminate();}
运行结果:
二、特征、体、对象、面等之间的转换方法
UF_initialize();//创建块UF_FEATURE_SIGN blockSIGN = UF_NULLSIGN;double point1[3] = { 0.0,0.0,0.0 };//坐标char *LWD1[3] = { "60","70","20" };//长宽高tag_t block1TAG = NULL_TAG;UF_MODL_create_block1(blockSIGN, point1, LWD1, &block1TAG);//通过特征找体tag_t bodyTAG = NULL_TAG;UF_MODL_ask_feat_body(block1TAG, &bodyTAG);//通过特征找边uf_list_p_t edgelist = NULL;int cout;UF_MODL_ask_feat_edges(block1TAG, &edgel
这篇关于NX二次开发——进阶(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!