iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 24741|回复: 2
打印 上一主题 下一主题

请教如何提取组件阵列的数量

[复制链接]
跳转到指定楼层
楼主
发表于 2010-8-20 12:00:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大家好,请各位高手给予帮忙,在此先谢过了。
二次开发环境:ugnx7.0  + vs.net2008 + open/api.
提取数量,模型如下:部件A.prt, B.prt,B装配到A中。
A
|__B
选中B 右击属性,修改数量为5确定保存。
对B  进行组件阵列装配(4个阵列),结构如下:
A
|__B  ----1
|__B  ----2
|__B  ----3
|__B  ----4
其中1为阵列的模板,程序代码如下:
tag_t displayPart=UF_PART_ask_display_part();  //取到A.
tag_t rootoccs = UF_ASSEM_ask_root_part_occ(displayPart);   //取A的根
//获取下层结构
tag_t *child_part_occs;
int nCount = UF_ASSEM_ask_all_part_occ_children(rootoccs, &child_part_occs);
for (int i = 0; i<nCount; i++)
{
   tag_t child_occ = child_part_occs[i]; //取一个子 B ---1
   tag_t occinst = UF_ASSEM_ask_inst_of_part_occ(child_occ);  //子事例
   char sTitle[UF_ATTR_MAX_TITLE_LEN+1] = {'\0'};
   char sVal[UF_ATTR_MAX_TITLE_LEN+1] = {'\0'};
   UF_ATTR_value_t vv;
   vv.value.string = sVal;
   strcpy(sTitle, "DB_QUANTITY");
   UF_ATTR_read_value(occinst, sTitle,UF_ATTR_any, &vv);
   //vv.value.string = "5"  这个是B ----1的数量,取到了。
   //其他的子这里取到的vv.value.string是空字符串
   //...
}
UF_free(child_part_occs);

操作说明如下:
    如果对2的属性中,把数量修改后,或在属性列表中选中数量,确定或应用,都能取到数量的结果。
经过我多次调试后,发现一个问题,装配结构中的数量如果在装配后(包括零件的装配,不一定要阵列装配),没有进行
更新数量,这里取到的结果都是空值。
    不过一般来说装配后默认的数量都是1,这个好解决,如今遇到这种修改了模板的数量后,再进行阵列装配,就无法取
到数量了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
沙发
 楼主| 发表于 2010-8-20 16:51:11 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
发表于 2010-8-20 19:01:53 | 只看该作者

马上注册登录,享用更多网站功能!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-11-17 12:27 , Processed in 0.017722 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表