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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
# M& y* k/ S' W2 |/ o
Teamcenter ITK二次开发源码分享: 创建一个工作流
4 p. I% V; H! u& y/ n
6 E) G) E; G7 [5 L! L$ i
  1. /*HEAD CREATE_A_PROCESS CCC ITK */1 _+ Y: X0 q  w3 f& H; n, }
  2. #include <stdlib.h>* M; |7 D) p$ ~) L3 z4 L
  3. #include <TCcore/aom.h>
    9 t; b. R) U9 d  b# v' J" k) w. v
  4. #include <tc/emh.h>
    - n/ T* n, j7 [
  5. #include <epm/epm.h>( |3 u/ M" \% {  a+ T* L0 `! O
  6. #include <tc/tc.h>$ ?3 E3 U# U; |# j5 d6 @/ `
  7. #include <sa/tcfile.h>
    ' w+ b, `. `- [/ R0 r4 \* a
  8. #include <itk/mem.h># p! a/ d6 k+ \/ I" o8 H

  9. 1 M( a( h6 v) j5 A
  10. #define EXIT_FAILURE 1
    8 ~# S7 i' F1 D+ m* n
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))4 r% {" G" i7 x5 H
  12. static void report_error( char *file, int line, char *function, int return_code)
    ) E! `% w; ~6 H% T/ r) \) N; \
  13. {. a4 O6 y# M* w1 M  f
  14.     if (return_code != ITK_ok)9 b% J% x) r7 D  h
  15.     {1 L3 Y$ l: _7 y5 B  b) O. F
  16.         char *error_message_string;4 U. q) s$ V4 `1 s9 ~& I
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ( I+ S/ V% P" P' @1 h
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);! a) m+ K" w) R
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);0 w' G1 M+ ?6 p" [3 q4 u, W
  20.         if(error_message_string) MEM_free(error_message_string);! k* G& V/ ?, F  l
  21.         printf("\nExiting program!\n");* l* h0 Q5 I" O0 b
  22.         exit (EXIT_FAILURE);   
    * G* l  `$ Q9 d/ w+ f1 P6 b/ g
  23.     }' K# d( ~# w2 P9 H% U
  24. }1 t: x( J, F$ O: }- A  ^/ R1 X" B

  25. 5 M- ]$ `/ v5 B* |4 T5 A' o
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))+ S, U# g$ H" r* x- E
  27. static void check_value( char *function, int value ). i0 Q2 ?. t6 d7 d! C: \
  28. {7 \( N$ _+ |2 \% h. ^
  29.     if (value == 0)
    % }' B9 K% i7 }- q! X& A
  30.     {
    . c3 ^& ?. x. A: Q. E" L2 t! U9 u
  31.         printf ("\t%s is NULL\n", function);
    3 D* u1 h- N* R
  32.         printf("\nExiting program!\n");
    + r8 T3 F! M# s; A0 x7 W- v
  33.         exit (EXIT_FAILURE);    6 m: A  N" `4 c5 _
  34.     }% A! j. W2 M( C7 P$ ~4 Q
  35. }+ t* D0 Q3 B5 t" O! ]2 o/ y5 w2 v

  36. " m' g+ M, l: _$ h
  37. # Q, t- s9 c& j- b* G
  38. static void do_it(void)
    / z+ @( A# e/ u  _7 ]
  39. {6 D6 L1 N& y: R1 ^0 @! G
  40.     int ! B! u$ C4 x4 [2 P5 y2 f( J$ |
  41.         attach_types[1] = {1};
    $ `& v# E4 p  R5 d- ]. l1 Z
  42.     tag_t
    0 Y6 a! A& z3 e7 h" M. ?
  43.         rev = NULLTAG,
    * ^% t; ^2 f% U3 E0 l, B
  44.         process_template = NULLTAG,
    7 ~6 {4 Z( u* ]
  45.         process = NULLTAG;
    ( B  J4 J; Y) I  b8 T( j- t
  46. $ _% ]1 X2 O) m
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );' A7 A5 Q* `% W8 ]0 k
  48.     EXIT_IF_NULL( rev );* x+ C9 O$ w7 p( e. |# Y5 l
  49. 6 x& E. ?$ r/ n" p: {
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    * X( X9 j$ x& x4 |7 ?8 B
  51.     EXIT_IF_NULL( process_template );
    7 g; T" a3 W4 w3 @& [) y
  52. * B. ^" |7 f: \' O  A

  53. 6 M7 {' i- H2 w; ?, I
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ' N. B. m0 W8 P3 x, ^; Z$ g7 I5 e
  55.         attach_types, &process) );
    # B+ @9 k2 \2 W) U4 H
  56. 1 l5 G& ~/ g% L6 w. [# m
  57.     EXIT_IF_NULL( process );
    - a3 w% ~& G3 O; v; h) Z
  58. }' j, r9 F7 d) _! D6 L/ n* t

  59. ' D4 U, D1 q$ h3 m' c$ e
  60. int ITK_user_main(int argc, char* argv[])7 j7 A  f# F  |4 z% N
  61. {
    7 [) M* k; Y! U, C4 h
  62.     int
    . M, O3 a% C' n7 _* Y# i0 d
  63.         status = 0; " S3 U8 V' O0 X: D
  64.    ! P' k1 c6 j- ~( W) W
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    8 J: b' s8 `0 G% ^/ i9 V( V
  66.     status = ITK_auto_login();3 L0 |+ A+ ~; E) {8 G2 K+ a+ W
  67.    
    5 r; W) }9 @& t
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");; n) h3 S- A' K0 x& Z; e0 \
  69.     else! y. I4 w4 O& H: b6 y7 w
  70.     {% }' G3 [2 W) L+ D1 Z% d! b
  71.         printf("\nLogin successful!\n\n");* [* S0 [, o' t3 A
  72.         ITK_set_journalling(TRUE);; |  Z: e1 I3 U- _' x. u
  73.         do_it();9 y! {1 e* _7 C
  74.     }7 r3 ^- @* D. \+ n* v7 {/ s' [) f
  75.     ITK_exit_module(TRUE);# A. L% s) O2 y! \
  76.     return status;
    ! \! ^7 m0 a7 F: i
  77. }
复制代码

: ?1 _" a3 j1 \) }" ^* A/ Y) v; c1 j; E; x: w* _; A. F5 l. I
+ R' n2 j/ C4 ^/ ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了