zoukankan      html  css  js  c++  java
  • NX二次开发-UFUN遍历装配树根下面的所有子组件UF_ASSEM_ask_part_occ_children

    NX9+VS2012
    
    #include <uf.h>
    #include <uf_assem.h>
    #include <uf_ui.h>
    #include <uf_part.h>
    
    
    
    //递归遍历所有装配
    void ASSEM_cycle_all_part(tag_t parent_part_occ)
    {
        //遍历根的子组件
        tag_t* child_part_occs = NULL_TAG;
        int part_num = UF_ASSEM_ask_part_occ_children(parent_part_occ, &child_part_occs);
        for (int i = 0; i < part_num; i++)
        {
            //获取装配部件的相关信息
            char part_name[MAX_FSPEC_BUFSIZE];//零件名称
            char refset_name[UF_OBJ_NAME_BUFSIZE];//引用集名称
            char instance_name[UF_CFI_MAX_FILE_NAME_BUFSIZE];//实例名称
            double originA[3];//组件的位置
            double csys_matrix[9];//坐标系矩阵
            double transform[4][4];//转换矩阵
            UF_ASSEM_ask_component_data(child_part_occs[i], part_name, refset_name, instance_name, originA, csys_matrix, transform);
    
            UF_UI_write_listing_window(part_name);
            UF_UI_write_listing_window("
    ");
    
            ASSEM_cycle_all_part(child_part_occs[i]);
        }
    
        //释放
        UF_free(child_part_occs);
    }
    
    
    
    
    UF_initialize();
    
    //获得装配树根
    tag_t RootTag = UF_ASSEM_ask_root_part_occ(UF_PART_ask_display_part());
    
    UF_UI_open_listing_window();
    //遍历根的子组件
    tag_t* child_part_occs = NULL_TAG;
    int part_num = UF_ASSEM_ask_part_occ_children(RootTag, &child_part_occs);
    for (int i = 0; i < part_num; i++)
    {
        //获取装配部件的相关信息
        char part_name[MAX_FSPEC_BUFSIZE];//零件名称
        char refset_name[UF_OBJ_NAME_BUFSIZE];//引用集名称
        char instance_name[UF_CFI_MAX_FILE_NAME_BUFSIZE];//实例名称
        double originA[3];//组件的位置
        double csys_matrix[9];//坐标系矩阵
        double transform[4][4];//转换矩阵
        UF_ASSEM_ask_component_data(child_part_occs[i], part_name, refset_name, instance_name, originA, csys_matrix, transform);
    
        UF_UI_write_listing_window(part_name);
        UF_UI_write_listing_window("
    ");
    
        //进入递归
        ASSEM_cycle_all_part(child_part_occs[i]);
    
    }
    
    //释放
    UF_free(child_part_occs);
    
    UF_terminate();
    
    
    Caesar卢尚宇
    2020年9月19日

  • 相关阅读:
    NEFU84——五指山(Exgcd)
    Scoi2010——传送带(三分套三分=九分)
    POJ3352Road construction(边双联通分量)
    CEOI2005——关键网线(割边)
    ZJOI2004——嗅探器
    POJ1845s——Sumdiv()
    Web 服务器安全
    渗透测试神器Cobalt Strike的使用
    Windows中的用户和组以及用户密码处理
    漏洞及渗透练习平台 【大全】
  • 原文地址:https://www.cnblogs.com/nxopen2018/p/13696649.html
Copyright © 2011-2022 走看看