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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
4 M3 ]2 O. ~$ T. T' {" c
Teamcenter ITK二次开发源码分享: 创建一个工作流, o& U& V5 R% Z$ H

5 L7 [2 S3 X1 O% r/ b2 r- }
  1. /*HEAD CREATE_A_PROCESS CCC ITK */8 j& r" I$ x3 B- t& m2 h$ c% m
  2. #include <stdlib.h>* N+ g, j: a4 [8 [
  3. #include <TCcore/aom.h>
    6 K) }. c& s; K/ v' N  f3 K# o
  4. #include <tc/emh.h>
    ' s" }( k0 l1 N; d) K
  5. #include <epm/epm.h>; c0 |/ |: }# [: i% V
  6. #include <tc/tc.h># Q/ C- d9 M7 W- s9 s1 l2 E/ S
  7. #include <sa/tcfile.h>; o" U& \" D0 b: ]  U$ K
  8. #include <itk/mem.h>
    6 f& I9 n" l1 ]7 l5 r

  9. ( H- a$ [  R2 {- [" T- h9 E
  10. #define EXIT_FAILURE 1
    1 w( B9 d' w" F0 P. k/ ?
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    / M7 U2 V) |" N9 N, S
  12. static void report_error( char *file, int line, char *function, int return_code)6 g2 y% i' ~$ l" J$ j2 F" F! k
  13. {% H: z  Q8 m1 A% z. S
  14.     if (return_code != ITK_ok)
    * {0 e3 @3 Y. X# a
  15.     {
    ( r: P, C; J. R
  16.         char *error_message_string;
    & q$ N( b8 T$ Q& L; W
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    $ o8 X8 c% S( C7 t2 p" y3 B: S
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    6 T7 O+ n+ e* B5 |$ H/ d
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);; `4 g2 ]  ]1 {+ p
  20.         if(error_message_string) MEM_free(error_message_string);
    ' Y, v' a) B  v# @# \7 {
  21.         printf("\nExiting program!\n");5 @( d9 b  n8 |6 u5 m- ?
  22.         exit (EXIT_FAILURE);   
    2 G& H, L$ m; ~! n, u2 v
  23.     }
    ( ?! Y" w7 w" ?& l
  24. }
    # e  `" U2 P& j0 P& `
  25. ( A6 ~& e* W8 w4 h7 B
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))$ Z' z7 T$ o& Z, r* M  p
  27. static void check_value( char *function, int value )" R7 w3 N3 Q; [! y- H$ ?+ W# l
  28. {
    ) Y7 I# h. g# {( R8 ]3 Z9 W3 P- I
  29.     if (value == 0)% c9 h. s& m# z+ X- x
  30.     {- @5 P/ w$ h' y4 U. b' D8 F
  31.         printf ("\t%s is NULL\n", function);8 H+ V) @; w+ |' d1 q$ y
  32.         printf("\nExiting program!\n");
    # u2 N% T9 ?* j$ E  i+ c$ ~9 r$ ]
  33.         exit (EXIT_FAILURE);    / q* O/ L5 u' G& X5 p" N
  34.     }& C* @' Z  i0 w! @, p' H& B
  35. }
    # q8 M* Z6 T  c* p

  36.   m& m; J9 @4 P0 n. k* x3 J

  37. 1 K' r' G8 `. ^% d/ E" x  o
  38. static void do_it(void)5 U0 D0 w6 f5 p% i* o! o
  39. {) x. g% T4 f$ Z. d6 B: V
  40.     int
    : a( l1 m3 ^& [  r, O
  41.         attach_types[1] = {1};
    8 j; C# P9 h( P$ E0 ~' C
  42.     tag_t
    / p: _1 X: ?7 D" T9 y4 ~6 q9 Y/ E
  43.         rev = NULLTAG,
    6 a) H, Y  @& y. Q, d) [
  44.         process_template = NULLTAG, * w3 V* }1 @; m- S, s
  45.         process = NULLTAG;
    5 r9 I! `9 Q3 X. t/ d

  46. % ^% f6 I/ q, L2 {" ^2 i
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );. u. R3 m) g0 {5 b
  48.     EXIT_IF_NULL( rev );
    0 \. _! v! u$ y6 w" j

  49. $ w$ M; l  I0 d' V
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); & Y: n: s8 I8 r, a
  51.     EXIT_IF_NULL( process_template );+ I7 i2 ?. [0 q5 I6 j

  52. $ ]4 l, }7 Z* h9 o* f+ u
  53. 0 u  A1 _  M9 N: U8 `* i9 C9 Q
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ; [% a$ U! M* Z% ~& u
  55.         attach_types, &process) );
    1 d/ B+ _+ Y* j; H
  56. + ^9 r8 d  ~4 s' W2 G# G
  57.     EXIT_IF_NULL( process );( I& A4 K+ U4 o$ }/ F2 Q% E, R% `2 @8 W
  58. }
    " i, e& K( {0 F! B

  59. 8 P9 H/ e$ w5 f5 c. s8 U
  60. int ITK_user_main(int argc, char* argv[])/ o) e* X4 T6 s# x" D+ C
  61. {/ J( Y7 T) d$ k' b
  62.     int
    % Q; `" l% @0 Q+ @. T3 x
  63.         status = 0;
    8 ?% D; Y6 O, E4 w
  64.      k% ]2 m9 R+ T% M7 I! U" S3 g
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    5 M, N3 t# p) D- H% _3 S/ d$ m% t% C
  66.     status = ITK_auto_login();
    0 L- t# g( r$ G
  67.    
    4 y5 n8 J  O* X. L
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    & L& z; n  @$ V8 S" r
  69.     else$ V5 r) h7 d3 }8 j5 V' {# E9 _
  70.     {
    ) F6 k4 R2 @2 P8 w
  71.         printf("\nLogin successful!\n\n");
    $ `$ z/ u" w4 \' G9 L
  72.         ITK_set_journalling(TRUE);
    ! ]' `2 m$ |1 }8 T* _
  73.         do_it();/ J8 e3 p8 `& D# x$ b( m4 L9 B
  74.     }
    ; `3 [" u% K( e2 q
  75.     ITK_exit_module(TRUE);6 G) D/ z- k" J8 ~6 f: |% N  |: M
  76.     return status;
    : {9 H: v7 H; T! \
  77. }
复制代码
' j( A, f7 c9 W! Q$ k

4 Z% f/ z9 k+ ^2 L7 @- M% C, c3 h
. I* R! P/ a/ [7 e0 \2 x+ Y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了