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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
6 V$ A% y' g( M* K- R2 \4 U  f+ C
Teamcenter ITK二次开发源码分享: 创建一个工作流
: l5 h0 U7 \' O  p1 K# T8 q2 B- a/ z; X5 A+ w4 L
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    : [7 `. S% E% I# }2 o
  2. #include <stdlib.h>
    7 Z( @) I' T; w, q4 P' H1 y8 [. x! d
  3. #include <TCcore/aom.h>
    " f5 A: m0 p$ E& L
  4. #include <tc/emh.h>
    ; E  `% S/ V5 i% ]
  5. #include <epm/epm.h>, |; T3 M  K7 V9 Y0 }# h( d6 s' h. X
  6. #include <tc/tc.h>- Z& h4 x% R& C! e8 j& X
  7. #include <sa/tcfile.h>
    2 e3 Q& ~* a8 O  f
  8. #include <itk/mem.h>+ K: ^$ z8 y% ?1 ~& P

  9. # T: f* n# u! l7 R6 k8 {
  10. #define EXIT_FAILURE 1 - \. B! l  U) {
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    " e+ O+ g' P0 \8 X! _
  12. static void report_error( char *file, int line, char *function, int return_code)
    8 U8 p4 g8 d5 w: ?8 J
  13. {7 s! a& \2 q  l9 f/ I3 v$ t, h
  14.     if (return_code != ITK_ok)
      p6 L: |9 O8 E5 O: n0 U
  15.     {
    8 u* Y- t+ @2 _6 F- b
  16.         char *error_message_string;6 |8 y9 ^9 g+ R
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);6 B! Q4 z# O& S2 Y
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);( n4 I0 U& Q- F. {, V
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    ' v8 i; S, _- g# k* R
  20.         if(error_message_string) MEM_free(error_message_string);
    % q6 k% O% U+ {, j
  21.         printf("\nExiting program!\n");
    : ]5 I: e5 y1 U9 z0 ?9 c
  22.         exit (EXIT_FAILURE);   
    5 z  S+ X7 u  I* T
  23.     }
    ' S3 r# v! T# q% _5 \
  24. }+ x$ J5 H- f- H/ S

  25. " J% J9 _" q! Q' E0 ?( g
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))6 u1 ~% V3 q5 J. G
  27. static void check_value( char *function, int value )$ d0 d& R8 k0 S" r1 u
  28. {
    1 ?. Q) A, d: T: Z2 {4 l1 K. A
  29.     if (value == 0)6 R) P, A1 B8 o( [
  30.     {! Q# b" d# V$ Z
  31.         printf ("\t%s is NULL\n", function);7 f/ N8 L2 N: `3 D
  32.         printf("\nExiting program!\n");
    $ f( K& Z" D! I1 g  T* O0 x
  33.         exit (EXIT_FAILURE);   
    . {# }4 s( }( @% U9 ~* c
  34.     }+ V# b5 [3 b# K4 B& m1 t4 {
  35. }6 J* H/ I3 s2 A! V9 \& [: _3 N

  36. " P. {+ `, b9 Y+ y

  37. " ?" s- C$ K' I0 p+ {
  38. static void do_it(void)* O4 z0 f, V. s/ }+ A
  39. {" [0 i) i- E" w" v. E
  40.     int , `# K# S" i: S% H: Y
  41.         attach_types[1] = {1};" V! O  v$ R- m$ Y7 V2 G
  42.     tag_t
    0 u6 f( B8 ]' r0 ]( V: Z
  43.         rev = NULLTAG,
    ! s- O7 K( J0 M* p) Q6 W
  44.         process_template = NULLTAG, " @. B! y  g/ H1 s) B
  45.         process = NULLTAG;' D1 s5 |9 N" M$ l' o: |0 {. u% I2 R

  46. ( w3 t3 e; o7 U
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    , e5 ?# ~$ {$ |( h7 s+ s
  48.     EXIT_IF_NULL( rev );' s0 [& T4 @3 Q  d& Y% S' [
  49. 5 j( D6 i, m- X0 v: s& n
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    % Y) p4 Y0 x, }
  51.     EXIT_IF_NULL( process_template );
    8 Y, f# K; X2 H8 q

  52. / R: m/ C: j5 P- k" A
  53. 7 v; \; e( \4 E! J1 O) ^1 ~5 J% O
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    # A1 s  m8 m  N5 ]
  55.         attach_types, &process) );) T9 r" @, B+ D, v) w- ]8 @
  56. 4 H5 @8 Z+ T6 m& h4 K2 i$ N  `
  57.     EXIT_IF_NULL( process );
    % b4 }' f# t) k8 M) s
  58. }' P1 w( O7 A& J6 T" t

  59. $ h1 d, t2 m  u) k! t" N, _8 c
  60. int ITK_user_main(int argc, char* argv[])0 M1 Z$ L" O8 c, ]
  61. {
    $ m" [4 j+ K! b) H) R$ x) \3 K
  62.     int
    7 P+ h+ a1 t( F! p$ a( G
  63.         status = 0; 6 B. y) W1 W; a! U3 Y- o
  64.    / U8 d& E! D" H1 L
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );  u" \7 w3 ^' w6 C( r) }2 D
  66.     status = ITK_auto_login();
    1 o% p4 }1 R0 J
  67.    
    " G3 T: t0 k5 i6 S
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
      a3 f) W7 j) @! z  I& i6 o0 J
  69.     else4 I8 e! h# J- Q  m" S
  70.     {3 w2 O# d+ S$ h* ~3 O
  71.         printf("\nLogin successful!\n\n");
    6 }8 s1 L6 c. [& ^6 s
  72.         ITK_set_journalling(TRUE);5 C# e  @# T: C7 A
  73.         do_it();# y7 |# R& k$ c4 e  }3 d
  74.     }' Y' @* N+ d& j2 D
  75.     ITK_exit_module(TRUE);
    8 v& \' e# c1 {, N
  76.     return status;
    / ^7 P2 b3 _7 X0 x
  77. }
复制代码

1 f4 p; b5 y+ y" e  x: o5 t% U8 O4 {7 y% i. D- s3 H" J

- J/ |- _8 d1 o( B6 U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了