• 【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

  • 相关阅读:
    再谈H2的MVStore与MVMap
    log4j动态日志级别调整
    wireshark抓文件上传的包的结果记录
    struts2对properties资源的处理
    Spring core resourc层结构体系及JDK与Spring对classpath中资源的获取方式及结果对比
    [工具使用] visualvm 通过jmx不能连接
    oracle 安装 启动listener 建库相关
    vscode
    XSSFWorkbook
    TearmQuery()
  • 原文地址:https://www.cnblogs.com/KMould/p/14118529.html
Copyright © 2020-2023  润新知