zoukankan      html  css  js  c++  java
  • NX二次开发-克隆装配

    NX二次开发-克隆装配

    1. 克隆操作
     1 string CloneAssemble(const string & fileName, const string & outputDirectory, bool isDryrun)
     2 {
     3     //设置操作类型
     4     UF_CLONE_operation_class_t operation_class = UF_CLONE_clone_operation;
     5     UF_CLONE_initialise(operation_class);
     6 
     7     //设置默认克隆操作
     8     UF_CLONE_action_t action = UF_CLONE_clone;
     9     UF_CLONE_set_def_action(action);
    10 
    11     //初始化命名失败结构体
    12     UF_CLONE_naming_failures_t naming_failures;
    13     UF_CLONE_init_naming_failures(&naming_failures);
    14 
    15     //设置输出目录
    16     UF_CLONE_set_def_directory(outputDirectory.c_str());
    17 
    18     UF_PART_load_status_t load_status;
    19     UF_CLONE_add_assembly(fileName.c_str(), &load_status);
    20     UF_free_string_array(load_status.n_parts, load_status.file_names);
    21     UF_free(load_status.statuses);
    22 
    23 
    24     string tmpOutputFile;
    25     if (IsUgmanagerActive())  //集成环境下
    26     {
    27         //设置默认命名为自动生成
    28         UF_CLONE_naming_technique_t naming_technique = UF_CLONE_autogen;
    29         UF_CLONE_set_def_naming(naming_technique);
    30 
    31         //获取克隆后的part名,仅限于集成环境下
    32         char* outputFile = NULL;
    33         UF_CLONE_set_naming(fileName.c_str(), naming_technique, NULL);
    34         UF_CLONE_ask_naming(fileName.c_str(), &naming_technique, &outputFile);
    35         tmpOutputFile = outputFile;
    36     }
    37     else  //本地
    38     {
    39         UF_CLONE_naming_technique_t naming_technique = UF_CLONE_naming_rule;
    40         UF_CLONE_set_def_naming(naming_technique);
    41 
    42         //定义命名规则
    43         UF_CLONE_name_rule_def_t name_rule;
    44         name_rule.type = UF_CLONE_append_string;
    45         name_rule.base_string = "";
    46         name_rule.new_string = "Clone";
    47 
    48         //设置命名规则
    49         UF_CLONE_set_name_rule(&name_rule, &naming_failures);
    50         if (naming_failures.n_failures > 0)
    51         {
    52             UF_free_string_array(naming_failures.n_failures, naming_failures.input_names);
    53             UF_free_string_array(naming_failures.n_failures, naming_failures.output_names);
    54             UF_free(naming_failures.statuses);
    55         }
    56 
    57         string dirName;
    58         string tmpFileName;
    59         SplitFileName(fileName, dirName, tmpFileName);
    60         vector<string> outputList;
    61         SplitStringToList(tmpFileName, ".", outputList);
    62         tmpOutputFile = outputDirectory + "\" + outputList[0] + "Clone." + outputList[1];
    63     }
    64 
    65     //设置是否空运行
    66     UF_CLONE_set_dryrun(isDryrun);
    67 
    68     //执行克隆操作
    69     UF_CLONE_perform_clone(&naming_failures);
    70     if (naming_failures.n_failures > 0)
    71     {
    72         UF_free_string_array(naming_failures.n_failures, naming_failures.input_names);
    73         UF_free_string_array(naming_failures.n_failures, naming_failures.output_names);
    74         UF_free(naming_failures.statuses);
    75     }
    76 
    77     UF_CLONE_terminate();
    78 
    79     return tmpOutputFile;
    80 }
    1. IsUgmanagerActive()、SplitFileName()、SplitStringToList()写法如链接所示,NX二次开发-NX是否处于集成环境下NX二次开发-拆分路径为文件夹和文件名NX二次开发-以指定字符分割字符串
  • 相关阅读:
    Python爬虫之-动态网页数据抓取
    Python爬虫之 正则表达式和re模块
    Python爬虫 XPath语法和lxml模块
    Python 多线程爬虫
    PAT 1037 在霍格沃茨找零钱
    PAT 1033 旧键盘打字
    PAT 1019 数字黑洞
    PAT 1057 数零壹
    PAT 1026 程序运行时间
    PAT 1023 组个最小数
  • 原文地址:https://www.cnblogs.com/xiang-L/p/14132945.html
Copyright © 2011-2022 走看看