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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

0 H+ P: g- U* a& i2 {4 b  K% cTeamcenter ITK二次开发源码分享: 创建一个工作流, B7 Z) x5 [/ U5 O6 V

. U6 g( B2 Q& m7 `! B* E! J9 B
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    . ]# D8 Z$ P9 k: L& C
  2. #include <stdlib.h>
    5 e8 e/ I( [% F5 F8 \
  3. #include <TCcore/aom.h>& j& d  ~7 L# v; D: Q( [" r
  4. #include <tc/emh.h>
    3 |# l- z$ {. g7 V+ }. Y: [% i
  5. #include <epm/epm.h>) A. ~; J) j" `) U, c7 |4 a
  6. #include <tc/tc.h>- c: E& @  Q6 f! `% J4 ~
  7. #include <sa/tcfile.h>
    9 B- v+ X& p/ m0 m7 {4 Z4 H2 o
  8. #include <itk/mem.h>
    + y6 s! u( U" I

  9. 7 ~% a2 j% K, p7 t" u
  10. #define EXIT_FAILURE 1
    5 W( |( Q, [& u% X& ~) N
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))9 L7 x/ @8 Y6 Z1 Z$ L& p  G% ^
  12. static void report_error( char *file, int line, char *function, int return_code)0 A7 p% D# T$ x8 x7 M* h( ]- W
  13. {
    ) o9 R) T- d: h2 f# m3 Z) E! H
  14.     if (return_code != ITK_ok)
    % Q& h% O+ u  c! @9 G! ^! n
  15.     {
    / X; _% O/ {" d. g" t4 s
  16.         char *error_message_string;
    3 }7 j1 f' |( a; f7 s1 V, [& q: @5 @
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    9 h3 l% {) l9 [
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);, a9 |9 M% Y" J8 t/ a
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ) H/ k  F/ v% A' v
  20.         if(error_message_string) MEM_free(error_message_string);& G' B4 b8 `' K7 g
  21.         printf("\nExiting program!\n");' L6 Q; ]5 \$ H% E% t8 H' n
  22.         exit (EXIT_FAILURE);   
    " i) z0 k( Q& [) e( e- @
  23.     }: W- T3 C4 u( n1 x  X# L% r
  24. }
    % C8 G. G) ]4 ]  V
  25. ) v0 {% t/ I. t
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ' u7 G& B5 q7 U7 i: I( U% A; u
  27. static void check_value( char *function, int value )
    1 H2 N% F0 W3 Q7 o! v
  28. {
    , `2 ~; P- H- G5 X) X
  29.     if (value == 0)* W8 @, s9 ?7 ]& p) K; [
  30.     {
    ! u( V' X% U0 ~; K
  31.         printf ("\t%s is NULL\n", function);( k8 h2 f+ D3 g  ^3 L
  32.         printf("\nExiting program!\n");
    2 U4 N9 [& e& Y8 c
  33.         exit (EXIT_FAILURE);    0 N. @  O, N6 I5 a8 G
  34.     }# p5 H0 A2 [; Z. ~' Q# @
  35. }3 B! m) h* c$ T3 q3 }1 h/ I

  36. 0 s1 z5 p3 S: ]/ T/ D8 V6 b7 s$ @1 r
  37. 0 H6 g$ e4 Z$ L: @  K/ l4 Y: _
  38. static void do_it(void)/ B0 v$ }8 f5 C' \) F
  39. {
    + e& ]: @* _; E/ q
  40.     int $ _/ }. W8 ?/ r0 q; Q6 {$ Q2 k
  41.         attach_types[1] = {1};- ?6 S/ b) z3 s: S" Q9 G1 E: Z/ j
  42.     tag_t
    % a0 P: t* x- q$ E  c8 }# k
  43.         rev = NULLTAG, & t  r1 p/ s: Q
  44.         process_template = NULLTAG,
    1 Q* j8 H9 ~9 O0 ]4 j5 Q5 Z; P2 x) D3 r
  45.         process = NULLTAG;
    " M- ]* [" u" k

  46. , w# A" b4 M& Y6 j
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    * T# q: @5 z/ j2 J& I) V
  48.     EXIT_IF_NULL( rev );
    9 i6 e+ o8 o* A/ [- c1 ?
  49. % N, ~- c+ r7 r; v: o  b
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ! r8 ^" c- X) Y$ F
  51.     EXIT_IF_NULL( process_template );. q/ N& n; q9 [/ E

  52. 2 o+ o+ ^- V& ]; a

  53. % ]$ ~- I  D  P
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ) L6 B+ H' _4 W, I- p  n! [9 _
  55.         attach_types, &process) );1 ?* g3 @  B; f' Q* `- t
  56. ( `" r. k9 L" h4 i2 ?+ [( e
  57.     EXIT_IF_NULL( process );
      E2 m, H5 E1 a3 j" x
  58. }4 ~0 F5 j% a+ }- N8 r6 w, M+ z

  59. * a* I8 m( b( S1 ~/ O) \7 i9 `: f& p) W
  60. int ITK_user_main(int argc, char* argv[])
    / |% a! j/ i% n+ d
  61. {$ q( l3 t; W; M6 g8 t: j
  62.     int- |+ e+ T) u, v! f/ M
  63.         status = 0; : J7 w9 [/ E+ }/ c
  64.    
    * l) t4 t' J! R, l
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    & J+ }$ w0 q& [' M' D1 `
  66.     status = ITK_auto_login();
    ' h, E2 {. p; f
  67.    $ ^# Y) m1 F: |. }4 P4 Q
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");6 I+ H8 M; |1 q
  69.     else
    $ ^* f1 U" \$ P
  70.     {
    ( Y3 p5 P6 [7 J$ D& D# ]
  71.         printf("\nLogin successful!\n\n");7 S: {' ?5 [3 d% g1 T/ O2 N
  72.         ITK_set_journalling(TRUE);3 n# H! F" L2 U1 t  l
  73.         do_it();5 C. |- V3 S7 [
  74.     }0 O- c; `6 S4 J- j' p; S
  75.     ITK_exit_module(TRUE);: n: F" K, I8 w: N) j% T
  76.     return status;8 G( r0 Z4 f8 t! E* Z
  77. }
复制代码
* {! ]  g( J* k( s5 t2 E5 x
) S7 H9 B8 f! u
. J8 U6 g/ _$ Y7 [+ p: C% i3 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二次开发专题模块培训报名开始啦

    我知道了