iCAx开思网
标题:
请教 装配环境下 二次开发 替换部件引用集的做法
[打印本页]
作者:
fewkey
时间:
2008-11-12 12:27
标题:
请教 装配环境下 二次开发 替换部件引用集的做法
小弟用C语言在做批量裁剪螺钉孔的工具,也就是把一块板上的安装螺钉孔 一次性 全部布尔减运算,但是在批量替换螺钉引用集的时候遇到了问题,不知道怎么做了,下面是帮助文档上的例子,用了一下,怎么不好使呢,螺钉的引用集都没替换。请各位大哥教一下,谢谢了!
#include <uf.h>
#include <uf_assem.h>
/*---------------------------------------------------------------*/
/*ARGSUSED*/
extern void ufusr(char *def, int *ret_code, int retlen)
{ tag_t displayed_part = NULL_TAG;
UF_initialize();
displayed_part = UF_PART_ask_display_part();
if (displayed_part != NULL_TAG)
{ tag_t cset;
UF_ASSEM_ask_all_comp_cset(displayed_part, &cset);
if (cset != NULL_TAG)
{ UF_ASSEM_set_ref_set_by_cset(cset, "SOLID");
}
}
UF_terminate();
}
[
本帖最后由 fewkey 于 2008-11-12 12:33 编辑
]
作者:
fewkey
时间:
2008-11-12 12:35
顺便请各位大哥讲一下这个工具的整体思路哈。
这个是我的思路,欢迎批评指正,请不吝赐教。
程序思路:
[
本帖最后由 fewkey 于 2008-11-26 11:32 编辑
]
作者:
fewkey
时间:
2008-11-13 08:45
高手在哪呢?
作者:
cam-yp
时间:
2008-11-13 08:59
引用集没有换,可能是TAG没有找对
作者:
fewkey
时间:
2008-11-13 17:43
做成功了一下,但是 cset 好像只能创建到 display part ,用root=UF_ASSEM_ask_root_part_occ(display part)求得装配根结点之后,不能创建到root下,就是用的这个函数UF_ASSEM_create_cset(root,cset_name,&cset)。
还有cset创建了成功了之后,执行一次替换引用集可以,再执行的话,如果是同样的cset_name就创建不了了,替换引用集也就失败了。请问怎么样把这个cset删掉,或者清空cset里面的所有部件?
请不吝赐教啊!!!!!
作者:
cam-yp
时间:
2008-11-14 08:16
free不可以吗?
作者:
fewkey
时间:
2008-11-14 08:59
用UF_free(cset)不行啊,参数的类型不对,还有没有其他的方法?
[
本帖最后由 fewkey 于 2008-11-14 09:01 编辑
]
作者:
fewkey
时间:
2008-11-14 20:59
终于在一个例子里发现了,cset是一个object,要用UF_OBJ_delete_object(cset)把它删掉,就OK了。
现在问题又出来了。
有UF_CLEAR_set_obj_list()这个函数时,我通过UF_ASSEM_ask_part_occ_children遍历得到的是part occur,而函数要的参数是object tag,怎么转换一下。
作者:
fewkey
时间:
2008-11-22 21:37
到今天为止,整个功能算是做完了,也实现了我要求的功能。程序思路也是上面说的,做完这一套之后,感觉还真是学会了好多东西。
不知是论坛上的高手太少,还是大家都不说,提个问题等几天都没人回答。罢了,还是自己慢慢摸索吧。
欢迎光临 iCAx开思网 (https://www.icax.org/)
Powered by Discuz! X3.3