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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

* D) h1 b# S$ a0 C7 C" aTeamcenter ITK二次开发源码分享: 创建一个工作流
6 U5 _; u$ C: v$ ]
$ T8 [6 {7 m# B
  1. /*HEAD CREATE_A_PROCESS CCC ITK */" D" t( a7 ]6 s) o, |
  2. #include <stdlib.h>
    % b: B$ |1 k1 p! r1 ~
  3. #include <TCcore/aom.h>
    ' b% y% Y7 R2 R  g+ G8 ~% z
  4. #include <tc/emh.h>4 l' H" ^6 `; G9 C6 H9 l% o8 o( T7 m
  5. #include <epm/epm.h>( _% j( u; Z* |4 Q7 k: x5 k
  6. #include <tc/tc.h>- e5 s$ L' a+ e- e
  7. #include <sa/tcfile.h>; o. c6 y6 r  n) P9 h0 M
  8. #include <itk/mem.h>' Z9 O& M! V5 O5 B( m' D

  9. ' r: Y) B1 P1 d5 {. T
  10. #define EXIT_FAILURE 1
    $ w1 T  N% u/ o( n5 s
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))" r" L5 l+ K- s. u
  12. static void report_error( char *file, int line, char *function, int return_code)/ ^1 a8 s5 Q* b6 ?
  13. {2 h. B/ H0 H2 `5 X! ~
  14.     if (return_code != ITK_ok)
    6 J& y. B, B" q  C' J- D8 m; z
  15.     {
    5 K# z* S2 [. y: m
  16.         char *error_message_string;
    6 I- K0 S* m" ?9 s9 n4 {
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ' x- m9 x1 a* D2 p% Q5 K
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);* ?* `5 }$ R6 M4 a
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ; R, c7 R0 Q) p
  20.         if(error_message_string) MEM_free(error_message_string);5 e* L$ Q7 X& U8 w1 @5 @
  21.         printf("\nExiting program!\n");# r1 u  s1 @) X, `9 z3 X
  22.         exit (EXIT_FAILURE);      S+ g& Z- _, u6 \
  23.     }8 @. _: W, [- P% \( K
  24. }
    7 \1 V1 n- {( D) v$ h

  25. / h) V# d0 l+ k7 U: t8 W
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X))). U' v& p" b3 W) w
  27. static void check_value( char *function, int value ): ^) a/ F4 R* u. @
  28. {
    4 P4 u  s6 Y" C: I$ x" u
  29.     if (value == 0)6 `2 a/ k$ n, N7 W
  30.     {
    , o" `7 x' K6 B% U% l: R
  31.         printf ("\t%s is NULL\n", function);1 H- q3 |  Z: d8 Y, R8 k
  32.         printf("\nExiting program!\n");3 `2 Y  t; m- n" J7 @
  33.         exit (EXIT_FAILURE);    % k5 ~! s/ K4 T0 j
  34.     }/ v: l" c3 O; E' h8 |4 f0 I  m
  35. }6 U9 ~8 J) E, |1 J- N" g( n
  36. 8 l' v; d0 u0 Z9 v' [2 ~3 }' g7 _0 `

  37. 7 \3 Z6 z/ u$ L$ W- K* d) W% k
  38. static void do_it(void)5 v# Z1 h: u; Y- s- x& u
  39. {
    # N1 X, r5 d% R
  40.     int 4 e/ O" N. M: E" P. Q* q  F
  41.         attach_types[1] = {1};4 F7 g8 K7 B, {
  42.     tag_t % \0 _! p/ n; w5 d5 G% X
  43.         rev = NULLTAG, & {2 O" p1 o! U0 U1 N( q/ J
  44.         process_template = NULLTAG,
    / U- A  ]; P- K! g) R
  45.         process = NULLTAG;2 {( n6 J7 O8 c, O; Q
  46. : y  d. a/ L6 r7 c5 W
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    - ]% d9 z1 y2 [8 W4 C
  48.     EXIT_IF_NULL( rev );. n  M2 U: n: H- v& h6 m

  49. . \6 T& \2 Z* t6 j, `% h- o3 l
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 8 B# A4 V. Q8 f( s$ W
  51.     EXIT_IF_NULL( process_template );5 }7 ^5 g6 y6 n& n

  52. " R6 D" n; i) L0 w9 a5 ]

  53. 3 _% T; d& d' b) u
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    / Q' R; i+ i8 j6 ~2 d1 n5 l: ?; w
  55.         attach_types, &process) );
    2 ^; l2 K+ h2 ~( \+ E; Q

  56. " I( `( A4 ~5 g- b
  57.     EXIT_IF_NULL( process );* F2 T  \" ?0 f! ?  G2 u5 }
  58. }
    ) S% M1 A0 w9 ?7 y

  59.   D) ?( Y: Q+ }4 z! e3 k
  60. int ITK_user_main(int argc, char* argv[])
    - w- `/ I- `1 B% e. [3 Q
  61. {
    2 |6 V; j% m8 {, y3 F
  62.     int# k4 M9 T7 }1 |" Y2 S
  63.         status = 0;
    6 w5 Z- v! y! g, t! j
  64.    ' q9 w2 \5 t% q# O7 E$ |* \, P
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    * _  @' q: V. L& a( G
  66.     status = ITK_auto_login();
    * w1 X* z# r& \6 K$ w7 D: E/ @$ v& l
  67.    + [1 t, o  P* k( e
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");7 U  _/ d$ y( p. e% A$ {
  69.     else7 U0 @! ]5 Y9 g: e/ Y
  70.     {# S) n' D6 k# }; {
  71.         printf("\nLogin successful!\n\n");
    : {$ O: [# R- K3 B& w) p4 t2 i
  72.         ITK_set_journalling(TRUE);
    2 K2 S$ }1 J9 |& [( ?
  73.         do_it();5 ~+ s- ^: G- @5 j
  74.     }" J9 @2 B3 |) t7 S( M, S- @& f7 w
  75.     ITK_exit_module(TRUE);' j* _; P: X/ H/ n
  76.     return status;
    ! E, J) G5 v$ t" L4 `* P/ A3 d
  77. }
复制代码
, W. M8 Z% m) r3 r. x
9 `3 I* h; ]/ n; R/ k- J

& U2 J/ {! N" ^2 T. P5 k+ o0 v8 b
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了