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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

7 s6 c. D  a1 Y6 N: E5 CTeamcenter ITK二次开发源码分享: 创建一个工作流/ j) h) h; M' Y$ [5 v2 c$ L+ E

  a) g4 p' P, T2 l
  1. /*HEAD CREATE_A_PROCESS CCC ITK */7 S' k  l* _$ o
  2. #include <stdlib.h>
    , t$ o! m; G8 C' m
  3. #include <TCcore/aom.h>, h' N7 B: _, Q: t- _! l' Z
  4. #include <tc/emh.h>
    + w+ l" c/ Z$ K7 a5 @3 Q
  5. #include <epm/epm.h>
    / K; }4 M4 P' v# F1 t8 k' A5 i
  6. #include <tc/tc.h>, G3 d- h; l; ]# \. W, _# I$ c
  7. #include <sa/tcfile.h>
    3 b: J0 h: z# }- P: h6 h3 w
  8. #include <itk/mem.h>) [2 f2 v: p1 _* y6 H, \

  9. 9 f. \- ~+ Z& t; o, `4 h5 f
  10. #define EXIT_FAILURE 1
    & |# C0 p; S; Z( J! F5 i* Y/ |
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    " J& ?. F: O/ K  h8 a( A+ r
  12. static void report_error( char *file, int line, char *function, int return_code)1 F6 p3 Y' c7 v7 o9 j& p9 L
  13. {
    ! ?. c2 Q" x" t) t2 H( A  h& m* N
  14.     if (return_code != ITK_ok)
    ( U- k; O5 g4 c
  15.     {' W8 n6 I8 u  D( T2 [
  16.         char *error_message_string;5 H  }7 r) F$ a' ~6 `: D
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ! B2 Y; ^5 f7 |! }$ f9 A) L
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);" p' l: W  t9 R- T
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);- {, i5 j1 [( K8 u$ P
  20.         if(error_message_string) MEM_free(error_message_string);# h0 s2 \+ r4 Q& w0 ?3 _
  21.         printf("\nExiting program!\n");
    1 \* q& A' r# L8 t' v
  22.         exit (EXIT_FAILURE);   
    4 w$ c' r( |3 y9 k" z4 T, C/ `
  23.     }  W9 u( N1 X& L  ^# z
  24. }
    ' z( p( t1 X& a! S3 H0 ?
  25. $ d! s3 y  E2 t9 e$ ?
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))  G* C% X5 X& R
  27. static void check_value( char *function, int value )6 T( t3 j$ ]2 ~" |. U
  28. {: p) w. t9 s5 h: B6 k3 j
  29.     if (value == 0)
    ( j" k9 ?  b7 R, H* G
  30.     {
    ! \+ N4 l, F+ I: t9 x3 D
  31.         printf ("\t%s is NULL\n", function);1 X; U, p2 @, _% O) e
  32.         printf("\nExiting program!\n");3 O* p) |1 x. F- Z0 R, m
  33.         exit (EXIT_FAILURE);   
    " V2 Q" E$ p0 _4 S7 I! t; R. O
  34.     }
    ' |) j3 t8 P, p  A
  35. }% w. U7 m1 Z4 p, `! \! F

  36. ( y/ J9 J0 h! _7 j$ L

  37. " ]. \# C% |/ m7 ~9 c; H" i' T
  38. static void do_it(void)7 D; x; ~  C. {( y' E( o8 r
  39. {: r" I. k2 z& L: q
  40.     int 0 {7 B& [! g* o% Q- I9 }9 G; j
  41.         attach_types[1] = {1};8 Y& {  I% {3 l. @% K& y
  42.     tag_t : E! E4 p, W) v  d9 m3 s, s
  43.         rev = NULLTAG, 7 f" Z- U4 Z0 c8 ?- L
  44.         process_template = NULLTAG,
    : A9 U, ?% G# z. P# a& p
  45.         process = NULLTAG;/ ?8 [1 k) x, V: [/ }( ^5 }+ Q( z% }
  46. # p2 {, d1 }) f4 [  L* D% E& {
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    : P) t+ f$ t: Q/ Q( F
  48.     EXIT_IF_NULL( rev );: m' J2 J1 {- \; w

  49. $ g7 [/ h" T: f+ Y. @
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , i6 F+ h/ I  `4 y3 W# f7 H" g" u
  51.     EXIT_IF_NULL( process_template );$ R7 t$ F- Q. y3 j) D& L7 a9 `
  52. 8 a9 b) i/ ^  Y- _: h% h

  53. : }6 Q+ G, Q& `" M) t' a* J
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 8 I: e' }* K' K
  55.         attach_types, &process) );
    + k- P* d/ K( {6 h: g. Q3 N

  56. 6 ?% l8 T% h# Y. k
  57.     EXIT_IF_NULL( process );7 J2 m5 U/ O$ [9 z( {; C0 H
  58. }/ S5 o# F, Y: U* [

  59. , _6 B- h7 k1 z2 q9 }
  60. int ITK_user_main(int argc, char* argv[])
      e, N+ L: K" N
  61. {
    " a, j' a% P. E' v: `4 Y6 u; O
  62.     int
    8 b2 {: D2 i& l8 H& b- Q
  63.         status = 0; . d8 }* {0 `8 E' K
  64.    
    . n4 x- W# S4 |9 o! [5 y
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    6 d& L$ S* z2 H; H! |
  66.     status = ITK_auto_login();$ B  r% ~1 F! G. n/ L  I4 V6 G
  67.    + @) i3 A" T+ x* u5 \8 b
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    ' Y6 ?) W: D+ z$ k
  69.     else
    " b/ G" V6 \3 k0 N& Y
  70.     {
      }" s; v7 y9 L6 t* [0 Z9 b4 v
  71.         printf("\nLogin successful!\n\n");& r9 R3 d* C' E: h' t
  72.         ITK_set_journalling(TRUE);
    4 S- l, W3 P6 ^  [% _, T  I
  73.         do_it();
    $ w' L! q' c3 W7 {9 {  i+ L
  74.     }% G8 l) b4 V5 x: W# h4 H
  75.     ITK_exit_module(TRUE);+ C- n9 g: P2 |# ]9 N# Q  B. I  o
  76.     return status;
    4 `- d& X7 u; s0 b
  77. }
复制代码

# L" b2 b* z% j% ^+ l
# M7 r7 M  U- [6 {' n8 E: P; j5 M5 c( d3 \( b4 |( `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了