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

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

[复制链接]

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

admin 发表于 2014-1-15 19:30:29 |阅读模式

admin 楼主

2014-1-15 19:30:29

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

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

x
) @( p( m' j# l& `! ?8 N
Teamcenter ITK二次开发源码分享: 创建一个工作流
) }! ?0 ]. F- J% J3 o0 `( _0 g) }7 ?$ h
  1. /*HEAD CREATE_A_PROCESS CCC ITK */( i7 N0 Y+ |# A9 T7 D6 n4 Z
  2. #include <stdlib.h>
      F* B5 w9 M  a
  3. #include <TCcore/aom.h>! `% q$ Y+ _3 Y2 e/ B, J2 P
  4. #include <tc/emh.h>
    9 W  t9 I8 \6 \3 T
  5. #include <epm/epm.h>
    : d3 O& W) \, O: w' s
  6. #include <tc/tc.h>
    / ?- T7 g( }5 Y
  7. #include <sa/tcfile.h>
    6 j& h! K* k2 }' q% N- g
  8. #include <itk/mem.h>
    + j4 T+ Y( _$ e1 i4 n: f6 T

  9. * q; o8 ^, N3 ]0 a/ F- R* h
  10. #define EXIT_FAILURE 1
    5 p5 F4 p' j+ S' ^
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    # C& e( M5 b' ~6 R
  12. static void report_error( char *file, int line, char *function, int return_code)
    0 W/ q- x$ Y% g! U+ h
  13. {
    * w2 L: e+ |' r7 n& k
  14.     if (return_code != ITK_ok)% I5 S7 Q  z* z$ D
  15.     {
    3 K& Z% i4 V) @- Y' C$ E
  16.         char *error_message_string;
    % u% i2 e; L$ P( |
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    . X: f) w4 K+ A6 R( C
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);% P& M3 L2 x, |7 z3 T
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ' u( b4 ?' Q8 V$ Q- D  n3 h
  20.         if(error_message_string) MEM_free(error_message_string);
    4 v/ [" d" B/ C/ V3 E' g
  21.         printf("\nExiting program!\n");# ^# f% o! l1 I" `1 I2 @) d
  22.         exit (EXIT_FAILURE);   
    % A( s$ j4 {: \) s4 f# e* G3 }) ~
  23.     }6 @4 E% }, Q; [- D
  24. }0 s9 N; I5 I0 X2 }" t5 w
  25. 9 h- N6 p3 l( u! ~. n
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    6 h/ a, E) l+ a% v0 Y! E
  27. static void check_value( char *function, int value )
    5 k" F$ j; y) a$ n7 U
  28. {5 @. ^% c$ S( V8 G5 _% \
  29.     if (value == 0)0 `' J3 k2 |8 N5 }1 ~' \- }
  30.     {9 i6 m# f7 |; r' k! c
  31.         printf ("\t%s is NULL\n", function);
    / g! h4 x% p6 ^. W% g
  32.         printf("\nExiting program!\n");2 m7 X1 v+ T; I7 C* X
  33.         exit (EXIT_FAILURE);    $ A" a1 {0 ]- K+ j! [, ^4 f: \. ^
  34.     }5 x- r1 [4 S- t3 ]7 Y
  35. }' I" M: ]: n6 B
  36. - G) c0 o/ w8 S! S! k3 T/ A! f
  37. ( \( V- O2 L( }" H. N3 n+ L
  38. static void do_it(void)
    : j" ?( u* }% j4 I4 b6 q. u* |
  39. {
    8 {$ \! A! I8 ]9 ^( e' r
  40.     int ; z' K2 N1 ^8 Q
  41.         attach_types[1] = {1};) H. O3 {2 r0 u" F/ Y0 U2 q
  42.     tag_t
    : @6 ^/ B/ X7 V" f9 N3 u
  43.         rev = NULLTAG, 2 w) w; U/ [- ^8 M0 y
  44.         process_template = NULLTAG, 6 z4 f1 p) k' ~/ ]$ v% W4 c
  45.         process = NULLTAG;
    % W  R. e6 Q4 e  f1 a( Y

  46. 3 F' Y' a3 n$ w8 b- C# T
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    + h; y: i4 b3 h! O& I
  48.     EXIT_IF_NULL( rev );; b" r) n  g/ i( V0 a+ u

  49.   J- l8 M. S5 f+ \; v) b
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    5 T: U0 ~- y5 R- M0 V+ x5 u
  51.     EXIT_IF_NULL( process_template );
    . H& M0 d7 a3 A7 {- j4 y* v) v# s
  52. 9 }) R  }7 V" c" S

  53. 5 z: R9 {! @1 d! U# E. O9 _
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    7 P6 g5 B& j0 H0 H9 b, V
  55.         attach_types, &process) );
    ( x7 d- F' t  |: ?" k

  56. 0 _  ^0 M6 D) W. Z7 D  Q9 T6 v! L* N# g
  57.     EXIT_IF_NULL( process );9 ~( ^. h: x* N4 ~5 C* o2 z& p  ^' [7 Q
  58. }% a9 }7 k. I) n& C( P3 p( H

  59. 9 C6 Y' H1 c7 ?6 o* E& Z" p( i  F
  60. int ITK_user_main(int argc, char* argv[])( H$ }: ?* {$ N* m# T3 S9 c4 s
  61. {
    ! [0 Z, e. R6 {! ?
  62.     int
    ) v1 J6 \/ Q* _+ V2 A9 o% |; f
  63.         status = 0;
    $ W0 o8 p+ Y% o' Y. @$ N
  64.    " ^. X. V1 w2 U* B( A" y9 E
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );8 L' s# X8 @  ]7 Q: e( S5 t2 Q+ d
  66.     status = ITK_auto_login();6 b8 q5 {+ R) B
  67.    % q% d/ d- K9 c1 V
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");/ J0 V8 Z- K+ p# |
  69.     else
    7 m/ K1 a7 |/ S" r" {) B; o, c
  70.     {0 t9 M( A! o2 q' b1 F9 |
  71.         printf("\nLogin successful!\n\n");
    , \: K; z- M) K
  72.         ITK_set_journalling(TRUE);
    7 B1 N) k' x( u  c( I
  73.         do_it();
    $ P& G; `! a# @( a: {8 S. g) z
  74.     }) y8 w$ k# F: `5 I
  75.     ITK_exit_module(TRUE);
    + u5 W/ M# Y& |( }2 Q' G4 `0 ^, Y
  76.     return status;
    + Y4 z: Z, L& d0 D  `3 n8 X
  77. }
复制代码
  W- E+ z0 b0 Y) R9 s
1 S/ f# B1 m" \

' @  J% V& `; d4 p" [' h& `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了