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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

2 m! F) S3 g6 d, yTeamcenter ITK二次开发源码分享: 创建一个工作流
* d1 D& Z# O0 c8 ?1 e
: {$ N$ a& a, Y
  1. /*HEAD CREATE_A_PROCESS CCC ITK */- f6 O3 ]; @( s" ~% s3 e$ S+ e
  2. #include <stdlib.h>+ Y6 @! D# P. h+ K  @. p3 Z
  3. #include <TCcore/aom.h>5 y3 ^1 e) x! k* _3 V
  4. #include <tc/emh.h>. {* y. n2 U8 D3 ]3 w4 i: D6 U
  5. #include <epm/epm.h>  N/ k- g+ V7 e( Q- B# A
  6. #include <tc/tc.h>. i* R" I+ D; y5 o, Y/ D( t
  7. #include <sa/tcfile.h>
    4 n) b+ c! \( i9 h4 v" a- g
  8. #include <itk/mem.h>
    " E2 x- A* J7 c* C1 z

  9. $ \; |1 r# D1 o2 X( W3 m0 |
  10. #define EXIT_FAILURE 1
    7 e7 ~% V5 z. e9 h* k3 F( V
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    5 c* P0 I) s, L4 C% t
  12. static void report_error( char *file, int line, char *function, int return_code)% p" S6 H) s% S# i  M# J; t
  13. {& \! q2 ]  a0 }; a
  14.     if (return_code != ITK_ok)
    " l: j0 [' ]* y" U2 B, t
  15.     {* l% Z# m1 _5 P9 x: t5 V5 g
  16.         char *error_message_string;
    . S( M# \- ?* U8 P/ j& J
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    6 O" \4 F  o; I6 _' `: z
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    " G: d2 q5 Y: ~3 k5 T1 a& m5 s" c
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    : u9 f; g' W2 Y* `& z; E" [' E
  20.         if(error_message_string) MEM_free(error_message_string);- }0 n# b/ k/ x( W
  21.         printf("\nExiting program!\n");& f. R, T: s3 _( m" V
  22.         exit (EXIT_FAILURE);    0 T( Y3 |* Z) W( Y9 }7 E  f2 p
  23.     }& A5 X# H5 p4 B& h3 a3 b* e
  24. }/ ?) w! m& j5 f- Q( W& @1 N

  25. ( s: N) Y% W. p, U0 R" ~
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    7 C# r1 k7 ?7 U' q. Z/ J
  27. static void check_value( char *function, int value ): y( P! L0 R* \0 u( B
  28. {$ I+ Y9 U! ~7 _2 @& i+ T3 U% `
  29.     if (value == 0)
    ' }9 k# @3 c" `9 |( O! K3 ~1 p
  30.     {
    0 a3 U1 H9 b  @
  31.         printf ("\t%s is NULL\n", function);5 a6 X& ~( e# V' D$ N
  32.         printf("\nExiting program!\n");
    % q- V$ U2 g2 A: A
  33.         exit (EXIT_FAILURE);   
    - U* k1 W1 ?6 r( h3 S1 j
  34.     }
    0 @! p6 \3 A& |/ v( L, s
  35. }( z4 |  C6 ]+ Q# X& V6 f

  36. 0 O) G1 N9 k. J3 V
  37. * r, `! P  A* s  P( J. d0 u9 t* o3 E
  38. static void do_it(void)
    ' b0 G3 Z4 B( |( V- V
  39. {
    0 o8 {4 H& j! \9 z9 r4 g9 r" V
  40.     int
    * p4 g2 O, l  _9 \! v* H
  41.         attach_types[1] = {1};
    ; d3 Z! J$ B8 Y! L0 [
  42.     tag_t + w- F8 c. V9 O2 ~9 w. Z) h! }
  43.         rev = NULLTAG,
    % I% {! K, t1 w: M. R
  44.         process_template = NULLTAG,
    ( o+ x, i5 ?$ d1 E2 x
  45.         process = NULLTAG;0 i7 c# \7 ~, |4 Z! K/ i& b

  46. 1 k5 q" Y5 B  W  X" T  ]
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ! d4 |9 _- P* j
  48.     EXIT_IF_NULL( rev );
    ; {- U- L* M5 I4 `" G5 t  Z6 q

  49. 9 o1 s6 z# q" ~7 ?2 W0 \
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    9 Y9 ^0 ?( ^' R* q" b
  51.     EXIT_IF_NULL( process_template );
    5 o" _9 n* z8 ]2 A) o; P. {; u

  52. . A. Y8 P. h9 J1 Z" }* f, b( ?: }' P% d
  53. & }, m. W. l5 c9 M2 x% X
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    : ?% Q# Q! F* d1 }
  55.         attach_types, &process) );8 }7 o. O0 g, {9 l4 N

  56. 6 `' {1 |- `6 z- b; s2 Z
  57.     EXIT_IF_NULL( process );
    , K5 u$ V" \; o: a- M5 \6 j+ X
  58. }3 u/ M( g$ m" }' p, A7 [$ p

  59. 2 u4 j, H7 E; v3 R
  60. int ITK_user_main(int argc, char* argv[])# e( _' G2 ?! ]0 R4 }, k$ g6 W* I2 Z
  61. {; P9 D$ p0 ?# Y( ?5 c0 l' D
  62.     int. B! u1 l) \1 P. \
  63.         status = 0; * Q' ]( u6 r  P6 O; p0 P! u
  64.    2 S" h5 m1 L9 S2 X* e' c
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );. k4 E& z6 d' J
  66.     status = ITK_auto_login();
    7 l, T: W  G" g  z
  67.    - o' O4 u2 K2 b; Z  X. h
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");8 Y4 m& X/ |0 D' V* X' e2 w  {) x
  69.     else4 T: I4 I6 y* i- Y& q/ e
  70.     {
    : T! ^. q4 ]( D1 b5 ]- I
  71.         printf("\nLogin successful!\n\n");% T" b  |; @6 o- H. P
  72.         ITK_set_journalling(TRUE);
    9 V# Q! ^% C8 j/ r) w
  73.         do_it();6 p  w% z0 w6 V# B
  74.     }
    * N2 v: C+ L$ _1 v2 W
  75.     ITK_exit_module(TRUE);
    8 M/ M/ \5 U7 r/ }. g
  76.     return status;
    ' ~2 A! \# y1 g
  77. }
复制代码

" l4 v1 f4 P& S. K  K
9 X0 z' ~" r0 X# C4 {7 U2 W2 w# N4 k6 t2 y& k; R/ E6 S
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了