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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
& C" c! e- [2 _5 ^* G
Teamcenter ITK二次开发源码分享: 创建一个工作流
! w' V* X/ ?5 l5 s# k7 s5 p- Y$ g' q$ f- m6 ~- A
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    ( F: w$ s- a* _7 A" F( b  z
  2. #include <stdlib.h>8 s, B8 I6 |4 h" i7 e
  3. #include <TCcore/aom.h>
    & v  m; R. H8 t' c' @
  4. #include <tc/emh.h>
    $ x- p" ~' x6 b+ l9 X
  5. #include <epm/epm.h>9 d! b. i6 A# {
  6. #include <tc/tc.h>7 v8 |0 K5 w1 i8 Y) ]2 U
  7. #include <sa/tcfile.h>$ h9 s5 P3 D7 Q% z3 M' z& ^9 t
  8. #include <itk/mem.h>2 i% Z! b3 Q4 N2 I% Z9 Z3 m
  9. - u% S. y; ^% h
  10. #define EXIT_FAILURE 1
    ) u2 W3 O  ?* T( H- e8 {
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    2 |$ J% L9 H+ i  Q, m
  12. static void report_error( char *file, int line, char *function, int return_code)* y; n8 `* v8 P7 C
  13. {) G' t9 v% @* q9 |! C8 p
  14.     if (return_code != ITK_ok)
    4 F4 p$ U! g* H1 l* s
  15.     {
    9 R! M" Z( y; B, u
  16.         char *error_message_string;. I$ T" R9 i% w( Y! g1 c) g
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    5 Y$ D3 ^& v9 @3 ?
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    / C/ `5 [% N' D
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);# u/ q- O" I$ K  `% a. L$ M
  20.         if(error_message_string) MEM_free(error_message_string);+ l* }5 W. ^$ B5 q$ K
  21.         printf("\nExiting program!\n");  q" }' O, D1 Q
  22.         exit (EXIT_FAILURE);    . e2 B8 w- U8 u9 y7 M; b; n1 S
  23.     }4 N# t9 B$ @" @0 F4 v( a
  24. }
    1 E; y6 i; ^& C! ?/ ^. b! X

  25. ' n" n- _5 Z3 I; c! D
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))7 p" t$ ]3 h% j2 o, P
  27. static void check_value( char *function, int value )
    : E! s! W: @. _
  28. {5 P8 p* z% }* U- b' T4 _
  29.     if (value == 0)
    ; X7 b2 [& U0 h, }# j. }, z+ z
  30.     {
    8 F1 t, ?; e2 z1 }& c: ~' N- _
  31.         printf ("\t%s is NULL\n", function);, h0 y9 d, @; k9 [6 }$ ~4 v, I
  32.         printf("\nExiting program!\n");2 K5 N1 Q5 Y/ J
  33.         exit (EXIT_FAILURE);   
    ( _9 z7 E. b  y8 [2 N! o/ W+ q7 ?1 }. }
  34.     }) m0 V3 C. ~# [0 z; B
  35. }, h- Z& {2 H8 c: o

  36.   O, _0 a: D1 ^3 p2 |

  37. % u! E+ N( s+ K
  38. static void do_it(void)
    - O2 e$ c' c: k- L
  39. {
    * X# \0 i# x. S2 I; W
  40.     int
    ' q; o$ J4 U$ j5 ~) |  d
  41.         attach_types[1] = {1};
    " U1 e( C& g" p, A8 l2 E
  42.     tag_t
    , f1 M) O: @# \  I* @; u
  43.         rev = NULLTAG, 5 J' J/ E6 ]9 a. \* F
  44.         process_template = NULLTAG,
    ; W, c$ D- x1 R# q
  45.         process = NULLTAG;/ |, M( b7 N: I3 B, N! q
  46. * m, J& r- `' a1 _1 d: E- U
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    8 z( Z* c6 t0 i/ o  R7 M
  48.     EXIT_IF_NULL( rev );
    ; d5 C  N$ J3 g) j9 t& T8 A

  49. ' k# n9 ^+ c  y" q( G& N' n- F
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 8 B- z. i, u9 Z! ?6 q3 J
  51.     EXIT_IF_NULL( process_template );
    . h6 d5 Z  z& g: E% `9 |
  52. ! q- g$ a) f; g' u# b6 u
  53. $ G0 A; D! p5 r% E4 `: R
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    7 \# }' ?& _7 p7 g
  55.         attach_types, &process) );
    5 V/ `" B, N$ G% l) L- a8 D

  56.   x3 u4 f  w+ J- M! L/ d
  57.     EXIT_IF_NULL( process );9 a1 {& Y8 a( o  E* i  _
  58. }
      a( D+ \4 S4 }) T* ~4 |
  59. % j* W1 V0 H9 P
  60. int ITK_user_main(int argc, char* argv[])
    2 `* e5 `" E! [* o( W
  61. {; v8 N3 q' u3 P9 U9 m
  62.     int* \2 O) A0 v2 K: u9 q
  63.         status = 0; " Z# a/ A% f1 p4 |- f( u6 l$ s9 H! z( C
  64.    
    ' a  _! F& o, Z7 n) F
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );& x3 h8 i5 O9 X% c- M
  66.     status = ITK_auto_login();
    + I6 l' m) b0 s" J, i! ~8 v
  67.    
    # V0 b- m3 N" n& t
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");* ^. @& D3 P. \& b* z& M6 y1 w% V
  69.     else
    $ V. G3 m" q. X: g# _- q/ j
  70.     {; {: Z# j2 Z$ ^5 o% V2 g$ k" k6 N
  71.         printf("\nLogin successful!\n\n");
    * o3 S- Z: q# T$ @3 m5 x: Q
  72.         ITK_set_journalling(TRUE);. e: H* e; d# g( w
  73.         do_it();4 L" k$ `& d7 P. U" z
  74.     }# \) T4 T) ~) k3 Y9 l0 R! r
  75.     ITK_exit_module(TRUE);' D! w( W3 I  w" U
  76.     return status;: E. O% T4 Q+ ^% o2 }
  77. }
复制代码

* B( ^2 `  U% ^& e
/ [6 o7 `3 `* Y$ S
# H8 d" `5 t3 s. z- V! t5 ]3 x# y: Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了