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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
! V& U) v, ]; ]: w: Y
Teamcenter ITK二次开发源码分享: 创建一个工作流$ T  B% {3 _. t' \; D/ ^
  X( m3 z/ d$ U& E
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    9 A; o& r& C) J: B: A  i8 s2 A
  2. #include <stdlib.h>. f) e4 K: h0 Y- ^) m+ {4 \! Z' A
  3. #include <TCcore/aom.h>% M: `0 M( A! j" ?5 X) V$ O. F
  4. #include <tc/emh.h>
    7 k  z$ O) P0 Y7 A8 R
  5. #include <epm/epm.h>
    / S7 Q' Z' g" y0 U* v
  6. #include <tc/tc.h>, T# r2 S: t: T) c
  7. #include <sa/tcfile.h>$ {$ u5 L; U, |  s
  8. #include <itk/mem.h>8 m6 c6 @0 n1 ~# M# w  m  r
  9.   R7 _0 s  E7 i$ X8 g: m
  10. #define EXIT_FAILURE 1
    ' P3 i7 [& o3 f5 k
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    ' W( u' q$ X/ E
  12. static void report_error( char *file, int line, char *function, int return_code)
    1 N) C- K5 g- H5 a# ~# l
  13. {: M! z# V) E5 z
  14.     if (return_code != ITK_ok)4 U( ?" [7 l; Y$ [
  15.     {
    " L) a2 C2 O2 K" \6 B0 w+ s' n5 m4 l
  16.         char *error_message_string;
    9 b) H6 s7 x1 c3 I
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);; }# C" h1 F% r; m' @  k
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    , {3 [/ u. x6 v! L  N8 ?
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    & A1 }; g5 W. V" }' R3 z5 x
  20.         if(error_message_string) MEM_free(error_message_string);
    ; Y4 ?: [. _$ T+ l( |+ w8 G
  21.         printf("\nExiting program!\n");, T/ p, T7 ?* S- P+ ^# ]
  22.         exit (EXIT_FAILURE);   
    - |$ g1 K: K* q5 f
  23.     }0 u* t6 P! t7 g4 ~- c! E) Q
  24. }, T" m" u5 I8 m( G( o* }
  25. ! c; [% m% \+ u& z+ {
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))2 f8 y# |) l3 J% X; f# @
  27. static void check_value( char *function, int value )5 F" F; w% z( s) q7 ]; M
  28. {/ w# N5 r9 o7 x  |3 `" m+ N
  29.     if (value == 0), z$ Z/ R. K. s2 u5 P! [4 k
  30.     {& H( r/ Z/ R7 Y/ t' k
  31.         printf ("\t%s is NULL\n", function);
    - X  R3 H; }0 N$ Z6 T, r
  32.         printf("\nExiting program!\n");* ]1 k( z* w/ p9 R: Z( m
  33.         exit (EXIT_FAILURE);    + i/ q6 c8 l4 B7 e3 Q2 S. P
  34.     }
    ; D' U7 f9 v5 [( ?1 _
  35. }
    0 J6 I% c! C1 ~' M0 C; T! f( r% w# V: c

  36. 5 l) J9 O* K! s; c. `- R$ h( F
  37. 7 L" Y$ ]6 F& \. d/ v& m9 _- ~
  38. static void do_it(void)
    9 q! L8 f8 r* B: M) \7 {( y
  39. {
    & o9 ~. K# X+ T' W
  40.     int
    6 g8 Z7 t, M2 i( D- H! D6 f  j
  41.         attach_types[1] = {1};
    ; z1 t9 Z) J' {/ E) T
  42.     tag_t
    7 ?& e5 P1 W' J6 L) w
  43.         rev = NULLTAG, 2 x8 Q7 J; u5 }0 T+ _  d5 H! e
  44.         process_template = NULLTAG,
    6 c! M1 e' i$ V" H
  45.         process = NULLTAG;  X: S2 {, w6 e3 j: u7 E

  46. ; H5 x$ @1 X0 ]8 k% c/ Q
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    0 X6 o! B% D! \9 H
  48.     EXIT_IF_NULL( rev );
    - [( {- `9 E5 J  w3 b  B( T
  49. " F& |3 N0 T) w+ i4 B6 I9 E& R! z
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    " @3 l% M5 O; r, H6 c$ x+ y
  51.     EXIT_IF_NULL( process_template );& H* W- J4 j0 ^( G# h- W" H* ~

  52. 9 Z' O  ?6 W# G5 w) w* C# s
  53. # j. K& B  n# |" f
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    " ?7 q7 ?% U' ^; {! l
  55.         attach_types, &process) );, e1 I$ f! z  i$ c
  56. : @- K' Y% b% K4 r+ K+ N- c
  57.     EXIT_IF_NULL( process );
      E# d. \& {  C6 \% [1 q
  58. }
    1 m) [6 L, O. k

  59. / T& F% F3 `+ m9 {
  60. int ITK_user_main(int argc, char* argv[])3 |( y' }# [$ e; {1 S- q8 i
  61. {' k! g+ J2 O2 [7 y
  62.     int
    4 C- F" D) f5 T8 K3 c. ]* [% `
  63.         status = 0; 4 |; E" k, F9 C5 z  E4 i* D
  64.    
    & i8 o! L* L  r* c. V
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    * E3 B8 X) U: {0 P. E* I1 l! T! @
  66.     status = ITK_auto_login();
    $ @8 o# o4 d' ?# F& c- |5 g
  67.    
    : S" v) H! e" Z" y
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");, x* m/ G5 l) g3 K( E
  69.     else, {3 H8 {& @7 F" Y3 D
  70.     {
    & V1 a  d" p+ P9 K6 N! j4 M
  71.         printf("\nLogin successful!\n\n");7 B' d# C, |# ~  O( u1 x' A
  72.         ITK_set_journalling(TRUE);, L: ]2 _: h. @
  73.         do_it();! |# {0 t6 i: d( A
  74.     }% r3 x! K/ G8 ~
  75.     ITK_exit_module(TRUE);
    8 ^3 I( k% J9 [3 J/ c7 Z  t2 ~
  76.     return status;
    + f* o. _% B$ |- s- w+ S
  77. }
复制代码
+ I7 Y1 j- s4 L( y: R

2 R. i2 w9 {  h
$ P# U: Y" l& C- S1 h9 W; }
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了