PLM之家PLMHome-工业软件与AI结合践行者

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

  [复制链接]

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

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

清江 楼主

2014-11-17 16:45:55

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

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

x
本帖最后由 清江 于 2014-11-19 10:45 编辑
/ Q' U' f$ B) I! H/ f- M+ L/ y/ A4 `' n8 R, H) S
% N+ W  b' y0 {6 n5 o4 I# x
11月16日培训课程的作业,运行效果如下图:: Z1 c( N; w* g+ M' e/ e
test001.jpg
) V- m5 b4 W% G8 l+ k1 @6 C, X: Y& \
) g  x+ M, s7 P开发代码如下:1 G* a: g& ^! K& }) _* o2 B

; z- r1 h, `& c# q7 P  R! ?0 S; y/* Include files */
9 z# ?+ I) w+ P: b" b" e+ V#include <stdio.h>: ]. Q3 L$ x; D9 x7 i
#include <stdarg.h>3 R) j# s" f/ x. F
#include <uf.h>
- O' o5 A1 D% Y5 }#include <uf_ui.h>
4 _- u+ h! H* i; Y" f# R- n9 f- @. o" e0 d4 o9 ~" |! _
static void ECHO(char *format, ...)* H+ B; E" I5 s* n0 Q
{
: |! \0 A0 n" h" B    char msg[UF_UI_MAX_STRING_LEN+1];2 w" X" D3 M8 O! e: D+ u' P
    va_list args;
5 g2 O3 c* ?8 g* L! q    va_start(args, format);
- E7 H1 U( E9 e6 K* Q1 f- d    vsnprintf_s(msg, sizeof(msg), UF_UI_MAX_STRING_LEN, format, args);
/ O# g8 T2 K, Q: d5 r/ z    va_end(args);" g1 a% x& O: E8 m% }  S
    UF_UI_open_listing_window();
+ u2 |, X: S) Q( s5 Z    UF_UI_write_listing_window(msg);
( Z0 C: P- M4 x7 \    UF_print_syslog(msg, FALSE);
) C  H1 _$ A6 p0 ?( w& W5 C) S}# W6 k% B1 q6 t0 I1 O8 F+ h
- V3 O6 `) x% q3 P) s- X
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
! g/ S' v0 B) k) w$ c. b6 c
/ y6 `( r& g- V( C- ~0 U( Y3 B, gstatic int report_error( char *file, int line, char *call, int irc)1 k, a, P  d7 W7 f
{9 y+ m2 u& h' l5 Q
    if (irc)6 Y# Z3 n; E) P0 n( R2 C, x1 |
    {
( p5 E# t& S! r: f( O  Q' H, }        char err[133];
5 y1 B+ z% l( R5 c3 L, m
2 Q. P, a% \& X5 r/ V        UF_get_fail_message(irc, err);  Y" Y1 D' y% l2 q
        ECHO("*** ERROR code %d at line %d in %s:\n",' [9 n6 }2 y$ p6 y8 C. \  g
            irc, line, file);* @* k2 @% Z$ G* z
        ECHO("+++ %s\n", err);
3 a! {% S/ A/ f8 p( n        ECHO("%s;\n", call);- z2 X0 n' P- V+ G+ v% }5 Q& K
    }
- ^" M. [+ |" ^  G' P
- n( W: |4 V' g& l; M    return(irc);5 I# O+ t6 f; D& I% k; u4 k! X1 \8 j: d
}) q0 o6 a% t# w  I+ l: K, W: G& v) a  B6 T

4 F/ {* r7 R- p0 r+ l) Q, L" ?. H4 @% X
/*****************************************************************************% b0 b4 t- k5 J! t' Q) C/ H
**  Activation Methods7 x7 ?( b( O" f' u7 F
*****************************************************************************/
! e+ }% @0 o; z5 ?# i9 S/ W/*  New Part
, d+ A* _& H; h**      This user exit is invoked after the following menu item is activated:
$ p! _" k" V& m$ |$ n% d3 R. ?% C**      "File->New" */: U1 w; W* ^# Y4 u% M) j" @
extern DllExport void ufcre( char *param, int *returnCode, int rlen )0 b  |, b9 i, S! ~
{
8 R! E+ W9 W- V3 f    /* Initialize the API environment */1 s, V2 f( y7 K( D9 [
    if( UF_CALL(UF_initialize()) )
9 Z; O) _$ F$ `7 a5 B' P- [    {6 a' x6 o) G; }8 w
        /* Failed to initialize */
6 F8 m) Z6 A4 \: Y        return;. F6 H$ I  X9 F9 U) o
    }" w7 A3 C. s4 B' S

* \/ w( w( I( b    /* TODO: Add your application code here */' z8 d: S6 n+ ~4 A9 E$ \

1 Z* z6 e, L  N1 y8 E2 ^" ~        uc1601("新建部件名称规则:XjfXXX(Xjf000)",1);
* g- h$ e$ `, E$ c7 b# u3 m( \& b% g' k; B' L( r
    /* Terminate the API environment */
" u) A7 G9 e4 ~8 V( G# G    UF_CALL(UF_terminate());2 f3 W) u; l% ?( N9 J, z/ o! K; n
}/ t6 C4 U9 `. A' ^+ n

; c: U7 T* \+ ?# S% Q' ]6 T. s/*****************************************************************************
/ O7 R: }7 D% m3 J) H, B**  Utilities6 X8 y; W; E5 V+ N" Y
*****************************************************************************/
" q; W9 T$ b4 E; b- }2 g( N- f: h% x% M0 k' L
/* Unload Handler
6 K( P$ b% n$ P; L2 w# }**     This function specifies when to unload your application from Unigraphics.3 V; p. H1 ~: Y
**     If your application registers a callback (from a MenuScript item or a4 v. A/ _- w, }" u8 ^. y( D
**     User Defined Object for example), this function MUST return
; H3 r! t8 w! w7 c3 g: r- K**     "UF_UNLOAD_UG_TERMINATE". */
( @4 f2 ]) Y' M! r0 n9 \! {extern int ufusr_ask_unload( void ); ^: ^2 N) }2 I5 b
{! v+ l) x. _6 L6 M: c% l, I6 N
    return( UF_UNLOAD_IMMEDIATELY );
( o% a: E0 a/ k) X% G( I, s}
: W+ x; I$ r& p+ D8 u, x& Q4 a, A- g, g+ ]) `, t5 L  F
8 w: k  B  L% I; J# j8 [! @8 _

) s' P8 j/ P% X7 m7 G7 n( t4 A! e2 N" g4 A- T' `

评分

参与人数 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二次开发专题模块培训报名开始啦

    我知道了