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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

: r" [0 P0 a4 R& F  L6 ?- q+ P/ tTeamcenter ITK二次开发源码分享: 创建一个工作流3 G- Y( O! c, t+ c$ Z. z

3 p$ B! b0 w7 A
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    1 P+ G" ^. y/ i$ O& f4 U
  2. #include <stdlib.h>
    % }/ w( ~0 t$ Z4 Q) `" o
  3. #include <TCcore/aom.h>: y  q! Y) D4 W$ B6 t5 v. I
  4. #include <tc/emh.h>/ p9 t9 N' D0 [* g6 {4 u+ f
  5. #include <epm/epm.h>
    - m, S- V9 q( H$ x
  6. #include <tc/tc.h>8 x. C7 D* v9 `3 b/ Z- |6 z: H
  7. #include <sa/tcfile.h>
    - x$ e7 J6 R! G7 `1 f& ?8 _
  8. #include <itk/mem.h>% F% N2 [& a# Z- V  A
  9. / g# D, S/ h6 M( ?
  10. #define EXIT_FAILURE 1
    5 N+ f& W# l. ^, ~; y9 j: t. k3 l
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ! j- f2 ~" S( H, }% ^
  12. static void report_error( char *file, int line, char *function, int return_code)
    ; p! M, M1 S3 m9 N* V2 d: T, J, ^
  13. {
    ! R, k' c9 a! }3 E* L% r. p
  14.     if (return_code != ITK_ok)
    ( [# a# z; \9 h! X! T7 ]
  15.     {
    3 f, E# Z% D$ Y5 z2 E. s
  16.         char *error_message_string;  M, p; J4 p- K7 |# l
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);- B5 A# ]5 s$ ~5 B: m/ \4 M7 U
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);1 p5 t" q- Q( p5 c5 \1 K3 D
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);9 F' K1 r" L  b: e7 D
  20.         if(error_message_string) MEM_free(error_message_string);
    3 J& R& ^* Z" h, N* P# \3 p( w
  21.         printf("\nExiting program!\n");- M! z4 k  I: `8 {# M8 o
  22.         exit (EXIT_FAILURE);    + o8 L/ P) e% H  s: Q
  23.     }
    1 E7 J& j# b% H" j7 H# H! f3 C* v2 T
  24. }, W- d1 O  e4 i! D; }- N

  25. $ F. a! R+ v( Y8 s; g& X
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))  W6 Q! N1 K/ d9 X
  27. static void check_value( char *function, int value )
    % H/ @( o# t: A' h$ i/ ~' F, V; A
  28. {3 J( T5 L2 }- \  W! v! i
  29.     if (value == 0)- x. F$ a# S. K+ r8 p1 y
  30.     {) r; b0 ]' h- A
  31.         printf ("\t%s is NULL\n", function);
    / b, `5 s9 z, U% u2 M) Q
  32.         printf("\nExiting program!\n");
    7 W! |' [3 r/ o; |6 p5 d
  33.         exit (EXIT_FAILURE);   
    ( M- W6 ?3 X7 ]4 o
  34.     }, o9 T3 ?$ {" n' l4 i& u  U  N
  35. }* G/ X8 K+ b* A: o
  36. & C) W9 f& t8 x  p" u
  37. , I' k) ^, `$ ~) G( }7 J3 g
  38. static void do_it(void)
    ! p1 Z2 b# x5 J# U
  39. {
    . D$ f. U0 @/ w8 @
  40.     int ! `# v: W! L! u0 a0 g
  41.         attach_types[1] = {1};
    3 S& d8 J4 r! D  n" M7 |: F3 b
  42.     tag_t
    / e; T1 T0 P; |! E4 d  ~
  43.         rev = NULLTAG, . }2 ~$ X* F+ D' F0 I4 E# }6 j; K
  44.         process_template = NULLTAG, 3 c0 j3 k2 K) `2 y
  45.         process = NULLTAG;; G! l, V" W6 R: q- \9 ?' o
  46.   H4 M8 _; ]1 {& |7 B# e6 L
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );8 I$ P  X) x" O  p# k; H4 A+ f
  48.     EXIT_IF_NULL( rev );
    " z1 H, @5 u& K; t" f0 B; [" y

  49. 9 H+ m9 w% d; m; W& C
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    ) f" W3 G; m1 `
  51.     EXIT_IF_NULL( process_template );
    + k8 m0 m$ _9 Q" D: M: z/ U

  52. 8 r# j+ ~6 s; A/ @8 X

  53. / _0 O+ r+ ^1 ~8 r
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    ( Z; R2 n. {; r/ {* V
  55.         attach_types, &process) );
    6 {) U  j) C$ A9 ^, u) [- t0 c

  56. 3 Y6 L" q" o- ~7 i8 M0 U1 d( ^4 n
  57.     EXIT_IF_NULL( process );
    ) ~* p& {1 u% L$ P/ C1 b* x8 q5 k
  58. }
    ! a) F$ ?8 v, b7 O% `/ K
  59. ' H  M3 u& a7 z
  60. int ITK_user_main(int argc, char* argv[])
    + n! E9 k9 P# S, A7 r4 d
  61. {
    ( S4 ~/ d8 ]& J! f5 O5 }0 D
  62.     int
    & ?+ j+ M; V- i( h/ \" r
  63.         status = 0;
    & W% W& ]4 ?" X7 l- o
  64.    6 t3 e2 G. P% P! j3 G
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    % O% X6 D) g' y9 p
  66.     status = ITK_auto_login();
    ' f7 p: r" u$ k) g4 o. Z
  67.    
    ( \( r$ X& g$ q# M
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");: `) A. |9 U/ l" o$ ?# x. E5 U
  69.     else7 n# h" C& A' S; |* ]
  70.     {
    7 q3 W7 `- m( Q9 a" _
  71.         printf("\nLogin successful!\n\n");
    $ c/ W$ `: x" ]8 C
  72.         ITK_set_journalling(TRUE);3 d7 r8 {+ J  U
  73.         do_it();0 b& K1 o" d+ |: b& Z
  74.     }
    7 y( K- M4 d- y7 \  t' }
  75.     ITK_exit_module(TRUE);
    & j# e7 O8 C  x7 z  d
  76.     return status;
    4 T. e3 t6 ]7 P# K- T( w( ~
  77. }
复制代码

7 y; ]/ e! V7 r" }8 A. f9 _4 q2 `  u
/ S8 B: r5 P. m9 `4 V
6 j4 @1 t9 l) p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了