NX二次开发(cam)-创建几何

/*****************************************************************************
**
** NXOpen_Wizard19.c
**
** Description:
**     Contains Unigraphics entry points for the application.
**
*****************************************************************************/

/* Include files */
#include <stdarg.h>
#include <stdio.h>
#include <uf.h>
#include <uf_ui_types.h>
#include <uf_ui.h>

#include <uf_ncgroup.h>
#include <uf_setup.h>
#include <uf_ui_ont.h>
#include <uf_obj.h>
static void ECHO(char *format, ...)
{
    char msg[UF_UI_MAX_STRING_BUFSIZE];
    va_list args;
    va_start(args, format);
    vsnprintf_s(msg, sizeof(msg), _TRUNCATE, format, args);
    va_end(args);
    UF_UI_open_listing_window();
    UF_UI_write_listing_window(msg);
    UF_print_syslog(msg, FALSE);
}

#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_get_fail_message(irc, err);
        ECHO("*** ERROR code %d at line %d in %s:\n",
            irc, line, file);
        ECHO("+++ %s\n", err);
        ECHO("%s;\n", call);
    }

    return(irc);
}


/*****************************************************************************
**  Activation Methods
*****************************************************************************/
/*  Explicit Activation
**      This entry point is used to activate the application explicitly, as in
**      "File->Execute UG/Open->User Function..." */
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
{
    /* Initialize the API environment */
    if( UF_CALL(UF_initialize()) ) 
    {
        /* Failed to initialize */
        return;
    }
    
    /* TODO: Add your application code here */

     //创建加工设置
    UF_SETUP_create(UF_ASSEM_ask_work_part(), "mill_planar");
    //获取当前NX的加工设置TAG
    tag_t setup_tag = NULL_TAG;
    UF_SETUP_ask_setup(&setup_tag);
    if (setup_tag == NULL_TAG)
    {
        uc1601("提示:请先初始化加工环境!", 1);
        return;
    }

    //获取几何视图的根节点
    tag_t geom_group = NULL_TAG;
    UF_SETUP_ask_geom_root(setup_tag, &geom_group);

    //创建加工坐标系
    tag_t mcsTag = NULL_TAG;
    UF_NCGEOM_create("mill_planar", "MCS", &mcsTag);

    //添加成员
    UF_NCGROUP_accept_member(geom_group, mcsTag);

    //修改加工坐标系的名称
    UF_OBJ_set_name(mcsTag, "MyMCS");

    //创建几何体
    tag_t workpieceTag = NULL_TAG;
    UF_NCGEOM_create("mill_planar", "WORKPIECE", &workpieceTag);

    //添加workpiece到加工坐标系下
    UF_NCGROUP_accept_member(mcsTag, workpieceTag);

    //修改workpiece的名称
    UF_OBJ_set_name(workpieceTag, "MyWorkPiece");

    //刷新加工导航器
    UF_UI_ONT_refresh();

    

    /* Terminate the API environment */
    UF_CALL(UF_terminate());
}

/*****************************************************************************
**  Utilities
*****************************************************************************/

/* Unload Handler
**     This function specifies when to unload your application from Unigraphics.
**     If your application registers a callback (from a MenuScript item or a
**     User Defined Object for example), this function MUST return
**     "UF_UNLOAD_UG_TERMINATE". */
extern int ufusr_ask_unload( void )
{
    return( UF_UNLOAD_IMMEDIATELY );
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值