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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

1 o7 D- E8 z. `! A5 C5 B! @Teamcenter ITK二次开发源码分享: 创建一个工作流
+ f/ a2 K! B6 h) @8 j% m5 q% T6 W! [: @, z( b
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    : N- h, A- {2 i0 i3 K
  2. #include <stdlib.h>0 J; E) P  l9 L! B! a$ F% [
  3. #include <TCcore/aom.h>
    5 K# c) Q6 G: v! L; G/ Z8 {
  4. #include <tc/emh.h>
    5 t; w. f* A( A4 k, N, g! Y
  5. #include <epm/epm.h>. Y: P& H4 o* @  _+ n# P8 U* k
  6. #include <tc/tc.h>
    6 l  Z, o( t$ S; Z/ I; `/ g
  7. #include <sa/tcfile.h>
    5 Y# k- V  ?: i0 \; C' P# ^
  8. #include <itk/mem.h>
    # b4 r3 Z* H8 b+ s% t

  9. * n, }! W6 \% L% ]& {) q2 @
  10. #define EXIT_FAILURE 1
    1 g" S3 A9 r$ M  l" h
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    7 V& f7 W6 T: a
  12. static void report_error( char *file, int line, char *function, int return_code)1 v6 R+ n, P6 q& G' w
  13. {
    ' S1 N  Z* U) Q& C( x6 ?
  14.     if (return_code != ITK_ok)6 v8 _( g* X. W6 s  |* k0 z
  15.     {7 S: J& r/ n& _. v
  16.         char *error_message_string;
    ' ?! o9 ?& @& c4 U' J' y; i
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);* ?; A" Y0 X: B/ V" W  j0 a
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    9 t+ K; E+ F( m3 B( ?2 `% Y+ X
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);# k! k' o& o8 b+ N2 j" N
  20.         if(error_message_string) MEM_free(error_message_string);; {; w& t" C8 G6 Q7 ]! i- k
  21.         printf("\nExiting program!\n");+ `" ^8 I% p3 u1 B  a
  22.         exit (EXIT_FAILURE);   
    0 Q) [0 U9 w  U6 Z! I8 ^+ F
  23.     }
    # p* P( e% l( {
  24. }1 [/ n: t' t7 j

  25.   ?, j/ y/ S4 K, t3 y4 F6 H
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))
    $ Y: z& K$ H  k* X
  27. static void check_value( char *function, int value )
    9 C4 K& Y# ]: R. _' |6 E
  28. {
    : m- k! G5 W# S5 D4 U: R
  29.     if (value == 0)
    6 z! X4 L5 k  g
  30.     {' N9 x  d7 c1 P9 _1 t
  31.         printf ("\t%s is NULL\n", function);; E+ R" c8 |% h, V- \  E
  32.         printf("\nExiting program!\n");7 y& E4 T) S) y8 \
  33.         exit (EXIT_FAILURE);    $ c; `8 Y( @/ @! V# p' u8 B! v, a% P
  34.     }
    2 n$ [* Y9 o; e' ^% r6 `
  35. }
    ! r( H) `+ ~; u7 {; Y, S
  36. 3 F; ~. ]# Y' W! c, S7 D& X
  37. ' @% {* f. J/ m5 ?7 s
  38. static void do_it(void)
    1 n; N4 n! P& u( E  I, m
  39. {
    6 y( Q! q6 l# {" }
  40.     int
    & W7 N, L' x& h0 `* n; `. y2 L( E
  41.         attach_types[1] = {1};
    7 e; g5 F, i* ^5 v) H
  42.     tag_t : e: J0 U8 |( p0 g- I3 Q2 W
  43.         rev = NULLTAG,
    * D1 n% r; f$ Q! r) l) w/ p
  44.         process_template = NULLTAG,
    ( _0 ?& r/ Y$ h: Z( B0 n& `' ^, y
  45.         process = NULLTAG;* f- t4 P- D" T8 D7 W
  46. $ R3 t; E( d% V, z2 h
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    : Q! z/ ]& z7 [9 }4 x3 o9 L* }
  48.     EXIT_IF_NULL( rev );
    1 t5 U/ z8 c; M7 _- M+ ]. w" s* f

  49. 0 g  d* I8 c3 t: h/ D# Y
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    # R+ D, |2 q+ n0 ?
  51.     EXIT_IF_NULL( process_template );
    4 H, B2 b+ n( b5 v) g

  52. / n; d4 ^# Q! e+ z

  53. ( j/ T3 _1 D' M: `
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    ( w: T9 r- Y: E" |$ m
  55.         attach_types, &process) );
    - _$ |/ u* F1 k  d

  56. / v" W* O! S* C; N1 W& U, E* \
  57.     EXIT_IF_NULL( process );0 S/ ~6 `9 [1 D5 ^
  58. }5 F, X+ N* z9 ?3 n
  59. $ `/ o8 w1 i; ^7 K1 X9 h9 c
  60. int ITK_user_main(int argc, char* argv[])
    % ^3 ?* q' O. R: r! B
  61. {
    7 e. x5 w( j" w) [* L
  62.     int+ O: y# L, ?1 q1 |' F. L4 z& j
  63.         status = 0; + r( r) p# T1 C$ o; c! {' ]
  64.    0 ?" {( c9 s% m9 M# E
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );$ n) w4 Z- d% v  R, r" L0 F
  66.     status = ITK_auto_login();
    . f( k  R' q8 a) g6 Y7 U4 B
  67.    3 j3 G, e- G4 h' \/ w4 e
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    9 \* @! K3 V' _/ s) V) C
  69.     else
    - d+ @0 B) s, Y  v: @- x% N
  70.     {
    ( S  ]3 b3 ~0 x1 J% a
  71.         printf("\nLogin successful!\n\n");: b0 R- S$ m: c
  72.         ITK_set_journalling(TRUE);" ]' ?3 h4 M. l) i6 I7 M
  73.         do_it();& e: ]9 M5 |4 e1 O* u4 B6 L7 P- y' l
  74.     }
    * ^! ^8 g4 @( _3 C' q
  75.     ITK_exit_module(TRUE);
    1 g& R+ l' e6 |. i2 e* g* X
  76.     return status;/ Y" Z2 G( X' J
  77. }
复制代码

' P" t- y/ P, H- i  z  J8 g9 J* o+ {& f5 s3 z% K

/ O# N1 g2 O! L; D
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了