PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
8 U  I( f- j- w2 a. b
Teamcenter ITK二次开发源码分享: 创建一个工作流
8 F! V, a& v  D) M
! ^6 A7 N* p; s/ d6 X. v
  1. /*HEAD CREATE_A_PROCESS CCC ITK */% b) B( r% S# D$ g$ V
  2. #include <stdlib.h>' Q6 z: L8 J! }4 v  ]& p
  3. #include <TCcore/aom.h>. m$ X; e- n6 r; [
  4. #include <tc/emh.h>  z( P* K, L( }5 f
  5. #include <epm/epm.h>. O2 {6 ?" D+ s9 D/ A
  6. #include <tc/tc.h>
    $ z: u4 [) j0 b
  7. #include <sa/tcfile.h>* d+ P+ j# o; X. T' Q$ i7 F# c
  8. #include <itk/mem.h>! n; a# H0 \7 c1 e: V/ F* P) j8 t

  9. ' x) Z) d: c9 K* G& f& [) o% T/ O( K
  10. #define EXIT_FAILURE 1 3 R1 q( x5 L, w
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    " R/ P  Q: D7 z0 k% \6 g
  12. static void report_error( char *file, int line, char *function, int return_code)
    $ C" s: S- e& P5 o9 k2 D
  13. {
    5 z# s# c( p. b+ p/ ]
  14.     if (return_code != ITK_ok)3 s" A; v$ o) p! e$ }) c
  15.     {6 b' n3 ?( @7 R0 ^0 {; \/ k
  16.         char *error_message_string;0 z8 U6 P6 A4 U7 ~
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);: I9 i, G  Q# o4 |
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    + Q7 X' @$ V3 t
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);- A2 J$ I; E. y8 C7 O
  20.         if(error_message_string) MEM_free(error_message_string);
    - c9 m# }) U& {' S" h; H, [) v, \
  21.         printf("\nExiting program!\n");
    ) D7 D' y) \" F
  22.         exit (EXIT_FAILURE);    $ x/ U' s' v6 V3 p( b# q! E
  23.     }2 ~4 e1 b) t! Y3 C% {# ]
  24. }+ \$ ?: X: O* g) ~6 k
  25. 2 u9 f/ J) e8 R6 j$ I
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))4 v! \& G6 Y6 P1 {& S0 V
  27. static void check_value( char *function, int value )
    # O, L7 d' R; I& h& t. k3 F
  28. {
    # b  g) t# G7 w6 M  G' a1 Y
  29.     if (value == 0)7 h: l# U' ]$ n. p8 e
  30.     {2 M  ?& h  L4 y, M* a: ~
  31.         printf ("\t%s is NULL\n", function);4 C; q. @- ~9 D% O% v: j
  32.         printf("\nExiting program!\n");4 a1 D' _8 I& {& k' j
  33.         exit (EXIT_FAILURE);   
    7 O% y" X: z% J9 [% F3 m
  34.     }
    . r8 J! h# n3 ^  O4 _1 r% S
  35. }1 X7 T: k+ W( ~0 z1 P1 z# K' G, |
  36. 4 Q- f* _/ {: I% s* A3 |

  37. + N. o# B- l1 y$ Z$ ?
  38. static void do_it(void)8 Y- J' p# {# r/ C
  39. {
    ( R% g% l: A- a& B
  40.     int
    0 t' m+ b0 q1 c2 n- J+ B
  41.         attach_types[1] = {1};
    ' Q1 v: ~: ^- Y% K! B; N+ Q
  42.     tag_t 8 n- w- q% \; C6 o  f
  43.         rev = NULLTAG,
    9 B/ w2 Y/ Y: @, T2 R  ?
  44.         process_template = NULLTAG,
    * r4 c# u+ X# k- t
  45.         process = NULLTAG;
    $ R3 D" v5 h& }4 p- R$ S
  46. 8 G- s5 y' P" p! W2 |# k+ ?. m
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    * w) Q' z8 M1 D- O" V
  48.     EXIT_IF_NULL( rev );/ h$ G" z( t' ^$ o) ^

  49. ( D6 C1 l' E7 a* B) B: j, g
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    1 {' o0 q/ q+ r  _4 _" c
  51.     EXIT_IF_NULL( process_template );: k; H# G. q% m. j" d, V9 F
  52. ! d0 Y. m9 ?) j4 [. L7 z* @

  53. 8 M; \4 R: ]1 t2 ]! h3 s$ T4 g
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    6 T% N5 s: Z( |; t3 X
  55.         attach_types, &process) );' z: B( P1 C1 q3 H

  56.   v+ X0 I# E$ U8 u% k1 ]* l2 T
  57.     EXIT_IF_NULL( process );
    - i" e' {+ J- N
  58. }# k; a& o. S5 R0 M
  59. . U, O) x+ E& y9 f3 [( R
  60. int ITK_user_main(int argc, char* argv[])
    & B) D  {; g$ \; ^
  61. {
    ) v" r' I+ x6 r3 ?6 p* H3 G% [
  62.     int/ Z( H$ e; ?4 F4 ?7 g4 d- ], Q6 A
  63.         status = 0; " @) k- s  R+ ?( Q3 s4 M7 c
  64.    , y: G8 C+ R1 {8 g
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );( N4 x; D4 g* ]5 M* Z
  66.     status = ITK_auto_login();" Z& \/ |( T, w* I! A
  67.    
    " a' W# Z% o$ W, n" L
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    / Q7 x2 g6 R/ R+ {
  69.     else
    / |: C8 F0 m8 U$ \
  70.     {; q- }1 {9 H) r0 k" d" }+ _9 j
  71.         printf("\nLogin successful!\n\n");
    * W+ ?. \" |7 [
  72.         ITK_set_journalling(TRUE);0 B( H0 I' y3 A8 S: p4 |4 O
  73.         do_it();0 L3 ]/ }$ R! q$ R- w& \
  74.     }  z9 q- z- P: F8 h, o. i
  75.     ITK_exit_module(TRUE);
    . k' \, c$ k! O, ~8 N( k
  76.     return status;
    4 Y6 ]: k6 K3 R5 P& A8 Y
  77. }
复制代码
  M$ H8 ]' \; d

7 X8 p# R0 k, e" S( J# H" b6 K
# Q+ e3 Z, g5 P" A9 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二次开发专题模块培训报名开始啦

    我知道了