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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

/ X9 b5 @, C- ^) }Teamcenter ITK二次开发源码分享: 创建一个工作流
! G# a3 b) \4 l" u; P* C) z0 G" [
  1. /*HEAD CREATE_A_PROCESS CCC ITK */7 e' z: [. p  p: V& e" z
  2. #include <stdlib.h>+ b1 Z, M6 Y: K/ Z5 B0 T4 h( b
  3. #include <TCcore/aom.h>; O+ R& A5 |, O9 M6 x
  4. #include <tc/emh.h>
    : H3 j; m5 c3 b8 \: }
  5. #include <epm/epm.h>; y. ~! B) r2 l# p( x6 D
  6. #include <tc/tc.h>
    9 M5 v/ O# [6 ], @* W4 |7 P
  7. #include <sa/tcfile.h>
    9 O, v. N5 U& z- q! L  e/ T/ @
  8. #include <itk/mem.h>  @) g' k( `. w" t3 f1 G# ?

  9. 5 E% d) W& t5 C( a
  10. #define EXIT_FAILURE 1
    7 s5 d' a; m/ b! k# L
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    . J$ A/ G. b# ?/ V
  12. static void report_error( char *file, int line, char *function, int return_code)
    0 E7 `2 t6 ?! Y
  13. {
    ! t# m& a; n5 \; e& o0 Q' J
  14.     if (return_code != ITK_ok)
    ( c- c, C5 V$ s
  15.     {* j1 V" c1 f/ E+ G) {5 H
  16.         char *error_message_string;
    + c8 Q+ P5 m5 T
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);7 m8 {$ R8 D+ _9 p$ h0 J
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);3 o) b1 q0 ^: w/ c# b4 T
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    & \/ y, i) d2 {) D2 A
  20.         if(error_message_string) MEM_free(error_message_string);6 J: C9 h+ `6 l/ ~
  21.         printf("\nExiting program!\n");
    6 R$ d; ]: F0 C. Y, h6 x3 d, Y
  22.         exit (EXIT_FAILURE);    , e. {' p6 m  y' x
  23.     }
    - }/ T  X. c! L: d* D6 ^( K7 J' D) F
  24. }: H* t* L0 t& {( n& T6 S, E( E
  25. ! s5 Q, B# d" u' O" b* l. [
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))7 q& z0 S" [9 l4 r* M/ R0 p; K9 H
  27. static void check_value( char *function, int value )  X) n* Y( _8 O" I2 [4 H$ u
  28. {
    6 v* S* Y0 A- v& A
  29.     if (value == 0)4 t/ n/ _- Z. j; R# k1 M9 [
  30.     {
    8 n5 {: A( ^* J0 F
  31.         printf ("\t%s is NULL\n", function);
    % d! k, ], k- [
  32.         printf("\nExiting program!\n");
    / P9 R5 Z' Q* x* i' ^" @, o
  33.         exit (EXIT_FAILURE);    / }% l2 V& J1 X  m/ K! S+ h" l
  34.     }0 y. g3 K7 L& U  x
  35. }& k- D" K* N$ D$ T; M9 x
  36. 6 u3 }8 r3 ~$ Y4 s7 Y
  37. ( \4 p& }* C% q+ `" _+ _
  38. static void do_it(void): D* c% N7 {/ L- _+ f
  39. {
    ) G2 F: j4 v/ X/ g/ M& }1 i
  40.     int
    4 c0 {: P* V3 v8 a8 t1 y  C. k
  41.         attach_types[1] = {1};1 U: k3 [) y* J
  42.     tag_t
    2 D! {8 G, ]! d# T3 s. m1 u. e
  43.         rev = NULLTAG, 6 p1 u6 G- e# h5 }$ h; _1 s# M
  44.         process_template = NULLTAG,
    8 o& M$ x) R  a, A" c- _
  45.         process = NULLTAG;  a1 U( j6 E# R/ s7 F  Z4 w

  46. 5 f" I1 Z: X0 z1 O) h* ?
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );. \. r6 w  m$ Z5 e5 W. ?( ~" \  w
  48.     EXIT_IF_NULL( rev );
    3 v& N! R) Q/ y6 z# c( Q) j0 X' c
  49. # C. S. X( g9 Q2 q
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); , y* i7 z* z" t5 S0 p+ h
  51.     EXIT_IF_NULL( process_template );4 N: B) B; h6 U' q, P( [+ ?8 B

  52. 9 k  f! }/ a: Q) L' {+ t

  53. 0 b0 W. O: w& _+ \/ A% j/ s# Q
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, # t8 ]/ E, r" C% j* ?! \0 A/ d
  55.         attach_types, &process) );! p" `0 x0 E% G% B9 G

  56. ; n4 o: o5 u6 ?0 P$ [2 F
  57.     EXIT_IF_NULL( process );
    * K) C2 w$ S7 F! |) z5 z) i. p& q' M
  58. }
    ' _" ~* W% h, d, z  w# N
  59. 9 R+ i7 _7 e- _* @, `8 i! r- K
  60. int ITK_user_main(int argc, char* argv[])/ g' T$ Z6 j8 U9 H- A
  61. {
    0 W' m% ~6 c+ F5 P+ L
  62.     int
    ) k- b1 ^. w7 Q1 h: [* ~( h
  63.         status = 0; 3 a# x6 Z1 A% U% ~$ B" [; D: ^
  64.    
    - s! ^8 m! d3 z: O) R1 o& W
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    9 ]" ^1 u: U- J4 ~( O3 e
  66.     status = ITK_auto_login();
    ' F# ~& J. I3 `2 l$ h5 U0 G+ c1 [
  67.      E9 A3 d9 y% Y2 Z' [4 m
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    8 p5 t& C9 N/ z/ T
  69.     else% W" R: u$ E1 ~! g- F2 g1 w7 Y/ [
  70.     {
      C* g7 {' q& a6 c* @" K7 Y0 r
  71.         printf("\nLogin successful!\n\n");
    * {2 E  Y- b% R6 v3 Z: D8 q
  72.         ITK_set_journalling(TRUE);
    # c' p1 X! O8 ^; V5 q9 Q6 O( G
  73.         do_it();
    0 r2 a+ t3 c3 l8 }
  74.     }* {* f* m) Z& f
  75.     ITK_exit_module(TRUE);
    / k+ i( D; R0 a" B4 ^
  76.     return status;
    , T5 K, c* G& Y
  77. }
复制代码
% v- A4 q; s$ t3 h$ M* r

. X) A% f( P4 d3 b' u- w' N! Z$ P' o& K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了