PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
9 {2 e3 p$ i: z9 p% e
Teamcenter ITK二次开发源码分享: 创建一个工作流0 J7 p# V4 y' P5 z
8 \; _  e' v2 e5 @0 |
  1. /*HEAD CREATE_A_PROCESS CCC ITK */( D& ~! L" B, O' }1 |- Z
  2. #include <stdlib.h>
    # w9 @" r! G1 S1 a, z% k
  3. #include <TCcore/aom.h>
    3 E' s  \. R' i( `
  4. #include <tc/emh.h>  v: {: u8 v8 {
  5. #include <epm/epm.h>
    , `5 [" Z4 }8 x8 o# u6 X
  6. #include <tc/tc.h>
    - A# `+ w+ r7 X
  7. #include <sa/tcfile.h>
    7 |* E. I9 p: H$ f' K9 o0 x
  8. #include <itk/mem.h>
    ( }% \1 e2 a, [& }$ e" \

  9. 7 f, z1 k# j3 V0 |6 B: ?3 o* m
  10. #define EXIT_FAILURE 1 + F' {' x8 p* s. m1 C" |
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    9 C$ L# }( T$ p0 R' @: U' J
  12. static void report_error( char *file, int line, char *function, int return_code)( S3 S) O, C8 o! Z, i3 x$ R* B
  13. {
    ( {  R) N, q( \' o
  14.     if (return_code != ITK_ok)
    ! ^2 w9 a4 b! I7 C# l) s) ~3 s
  15.     {
    1 t! G) A$ G+ V) w
  16.         char *error_message_string;
    8 U2 E2 `8 ~) Z7 o9 I' S
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    . @9 J7 {  ?) w( V0 f# T
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);$ \2 V( B9 E' r) y$ F
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    & t& j  O+ a* v" W1 M
  20.         if(error_message_string) MEM_free(error_message_string);7 W/ O% o: U2 l9 u2 F0 t) E
  21.         printf("\nExiting program!\n");
    , ~3 Z5 v' ~& G) _! g
  22.         exit (EXIT_FAILURE);    1 x; k* e! S- P% z( s- m
  23.     }
    # T/ G  N) h& P& b7 U4 g% d* F
  24. }
    + K8 ]; B% E5 n9 G
  25. # l1 H& A2 x" M  R. w$ c' T( I* I
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    $ W6 f5 N. j' @: Y4 a
  27. static void check_value( char *function, int value )
    ( O4 A) o  H3 ^& C& i4 T
  28. {
    5 @" ~5 h; K* Q' s4 [
  29.     if (value == 0)
      z/ p0 D( @: O$ T6 i4 R
  30.     {. @% \0 ?: M/ b7 {& p, v
  31.         printf ("\t%s is NULL\n", function);( l5 q% D# o& [4 J2 I( ~5 e/ W
  32.         printf("\nExiting program!\n");
    , R0 |4 ?+ G7 l5 M
  33.         exit (EXIT_FAILURE);    0 v6 Z6 h+ e" F. a' {7 {; ^: h4 j
  34.     }/ `+ j. M  ?9 N6 R8 c% e
  35. }
    - z4 b9 T! v* x0 b: h0 x* X

  36. 9 m1 H4 Y: g( K& H
  37.   x! k) o* H: W+ }7 w7 q! R
  38. static void do_it(void)
    ( [& P$ l5 L) q9 H! n  g
  39. {( X! ^( ?: b! |6 _7 s8 `
  40.     int
    3 J. H  y- {( u2 c2 K
  41.         attach_types[1] = {1};: n/ {9 Y. J$ S/ T; y
  42.     tag_t
    # g3 S) K. r* q; u7 _8 [3 g2 U
  43.         rev = NULLTAG, 3 _3 M( t# U4 N/ P+ Q+ M
  44.         process_template = NULLTAG, : `6 W% J5 z6 J* M; {, `3 v) z- f
  45.         process = NULLTAG;
    & c# P' A8 W( R

  46. 0 |" q* ^; g3 t% Z% V3 ?
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ) e' h; T# E9 ]5 z" f1 m  \- Z6 E" b# d
  48.     EXIT_IF_NULL( rev );
    . u4 K* o9 y4 V8 [! i5 ~
  49. ( U" G5 I% _# M6 P
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ; o5 e; y# W( q  X! |) B
  51.     EXIT_IF_NULL( process_template );) k; B8 M8 }  a' y. Z5 v" Y$ I

  52. 5 d3 O  [0 ]% D8 ], m! o; h7 i
  53. - b& H" Q  D! U2 n! y- m; B
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ' z; W" |, ~* t2 h2 `
  55.         attach_types, &process) );
    : R5 c) j5 N( F' i  R% d. c

  56. ! J5 }4 a- _  [5 F
  57.     EXIT_IF_NULL( process );1 P+ z) l$ p, R  [
  58. }  u2 r* B1 e: t9 s/ r$ M  _
  59.   I# C% b  c. [$ x; C
  60. int ITK_user_main(int argc, char* argv[])
    % g* i' G1 X& U3 V! U+ J, E% N3 V; {
  61. {" M, s. I& t. y: r
  62.     int! `6 u) ?$ r, H6 d3 n
  63.         status = 0; 4 i# i$ Q) y. ~; T
  64.    ! G+ ?* h/ Q. X6 q
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );* ?6 S$ r( U0 a5 m2 w8 F6 i
  66.     status = ITK_auto_login();
    + L* q! u. H9 ^* r3 D; k3 _0 r- {! ?
  67.    9 m/ S; a. B6 `* x$ ]
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    - K- O% D' W% c/ _3 g
  69.     else
    # ^6 K4 H; Q* i/ f
  70.     {! [& S8 N- ?, F7 Z( r% z0 x0 }& J  D9 M8 ~! h
  71.         printf("\nLogin successful!\n\n");
    7 y! Z; Y/ b4 r: j' `4 D
  72.         ITK_set_journalling(TRUE);$ d6 w% {) n; r9 f0 E) U' z( d
  73.         do_it();' j8 r' _4 u# O' p% N6 g0 n
  74.     }
    1 s! q# e9 J$ ^2 d' Q
  75.     ITK_exit_module(TRUE);) J0 r6 @' L  c( t
  76.     return status;
    0 ^1 u# W! j% I' }+ v
  77. }
复制代码
: U* u# `! P7 d. s0 Z/ H! P8 {
! L) \* }: H+ H7 d* S! W5 z3 J( I

0 {1 a9 Q% [# t" f: T) g
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了