PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

. q. L6 ~. g/ l( _' ?Teamcenter ITK二次开发源码分享: 创建一个工作流
+ t+ F7 b; ^' g# u6 B: N4 O
( y; Y' s/ w' u, {
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    7 {7 @7 o0 y+ `" E7 H
  2. #include <stdlib.h>/ y3 f0 B3 T4 f& \/ p3 f/ h* ^. }
  3. #include <TCcore/aom.h>
    * ~; v9 E, ~2 c* ~+ b7 x! h
  4. #include <tc/emh.h>
    4 E8 ?. F; {  ^( g4 ~( H
  5. #include <epm/epm.h>7 e- Z% s7 u8 U1 S4 H% E$ m* u7 r
  6. #include <tc/tc.h>
    & X' J  E2 f6 x# v
  7. #include <sa/tcfile.h>
    % T. r- r5 {' J- y" n/ X
  8. #include <itk/mem.h>) [. i/ t) R; i" }  C) d, {
  9. + H$ B' k9 Z' Y7 q0 F+ ^% s
  10. #define EXIT_FAILURE 1
    2 G5 ]% ^& U) X2 b4 l) W' v  s" K
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    & Q1 N9 W2 @4 |, W: p/ M
  12. static void report_error( char *file, int line, char *function, int return_code)0 n( t: o" y: H
  13. {0 I8 z$ k1 c1 e8 Y/ f+ n
  14.     if (return_code != ITK_ok)
    8 \+ i. D, L$ k, x4 e% C9 U" ?# g, L
  15.     {
    & U* F* b5 X7 W2 ]
  16.         char *error_message_string;7 \) J. k+ v9 ~1 {% s) I  O8 u
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    5 X* E; S5 g; l- O; V1 J
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    6 i4 T" s, h6 X! @7 k2 v0 z; Y
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    5 {$ a! F. a4 I  T
  20.         if(error_message_string) MEM_free(error_message_string);# ?$ Y  Y8 X- H' c7 W) D
  21.         printf("\nExiting program!\n");
    ! A3 H" z: a1 c7 v/ b
  22.         exit (EXIT_FAILURE);   
    3 M% ?' T2 N. D9 K
  23.     }! d) S. ]6 b5 o- l
  24. }
      U! H1 V( G1 |- O2 ^, t8 D
  25. 7 Z+ i! Z1 y1 e' O
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    . ?# W) R  v6 i
  27. static void check_value( char *function, int value )
    - \1 p7 w3 d7 q$ c4 a  x3 \
  28. {9 H6 H6 a- A! a4 {
  29.     if (value == 0)
    5 i( h- }$ b/ L4 l% w" B
  30.     {# U, g& H3 I- c. f4 h( X3 |( [
  31.         printf ("\t%s is NULL\n", function);
    . Z$ e2 t5 n. U' \# k9 C2 G+ K+ \8 i
  32.         printf("\nExiting program!\n");
    . n. Q) |8 j: V$ ~
  33.         exit (EXIT_FAILURE);    $ a3 g/ e* z" x4 ]6 Q- ~
  34.     }
    ) R/ h- c3 [2 A* {
  35. }
    $ y6 U' h0 g. q) L
  36. : @2 h( e5 W: G) C+ I

  37. 7 n' ]* e! f6 M- F. e; w3 T
  38. static void do_it(void), h( v( R( `' [! E6 U/ p1 C4 l4 \
  39. {+ y8 U5 z8 d0 ~9 k; ]
  40.     int
    # j$ ~1 \# p) ^( _  C
  41.         attach_types[1] = {1};
    % v0 ^% ^0 G2 D$ |% i7 @
  42.     tag_t ' f2 r" B" E7 l! Z7 d* B
  43.         rev = NULLTAG,
    ! j) n/ \! u6 H6 X, F7 a
  44.         process_template = NULLTAG,
    # w+ |: ~# R; m2 x
  45.         process = NULLTAG;
    9 q4 ]/ o4 _4 ]$ }& R
  46. 9 ?7 q. G( Q6 i' I
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    3 [2 S6 z! T# t( L
  48.     EXIT_IF_NULL( rev );# i# j1 a+ }5 H5 a  _3 m
  49. . N' _( j9 \; A: r1 p+ b" c
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 0 \2 ~# Y5 ]( O7 B/ [0 e! P( Y0 c8 h
  51.     EXIT_IF_NULL( process_template );
    2 R  E' T9 K& `( n1 [5 j" ]% B
  52. ) F# S6 S* w- z9 k8 u% s& v

  53.   y1 a) }2 U; d, r% _
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,   i) f0 L3 g5 w8 G5 @
  55.         attach_types, &process) );
    7 c( ~, {( k6 i% k: c0 g& e
  56. % g+ M7 n- b! d6 O5 B, p0 H7 e
  57.     EXIT_IF_NULL( process );
    " v. k* f+ A  L) m! J8 ?  G5 v% r
  58. }3 }( T+ s' ~$ b1 Y$ P, O

  59. 2 w% x$ r: a+ b: u/ C3 M
  60. int ITK_user_main(int argc, char* argv[])9 J0 L* {2 X0 O* g; G2 \" ^% N
  61. {
    * l* Y. s1 H4 x$ }* P- L& ?
  62.     int3 C9 \0 U' p' A! R# T3 y8 H% ~$ Q
  63.         status = 0; ) C$ e$ A4 |, q( @( ~, {* t( J
  64.    
    4 C0 V3 b# u% O- n% p1 x
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    8 u- |5 q* Y. R7 h8 v( ]
  66.     status = ITK_auto_login();
    & e, I; j+ M7 ~, X% c; H/ z
  67.    
    & M& w, e. i" N3 d+ D
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");5 T! F; \* X; j2 R
  69.     else) j% s  x& P, D2 V
  70.     {
    ! P1 t" \: u  Z. P( e- |, l& }' ~  o) P
  71.         printf("\nLogin successful!\n\n");
    2 q6 z. a$ R6 y+ n) h
  72.         ITK_set_journalling(TRUE);$ U' o! r5 q# m. a9 l# R2 {
  73.         do_it();% \4 `, }! ~/ _: F5 p$ v& f
  74.     }" d+ i$ X. R2 o" D( Q* F8 }# y. B
  75.     ITK_exit_module(TRUE);
    % N! A0 o. Z8 `- F% t0 G
  76.     return status;, d; S3 h( N1 \# \+ m
  77. }
复制代码
8 C* U, ]1 J  z  p, ?( l) J) W
: i8 t+ H  u! b: E* ]. Z2 y

, E! R0 W+ _% r: g! M7 Q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了