PLM之家PLMHome-工业软件践行者

teamcenter ITK二次开发源码分享: 创建一个工作流

[复制链接]

2014-1-15 19:30:29 5028 0

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82172
QQ
发表于 2014-1-15 19:30:29 | 显示全部楼层 |阅读模式

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

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

x

6 y% ^1 c/ J8 Q. P0 ITeamcenter ITK二次开发源码分享: 创建一个工作流
: N% j/ P6 x5 K- K* Q$ N$ K- {" l( S) v8 w
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    ) L8 N9 e, V; g. i6 ]
  2. #include <stdlib.h>
    & w4 Z! v6 G: u: d
  3. #include <TCcore/aom.h>9 e6 f( Q- @+ F* v! |' G( H
  4. #include <tc/emh.h>/ w- Y1 n1 Z, E* t% Y' {. \
  5. #include <epm/epm.h>
    % h, n0 \: z$ d. V& f4 d
  6. #include <tc/tc.h>  j  X* o) F' ]& W; S! B, i
  7. #include <sa/tcfile.h>
    * W$ T7 M3 [0 |% l% `6 t8 p5 m$ f
  8. #include <itk/mem.h>
    $ T& y8 T- ~5 j9 F& P$ j6 K- F
  9. 0 ^# t- |3 P, P
  10. #define EXIT_FAILURE 1
    ! V/ K: r+ }; f' {! U7 K2 v
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))% S6 |2 K( b# ]2 K3 b* w
  12. static void report_error( char *file, int line, char *function, int return_code)
    4 E2 A/ w2 `" \2 E' `; x8 A
  13. {
    2 K. x% ^/ i5 C: P
  14.     if (return_code != ITK_ok)2 O& x' z# W+ q1 [/ w5 J% {
  15.     {: X% o+ u6 q; t* L
  16.         char *error_message_string;
    3 `8 w9 A; X2 M& O# q
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
      D5 f. Y$ ~* [
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    & A  L  I$ F( K7 r
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);- y( z/ k& V( `) ^
  20.         if(error_message_string) MEM_free(error_message_string);2 s% ~4 K% r" r! h) c
  21.         printf("\nExiting program!\n");
    4 z. m; B- A" S5 i
  22.         exit (EXIT_FAILURE);   
    1 S  S5 @$ B/ E& ^. G% W
  23.     }: W& V; Z) Q7 d9 }
  24. }: X/ t" d: l6 I, ^% n+ W0 f

  25. 9 h$ R+ C- v& E% Z* o
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))& @" I. k5 P" |& e  K
  27. static void check_value( char *function, int value )5 j3 _! s2 [$ ^$ s$ W6 o
  28. {' y- O3 V% b) Q9 [: n2 p
  29.     if (value == 0)
    . U" M6 b5 k# L4 i! O, F
  30.     {
    ! h; o4 V1 {- P$ V3 y+ r! Y- N: J
  31.         printf ("\t%s is NULL\n", function);1 d9 ]  r; O1 g: Y2 M7 h0 R2 b
  32.         printf("\nExiting program!\n");
    # m1 W2 D+ T+ w- B3 i  q  q
  33.         exit (EXIT_FAILURE);    5 {% t+ _6 V' z) r# g. A" K
  34.     }3 G; d  d( Q5 n& I7 m. U% e# }
  35. }
    $ v* U5 F4 F. |" a

  36. 4 j) m6 d" G% Y
  37. ) O) |/ O% [9 ]% K7 b$ G2 T
  38. static void do_it(void)
    , B5 B$ U# C, K( d
  39. {1 v. g; ^" N) W; ^4 j+ W
  40.     int $ s6 i6 |$ @3 {# y6 H1 @. b  F
  41.         attach_types[1] = {1};
    7 t' d* g  V, u0 W7 l; r( H1 E
  42.     tag_t 3 W/ R  Q% F5 @( F
  43.         rev = NULLTAG,
    $ `; ~2 F" _$ B  b
  44.         process_template = NULLTAG,
    / m" ~7 d7 n$ M1 E8 _
  45.         process = NULLTAG;
    - E' A: Y, y. |0 H) {6 E

  46. + v- r- u! t2 h% \: r5 S/ I, ~
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    % O! a8 `* y- j. m7 W! n$ r* [$ B+ F
  48.     EXIT_IF_NULL( rev );( c# M5 m. Y2 D5 e3 Z1 L  f+ k

  49. , `/ O6 \. y0 L& b: R! q
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ( _- i3 ?, C. R% o5 w. X, z6 N" T
  51.     EXIT_IF_NULL( process_template );2 |9 c5 a- S) I; B: k8 j

  52. 0 C6 \& X3 p3 ^" D! t" `

  53. 4 o. p6 B- B' y* Z0 {+ i; F, M' z
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, # M' `: @8 C! `, Q& b* y3 H! m
  55.         attach_types, &process) );2 p* Z8 P$ G/ Q8 O2 d$ n

  56. 9 Q8 m6 g" Y8 z; M( N7 c
  57.     EXIT_IF_NULL( process );
    4 i3 D+ W) Z: E9 L; {
  58. }( Y0 }3 Y9 `: p8 e5 I

  59. 2 p2 Y' e) r' }* `
  60. int ITK_user_main(int argc, char* argv[])4 ^9 W1 b8 w8 V& c+ Q! F
  61. {2 _( |$ J+ _# O& V
  62.     int: U+ b4 y) S! e2 f; E
  63.         status = 0; # ?- P  C; E6 x# Z5 L
  64.    , d( h+ ]7 P8 O3 _! w
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    3 ?, Z, g! ?- Y0 J7 p( @
  66.     status = ITK_auto_login();3 u& A, X6 _1 W# P! W8 a3 q! g' I
  67.    
    ) F$ T3 R: I. ?1 S3 l
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");  Y. m3 P3 Q* A7 R
  69.     else
    + M: l5 m6 Q: s' V! }
  70.     {
    / v3 i* R& N* L4 r
  71.         printf("\nLogin successful!\n\n");
    6 B* g" O5 J% G) j
  72.         ITK_set_journalling(TRUE);
    % F  R+ }" Y7 c( Y' Q% W- f& }3 @
  73.         do_it();
    9 ~) b8 a7 q6 N" @1 o
  74.     }( c( V/ \: \& ^' t
  75.     ITK_exit_module(TRUE);
    0 |4 e! p5 b! ]7 n
  76.     return status;
    % A! L) a) T3 k
  77. }
复制代码

! f$ y* p/ j7 U: r( P
; N& w9 E0 I) `. C# [
3 u) r. j, V4 ^0 j
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了