PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

[交作业] NX9二次开发培训作业001_使用ufcre入口函数

  [复制链接]

2021-8-23 16:29:12 3340 1

清江 发表于 2014-11-17 16:45:55 |阅读模式

清江 楼主

2014-11-17 16:45:55

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 清江 于 2014-11-19 10:45 编辑 1 N6 X  [7 T: B! _

- W: m! ^0 O! R: @4 I
) ]' A. ~' k! ]11月16日培训课程的作业,运行效果如下图:3 S) s4 t: @2 Z6 @1 L
test001.jpg 7 L+ _- k5 Z2 `9 r" T

5 M' S: F1 ~$ \( O! w5 _+ [- g$ E开发代码如下:1 i! q/ [; l3 m  F+ i- {

$ x$ d+ K  v) K2 w; O% ]/* Include files */- ?: x1 K1 N  z4 U4 k; M/ s
#include <stdio.h>, b2 D% ?$ J) {; D
#include <stdarg.h>
$ z5 o# y7 o; p  ~# L#include <uf.h>: H5 g# O9 }" V
#include <uf_ui.h>
6 C* s8 S$ q9 z/ Z$ X" }2 b! ]( A; {* O& _7 A$ ^1 |) R
static void ECHO(char *format, ...)3 [5 m7 m& x; h/ b: q; y* w- b
{, T8 V7 J0 g* B7 \3 j% ~
    char msg[UF_UI_MAX_STRING_LEN+1];
$ p7 V7 s5 J( a- \    va_list args;% v4 Z; T6 O6 b; M4 `
    va_start(args, format);
1 \; k0 K/ U& }; e    vsnprintf_s(msg, sizeof(msg), UF_UI_MAX_STRING_LEN, format, args);6 I3 b2 g6 F8 K+ K, o3 L! s. [3 T) Q3 U
    va_end(args);
4 D( R( D1 x" z/ c7 G1 ?    UF_UI_open_listing_window();. Y, ]9 B5 \* P  ?) `0 X8 }0 p# j7 b
    UF_UI_write_listing_window(msg);' u; t0 [: f/ a2 ~% Z
    UF_print_syslog(msg, FALSE);
2 m+ N& B5 z5 [) T7 ?}, t- W& L3 s0 N
6 |' z+ ~, n) T  C" j2 n) T4 R) e4 P
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))0 P2 B) @: G5 g: d

9 e  d( d3 `9 E- `$ `  u0 a3 X( Nstatic int report_error( char *file, int line, char *call, int irc)
8 h" m3 L+ G$ E5 g2 J" Z{
2 Q& i- P. q$ T+ M    if (irc)9 D4 V* [; x/ `/ F$ |0 c4 }" I
    {
5 ^( X6 R0 Y5 N        char err[133];1 H5 b1 [0 k; S4 K

. U5 u; ]8 L' m# g7 s* a9 B$ ]: j        UF_get_fail_message(irc, err);
/ F4 q4 m' \+ i5 E2 [) S2 _        ECHO("*** ERROR code %d at line %d in %s:\n",
* a1 N- B* P: h            irc, line, file);5 L$ L/ K; T  x" c% ^
        ECHO("+++ %s\n", err);
6 c! O0 Q+ P4 |( J4 p: s        ECHO("%s;\n", call);
( f0 ~1 k3 q! _+ S4 N+ k- W' N4 I    }
/ R/ r: p+ {/ A- h. G$ ~
# v# ?, K! y7 {6 r& M    return(irc);# \& b# N* I* C' j# T1 S( h
}
8 N, n1 [# S! V) @) H4 G2 U$ {* u" z6 _+ E

) J0 _2 r2 J( V4 N/*****************************************************************************
3 f9 ]) j& W. z" v**  Activation Methods
# K7 W9 c0 G# K. ~& _; i, P: ?7 r% k; [( ^*****************************************************************************/% o9 g' I& {5 V: \; C
/*  New Part
0 Q7 Z* d! e6 y6 P$ _; v: l**      This user exit is invoked after the following menu item is activated:
1 N  P: B4 J. s  h$ y**      "File->New" */3 ?9 u+ N# Q$ n
extern DllExport void ufcre( char *param, int *returnCode, int rlen )
# g4 c* K+ S; P7 _{. J8 b' e+ o+ f# Z% t
    /* Initialize the API environment */( n9 a1 J9 w' X
    if( UF_CALL(UF_initialize()) )
1 C* k3 l2 @7 u9 Z; w    {
. N8 d) Q7 j8 W+ `0 {        /* Failed to initialize */
2 b2 C8 p0 e. I+ m5 {/ R/ ^        return;
. i0 Q- @" B. q' H; c: N    }
+ _; P+ S. O- y/ Y2 J* h. T3 i
$ J( I- L2 T! H- U1 I+ h( q    /* TODO: Add your application code here */
" O# s/ z# e0 }
4 \  b# C4 m1 S# v, ^' N        uc1601("新建部件名称规则:XjfXXX(Xjf000)",1);
! Q9 P* H7 a5 l2 F' Q/ v$ d2 S, j2 z. _. E2 O9 c
    /* Terminate the API environment */
% Z3 f5 ^. C0 m    UF_CALL(UF_terminate());
. J: w  G+ q+ `6 b5 T}7 g. s& n0 O( \+ Z: u& o

- Y) ^' C5 W- [: g8 [) {/*****************************************************************************
* H: y! j) r0 u6 C  m1 I# t) F**  Utilities; h6 K- j; ~$ _/ ^8 r
*****************************************************************************/) P$ [" W6 x' y: V; p) W

" [& a$ D; Y+ J/* Unload Handler* N$ j- ^( x$ j
**     This function specifies when to unload your application from Unigraphics.
8 T5 b4 `+ U# P" j# q**     If your application registers a callback (from a MenuScript item or a
9 C" \; e4 x# d% c. \**     User Defined Object for example), this function MUST return
9 R8 g! N+ R% ^3 R2 [1 q**     "UF_UNLOAD_UG_TERMINATE". */
) U8 ?% A; Y+ [2 E" {9 ^; {extern int ufusr_ask_unload( void )
* i4 l+ E' N" q! b5 z. e{
1 F6 b+ L" G% n  N2 O9 x# f    return( UF_UNLOAD_IMMEDIATELY );
. c2 e" H% @/ M  t' E}$ Z! ^7 `: k! B1 e
$ r; v$ r( y* B0 }

/ D! [- `; S5 }7 V
0 v" s" t: o/ P4 [4 Q! M; y
" y/ T% f% x8 ?0 p0 f

评分

参与人数 1PLM币 +5 收起 理由
admin + 5 很给力!

查看全部评分

上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复1

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了