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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

% _- h: U% x6 cTeamcenter ITK二次开发源码分享: 创建一个工作流
' T) d& t$ L0 }6 w5 q% N* h8 @5 H+ c
, ^7 Q4 M% _) F6 Q' U
  1. /*HEAD CREATE_A_PROCESS CCC ITK */. i$ O- O. @: \) Q( h* u% ~, C
  2. #include <stdlib.h>  N( P' F6 }! M1 Z+ n4 }
  3. #include <TCcore/aom.h># ?( B. O4 K8 D+ j* t8 k( t
  4. #include <tc/emh.h>
    $ H& W( p4 |9 ]" i# h, O
  5. #include <epm/epm.h>4 t  A/ V; z: [" I; _7 Y' v! W7 r+ ~  h
  6. #include <tc/tc.h>: A% O8 e; W5 J7 N' v9 U
  7. #include <sa/tcfile.h>
    ) I8 O  h- P  R7 U) }9 F& x3 E1 q
  8. #include <itk/mem.h>
    + d0 ^+ Z8 \- N& d8 A3 U
  9. * f* o- W. u9 {5 K: {0 E2 f9 A
  10. #define EXIT_FAILURE 1
      E1 ^1 O% m2 R" {9 H
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))). c& m4 B' p7 q( W% @4 \7 H, v
  12. static void report_error( char *file, int line, char *function, int return_code)1 w" |/ x* g3 P- K- M, o
  13. {  l7 c! A$ r+ }4 b5 j" R
  14.     if (return_code != ITK_ok)$ P# J  F9 X9 i8 s* z
  15.     {
    2 E- m0 e1 o7 x7 k4 B
  16.         char *error_message_string;
    % u0 |0 K$ H9 i- |, O4 r
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    : k) ?8 e5 C  C3 }4 S1 }
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);  e4 v/ K$ X* k+ u, C* |9 y
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);% ^0 P/ w+ d, H  N6 k, R
  20.         if(error_message_string) MEM_free(error_message_string);% x- |; i9 U7 d+ U
  21.         printf("\nExiting program!\n");5 i  a" U6 {' h' D/ N$ c: x
  22.         exit (EXIT_FAILURE);    : B% X5 y* A; Y: D5 ?: a
  23.     }' b5 t/ Z, N5 U5 z
  24. }  q1 @  B+ _7 U% H& I* z
  25. 1 g: y3 `7 B3 q9 B, |# y) I
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))# D( I" v( x  q$ c$ c6 G
  27. static void check_value( char *function, int value )
    1 I2 N! p- K3 e1 C  K% b
  28. {
    ) U5 q" K" D( M) q, `4 [: U. I
  29.     if (value == 0)
    $ J3 `( s1 [* T: v* ^
  30.     {
    + D2 [; d; T, V# Z" K
  31.         printf ("\t%s is NULL\n", function);
    0 l& A' R, v, y9 Z
  32.         printf("\nExiting program!\n");5 z5 N" B! V# w) O) ^. `
  33.         exit (EXIT_FAILURE);   
    + B0 w$ C1 S7 A/ M0 z
  34.     }/ {  u  B" |' V! G) \4 i
  35. }4 s" b- X# N3 o3 J9 r( {4 H7 R) l
  36. - g: m9 R3 l' ~% i* ]3 U3 B

  37. % u4 G( ]0 f8 D! |* v- w3 Q
  38. static void do_it(void)
    . h$ q9 J* z; }7 O5 C0 g
  39. {
    5 r# b9 s4 o4 L4 N; Q
  40.     int
      u! m2 b+ y4 w
  41.         attach_types[1] = {1};" Y/ F' G2 d9 j, k; w/ N3 F; W
  42.     tag_t % q% Z+ n# t' J; c
  43.         rev = NULLTAG,
    0 T3 W  h* s# W, j( o
  44.         process_template = NULLTAG,
    ) V; b  ^1 ~" P/ I, U+ E
  45.         process = NULLTAG;
    " u, f6 r5 N# a# Y7 B' b5 S

  46. 4 p; p- M7 ?- K
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );: y9 m# Z8 p- x+ `% h) g& y
  48.     EXIT_IF_NULL( rev );
    1 m. ?* m1 \2 w! e
  49. & g$ U% y% M4 r! j4 w1 I( z) A- Y
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    7 ?, Z) _- s& \5 B5 ~0 W
  51.     EXIT_IF_NULL( process_template );
    + J5 J, g: |" e5 \: S& V/ I! M
  52. - c+ ?9 k# s, ?; k  S9 T. t

  53. 6 b' G7 z3 e- M3 S: W! @
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
      M, k( H3 [( G- G3 `6 ?* X' |
  55.         attach_types, &process) );/ u( M! a% d4 m3 z  d4 ~" R
  56. 4 ]! O- J: Y# T  ]
  57.     EXIT_IF_NULL( process );' }2 }& |2 l0 P1 T: s$ l+ h
  58. }
    4 R$ E7 D% F) @

  59. ( ]0 h4 h0 S, \" w4 a
  60. int ITK_user_main(int argc, char* argv[])
    ( @' o2 e( d+ W, [$ h6 ~( H
  61. {" P6 M! O8 D" S) a' M
  62.     int5 S3 J. D( s  |6 @3 U
  63.         status = 0;
    : r8 o0 A0 E. s, v
  64.    
    6 ]1 t! m% i- k3 S
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );) G+ m" F- _0 _
  66.     status = ITK_auto_login();  ?; P' C- G& x# J: P6 G( [5 N
  67.    0 p  D. ?. e$ i) [- e0 m: e: Z
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");) u% `/ B5 h: }' S3 ]
  69.     else
    ! m# P+ R+ p! V1 b4 r1 c+ ~) T- u8 y. ^  E
  70.     {' ~1 a, T7 E+ V) j- Q! j) o
  71.         printf("\nLogin successful!\n\n");
    8 U- Z$ Z4 A4 r' _3 ?! @  F5 R  O
  72.         ITK_set_journalling(TRUE);, o, E% x" J8 ^. W! @
  73.         do_it();
    : r3 {& Y2 G* Q0 s9 q: ^, N
  74.     }
    , ^. o1 E9 x8 q2 Z- |- {2 h9 K4 h( a
  75.     ITK_exit_module(TRUE);; u3 S2 R( T* }" s
  76.     return status;
      K- o3 i$ N+ N& a7 k1 @3 O
  77. }
复制代码

4 F, f0 G2 A* D$ Q% P) o
: r1 B  s; T- e' t) d$ E
2 ~. i+ L* I2 a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了