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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

4 k  W* @3 r! xTeamcenter ITK二次开发源码分享: 创建一个工作流6 Q- m$ }4 k' y6 _  s4 `- P
8 h8 a" v* }7 A. W; k& ?
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    2 c9 L2 {9 `4 w3 l& V  y5 [
  2. #include <stdlib.h>4 m. X! Q7 B5 z% \2 K
  3. #include <TCcore/aom.h>
    / u9 ^1 d7 g+ |
  4. #include <tc/emh.h>
    ! f5 V1 S5 m0 d& `# i
  5. #include <epm/epm.h>+ M6 R! R0 h6 ?* [% o# F
  6. #include <tc/tc.h>
    ! t6 _, ]4 n5 i# t
  7. #include <sa/tcfile.h>
    & N! l8 P' G, G4 G2 t8 w! R
  8. #include <itk/mem.h>
    + C3 H" y4 ~; `) |. ~0 x
  9. 7 R' I' v8 X7 W4 R
  10. #define EXIT_FAILURE 1
    8 m% ^* m: R1 V. T6 u7 }" e3 |( l0 l
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))1 r) |( Q" x4 S$ `* x: S! V# }
  12. static void report_error( char *file, int line, char *function, int return_code)6 e0 _7 X- T2 ~7 H
  13. {6 ]) O5 X/ W( |* k/ ^0 u( c; R
  14.     if (return_code != ITK_ok)/ ~# S+ o: A2 a$ C2 y" P
  15.     {& t; r1 _1 X( a% a
  16.         char *error_message_string;
    ; Z' ~. W$ Z% \
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ( W4 r, Q1 T1 |
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);* i' B1 B" H* f2 f
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);0 A$ k& Y: s6 F. H
  20.         if(error_message_string) MEM_free(error_message_string);
    $ Q& H# ^! I# t5 V$ x
  21.         printf("\nExiting program!\n");7 a, }, M  A6 h$ @  i: e
  22.         exit (EXIT_FAILURE);   
    ; r! H- j8 e+ A- V- Q$ k* I; L8 R1 d
  23.     }
    - N3 Q+ m" @: o! G$ R2 u+ T
  24. }
    7 }) p. G7 o5 E

  25. 0 u) j# z9 I6 F
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    5 i0 P9 E) k( G8 Q/ y5 j2 `
  27. static void check_value( char *function, int value )1 C& t+ J5 R7 V7 D  ^
  28. {, v) L8 d5 U) O7 J1 U* r$ r- @+ S
  29.     if (value == 0)" {) N) O5 D& g1 I9 Q6 \
  30.     {1 h7 a5 N" K( a  w' e* K; F( i
  31.         printf ("\t%s is NULL\n", function);
    / b* ^% ]# g3 a8 Z9 ]- Q7 a
  32.         printf("\nExiting program!\n");+ V$ G4 t: r. p0 _* |
  33.         exit (EXIT_FAILURE);    5 s! H1 [& q8 B1 I
  34.     }
    . n3 g5 u! p' x6 {/ s
  35. }1 W2 ^" c! B) ?3 Y/ ]
  36. % W2 T2 z1 y  j! c7 M. z

  37. , T6 Z0 L0 O9 g% m
  38. static void do_it(void)
    : d, O2 P/ ]0 s5 W6 Y) t, |2 W  A
  39. {" \' @3 c, y- ?
  40.     int
    - K1 j. u! H  ?; D4 x  I0 z6 t$ V
  41.         attach_types[1] = {1};' J4 B8 x  G$ S7 m5 J4 b
  42.     tag_t
    . r2 t8 F7 Y/ U/ X- S. c5 R
  43.         rev = NULLTAG, 6 e, |9 U8 ?  w  X+ j0 x! e
  44.         process_template = NULLTAG,
    ; _5 N9 a) E, F, U( `9 c" ~
  45.         process = NULLTAG;) n4 t- [9 U) O) S6 U2 W' Y
  46. , e0 W3 b) r+ M; a5 ]) f6 i  w
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
      I" D  s2 a% o% I6 d
  48.     EXIT_IF_NULL( rev );; p$ D2 O; O+ Z& u
  49. 6 u6 s# b/ i0 x. q9 z4 i- m
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 8 j5 O% S  V7 \+ B
  51.     EXIT_IF_NULL( process_template );$ T; o9 q! p; q: f4 h) X
  52. ( B( p# H7 Y0 t6 J% [1 a" f. k

  53. ; F( ]+ W& `; a7 K) ?5 Y
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 0 u% I2 _' [: W' O& j8 }* b- e  A
  55.         attach_types, &process) );9 J4 D: _) Z( P2 s5 N3 K# ]

  56. & G- d5 k" b1 G" R
  57.     EXIT_IF_NULL( process );) u) o( D$ w1 h+ D; A! V* \
  58. }0 j$ g3 v5 S1 `; I

  59. 7 k) c  Z: v/ \/ |. q! y
  60. int ITK_user_main(int argc, char* argv[]): ~- N1 N9 u# M2 v  \
  61. {4 P- }/ L8 ^' E1 F
  62.     int/ b5 S) H, K, V# F
  63.         status = 0; . Q' H" t- Q" F1 X' T' u, I# C
  64.    ' s8 h- V3 e, j* I( O
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    # }% d) h4 f- R7 ?: Y5 Q6 J) l
  66.     status = ITK_auto_login();* g( U# [: g7 f& h" v& z
  67.    
    % X8 O/ v: |, R" Z. G5 |
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    3 f2 P) X: L, C
  69.     else
    0 ?& H- n6 `! b' ?! J1 f" k
  70.     {% r1 U* o( Z3 g3 o
  71.         printf("\nLogin successful!\n\n");: W, g6 k! {! V' w* a
  72.         ITK_set_journalling(TRUE);& e) a& p; `7 B) \) j
  73.         do_it();" W# j/ N3 M' k' e% w; l0 I
  74.     }3 u- C! b0 x! B. s/ ^: M
  75.     ITK_exit_module(TRUE);7 n6 R2 d# [, y; n( I  }; K' S4 u
  76.     return status;
    5 y8 l+ C' g4 v" Y% A6 ^% H8 F
  77. }
复制代码
( D, ^: G1 A+ Q4 o, g, D

& N( p5 `* {* H' y
/ T6 a# L: z% s4 W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了