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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
) c+ U& C  W) [2 z
Teamcenter ITK二次开发源码分享: 创建一个工作流& ]; D! }9 }% j0 ?
& B7 ~1 ?: Y$ i
  1. /*HEAD CREATE_A_PROCESS CCC ITK */! ^0 d8 A- |9 @  a( H
  2. #include <stdlib.h>
    ( g$ }% b) E$ K9 ?7 o& y" H2 I$ s
  3. #include <TCcore/aom.h>& h  {7 g/ F) C
  4. #include <tc/emh.h>
    ) B4 D5 {  v8 g* i2 P2 V7 P
  5. #include <epm/epm.h>, E% A" x4 }' Z* M; i# c% z
  6. #include <tc/tc.h>1 R9 E) H) i; X. o' ?# C& V
  7. #include <sa/tcfile.h>! P/ I' H4 ?1 r# U& C+ J
  8. #include <itk/mem.h>* {& ^0 L- ^0 G

  9. / T& w4 H% O0 R6 j- T
  10. #define EXIT_FAILURE 1 ' L# b( d% U2 i$ b7 H2 d$ Y# f* @
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))0 s$ H" l: S/ K+ g1 M" z0 U
  12. static void report_error( char *file, int line, char *function, int return_code)0 }/ W- v, Y, h/ l
  13. {  h. ^3 {! t0 V. `9 j3 U$ s0 i
  14.     if (return_code != ITK_ok)
    + J5 y5 Y7 k, @5 \4 r5 ^& n
  15.     {
    ( z! J2 s# _1 B: ^6 ~7 _1 @
  16.         char *error_message_string;8 K$ I" _" T/ j( L; ]! W
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);! G+ F1 @" ?4 [/ v; J9 ~
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);- D5 S" o( L9 k/ y
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);' Q! U, A* k/ V+ R9 q
  20.         if(error_message_string) MEM_free(error_message_string);
    & r" \; L% E1 n) U' r  A
  21.         printf("\nExiting program!\n");
      Y9 P  m' h" @; B: @: `5 l
  22.         exit (EXIT_FAILURE);   
    % D0 J; ^' e) I3 X: M8 Q
  23.     }& z. e8 m2 J$ S/ L! P1 l3 p# P1 O
  24. }
    1 d2 S7 i- I3 m+ Q! ?2 G1 }- d

  25. ; H/ K9 Y* b/ x9 m
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))/ w) ^! g. m8 s5 P
  27. static void check_value( char *function, int value )
    9 ~4 [' B3 [+ O5 I! D
  28. {
    6 h, d# P5 z# p: o! G" G, U
  29.     if (value == 0)
    ! h0 a; ]9 J* T* x, m5 ]2 r9 f4 `
  30.     {
    ! U, x2 L/ w/ k, [" C& ]# k8 }
  31.         printf ("\t%s is NULL\n", function);! _: d1 l% T1 V2 E( I3 ]. G3 `6 V
  32.         printf("\nExiting program!\n");
    9 n0 N8 w( M$ p& h) }
  33.         exit (EXIT_FAILURE);    - v- @" W  c3 Q- V1 B- U. ?+ d* s
  34.     }
    $ ^3 I! L% [: F7 w
  35. }
    4 L3 t& r  T  [: g& Q, |; |
  36. 7 L6 t/ q# l8 G/ X" T
  37. 1 i# ]7 J+ B0 |6 R- h. N
  38. static void do_it(void)
    0 A* R6 E9 F8 P2 G0 O9 n
  39. {
    7 d, a, W4 L% ^( y" y
  40.     int " e6 u, ~, }: d, M, F
  41.         attach_types[1] = {1};
    , }/ \; h9 J' L& s7 s
  42.     tag_t 0 }. I/ s8 I$ r4 h
  43.         rev = NULLTAG,
    3 P* X1 g: a4 U& j5 B: o* h
  44.         process_template = NULLTAG, & I% J- R5 D- D
  45.         process = NULLTAG;$ C" e: p- k  J5 b; D7 J/ y
  46.   h. D' J4 o. P7 p
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ( u1 Z7 r0 F# o. N2 z
  48.     EXIT_IF_NULL( rev );
    * h6 `- Y0 T2 b; B
  49. ( W) i4 x" v' I" S
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    7 R, q. Z3 n0 o1 ]8 g2 c
  51.     EXIT_IF_NULL( process_template );
    & d7 d+ d1 e9 z! B0 |

  52. : C) D1 |3 q* Q9 E
  53. $ N, G, u$ p- r$ J1 E% q
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ' f& \. i7 m' [  e4 Q$ B  `* H
  55.         attach_types, &process) );8 i4 l+ ^3 x2 h" t4 d* l. V

  56. ( a) T8 @+ ~1 |9 y
  57.     EXIT_IF_NULL( process );
    6 _  s. P; {: q: X
  58. }: S6 `; P. B# ~6 p$ X6 [

  59. 4 B& z& b* O1 j" d. h  E* S
  60. int ITK_user_main(int argc, char* argv[]). }" X6 D+ g) B4 B! F- ^, a
  61. {& D+ f& g: P9 V
  62.     int( `$ A8 C( C$ T: y$ a' @0 A
  63.         status = 0;
    ) w3 o  f# t; j& n% {
  64.    4 \/ y4 r; I% T) Z
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    , F0 M: W& u0 L* g/ ?. ^0 y7 v) g
  66.     status = ITK_auto_login();$ C. s+ f( r# `. i
  67.    
    ; o. P0 V% R. {' Q, D& `$ @% ~
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");. k% H$ A1 q( m  D4 |
  69.     else8 Y9 \- @0 D. b9 E  c
  70.     {9 o. U& O0 d/ `) J+ d% K
  71.         printf("\nLogin successful!\n\n");1 J5 y  w9 E! \  c
  72.         ITK_set_journalling(TRUE);3 }( e0 N  R, p$ P+ x# g
  73.         do_it();  S  ]: _- D8 F+ a; A, E' h
  74.     }1 Z% I1 S6 |0 C$ Y5 j$ Z
  75.     ITK_exit_module(TRUE);
    - ^+ ^& N! T" I" L! y
  76.     return status;
    , H5 _2 c. G5 W' v
  77. }
复制代码

; @2 u) B0 y: @" i9 ]
% i: p1 A3 O9 G9 p8 E- H* A  I. w( T' `8 v; F+ k
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了