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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
1 o2 I$ M7 G: c9 c
Teamcenter ITK二次开发源码分享: 创建一个工作流8 k8 `$ |5 y8 a" q

0 s4 k) |; f, N2 G) ~7 u1 h
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    9 P8 A& i3 y" x0 m
  2. #include <stdlib.h>* ~9 A* K( C( J
  3. #include <TCcore/aom.h>
    + k( [3 L- g1 g; F3 i$ v  _* A
  4. #include <tc/emh.h>, }/ c, B0 ]1 G0 |8 @- G
  5. #include <epm/epm.h>
    ) I' x1 h  I* \$ n
  6. #include <tc/tc.h>
    $ ]8 C2 f, |! u$ f: W
  7. #include <sa/tcfile.h>  j  g( }* Y4 `
  8. #include <itk/mem.h>2 a9 K3 R, l; {2 a+ W

  9.   D+ X# u# H3 l& ^
  10. #define EXIT_FAILURE 1 0 b( a6 S" z3 Z: ~  \. {" P
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
      }0 Q8 x9 b* z8 Z/ r' ?0 O
  12. static void report_error( char *file, int line, char *function, int return_code)1 `2 T4 i1 }6 ]. r& V4 n
  13. {
    , p: `& |2 X/ ]. H
  14.     if (return_code != ITK_ok), i% E5 I- B9 L8 M) c9 v5 `
  15.     {
    1 R" ?2 b8 W* i
  16.         char *error_message_string;
    6 H# T  \* D, |5 h; Q$ o
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    ; y" K$ @3 z- G# K  l- {* P
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);% F. n. y2 @5 {9 v) ~) w) O5 |5 [5 G
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);/ c* f7 s; X# F- _% U; D
  20.         if(error_message_string) MEM_free(error_message_string);2 Q: }1 `( B+ K% h
  21.         printf("\nExiting program!\n");
    , o! l) L; V* U3 t% x! n) d
  22.         exit (EXIT_FAILURE);   
    ; N% c( ?# u3 s
  23.     }
    / H* W# ?& J: f" c  e  j: |
  24. }
    : E: ~# {6 D6 @) \

  25. 4 Q2 v# V+ F9 S3 n6 R4 W/ p
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    ( D9 x& Z' W2 |& Z, y
  27. static void check_value( char *function, int value )
    ! E3 v9 W5 ?" F/ M& s( L7 |3 y
  28. {
    , x# z1 \& j" s. h6 r
  29.     if (value == 0)& ^- f1 |! X- [. K4 Z+ f: p
  30.     {
    ! a! T6 d" Z8 E
  31.         printf ("\t%s is NULL\n", function);
    $ W" e/ I! ?  h$ h7 c* c4 b- d: A2 X
  32.         printf("\nExiting program!\n");9 q. u! h# @7 z; h
  33.         exit (EXIT_FAILURE);    0 s5 `1 I; w7 i6 \+ M; ^  {2 u5 n
  34.     }
    3 L; {3 R, ?& U+ A) l
  35. }
    0 i7 e2 c& F7 f# B

  36. # @  b8 N( s/ |. [  j' D
  37. 2 W0 V& M! h, l7 A  B+ W
  38. static void do_it(void)4 f- P* g+ O' f& ?! W  K0 _
  39. {" \, e# ?$ w- x
  40.     int 1 A3 ^) g$ n  [! [, W
  41.         attach_types[1] = {1};, W& q1 t# l7 z8 P: d; B
  42.     tag_t : K( Q$ O7 r3 U7 Z0 R
  43.         rev = NULLTAG, 2 P3 n8 p) T5 J/ V
  44.         process_template = NULLTAG, ) I' o2 q/ @' R
  45.         process = NULLTAG;
    % `* J6 H! i; R5 Q/ \
  46. ' t! @& L( v# |
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    . G/ U. o' z- J( J
  48.     EXIT_IF_NULL( rev );
    . Q* I0 z0 e7 O" R% {
  49. 4 @* f* l( U1 H* ^# w; N5 j4 Y) ?
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 1 g5 p# K/ \7 w5 q& R
  51.     EXIT_IF_NULL( process_template );
    , R7 h6 b  H* Q/ K# g/ q# C" x

  52. 5 ?) ^" W% C6 e
  53. & t2 x- D0 T( z2 W; Q0 I
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    5 o: A9 |. `5 m; N* v& p0 c
  55.         attach_types, &process) );. H" W$ v' [/ S/ [! x1 g7 \
  56. , S" n: _0 G. E+ m' m7 q
  57.     EXIT_IF_NULL( process );, o) y% f- n% Y6 Z/ q
  58. }: I6 p! L$ ]" c; q9 {
  59. $ u1 H2 ^; V) s& o) M' U! V
  60. int ITK_user_main(int argc, char* argv[])
    - s* m4 M( H7 _% ~; L
  61. {
    3 R. r# l2 Y1 R* i9 k8 k- t
  62.     int
    ' ^* L- a4 R" ?, C) J
  63.         status = 0;
    4 Q" U' z; U& \. P+ ]2 H3 y
  64.    
    ( \' y. r2 d" e
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    / c/ t9 q& Y) f  v8 A% P  ^4 r
  66.     status = ITK_auto_login();
    8 e5 p) x. b* Z# |
  67.    - t1 ?7 n2 Y9 u8 B5 C% u
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    6 w$ I6 L2 X3 G: p3 N- i
  69.     else# @  s" x2 X+ B' H
  70.     {
    . K, R$ d5 E7 t" }2 w
  71.         printf("\nLogin successful!\n\n");
    , k8 V9 i# P" g( V) P2 X3 p
  72.         ITK_set_journalling(TRUE);( P$ O/ V5 a) c$ F, Q8 Y1 n6 r
  73.         do_it();9 [! ?' D( Y$ C# w& G
  74.     }( d# v+ @1 \9 z' m: L3 z
  75.     ITK_exit_module(TRUE);
    . o9 j/ z/ N' o+ K2 l8 q
  76.     return status;% n5 v1 B" y1 q( K
  77. }
复制代码
! k% S/ \& @$ {! `6 l0 u/ B
5 J+ M/ z: L0 p

- J; B: t# P* X7 b# W& F) R) P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了