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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
% q4 H9 b+ a1 P7 ^, J% P
Teamcenter ITK二次开发源码分享: 创建一个工作流' b2 p* i' S# z* w
+ P* I7 V& {8 }* x
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    * ?( Q% `( q) z1 ~! q. A# y1 E
  2. #include <stdlib.h>
    0 l* q( Z0 L/ b
  3. #include <TCcore/aom.h>
    & f; I# t, S, b# \; L
  4. #include <tc/emh.h>2 V& y  w- {, X1 V% g+ q& X% d$ R9 D
  5. #include <epm/epm.h>7 y8 C8 |' X8 Z* {: E9 n0 _
  6. #include <tc/tc.h>5 a. U6 {( j9 T* O& X
  7. #include <sa/tcfile.h>
    ( |' }' Z; P: I$ x( g
  8. #include <itk/mem.h>* V- P1 `5 O' e( q% A

  9. : |5 f1 y" k4 S
  10. #define EXIT_FAILURE 1 ! N9 v) t) Y, a% Q, J
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    / e  F: C) R& ]; \  s0 y. c- V6 j
  12. static void report_error( char *file, int line, char *function, int return_code)
    & o$ C! u" O# r: r
  13. {
    ) [! @* K& {7 z  J  f) `
  14.     if (return_code != ITK_ok)
    ; E5 y% B) _3 M
  15.     {/ Y4 E. |. n/ k4 x; M8 Q. v  L% C2 x5 p
  16.         char *error_message_string;
    " M# F$ n  J. |  |+ h5 a
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);1 ^) S  t( Q9 f* s, S7 z
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);  ?" P7 A6 X( D& v$ q$ W- a
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    - ?3 y5 e! f+ s2 `% Q1 i+ C# }
  20.         if(error_message_string) MEM_free(error_message_string);  w  x9 ~: _% X$ @: w
  21.         printf("\nExiting program!\n");
    - C% S  G' i: l6 P
  22.         exit (EXIT_FAILURE);    * U. J4 X) {4 a% q* R' u; ?
  23.     }5 U# e5 h  x0 @8 \8 ~
  24. }
    9 L( d5 G4 B# q8 e% H6 c
  25. 2 @: S3 u1 E7 a
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ) }+ C$ I& N1 T, m2 r4 s
  27. static void check_value( char *function, int value )" s/ L. \0 l+ i" F0 ~% q
  28. {
      a3 ?$ X% B% z6 D; L/ m: s% b
  29.     if (value == 0)8 f+ l* A! k- h2 O( D. F3 R! k' r
  30.     {( Y& V& Q& k/ B; B8 H& ?. i
  31.         printf ("\t%s is NULL\n", function);
    6 e. f+ e4 A; R, }$ _- k
  32.         printf("\nExiting program!\n");
    . u* G% M$ U. z$ N, @8 _
  33.         exit (EXIT_FAILURE);   
    : j3 P# S2 G% l
  34.     }2 r  E% A( i, @- p
  35. }$ h4 H# f/ `5 R+ A8 E4 |

  36. 2 u0 z/ s1 T* `* x$ `; l
  37. 2 F1 W. \! q8 }/ e
  38. static void do_it(void)% C; S9 X5 w* A  i4 H9 D, A$ K+ c5 Q, d
  39. {
    ! C  y4 Q. t' Q! V. |
  40.     int   W3 {' G: ^' d0 o
  41.         attach_types[1] = {1};; U# \# ^3 q  @* M' t" J. _
  42.     tag_t   \. Z* A3 c3 }: i( b) s3 J
  43.         rev = NULLTAG,
      d  x. f5 \. _4 o# I* `+ S
  44.         process_template = NULLTAG, , J1 q  i' P# q# F" Y1 d
  45.         process = NULLTAG;5 V; |& R2 f8 J2 n% z, ]
  46. - j+ N* ]& i# g. b. d
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );$ b; e( m* |! s% Z6 I: O
  48.     EXIT_IF_NULL( rev );# L$ X/ T1 Y- q$ Z$ o( ~* ~
  49. , \& ~3 _; [1 h. `: Z
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 8 ~! j5 v/ H4 V1 v
  51.     EXIT_IF_NULL( process_template );
    ( ~% y$ X6 \1 p1 {

  52. 4 q. a/ P/ k1 F5 R- {2 U# U3 T
  53. 4 ~9 d7 T: G9 P
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    . n' T9 i# @0 |3 D8 f
  55.         attach_types, &process) );2 }. ~% W$ i* f, b0 u& x
  56. ; M9 F; O9 H# j6 O8 a2 Q" t" O
  57.     EXIT_IF_NULL( process );
    ( u/ ?/ ^, g, h) u  N
  58. }: K2 X8 v# j$ e" \# `

  59. ' k5 J* B3 `0 Q
  60. int ITK_user_main(int argc, char* argv[])% ]! w% \/ N6 l3 `2 E6 U
  61. {: ?* f$ \; `5 Q+ A5 R
  62.     int4 K: d3 r  t* @, W
  63.         status = 0; 9 M) c) H) y* |+ m) U
  64.    
    ; K4 e" O/ n1 m! ^' P' r. y. R
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    2 I; ~+ g/ z/ ]5 u, r  H
  66.     status = ITK_auto_login();
    ) x2 H1 m1 e) ]$ M
  67.    5 _! x# o- @' p  ~0 W$ w' X
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");% \% z* Y: q( f6 T% h+ _7 y2 C6 c
  69.     else
    5 F3 Y( P. r* ~! u% r. Q" y9 m
  70.     {; l% o" i: @7 U
  71.         printf("\nLogin successful!\n\n");
    9 |( `  q$ T+ {0 a7 n  k
  72.         ITK_set_journalling(TRUE);  }) \8 Y. Z8 O4 ~  I- j
  73.         do_it();
    0 ]- f/ P. ?3 n8 x* g8 A) f
  74.     }
    . I  G6 o, w% u5 d
  75.     ITK_exit_module(TRUE);  {# F' {9 i& N& K+ K% [' L! S+ ]& ~
  76.     return status;
    5 D1 ]9 y  k( D/ ~1 q2 `6 X* G
  77. }
复制代码
0 W  A1 i* T. u
7 F3 Q* C. n/ j1 {- ~! o* T7 n

* G  v4 K4 v. ]3 v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了