zoukankan      html  css  js  c++  java
  • 【NX二次开发】查找部件中的对象 UF_OBJ_cycle_objs_in_part

    返回所有层上指定类型部件中的所有对象,不管它们的当前显示状态如何。
    这个例程不返回表达式、指定对象、临时(系统创建的)对象或休眠对象。
    休眠对象指的是从模型中删除的对象
    例如,如果你混合了一条边,那么这条边就是休眠的。WCS将不会被返回,除非它已经被保存。
    注意:当指定的类型为UF_feature_type时,这个例程循环部件中的特征。
    在循环查找到的对象时,不要尝试删除对象。当前对象已被删除时,尝试读取下一个
    对象时,可能会出现问题。
    要删除对象,可以在循环时将对象保存到一个包含对象的数组,然后在完成循环后,
    使用UF_OBJ_delete_array_of_objects删除保存的对象数组。

    UF_OBJ_ask_display_properties函数可以获取对象所在层、获取对象颜色、获取对象是否隐
    藏、获取对象是否高亮,获取对象线宽、字体大小

    查找当前工作部件下,所有体 例子:

    extern DllExport void ufusr(char *param, int *returnCode, int rlen)
    {
        UF_initialize();
    
        vector<tag_t> vBodyTags;
        tag_t object_tag = NULL_TAG;
        UF_OBJ_cycle_objs_in_part(UF_ASSEM_ask_work_part(), UF_solid_type, &object_tag);
        while (object_tag != NULL_TAG)
        {
            vector<tag_t>::iterator it = find(vBodyTags.begin(), vBodyTags.end(), object_tag);
            if (it == vBodyTags.end())
            {
                int objType = 0, objsubType = 0;
                UF_OBJ_ask_type_and_subtype(object_tag, &objType, &objsubType);
                if (objType == UF_solid_type && objsubType == UF_solid_body_subtype)
                {
                    vBodyTags.push_back(object_tag);
                }
            }
            UF_OBJ_cycle_objs_in_part(UF_ASSEM_ask_work_part(), UF_solid_type, &object_tag);
        }
    
        for (int i = 0; i < vBodyTags.size(); i++)
        {
            //vBodyTags[i]
        }
        UF_terminate();
    }
    extern int ufusr_ask_unload(void)
    {
        return (UF_UNLOAD_IMMEDIATELY);
    }

    【NX二次开发】按层查找工作部件中的对象 UF_LAYER_cycle_by_layer

  • 相关阅读:
    Spring框架之 我对AOP的理解
    第二次分班考试之 ---纠错19/25题
    Spring IOC(控制反转) 和DI
    一级缓存,二级缓存
    多对多连接
    MyBatis 智能标签
    小结javaScriptOOP的对象内容点
    15年错题小结2月
    《Java周边》Http请求模拟工具(postman)
    《Java周边》IDEA 设置快捷键和快捷键中英文对照
  • 原文地址:https://www.cnblogs.com/KMould/p/14118529.html
Copyright © 2011-2022 走看看