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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
8 X* ^0 y5 a) T. I% ~! c  \+ l
Teamcenter ITK二次开发源码分享: 创建一个工作流+ D. A* M3 I) n; r  q. |+ T
) |# @! |* ?4 I/ X
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    ( T" \; q* j& _: z7 K
  2. #include <stdlib.h>6 g  `( C1 L7 `1 S% G3 D
  3. #include <TCcore/aom.h>; R, o4 J: |5 l4 j3 ?
  4. #include <tc/emh.h>
    ) ^+ F4 z7 W" C' c) J
  5. #include <epm/epm.h>
    6 M: v$ q' G9 {! ~
  6. #include <tc/tc.h>
    ; Z6 }: e4 s& H% t6 ^( X+ F
  7. #include <sa/tcfile.h>
    ' W! c  S* @$ R) i$ C
  8. #include <itk/mem.h>
    / R+ p4 R8 o- N2 d! E# N( l) p- z
  9. 3 L) C' b% d' u' d
  10. #define EXIT_FAILURE 1
    7 w' @# ~, ]; {
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    5 M8 _; n5 |. Z: y1 m+ V+ R
  12. static void report_error( char *file, int line, char *function, int return_code)
    & E, c9 `9 ]1 C% ?" K
  13. {
    ; W7 D  i# L6 k
  14.     if (return_code != ITK_ok)' O! r1 F) }5 ?1 j( _
  15.     {2 L4 h2 T' t2 y' T  C, {$ M6 a
  16.         char *error_message_string;! e0 u. ?9 I7 g
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);0 s' X& n/ {- ^- {
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    ) z. B- r; B4 G" F% h
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);  }* `8 C+ x: ]# z
  20.         if(error_message_string) MEM_free(error_message_string);
    3 R- `, T8 D+ w8 K( C; A
  21.         printf("\nExiting program!\n");& \6 S: i. m2 p
  22.         exit (EXIT_FAILURE);   
    8 u2 o0 z" D& r: v
  23.     }
    ) d# o, ]/ |3 g
  24. }
    " }7 f$ k6 z: \) n$ t7 I4 ]8 v
  25. * I: k! |6 ?- C, c
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    & L! R2 a' I$ m/ F- \
  27. static void check_value( char *function, int value )' h0 R2 J, f/ U
  28. {
    ( ]0 N- f0 C$ M# M7 F
  29.     if (value == 0)( y. Q( K6 ^9 V/ V, ~0 m
  30.     {
    & n& o/ `# i: |. B, O/ W+ U8 H
  31.         printf ("\t%s is NULL\n", function);& k: l5 [% W3 B% o
  32.         printf("\nExiting program!\n");
    / [" h/ z) _- j  M" r1 [7 O5 j
  33.         exit (EXIT_FAILURE);    $ N9 s3 j- [3 R9 W% B+ C" b
  34.     }
    - `9 {2 W. \6 R) D, p
  35. }
    0 s) z; ~1 Y! C( q$ ~, v) [3 z* W$ }
  36. ' M- q0 ^3 K; ~) a6 v" V7 X

  37. * h4 [8 D( `6 K) z5 x- E5 |5 y
  38. static void do_it(void)/ I, V: R6 ^5 z+ a) }# ^+ e' k
  39. {
    2 H( L7 B' g) q. o. t
  40.     int
    2 V% @; v. ?/ y) K' Z* F
  41.         attach_types[1] = {1};
    . t' r( o* ?6 ~7 q: t8 H# j$ _. S
  42.     tag_t
    % N: p$ x# {/ P( G2 h. V+ h8 }5 l' x
  43.         rev = NULLTAG, ) h. j7 }: V- Z6 z
  44.         process_template = NULLTAG,
    5 R4 y5 c/ i3 \; d, O  }
  45.         process = NULLTAG;% s- [/ ?; }+ }: i' m; J. g
  46.   x  B* G$ D! x! }8 ~* d; A  x4 @
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ' f+ B& g3 X( F6 D
  48.     EXIT_IF_NULL( rev );
    - @0 ^6 ^* Q0 Q& h

  49. 3 G$ \6 l7 G3 s8 J. C! W$ t
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    . s1 D% n5 _1 S! K4 u8 @
  51.     EXIT_IF_NULL( process_template );8 I3 B6 D" y& _* X6 P- `1 z  S

  52. + z) P( `4 M4 F$ m  @

  53. 4 Y2 H; k4 \: \* D8 G- D' b
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ( T" N$ f, g' S2 m6 q- L) @
  55.         attach_types, &process) );
    * P7 ~5 K3 D4 Q$ R
  56. : M- h! B( W$ F2 B0 G
  57.     EXIT_IF_NULL( process );9 f, L! i; t4 J% |* }$ ^: a- @+ @
  58. }
    / X$ d6 B( y% A" J3 ]  q8 ~& ^

  59. ( d8 J; }9 R! v8 u4 l8 b" {! s
  60. int ITK_user_main(int argc, char* argv[])
    % S/ g! n0 s6 P1 p+ }
  61. {
    9 ?6 g4 }" s0 \5 A4 h4 d7 V
  62.     int
    5 u8 z+ j. a% ]
  63.         status = 0;
    % U  t, E1 }4 v3 n0 U
  64.    : w0 v) ]: e6 j6 t; R5 @
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );. u% Y/ Z4 r" G6 T8 Z4 O- `6 g
  66.     status = ITK_auto_login();
    * R' K& H3 e3 @
  67.    # d0 @% \+ \: K" S* I! [
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");: n# R+ o! e% [' Y; I: G5 A( Y
  69.     else
    9 C& K8 M+ s7 Y1 ~; Q- a+ N# A
  70.     {6 t& N$ P/ N" \- B: G2 R) X
  71.         printf("\nLogin successful!\n\n");* x" d" Z' _, k
  72.         ITK_set_journalling(TRUE);
    / |% c9 y" G* A# Q
  73.         do_it();+ W1 Y  R, b. d9 u$ v) w( ~
  74.     }
    " h$ Q+ e$ g1 [3 q
  75.     ITK_exit_module(TRUE);
    % j/ |, v$ H3 B0 Z) C
  76.     return status;
    ( c* H, E( d5 ]8 c$ U+ d
  77. }
复制代码

( c; Z: D$ E- [" F0 g0 V8 p) j: P+ X. N0 P$ {

& y& r9 e! o* I; P1 g& o. F7 Z: d
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了