iCAx开思工具箱

标题: 怎样读取UG的装配树中,所选装配的文件名 [打印本页]

作者: zjs    时间: 2010-4-16 21:20
标题: 怎样读取UG的装配树中,所选装配的文件名
怎样读取UG的装配树中,所选装配的文件名.。 open c 和 grip都行。我常做CAM, 这个不熟。
       谢谢
(, 下载次数: 1)
作者: zjs    时间: 2010-4-18 12:48
出手指点一下,可能实现吗?有时候最困难的就是方向
作者: zjs    时间: 2010-4-19 00:47
今天搞出来了,做个总结。
1. UG的装配树不能按程序一样理解,而要将它考虑为obj
2. 选择了装配树也就是obj后,再找它的装配文件
作者: pzytony    时间: 2010-4-22 08:57
《UG应用开发教程与实例精解》有全套代码
作者: hunglau    时间: 2010-5-21 20:20
UF_SETUP_ask_geom_root( tSetup, &tGeometryRoot);
        UF_NCGROUP_ask_member_list(tGeometryRoot,&nGeomCount,&tGeomList);
        for (i=0; i<nGeomCount; i++)
        {
                UF_OBJ_ask_name(tGeomList[i],chGeomName);
                sGeomName=chGeomName;
                if (sGeomName.CompareNoCase("MCS_MILL") == 0)
                        return tGeomList[i];
        }

把上面的for循环换成UF_UI_ONT_ask_selected_nodes( &object_count, &objects ):就可以实现了
作者: zjs    时间: 2010-5-23 01:54
5 楼的兄台,搞了个CAM 模块程序来说装配问, 高手啊!
作者: boxi2279    时间: 2010-5-23 06:56
你可以直接查询高亮显示的物件获取出tag再查出名字
作者: hunglau    时间: 2010-5-23 20:37
不好意思,复制的时候选错地方了。
tPrtroot=UF_ASSEM_ask_root_part_occ(tEdm_Disprt);
        count=UF_ASSEM_ask_part_occ_children(tPrtroot,&child_components);
        if (count > 0)
        {
                for (i=0; i<count; i++)
                {               
                        nStatus=0;
                        tInstance=UF_ASSEM_ask_inst_of_part_occ(child_components[i]);      
                        UF_ASSEM_ask_part_name_of_child(tInstance,chName);
                        if(ask_part_is_ELE_part(chName))
                        {
                                for (k=0; k<Ele_list.size(); k++)
                                {
                                        if (Ele_list[k] == chName)
                                        {
                                                nStatus=1;
                                                break;
                                        }
                                       
                                }
                                if (nStatus != 1)                       
                                        Ele_list.push_back(chName);
                        }
作者: hunglau    时间: 2010-5-23 20:39
chName里面就是放的组件的名字
至于如果是查找选择的组件的名字的话,直接把选择的Tag传给child_components[i]); 来查询就可以了
tInstance=UF_ASSEM_ask_inst_of_part_occ(child_components[i]);      
                        UF_ASSEM_ask_part_name_of_child(tInstance,chName);
作者: HCJ2008    时间: 2010-9-22 07:39
顶一下,对我有用
作者: SWORDINHAND    时间: 2012-5-16 23:57
顶一下,对我有用




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3