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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
3 v" }  C( [& @/ S
Teamcenter ITK二次开发源码分享: 创建一个工作流* b+ {" S7 l" k9 M- _  ^

- B7 G2 Y! V  C( }4 f
  1. /*HEAD CREATE_A_PROCESS CCC ITK */1 M1 }0 V4 N1 ]  B& ~  E
  2. #include <stdlib.h>
    ' `& H( S7 I' o
  3. #include <TCcore/aom.h>7 x; G% U8 e% g7 Q! l) A0 m
  4. #include <tc/emh.h>
    # v! d  D! F$ j  ]* h) a/ J
  5. #include <epm/epm.h>
    9 {; w, E  c8 i2 y7 _3 W4 a
  6. #include <tc/tc.h>0 d) _* h3 _/ f
  7. #include <sa/tcfile.h>
    % _' z1 ]: v8 a
  8. #include <itk/mem.h>
    0 r4 m: I3 _+ C+ m
  9. 1 `5 V; A- ?1 N4 H/ B
  10. #define EXIT_FAILURE 1 . w# _6 T4 d5 _$ b( f! b3 w7 J
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    : I) W9 k) q5 \- J3 X8 Z) {
  12. static void report_error( char *file, int line, char *function, int return_code)
    # e) R$ L' y0 I' I. c3 X
  13. {
    ! J$ j) ]& a# G2 @& {' v9 c( U
  14.     if (return_code != ITK_ok)
    6 v/ L! g+ {. M8 S' p
  15.     {
    " S" r0 s( Z) O; I) }! B) k3 B0 T
  16.         char *error_message_string;5 w* \( L( ?/ A2 t
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);6 ^# ?6 J) z3 L0 u: _
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    8 f5 m$ K5 H" p0 r& k
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    # n* b7 z. u1 {' E6 ]$ W7 E
  20.         if(error_message_string) MEM_free(error_message_string);
    4 Y1 a8 \) K* ~/ S6 m8 l
  21.         printf("\nExiting program!\n");
    / d& N$ v/ z3 i# w
  22.         exit (EXIT_FAILURE);   
    & S3 ], q5 U7 v1 }* A
  23.     }: |2 ]6 C! g3 v6 s( {0 v' s: t
  24. }
    / J& w: S) Z. m2 s+ r; Y

  25. 5 U" B2 u* I& T( \# _1 e
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    8 ?# Q, X! z9 }) J; N
  27. static void check_value( char *function, int value )( P  a3 t7 @! M2 T: m. R
  28. {
    , r- \# n; x. x3 L6 Z% [5 D, d
  29.     if (value == 0)2 P  h/ H5 S" N4 c$ e1 _
  30.     {
    : @/ z; g, \6 G. c, ~, Q8 t& O
  31.         printf ("\t%s is NULL\n", function);
    / p: U% I9 ~; E2 [) A
  32.         printf("\nExiting program!\n");# K/ Z/ X" _4 W, m; V1 ~
  33.         exit (EXIT_FAILURE);    % V. S# K/ q6 x- |. `2 A) |
  34.     }
    4 N+ i( p) u  C. s. e# R
  35. }
    9 Y8 G1 y3 L! z  a3 z& Q( N0 L
  36. 6 s0 }2 A9 ^+ F5 u8 Y$ F

  37. " h+ ?/ c3 c. k& _! }% o. c
  38. static void do_it(void)
      d: h5 i; z2 f( o
  39. {
    9 @" y; l- C; P- ~- `
  40.     int ' f1 i  u6 Y) J- A) V4 r
  41.         attach_types[1] = {1};, ^' x$ S( d0 r# w+ N/ I4 T6 p
  42.     tag_t
    ! l  ^# i2 B  D' E8 J- l! M
  43.         rev = NULLTAG, ! T1 X0 x: S: T0 o' ]
  44.         process_template = NULLTAG, & P! {2 w. v0 @: J) P
  45.         process = NULLTAG;1 o' B$ \" f- y  O8 F& b
  46. ; N) a9 D* {6 ]) }' J5 C
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    . F& F5 M. o3 r% L
  48.     EXIT_IF_NULL( rev );
    ( V; B# \9 d* V9 r4 S1 o9 f

  49. - z% G. J# E2 m% Y) U: a7 g
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); * h. u) I; ^" I7 w: v* ^
  51.     EXIT_IF_NULL( process_template );# M/ @) E, a* Q0 X( c
  52. . W5 {) `( O$ H# `
  53. , E# x8 Z5 `: M; I; m  ]; m, z
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ! K# S) p: b! M& w) J2 z( \
  55.         attach_types, &process) );
    . [) x* j6 }; M. {3 ~* q* U

  56. " H: h0 \5 C  N1 E8 D$ P' t
  57.     EXIT_IF_NULL( process );
    9 y* q- Q  _! Y- E# j- b; B
  58. }
    , v. [! q- |* }# |  h
  59. ' ^+ l4 u* }+ R
  60. int ITK_user_main(int argc, char* argv[])
    ! d4 Y" g+ A& h3 L, P
  61. {
    ; l* O: \2 E  }$ r+ P' N
  62.     int' `: u: S+ F2 q$ B; m
  63.         status = 0;
    $ o: E# f) H) a! h+ {
  64.    2 M3 X7 A' A: k! m6 G
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    ' L! Q, H9 G/ A2 e" M
  66.     status = ITK_auto_login();- B/ H0 z# a1 d2 O' Z) j4 I9 A
  67.    ; l$ [1 y1 x. {0 I
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    9 r( Q" [& \' Q0 n
  69.     else4 H3 f1 m" T- D) V: _8 g/ J. ?
  70.     {
    3 |7 M! n1 P$ Q+ J  |5 D3 t) w
  71.         printf("\nLogin successful!\n\n");
    / R. L; k7 R" M, r4 _' y
  72.         ITK_set_journalling(TRUE);
    ! S) d! {5 k$ M& H
  73.         do_it();
    2 \' f' |8 x' J' s. f
  74.     }
    / N3 b8 C+ Z+ C1 F# I
  75.     ITK_exit_module(TRUE);1 b- E# ]2 T: N' s4 R) _+ a
  76.     return status;
    & u& F4 K# E+ o4 J0 g
  77. }
复制代码

. o" b/ v; W4 E  b' P6 {4 f9 j5 R( l

) \  Y1 {9 ?! u, ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了