点击查看详细介绍

添加装配组件 NX二次开发 API 源码实例

pooltool 9年前 7553 58

购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008  QQ号:85585969  


添加装配组件源码实例:

#include <stdio.h>
#include <string.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_cfi.h>
#include <uf_part.h>
#include <uf_assem.h>#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
static int report_error( char *file, int line, char *call, int irc)
{
    if (irc)
    {
        char err[133];
        UF_UI_open_listing_window();
        UF_get_fail_message(irc, err);
        UF_UI_write_listing_window(err);
        UF_UI_write_listing_window("\n");
        sprintf(err, "error %d at line %d in %s\n", irc, line, file);
        UF_UI_write_listing_window(err);
        UF_UI_write_listing_window(call);
        UF_UI_write_listing_window(";\n\n");
    }
    return(irc);
}
static void report_load_status(UF_PART_load_status_p_t status)
{
    char
        msg[133];
    int
        ii;
    if (status->n_parts > 0)
    {
        UF_UI_open_listing_window();
        UF_UI_write_listing_window("Load notes:\n");
        for (ii = 0; ii < status->n_parts; ii++)
        {
            UF_UI_write_listing_window("  ");
            UF_UI_write_listing_window(status->file_names[ii]);
            UF_UI_write_listing_window(" - ");
            UF_get_fail_message(status->statuses[ii], msg);
            UF_UI_write_listing_window(msg);
            UF_UI_write_listing_window("\n");
        }
        UF_UI_write_listing_window("\n");
        UF_free(status->statuses);
        UF_free_string_array(status->n_parts, status->file_names);
    }
}

●●●请先 登陆注册 后查看●●●

void ufusr(char *param, int *retcode, int paramLen)
{
    if (UF_CALL(UF_initialize())) return;
    do_it();
    UF_terminate();
}
int ufusr_ask_unload(void)
{
    return (UF_UNLOAD_IMMEDIATELY);
}
static void build_copy_partname(char *copy_fspec)
{
    char
        dspec[MAX_FSPEC_SIZE+1],
        part_name[MAX_ENTITY_NAME_SIZE+1],
        part_fspec[MAX_FSPEC_SIZE+1];
    tag_t
        part = UF_PART_ask_display_part();
    UF_PART_ask_part_name(part, part_fspec);
    UF_CALL(uc4576(part_fspec, 2, dspec, part_name));
    UF_CALL(uc4578(part_name, 2, part_name));
    strcat(part_name, "-new");
    UF_CALL(uc4575(dspec, 2, part_name, copy_fspec));
}
int main( int argc, char *argv[] )
{
    int
        cnt = 0;
    tag_t
        part;
    char
        new_fspec[MAX_FSPEC_SIZE+1],
        part_name[MAX_FSPEC_SIZE+1];
    UF_PART_load_status_t
        status;
    if (!UF_CALL(UF_initialize()))
    {
        UF_CALL(uc4624(0, argc, argv));
        while (uc4621(part_name) == 1)
        {
            printf("%d.  %s\n", ++cnt, part_name);
            UF_CALL(UF_PART_open(part_name, &part, &status));
            report_load_status(&status);
            if (!status.failed)
            {
                do_it();
                build_copy_partname(new_fspec);
                if (!UF_CALL(UF_PART_save_as(new_fspec)))
                    printf("\tsaved as %s\n", new_fspec);
                UF_CALL(UF_PART_close_all());
            }
        }
        printf("\nProcessed %d parts.\n", cnt);
        UF_CALL(UF_terminate());
    }
    return 0;
}


2

最新回复 (58)
  • lxiaoj111 VIP会员 9年前
    1

    感谢分享q我来编译一下,看能不能实现

  • qazqaz000 9年前
    2

    感谢分享感谢分享

  • pengfujun VIP会员 8年前
    3

    感谢分享感谢分享

  • tommyzjc 8年前
    4

    看看能不能实现,谢谢分享。

  • wangning03 8年前
    5

    该部分隐藏内容需要回复后查看 *

  • Jim642834406 8年前
    6

    学习下

  • q1355188058 8年前
    7

    学习中试试。。。。。。。。

  • homeend2 8年前
    8

    感谢分享感谢分享

  • guizinj 8年前
    9

    都得回复才可以看。男女

  • shelfw 8年前
    10

    感谢楼主分享!学习一下!

  • gradual 8年前
    11

    谢谢楼主分享..........

  • wjh429570094 8年前
    12

    学习学习,最近正在搞这个

  • king_chinese VIP会员 8年前
    13

    这么好的贴子,必须回的

  • wangaibohit VIP会员 8年前
    14

    很好,值得学习。很好,值得学习。很好,值得学习

  • www2171668 7年前
    15

    感谢楼主分享!学习一下!

请登录后发表新帖