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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

$ C0 R  ~/ U, S3 R( e$ B9 {Teamcenter ITK二次开发源码分享: 创建一个工作流
5 L6 l# Q! \7 c' ?5 z4 ]) v2 `3 A/ p$ k! m" O  w" X1 n
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    2 s; N& r3 x: n
  2. #include <stdlib.h>- s2 A- s- Y0 q& |
  3. #include <TCcore/aom.h>
    ( T2 t* J+ x" a# Y
  4. #include <tc/emh.h>
    " i2 G& l! `( u
  5. #include <epm/epm.h>) f9 Y5 B0 R' z2 ?" N7 C4 A1 t$ g) X
  6. #include <tc/tc.h>
    ; X8 r6 z0 [% l/ @
  7. #include <sa/tcfile.h>% C) C( j# X, y, h
  8. #include <itk/mem.h>
    * S- h% j- o6 _4 |- _+ i; A3 s
  9. 0 [% T7 X2 k% ~6 ]/ c, O
  10. #define EXIT_FAILURE 1 4 O2 u3 i( s% ]  a$ {1 e
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))3 p( R8 [2 V  ?: Z1 P" A/ E4 E
  12. static void report_error( char *file, int line, char *function, int return_code)/ O! A: ?8 w- Z. h/ _4 c6 e
  13. {1 [$ W1 |# r8 f3 C% M0 k
  14.     if (return_code != ITK_ok). \- b/ F7 I+ u9 p: \  j# Z
  15.     {
    " X* Y2 W" {. F% B" S; o
  16.         char *error_message_string;. ]! M  G* i5 R( x; v$ |: \& P
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);* q  q9 q$ a# I5 i' T/ `" M- }0 d) g2 j
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    0 \" i1 I$ X2 Y8 K. K' N
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);) x, z2 Z5 |! N* p, ]5 K; i" B) Q
  20.         if(error_message_string) MEM_free(error_message_string);. |0 ^. X: ]# n# A8 U5 ?' ^
  21.         printf("\nExiting program!\n");
    / n$ P. K/ C" G$ {
  22.         exit (EXIT_FAILURE);   
    # n) O6 C3 y" F1 Y; e0 A
  23.     }! u: H- U( R2 n/ k6 O8 @8 W6 l
  24. }
    ) J$ `7 ^4 r* j! L
  25. 3 k# q- `/ H. Z. G* v, p) I
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))' t/ p; p7 Q, i
  27. static void check_value( char *function, int value )
    % e6 U8 n# M- F' y( }& `, C
  28. {5 R  I+ `+ \$ S* k6 E" E+ Q
  29.     if (value == 0)4 P* }$ D# f& d
  30.     {
    % {, J6 T8 i' M8 e9 K9 ~* D
  31.         printf ("\t%s is NULL\n", function);
    $ G/ H7 b/ b4 f  ]- V% j1 b
  32.         printf("\nExiting program!\n");" V  s: U# {+ t- H  T2 u
  33.         exit (EXIT_FAILURE);   
    ' D0 Z- Q8 L6 N/ |" r
  34.     }
    . `2 Z6 c! A! f2 W7 X3 S) \
  35. }
    & p1 d$ R/ ?. E

  36. 6 b* P2 e1 Q  C0 X) h+ F( C

  37. 3 R. c3 V0 V! F. m5 }
  38. static void do_it(void)$ f+ R% H! K& v# T" W
  39. {
    7 G1 Y4 M6 q) q1 @( p
  40.     int
      T' R7 d# X- ^" G
  41.         attach_types[1] = {1};
      g/ X0 S5 x- ]. i( ]
  42.     tag_t
    ( ?6 U5 C8 _) K
  43.         rev = NULLTAG, . O% j6 |9 x2 L( |5 d# A. ]
  44.         process_template = NULLTAG,
    * ^7 g; v! ~+ f9 ?7 i1 K% W7 s# s
  45.         process = NULLTAG;
    - z0 L4 O, w6 }+ X4 P- ?

  46. , Q. ]; I/ Q6 X: J2 I1 v9 d3 B
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );9 `# j4 i+ [5 y; c
  48.     EXIT_IF_NULL( rev );0 t* \7 M( L% @. B/ o7 \3 Q

  49. * n: C: t3 Z" `, |/ e  ~' |$ s, f
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , O, W; ^# A5 r3 \# k) ?' b) \
  51.     EXIT_IF_NULL( process_template );7 H/ S- P; _. o; t
  52. 7 |" P5 P( M! @1 n6 c; J% _5 x
  53. : y$ m9 C3 x$ J; I- m9 I  `2 M
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 2 r# u! \& Q$ C/ Q: l% G
  55.         attach_types, &process) );. N) q2 Y5 p0 A# M& K

  56. 5 l& ^' n  p& }% O8 V9 `8 ]7 I, H
  57.     EXIT_IF_NULL( process );
    3 g: s5 z4 q' V8 t7 L. i# `
  58. }2 f- F# `+ G2 X6 H

  59. 8 g6 p6 [% n- q) M, T9 H2 ?2 h2 E
  60. int ITK_user_main(int argc, char* argv[])
    * F: c) X6 j- H
  61. {* A7 S, ~& a9 W8 _
  62.     int
    4 \0 C% H$ s# r( b* w
  63.         status = 0; # W2 |- C  {, ]3 G0 }* i+ I; U
  64.    4 N2 P! U7 T7 l
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    & y) l" A  Q+ i9 m0 i& u  x, ?
  66.     status = ITK_auto_login();
    ! T0 ~0 K2 V* M/ `/ {
  67.    
    , D! w9 K4 m1 V, @3 X7 w( ]2 M
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");( x" D- _4 E% R) v# I  d7 I
  69.     else
    " b7 }* K. @6 D
  70.     {' {( P8 ]- e) a* x$ L8 _
  71.         printf("\nLogin successful!\n\n");* v; l, J5 W% ]/ L3 @2 ?2 i/ c
  72.         ITK_set_journalling(TRUE);
    4 [' S; S# j" ], C! g0 E4 W
  73.         do_it();
    + C6 v2 d! t5 I
  74.     }
    0 Z/ O) G9 X* e
  75.     ITK_exit_module(TRUE);
    9 \) s2 A# g5 X' G( @$ i( T% }
  76.     return status;' j" b6 K' ^( h) d. x7 o6 ~
  77. }
复制代码

; }+ g6 ~! k( b+ d% ?3 @% }- N& S5 J9 Y3 w$ I: z

- k7 x- r7 B/ B2 ~" h  e
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了