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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
# k# h0 Y0 F0 d* v4 b/ b; M7 y
Teamcenter ITK二次开发源码分享: 创建一个工作流
# o9 y- `" m+ t7 b; l6 |  p/ d- j7 Z& T6 g
  1. /*HEAD CREATE_A_PROCESS CCC ITK */0 K# y6 h% b; s$ V3 b) X
  2. #include <stdlib.h>! e7 f$ h4 {7 M
  3. #include <TCcore/aom.h>
    $ s# Y( C7 u! W: ?/ q1 p, c
  4. #include <tc/emh.h>1 \( ?; f- b4 Z/ _, s
  5. #include <epm/epm.h>
    # G5 b$ t4 S) Z- G  L# V0 B. Z
  6. #include <tc/tc.h>! q" M) n' o# g# A; `
  7. #include <sa/tcfile.h>
    " ~7 B; r4 E$ t
  8. #include <itk/mem.h>
    * l2 A; s- [5 \- ]9 s% Z! z: B

  9. 4 a# h2 v8 |* r
  10. #define EXIT_FAILURE 1 % }8 D4 Z% n  ^" Y" q: L7 y
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ; k+ l" D6 V; r+ F' i% K
  12. static void report_error( char *file, int line, char *function, int return_code)' P0 X, v. O% g# V
  13. {: ]5 |0 o* [( [4 g/ ?/ q  @
  14.     if (return_code != ITK_ok)
    " d- }0 J2 e; K* z* ]. O  j
  15.     {2 ?1 z, F0 D; w' F( E
  16.         char *error_message_string;
    ! ^8 c) f& W9 c
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
      r% b8 K6 s. x6 ?( \* Z6 s
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);! A/ [$ {0 v  h2 I( v
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);: [+ |- D4 d8 @
  20.         if(error_message_string) MEM_free(error_message_string);0 }  `8 ?- q2 l4 y* e
  21.         printf("\nExiting program!\n");
    ( a5 [$ x/ z% H8 {+ |  c
  22.         exit (EXIT_FAILURE);   
    5 k! L5 W% [; ?, F# q$ U: f( i
  23.     }
    : O2 o8 E7 t" P/ q
  24. }
    4 Z+ A% ]% W$ A0 R" ]
  25. 4 e/ o; t7 u: a. k/ E
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))9 P- M1 d5 {. G2 u8 @2 ]% O3 q: r% e
  27. static void check_value( char *function, int value )
    0 A2 R. F$ r8 Q
  28. {
    ; u+ u  n& Y, z) Z0 n+ b
  29.     if (value == 0)
    % ]3 O4 K+ T; F1 G
  30.     {1 D5 u& U3 q8 F: k; `0 X% x
  31.         printf ("\t%s is NULL\n", function);
    ' \8 ~' T: X' A, x
  32.         printf("\nExiting program!\n");/ E& b' ]+ b. S" G8 o$ `$ M$ o
  33.         exit (EXIT_FAILURE);    + z6 ]6 y2 ]9 ?6 T
  34.     }: g6 g' F' n5 h; Y" F
  35. }
      \1 z- z. F- G- [, h  f' i9 c5 R

  36. ) A  @0 f" m8 z8 c2 I1 Z; K! |
  37. % p; G. [( O' `/ n) `6 \5 |
  38. static void do_it(void)
    3 q9 D, ~- c  ]; K3 l
  39. {: ~0 J! P  T3 \- h( e; ]
  40.     int 9 }5 F+ s& B! \! w+ e+ N& \' ]
  41.         attach_types[1] = {1};
      U% G: Y: A, }' ]; ?4 K" H
  42.     tag_t & }  [6 o" ~9 _% P
  43.         rev = NULLTAG, " f' Z" a4 ~4 ]4 b7 b7 R
  44.         process_template = NULLTAG, 9 U# [# ~0 b5 W5 x2 k9 y! v9 r
  45.         process = NULLTAG;0 u$ K, b, p$ u

  46. . m9 c, \" [/ F4 ]# w8 w
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );9 S, O4 E3 W9 ~* O( O% [
  48.     EXIT_IF_NULL( rev );. h+ Z: m9 @3 {5 w
  49. & l0 T2 ]5 K7 h' w" V
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
      B& D/ p6 M" b/ a
  51.     EXIT_IF_NULL( process_template );
    ; l# k0 X. c0 B% o( ]: t3 t8 p

  52. 3 i" a! O* R% k; q

  53. 6 K2 }8 y) _  x) d( c6 s
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 0 e7 z& V* T7 z. N1 D
  55.         attach_types, &process) );! N3 D9 b9 W+ u( k

  56. 4 R, c2 p1 X' m3 j
  57.     EXIT_IF_NULL( process );
    $ k( @6 d; t: [* n$ W
  58. }4 z, q' V4 M6 }. ?1 \4 o3 y

  59. $ {/ k" j7 R4 C& c  G) ~- [6 t
  60. int ITK_user_main(int argc, char* argv[])
    . y# N5 Z; K- T5 d1 s" }7 e
  61. {
    % c) r3 p& c) ?: S
  62.     int
    " b+ K1 `$ G; f; `" o  w
  63.         status = 0; * t' z% v! x0 _7 B
  64.    
    & b( z, e  g! B: ?
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    - n+ K3 c$ O$ W
  66.     status = ITK_auto_login();
    # z5 N% y7 B! e8 q9 x
  67.    / N8 E+ h! `" m& m# U
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ( ?1 j2 t5 Z) ~% }9 p: |8 a
  69.     else4 h6 [3 r4 U% j/ e  z
  70.     {& K3 q" E8 i  y2 `$ w
  71.         printf("\nLogin successful!\n\n");
    $ P1 o( V% c& g- N9 Y8 _
  72.         ITK_set_journalling(TRUE);
    ) Z2 X5 _) }$ y# e1 P% n; U/ ]+ h$ b; @
  73.         do_it();
      [) J, g* M+ c. o2 M- f
  74.     }
    5 w- q, Z, B/ P6 Q; y1 M! _
  75.     ITK_exit_module(TRUE);
    0 x/ h0 N' x( N; f
  76.     return status;
    8 \" T+ k! L5 S  \1 x
  77. }
复制代码

6 F( I. Q" [3 R) N6 o) h1 A) u$ F5 z; Z- v$ J1 f, G
$ x1 `8 o. r! i8 r1 `2 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二次开发专题模块培训报名开始啦

    我知道了