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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
7 O' i* ?+ n* m: ~0 f+ O$ \
Teamcenter ITK二次开发源码分享: 创建一个工作流8 @, e- g; H: n

( Q+ {  I0 u$ k  P7 _: W) y
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    / \7 u& u0 x4 ]& K2 j% D
  2. #include <stdlib.h>) o/ c  `' N$ @; R1 e
  3. #include <TCcore/aom.h>
    * X) t6 J- ?7 F4 M, E
  4. #include <tc/emh.h>5 M3 J' O, G+ p
  5. #include <epm/epm.h>
    0 K/ l# W" I! J
  6. #include <tc/tc.h>6 j% z* X3 m) E9 }/ O  n8 m
  7. #include <sa/tcfile.h>
    , M3 t: A1 H7 s+ M1 A
  8. #include <itk/mem.h>/ |7 @7 R3 m  A  T+ J% L6 Z
  9. : x1 s' A- O- D* y
  10. #define EXIT_FAILURE 1
    % ]+ {  R: g. p! X  P
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    3 a6 }) P6 C1 F/ ~2 m
  12. static void report_error( char *file, int line, char *function, int return_code)8 A( `( [  C$ N9 r# e# w
  13. {
    ! h0 I* q; ^9 P/ [. W+ x' N
  14.     if (return_code != ITK_ok)1 Q# o. \) f' J: a3 [5 w% ~1 w
  15.     {# \$ n* D* l7 q' R9 a
  16.         char *error_message_string;
    % S; a3 n( X8 x7 r1 w; |  V. u& i
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ! P! E9 m' w: m  c
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);) u) x3 `* T. B7 t0 }
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);; ^) L+ L( I$ S, `* O
  20.         if(error_message_string) MEM_free(error_message_string);
    4 j0 ]7 _/ Z. P4 m
  21.         printf("\nExiting program!\n");
    0 N$ h/ x0 T' J; k
  22.         exit (EXIT_FAILURE);   
    ' j7 S( I# W& n1 K- h
  23.     }
    % z$ s8 z! h. M2 e
  24. }+ ?- P1 ?6 I, ^9 q9 B. A! R' l! _' V

  25. 4 b- S5 c, v0 ?' Q1 a
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))  p7 e9 q% E9 j6 B" p8 M( a
  27. static void check_value( char *function, int value )8 t2 }0 @. e9 X6 B9 m' V
  28. {5 x* t$ r/ \8 R3 D! x
  29.     if (value == 0)
    $ W* ^; f# Y. |0 z: n/ u- }, G3 @! K3 `
  30.     {! ], e: W& c- F+ g* p
  31.         printf ("\t%s is NULL\n", function);
    , V& x. B- T* x" E# S) o+ @  d
  32.         printf("\nExiting program!\n");
    - i; @8 Y: a; I+ p  P4 F
  33.         exit (EXIT_FAILURE);    ' L. J* Y' ~  y7 M
  34.     }
    , w5 Q4 i% C/ `6 F
  35. }
    9 q: y* p) N7 W
  36. 9 n, i+ |" J! B2 e6 B! m4 w; n, U
  37. 3 H/ r/ m  [) Q: D$ W( K! A. C
  38. static void do_it(void)
    + w7 ?0 ^% a0 r
  39. {5 x) I1 H7 s- J% S( {: `6 {
  40.     int
    * m. F1 x9 R) B) W1 g
  41.         attach_types[1] = {1};
    + [* D* r4 |6 I% A& N% u( P
  42.     tag_t 0 t+ ?4 J, m) J( T
  43.         rev = NULLTAG, + \& V- @7 ]# E! O! t" h- }1 `
  44.         process_template = NULLTAG, 7 T; M8 `0 N8 l0 f! I9 N
  45.         process = NULLTAG;, ]( M; m: z' M3 J1 a
  46. ; }( V3 a% [$ Q% g/ ?, v+ f2 ]
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );* w; [0 m, w5 E' U, i" A! h
  48.     EXIT_IF_NULL( rev );) w+ w+ i) o5 B  b' }( X) _/ b' g) j

  49. ) D  u1 n& Z1 E, Q9 o( y
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ) x, K9 x; v' R, z  z
  51.     EXIT_IF_NULL( process_template );( }0 P6 R$ H2 P+ n1 i6 V
  52. : k7 G7 X* e! m, ]; T
  53. - g+ F4 B% T. }- t8 j- W" A
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    # a& I3 X& h+ X6 n
  55.         attach_types, &process) );: T$ U& H5 S3 L0 @% K! B9 W( K' Z; `

  56. % v" a  I0 C+ }6 K( o0 b
  57.     EXIT_IF_NULL( process );3 h. l' F1 q; l, _! |
  58. }' R" t" Q! P* T! k8 A
  59. ; L4 }& p8 s, [$ r
  60. int ITK_user_main(int argc, char* argv[])# ?5 M7 X2 \' H0 U2 f! O) p
  61. {
    : B; O8 F# P6 d. U4 C
  62.     int* D- y: N: [' W4 h% ?) z
  63.         status = 0;
    1 ]/ O: S3 V4 q: C: m9 w
  64.    
    4 ]8 h- t% I% W1 [- w5 p0 z
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );1 k0 M+ Y+ E- W4 y/ ^" h. e
  66.     status = ITK_auto_login();* a% d5 Y+ X- q
  67.    
    8 L7 t* L6 e  C0 G0 m2 H3 [0 _& m
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    8 s: T3 I/ r3 B2 z4 v% e
  69.     else& S0 B0 m# l& A+ B2 f
  70.     {0 [$ U. o% C, [/ g1 f) W7 i
  71.         printf("\nLogin successful!\n\n");0 i' H' j" }9 ^' [# S; ?
  72.         ITK_set_journalling(TRUE);
    5 s! O3 w1 t3 h
  73.         do_it();) A/ z4 k  k' k: T8 Y7 w
  74.     }* y# o1 P$ ^* \$ n/ R
  75.     ITK_exit_module(TRUE);
      b& z6 S, S3 `# G" s
  76.     return status;
    ; {! T. `  c3 c8 J
  77. }
复制代码

0 {  N! h5 A/ T% d
) D6 C3 d" M/ z1 }  p7 g
6 x/ ~6 Y" M: A: 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二次开发专题模块培训报名开始啦

    我知道了