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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
4 x5 D- V0 n( z- F3 w+ A6 t
Teamcenter ITK二次开发源码分享: 创建一个工作流
( b  m( G% n2 g( g$ x' E1 T* y4 K( C- l
  1. /*HEAD CREATE_A_PROCESS CCC ITK */9 d6 Z/ P  v" H  F9 m
  2. #include <stdlib.h>  ?  n2 K9 c9 v! _7 U
  3. #include <TCcore/aom.h>- e5 i. Q# U) f! F- O
  4. #include <tc/emh.h>
    0 w( W, n2 f' X# X% I8 @
  5. #include <epm/epm.h>
    2 F  ^: I8 Q( r) A* B
  6. #include <tc/tc.h>
    % C9 v. t7 K  _8 K! G0 E3 q
  7. #include <sa/tcfile.h>1 k$ b3 g& \; @+ j3 C* ~& k5 U
  8. #include <itk/mem.h>
    8 K% N  f" \' x4 J! O! H' ^! J& u0 f

  9. 7 R* S% J% r+ v' W: k
  10. #define EXIT_FAILURE 1 % p+ f4 u4 I5 M0 p0 _
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))5 b( o3 x- R$ X6 J; g) v- t  S
  12. static void report_error( char *file, int line, char *function, int return_code): s! B- M4 \8 H/ L* v( I( V, e/ M
  13. {0 i3 P: u- L. n5 u1 o$ t8 n7 _$ @
  14.     if (return_code != ITK_ok)2 A8 v+ b( Z* N: E! P9 `- h% w
  15.     {
    / {. i; E. E$ b0 z+ S# ]0 \
  16.         char *error_message_string;
    % ~1 K' q5 [$ |' q5 z# I. r: X
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);" x1 q# f6 b/ a% G, z
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);" v9 f" l3 q2 ]1 G' A
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);0 u5 Q' c" _# v: |
  20.         if(error_message_string) MEM_free(error_message_string);
    9 q& \- S" |: U6 y7 t$ H2 z
  21.         printf("\nExiting program!\n");
    & N" }' o/ o$ @5 ]6 A1 `
  22.         exit (EXIT_FAILURE);    - I! g6 a' `) X% z# K
  23.     }- O' r$ B5 d6 b& m4 F
  24. }
    ; a4 a* b8 x" N& ?6 w
  25. 7 m: n3 H) a( R5 P4 U2 g
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))0 j6 \, V+ W8 J, J; [" S7 S
  27. static void check_value( char *function, int value )
    * I) e4 Y5 v) S8 l' m
  28. {
    9 E" x) Q' h5 S
  29.     if (value == 0)9 G, b  ?( x5 r8 `
  30.     {
    9 M8 H. O6 A2 o' p4 x5 G% L1 V; u
  31.         printf ("\t%s is NULL\n", function);
    - @! D( v3 e7 m2 P) W3 O: \6 E0 D) H5 W
  32.         printf("\nExiting program!\n");
    4 {& R- r% s/ w+ l; v& S
  33.         exit (EXIT_FAILURE);   
    6 y. y( x- c( P7 G4 J) F+ ]
  34.     }
    4 [& M8 l" a8 W, F! U  B
  35. }
    & j5 p3 _" n  ^

  36. ) y& \$ t# C3 Q

  37. % v7 C: d# i% |1 M
  38. static void do_it(void)8 x1 \; ?/ w% q
  39. {
    0 O; N6 I1 J, |' M, Z
  40.     int 8 a/ o  y! i: z3 E
  41.         attach_types[1] = {1};
    , x3 A3 D* U- G
  42.     tag_t
    $ W5 N! V4 E8 z. I% ?
  43.         rev = NULLTAG, : O) P! y) N! y* O: e) {9 }* v
  44.         process_template = NULLTAG, 8 s9 n4 I0 o3 X: \5 G! O
  45.         process = NULLTAG;
    5 C/ K  f4 j, V; m6 Y& ?6 N- G6 H

  46. ( o* W# U6 t+ q& K8 \1 v' [' ?
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );' S/ L2 F& x5 ^9 `1 O+ e( k& l
  48.     EXIT_IF_NULL( rev );4 p7 B* b3 ?4 Z
  49. * i+ w7 A. L3 l  D
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    4 s1 l0 Q: Y( u5 W8 |4 \  |
  51.     EXIT_IF_NULL( process_template );
    * @- ]. X: W0 q% m9 |7 P" o% @1 P

  52. + d9 }* Y3 R3 P( T- z) X

  53. & n; s% q$ e! f/ _
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    4 p$ O, a( Y5 C5 z8 h
  55.         attach_types, &process) );
    8 @6 G- C: Q/ D" f; J, ?
  56. % X9 Q8 \4 {5 B2 ]6 s/ Y8 ~9 w4 x
  57.     EXIT_IF_NULL( process );4 x2 y$ |# |1 B" Y( h4 P0 o1 M
  58. }7 l. }. m$ P" {
  59. 3 V. e. f9 o( ^) {/ i) o
  60. int ITK_user_main(int argc, char* argv[])
    9 b0 V* P" @- Z% i
  61. {$ Z& e4 _- x; S# _+ M: G
  62.     int
    8 L' j$ V1 T' n/ a6 R/ v
  63.         status = 0;
    5 M5 r( F* e5 T; ^$ H/ ]
  64.    * B1 l- K0 w; D: y! I
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    / t: G& H1 P) n1 J8 `
  66.     status = ITK_auto_login();
    2 l. z: w# g8 o3 H  r# l
  67.    # a# [6 X+ F# \8 }8 Z$ v) F
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");; P1 L( ]. U) A& F+ V& ~! E* C
  69.     else6 s, P+ ^! C5 V1 Q7 ~9 ^
  70.     {( H- w# S8 a. \
  71.         printf("\nLogin successful!\n\n");
    , d2 k/ {( e! `) m/ i
  72.         ITK_set_journalling(TRUE);9 v: z- ?: u& j/ y' F" R1 _
  73.         do_it();3 [# e5 E* N2 t9 |5 {, O4 D
  74.     }
    3 p  @9 R: B. Q$ t
  75.     ITK_exit_module(TRUE);
    . E# U+ Y3 `9 O$ R. Q0 @/ ?
  76.     return status;1 U' p  S& H  t. f) i
  77. }
复制代码
, ], j" n7 E: c) Z0 l3 E, A

; a- \' f' R1 k6 \3 g6 F$ w* p! S
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了