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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

- k( H8 k% ^' B0 MTeamcenter ITK二次开发源码分享: 创建一个工作流9 [" i% T! T3 P& v/ j" x, @7 k3 R$ w

) H1 h! S6 V8 E, k8 R; w( \% f
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    ' C+ o' m* H. E
  2. #include <stdlib.h>2 Y1 m2 H9 r+ V! O5 H, J9 `
  3. #include <TCcore/aom.h>
    5 ?& ]* W! L3 Y9 P- g, o
  4. #include <tc/emh.h>
    + T/ O  y; R0 Y; V7 P! U, r
  5. #include <epm/epm.h>4 o, F' y$ A2 @7 E9 N( N# {
  6. #include <tc/tc.h>+ U1 h1 o0 N  W# U" q. U( T
  7. #include <sa/tcfile.h>
    5 p  p% _7 R6 F/ J; H
  8. #include <itk/mem.h>! P$ r. i- b) x# j' F
  9. 6 [% W" H  ]& v) b( R/ L
  10. #define EXIT_FAILURE 1 2 g! L1 ~3 ~8 m$ V  Y: f
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    2 C( W9 g0 m  e7 U( [# t/ O# W
  12. static void report_error( char *file, int line, char *function, int return_code)
    + P" O& N, j( ~$ ?( a
  13. {  d* V! r& `' \
  14.     if (return_code != ITK_ok)
    6 Q9 b" r" `8 i; V
  15.     {
    : |5 P5 _% `+ `2 t" q% z+ I" p/ ~
  16.         char *error_message_string;
    : \2 r* j3 `9 @  l
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);% ^; G3 q' w% G; E) x: z
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    8 S5 q9 _# T; {
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);3 A5 ^1 q3 R' N0 F4 n
  20.         if(error_message_string) MEM_free(error_message_string);+ E2 z& {' L9 P" |1 d# H2 {" T9 K& @
  21.         printf("\nExiting program!\n");
    + P& @, r0 g% W* b( {/ x) R
  22.         exit (EXIT_FAILURE);    $ N0 {4 H2 k5 i$ w
  23.     }5 f% [( y( v- f4 d; g/ o8 u
  24. }
    " v3 Q" B' p8 }: m) g

  25. $ Z8 k7 N& [: @. }7 m7 f
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))/ q2 Y7 w5 U+ |3 M. M
  27. static void check_value( char *function, int value ); O$ {2 N& ^9 ]5 c, \4 ^
  28. {& B/ h: P8 d- o9 F1 z! C
  29.     if (value == 0)+ _+ w1 M+ G& M9 P' A
  30.     {/ |( Q5 K/ S  g- v, [; R
  31.         printf ("\t%s is NULL\n", function);
    4 R* l2 g" e4 `9 ^8 d
  32.         printf("\nExiting program!\n");
    - o1 A  c+ Z. G, s3 ^1 q
  33.         exit (EXIT_FAILURE);   
    " H$ O2 K2 i3 \* n0 ^/ L
  34.     }
    ; j7 x0 w/ N: ]2 {# S2 d+ {
  35. }) W- H/ ~# {8 \
  36. 4 y" b0 K7 L& j* j  d- [

  37. 0 L0 D, r8 p5 K3 r! \
  38. static void do_it(void)/ H8 j& }6 G1 `
  39. {
    % ?5 p) E6 ?+ C" M6 m5 d
  40.     int , v' ]% \* G- T0 t
  41.         attach_types[1] = {1};" C1 d0 W4 S) }: g% q
  42.     tag_t 4 ^$ Y* U* G* a( ]
  43.         rev = NULLTAG, ) I. D1 a  h9 @) p
  44.         process_template = NULLTAG, 8 ~# J( u4 l7 o3 c2 L
  45.         process = NULLTAG;% |1 M' z6 x) U

  46. 9 h- Q, k% K, c& ]+ j: p
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );* }9 S1 @% s2 g% P4 U" z8 g# Q
  48.     EXIT_IF_NULL( rev );, ?  ?4 G* z5 j& a; X" y

  49. % v$ m3 c+ u+ s0 D9 [! V* f2 ]
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    , h; @6 |& ^& ?) \( k
  51.     EXIT_IF_NULL( process_template );
    : ^) a+ [; N* `3 K6 M3 i
  52. 5 ~  ~- |% ~$ C
  53. , L( S; F/ q8 v5 H0 v9 u! C. K' H
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ; f/ b* w+ P9 I$ l
  55.         attach_types, &process) );) O9 M# n& M# f
  56. 1 ?( ?7 k1 J. A( [! O
  57.     EXIT_IF_NULL( process );
    + g$ \* s1 t0 c  P+ J
  58. }
    4 {/ P1 V) l, y3 s4 g, M
  59. ( n% h5 _0 i, j# ]: {3 p
  60. int ITK_user_main(int argc, char* argv[])
      O1 p/ R: f+ r0 ~1 s% E" H3 A
  61. {
    & Y6 M8 t* N# Q  T1 [! {
  62.     int8 S  H6 q" b0 e/ t- E9 {
  63.         status = 0; & k: I* n: v. ^
  64.    , P. Z/ u4 l1 A$ K
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );% L) f' G+ K/ ]% G: J8 o9 F
  66.     status = ITK_auto_login();
    - U7 S  w( ?; {7 Y; i. o
  67.    
    " u" `' @+ P4 L$ n& T0 I, R( b
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");' W+ S* n" U8 v+ }9 B8 m3 X/ a. W
  69.     else% n" R" K2 \% i6 i: p
  70.     {' A% ^/ q* f7 r5 v
  71.         printf("\nLogin successful!\n\n");. e& A: F# y, `  W0 H. [6 Q8 d5 n
  72.         ITK_set_journalling(TRUE);
    " I9 Z/ L" w' j% y7 W; {
  73.         do_it();
    ; q3 J9 c4 \. G2 w# l# T" R$ ^" `
  74.     }& V/ ?! Q1 r- t- h
  75.     ITK_exit_module(TRUE);% F2 T2 H6 ]" C/ g/ K: |
  76.     return status;; Z* r- C! O! {  T
  77. }
复制代码

: Y4 L+ ?1 k3 |' v% [2 M8 k/ [+ x5 w3 D9 T/ L7 r5 `

1 r% Q  f+ z6 _$ a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了