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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

3 O9 T! i# a1 @/ w# \Teamcenter ITK二次开发源码分享: 创建一个工作流) b# ?- w: k, Z  d; c. `

9 Z7 ~3 F) c: \  s+ k# F  ^
  1. /*HEAD CREATE_A_PROCESS CCC ITK */4 b* v& y# K3 w+ c+ Y9 S* Y
  2. #include <stdlib.h>
    & J2 W5 n9 N; @. w) r% y
  3. #include <TCcore/aom.h>3 T/ E5 C' A( c7 C5 q' C. O
  4. #include <tc/emh.h>4 Q4 M1 `( Y3 y) m9 e8 A* P
  5. #include <epm/epm.h>. H5 q6 b* \/ h+ J  n
  6. #include <tc/tc.h>8 y" Q+ ~) J- |; y) L$ J
  7. #include <sa/tcfile.h>
    : u& V4 Z! i5 C# ]! O. N1 J
  8. #include <itk/mem.h>
    : ^) h' ?4 g& D6 ?6 J& i' l% c+ [
  9. . C  z4 i$ u7 G5 l  H
  10. #define EXIT_FAILURE 1
    ; `# s" R% M$ U+ }
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))0 O8 _' }3 B9 B- V" r  N
  12. static void report_error( char *file, int line, char *function, int return_code)
    4 }8 u' N# O# E3 I% |0 ^. K
  13. {7 O: s: k) ?' p* x3 x' b( s8 l6 o$ h
  14.     if (return_code != ITK_ok)% z+ j  [7 {. o0 }6 @4 ?# _
  15.     {  O6 }3 E2 r( h( b+ v3 v: }7 A2 O
  16.         char *error_message_string;3 V  G8 w; Y& C( _& h0 R
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    1 c6 G8 i! I1 B6 o, T9 }
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    6 G. I8 s7 p6 B* v$ e! n& S
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    1 w; a  `) K, A3 R! `9 w
  20.         if(error_message_string) MEM_free(error_message_string);; Q: B( m8 M$ Z
  21.         printf("\nExiting program!\n");
    : Z" Y7 r' O) @& H- x- Y9 _
  22.         exit (EXIT_FAILURE);    8 ^$ N1 Y$ E' H% ^. L
  23.     }
    $ t" g9 \. O8 m% O9 s
  24. }
    , @. M; A$ y" j; j

  25. $ g. t$ G# h2 c: f
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    1 B+ V4 ]; M' W/ \! N
  27. static void check_value( char *function, int value )
    : _* P' H/ m6 `! ?$ E; w5 ]" t
  28. {+ i6 S' r9 a# d( b9 E4 S: m( ~
  29.     if (value == 0)
    ! k% ]0 [1 D5 c- {8 k5 p
  30.     {
    3 ]% i4 G9 }* J: n( ?1 o" O
  31.         printf ("\t%s is NULL\n", function);
    9 w2 r/ v- H& q1 I+ }+ `
  32.         printf("\nExiting program!\n");7 B2 ~3 J" a  ^
  33.         exit (EXIT_FAILURE);   
    * ], p) R: w1 {  f& `
  34.     }- i) @$ w- N, R5 z4 J. n0 _% c
  35. }
    $ f. a9 [" ]7 M

  36. 5 T) W* `5 i8 m$ W

  37. 8 e; E. s2 \' ~! p2 u3 T/ F
  38. static void do_it(void)" N6 A4 N, U2 ~
  39. {
    ; G4 X; r" x' X2 ]$ W
  40.     int
      c6 }5 A7 u; K  _1 p2 v2 v
  41.         attach_types[1] = {1};
      m! c4 w# g1 H  e5 ?3 ]- X5 D
  42.     tag_t
    8 E4 A; p) Z' I! H
  43.         rev = NULLTAG,
    ; A$ S) G4 q9 `+ q* o
  44.         process_template = NULLTAG, " u# x; H# F- C5 }; e7 X( {! P
  45.         process = NULLTAG;0 k7 U. s2 {7 G8 B
  46. # T' d: U* f+ T
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );4 O: I# ~$ m" Q* b5 m* ?: v7 @, d/ S
  48.     EXIT_IF_NULL( rev );2 q% h9 \% R! _: t5 ]$ f

  49. ) k8 Q; o1 h" p. w
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 8 v: X! z, F* B" @8 u
  51.     EXIT_IF_NULL( process_template );
      l5 T+ _% T' m" h' M# P/ W8 B

  52. 7 ]- _) e2 T  _  j& V8 Y* k, \
  53. 4 n7 ^% L0 A% l6 K
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 8 E) r# Q8 t! |- }
  55.         attach_types, &process) );
      I! e9 w/ k' }; q3 H$ R
  56. 5 Y/ ?+ K1 G& x& k$ ]
  57.     EXIT_IF_NULL( process );
    $ _. `) p# A1 J, I" P
  58. }
    8 T0 p" Y7 J5 W

  59. / W0 g) j% _1 {3 V8 b2 K5 u2 q6 z
  60. int ITK_user_main(int argc, char* argv[])6 r! Q7 G; k: f- d" c2 |# a1 H
  61. {' s  p6 X) a: N5 T7 b7 z
  62.     int
      Y# s! X7 f1 R8 X/ N
  63.         status = 0;
      R) p/ ]  ]7 x. f8 S
  64.    1 s: S! s# N( M# E$ Y
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    ' j: k: v4 A8 ?  [
  66.     status = ITK_auto_login();
    0 B0 g/ l' N) _
  67.    ! z, ^7 O+ N2 }3 Q4 J6 j
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");) k8 `1 _' S. d
  69.     else
    8 X! @  y9 V8 c# e' C( p8 B
  70.     {
    / m2 J! s& _4 W! ^# Z  Z" ~: B
  71.         printf("\nLogin successful!\n\n");  F' X- s$ Y& d4 s1 z% T
  72.         ITK_set_journalling(TRUE);
    2 h8 X" `- f4 {9 b4 L! q
  73.         do_it();; D9 v6 A6 V! f& ]9 E5 `
  74.     }6 q+ y/ O! O9 U) R
  75.     ITK_exit_module(TRUE);% _1 W9 j% Y& w/ R: P# n4 q1 U/ A
  76.     return status;  J% r, n7 }- X( ^( @& }$ e
  77. }
复制代码

2 t3 }' i) A4 j3 L+ d8 r1 N. d& A+ Q7 Z' y6 c; E
7 I0 z3 {! N( `. B6 m/ X# r
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了