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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

% D5 B" V- ^* V! N+ KTeamcenter ITK二次开发源码分享: 创建一个工作流
) s. v! q: X+ P8 c! L6 v( T  u/ L: Q) R& ?5 [. y2 F6 n
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    3 \0 v. `9 q. O1 G
  2. #include <stdlib.h>
    0 O; I) K' l1 b8 _% h
  3. #include <TCcore/aom.h>
    ) p0 n5 ?2 `8 `- i
  4. #include <tc/emh.h>6 X, b4 U$ p4 G9 \/ x. M
  5. #include <epm/epm.h>
      N; h2 v; j0 [. H) N, W2 \3 w
  6. #include <tc/tc.h>7 Y  l+ P- a# W
  7. #include <sa/tcfile.h>9 Q0 _, _0 x3 o  c# x+ G
  8. #include <itk/mem.h>0 d/ M8 ]0 V. p/ S$ Z( R: [0 ~
  9. ( b9 G3 w' j& _. b. ]+ `
  10. #define EXIT_FAILURE 1 $ P! E: C# d  e
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    , }4 W  D. j3 |; e/ f
  12. static void report_error( char *file, int line, char *function, int return_code)
    ! _* F" A, \4 g$ H9 h- t4 f6 _
  13. {
    5 X. |# _! b7 e8 U* i& r5 d1 P
  14.     if (return_code != ITK_ok)
    - h5 a3 n6 @/ [& W
  15.     {8 V+ h& m9 @( M$ w: {
  16.         char *error_message_string;
    8 H8 f: }4 L5 _
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);$ `7 k/ W" q2 ~" I8 U
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    5 f. V6 G3 L7 l4 x" S9 Y6 s
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    3 E& v$ V$ M+ }' Y! _6 U
  20.         if(error_message_string) MEM_free(error_message_string);# s4 A( z; s/ W, u- ^# Y6 {
  21.         printf("\nExiting program!\n");
    ; Z# Z" L* J' W# A0 G* D" w
  22.         exit (EXIT_FAILURE);    - k9 X  o0 |3 R
  23.     }3 W' e/ W0 s3 E& z6 I9 N
  24. }) n' b8 o2 S8 l
  25. 5 t! X+ `4 w" y8 p2 A, F& V
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    9 Z9 X1 L) {6 p/ z4 i( x# d
  27. static void check_value( char *function, int value )3 f. N5 p4 ^/ `0 t& _9 W
  28. {7 F# l; G7 F! U: Q
  29.     if (value == 0), I4 G4 a+ Y6 N9 O( V+ U
  30.     {
    : q6 ]: b" D6 ?/ H! _7 L8 Z
  31.         printf ("\t%s is NULL\n", function);
    - g% {7 {  q  U6 l* |5 s
  32.         printf("\nExiting program!\n");4 S4 a! G' t" G* ^+ k% ]
  33.         exit (EXIT_FAILURE);   
    ! t; {: ?8 Q, e
  34.     }; E- J; |# u* t7 }! c
  35. }
    1 C3 c! N+ _# m/ h+ x5 A; ^

  36. 7 C1 W7 y, K# m' D
  37. * {! R* q$ G' x1 z9 K
  38. static void do_it(void)9 T! Y: ]7 p' d9 A; {+ N- }0 V
  39. {# K5 r9 w9 ^8 Y3 ^$ B3 Y
  40.     int
    2 n/ a( i( ~( p8 ^- R8 J
  41.         attach_types[1] = {1};) ?2 z0 k! j+ i7 s# a; U+ u
  42.     tag_t ; F/ ~" u  S- S% ?5 j
  43.         rev = NULLTAG,
    % ?3 q/ i. P2 `1 p
  44.         process_template = NULLTAG,
    : F0 l5 g  v$ k) O( ^4 h3 q
  45.         process = NULLTAG;5 o( _. m$ e' B

  46. / T5 _( U" `$ E$ _/ X. }
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    % f! C1 \6 D4 p/ |- c6 ]0 V
  48.     EXIT_IF_NULL( rev );# c, M9 x# L# P! X
  49. $ s- k# ^" q9 p! e$ H& W
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 9 F. I: V* A! X* E1 _! W+ B8 a" Z; k
  51.     EXIT_IF_NULL( process_template );
    : Q! n: R% ]9 N, b. g# Q1 Q) i
  52.   k$ \1 p' W% y+ h* {! j

  53. 1 C; g0 q+ `# W0 K- s( c
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, # T. N2 s% w1 q5 x% ^/ K
  55.         attach_types, &process) );- o% l0 Z; k, y- Q
  56. 2 U/ o7 o$ e# \/ l2 `6 R0 d8 K: m
  57.     EXIT_IF_NULL( process );
    . V+ k9 q  b6 n3 M. E
  58. }
    9 c  i6 D! A2 X8 v& G

  59. ' O# \: k: {/ u2 V" Q! _0 x
  60. int ITK_user_main(int argc, char* argv[])' P/ Z- i. I( u) w
  61. {
    ; V" e- w" H4 H; r1 p( z
  62.     int
    - S+ d/ t% z  S
  63.         status = 0; . J% G- R; \2 v
  64.    + _: J  A- T5 T8 V. s/ r3 W3 e
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );" i" T  A9 y: A# x0 X8 u
  66.     status = ITK_auto_login();& m3 J) A$ D0 j7 r# p
  67.    
    / F+ \% ]0 o$ `0 G' @) H
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
      \6 f: R( j% G7 H7 }9 y" ]  d3 u
  69.     else
    : k( w7 |6 w0 ?$ U0 H
  70.     {0 x" j8 B4 Z2 ]* G2 r" ?
  71.         printf("\nLogin successful!\n\n");
    - ?' \3 I7 K# h8 ]
  72.         ITK_set_journalling(TRUE);
    1 t* M6 T9 z+ l4 h) }& X. `
  73.         do_it();  y. E( P0 o$ P$ L/ K
  74.     }) ~# E" y& H' A, d/ f
  75.     ITK_exit_module(TRUE);
      G- q! Y- C: o7 _% Q
  76.     return status;) Z' @* R# x; j% ~5 d  w
  77. }
复制代码
% s4 y1 V4 d4 o. z# b: G# v
+ \- G6 Q; t. l- p$ z2 [4 O* K5 Y

* o) n: R2 a1 z+ T% t
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了