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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

0 \; f5 s: s& ~. ~0 |6 H( P& [Teamcenter ITK二次开发源码分享: 创建一个工作流+ A9 A, Y3 `4 R% X% e7 [; _+ R

6 V8 I6 s, B' W0 f+ P. o; B
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    % S& o' I: z- m
  2. #include <stdlib.h>$ W$ o4 T; I% E' f' ^: @6 i
  3. #include <TCcore/aom.h># q$ f( C8 b0 L6 t
  4. #include <tc/emh.h>
    $ u4 [& T' u/ W0 d* \
  5. #include <epm/epm.h>
    8 J4 h8 Q0 |! j% k+ _
  6. #include <tc/tc.h>
    1 Y+ M, V: q: y" }( t
  7. #include <sa/tcfile.h>
    9 T- v/ F1 z$ d/ v, e) Q, B
  8. #include <itk/mem.h>
    $ k. q% X3 U) r
  9. 4 n) j. j; V& `! _0 v
  10. #define EXIT_FAILURE 1 & o$ ]( i) h4 n2 p; `. J
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))2 L& c  i' D/ v* E, _5 f
  12. static void report_error( char *file, int line, char *function, int return_code)
    5 r8 j$ }/ Y4 W) j
  13. {: n& [  |( G! C) U- R" }
  14.     if (return_code != ITK_ok)  ]( t  ~* r5 Q8 Y: S- U2 u& M* d, A
  15.     {
    3 V+ v- \" j  a# R& E
  16.         char *error_message_string;- Q0 ^4 W. X6 I; B9 D- v# K0 p
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    4 U6 k! G* Y+ n3 W& ^5 ?
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);& z- p2 [& [( A( @
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);3 V, k( N. V0 O* S
  20.         if(error_message_string) MEM_free(error_message_string);' k6 `' H4 t- V0 Y! \4 q
  21.         printf("\nExiting program!\n");; y4 R$ B! J6 w: M
  22.         exit (EXIT_FAILURE);   
    . ]* h+ n; Q9 o8 n" K
  23.     }, `+ |' }& a; g$ ]
  24. }6 u  J$ t" _# |: Q
  25.   g9 I7 ^, O1 p) c2 i, U. o1 i! G
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))9 L4 c4 r! m+ p! a. r* U
  27. static void check_value( char *function, int value )1 p0 |" S" B4 q$ n
  28. {
      Q8 k; w2 p6 P$ I4 K4 @/ X) h  U) ~
  29.     if (value == 0)+ c6 C1 f) Y; p. N
  30.     {
    5 S1 m: ?3 H; _+ l; s8 c1 y: v$ t- `
  31.         printf ("\t%s is NULL\n", function);
    + W( B0 p& @- O" y- v8 L% t
  32.         printf("\nExiting program!\n");
    & N1 @9 a+ V/ _% `$ [: ?" P: @
  33.         exit (EXIT_FAILURE);    % s5 Y! s: t4 H. m* b/ @$ \+ I
  34.     }4 L& y% L6 \% M- Y
  35. }
    ( J) k/ D; n5 U2 r" X
  36. 2 K5 r4 b0 C. V7 R8 _
  37. # l! V$ e5 @! M6 r
  38. static void do_it(void)( c# u6 l1 V* k
  39. {5 _$ u: p; m# P( S9 t1 c* J1 e+ |
  40.     int
    / @9 L" h( n9 Y, C: z5 L5 X  p/ V9 q
  41.         attach_types[1] = {1};4 w  K( S- Z1 `
  42.     tag_t
    3 F# W/ u  D. B9 B, m# C
  43.         rev = NULLTAG, + _' `" ]% b: s0 A# U3 w/ a. b
  44.         process_template = NULLTAG,
      s' o3 o' g* F6 e* u+ U
  45.         process = NULLTAG;( M) v; g6 [  C$ r& D

  46. : b) J) T# u2 n
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    " U" M1 |2 ~9 ~" o/ M* I7 k; @
  48.     EXIT_IF_NULL( rev );6 ~5 q) o8 a( ~- x5 I, X/ S

  49. 3 f9 }5 X/ ?) R- H  V2 ]
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); $ u& _! e% y3 h: J2 M
  51.     EXIT_IF_NULL( process_template );$ c3 P2 g3 {4 O1 o  b3 f. p

  52. 3 |. a* S! X0 F4 u! i# J5 x

  53. 4 K6 v' G* \# k8 X; ^7 t5 e& W
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    % x1 ?! V% z) p+ D, o  R0 m1 u) Y
  55.         attach_types, &process) );/ K3 x- Z0 z2 S: @$ H

  56. 1 n* ]1 ~" k. c1 `5 F  f
  57.     EXIT_IF_NULL( process );( s* R3 `" ^$ q1 q2 O
  58. }4 C! _2 q8 a$ M; H' b" a+ s9 W

  59. 0 r* n0 z( w. Y2 N+ p: d0 \; S
  60. int ITK_user_main(int argc, char* argv[])
    ) d) f. B; `+ Z6 v9 f, E$ p1 i
  61. {
    0 q& Y' w- {- q$ O
  62.     int
    0 D# c5 Z  u% M5 I0 A
  63.         status = 0;
    8 z0 N4 K, A* M* e" W& Q( e
  64.    
    4 x  i- V. K  `$ K
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    * O4 A5 `: u1 n1 i+ g9 Q
  66.     status = ITK_auto_login();
    $ t' X; x& C6 R
  67.    
    4 L% J0 O# C& S) F& t+ G
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");. `9 I# V+ n2 r& _8 G2 A5 C: r5 P+ [5 ^
  69.     else- D- ?1 u/ A% V- ]) K) r
  70.     {
    / Q5 k0 l1 s: m
  71.         printf("\nLogin successful!\n\n");; U* s( G( ~8 w) z" h* ^+ ?6 W
  72.         ITK_set_journalling(TRUE);" v3 d" Y+ Y9 M3 b8 w& o) N: ?
  73.         do_it();* @/ i# I' M% R$ A. F$ c4 j, I  g
  74.     }) S' F' V2 F. i; |, y/ d* W3 `
  75.     ITK_exit_module(TRUE);7 x3 W4 j; \6 Q4 F( ]
  76.     return status;2 R6 v* G1 i3 X; m7 ]6 W3 M4 I
  77. }
复制代码

, T/ j$ m0 L/ r
2 Y  o" h- j3 r# k. M* T6 O6 w2 ?8 D! s. H% i& c0 z: K8 O5 q1 f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了