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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
& z  p4 K. P9 o; ]# ~
Teamcenter ITK二次开发源码分享: 创建一个工作流
: C" O: _! ~; C+ p% i3 W3 K5 f8 J" s$ f0 ~2 x0 C0 }
  1. /*HEAD CREATE_A_PROCESS CCC ITK */1 S5 ^) ]3 B' H" ]+ m/ I6 b
  2. #include <stdlib.h>
    : f: D! o( S# W+ M% Y0 _
  3. #include <TCcore/aom.h>
      k) y3 O) U' o) R' d# q- ^
  4. #include <tc/emh.h>, z/ Y; v* C, }% h2 J
  5. #include <epm/epm.h>
    2 o5 {8 ~+ M" L: Z$ W+ p* a
  6. #include <tc/tc.h>& @3 u" D3 Z0 [5 Q6 k$ a( m
  7. #include <sa/tcfile.h>" X# T; P8 Q" @  r+ I" n3 S
  8. #include <itk/mem.h>
    3 @% H. h0 U% f+ S
  9. ! y3 F& {$ i  m: R& E1 D
  10. #define EXIT_FAILURE 1 $ F. {0 }- e2 {# U
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    , ]7 V- N4 h9 `* K/ ?: N5 Y
  12. static void report_error( char *file, int line, char *function, int return_code)
    ( u4 Y" G- f, H" B$ A1 D5 j' d% x% U
  13. {
    " ^' q1 w& F; y6 n0 h
  14.     if (return_code != ITK_ok): t& Z# n" L: I2 O5 B  F
  15.     {
    , X' ?) S% \- b; V4 G7 z1 Y5 l
  16.         char *error_message_string;
    9 {/ D( E/ J5 g2 R
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);( x* O4 Z0 V# ?+ }$ r
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);* F& ?, _2 i+ q% I2 ^5 |
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    , B" r- _5 h  h) A" c% E3 ?; W$ C
  20.         if(error_message_string) MEM_free(error_message_string);* r5 H% m3 N0 f6 O
  21.         printf("\nExiting program!\n");, |( V7 X2 B. ^# R- L
  22.         exit (EXIT_FAILURE);    8 U9 e3 @% v7 T) H8 r5 r) B% E7 ]
  23.     }
    2 g+ c( u) c2 ^8 V' T
  24. }
    : }# g. C3 F1 W) c& O- L

  25. 9 Z  C( Y4 [7 }/ b& L& P, v
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))$ A- l8 H! ~& E$ T% s
  27. static void check_value( char *function, int value )2 h+ h% S( M" W1 h- c( j7 s
  28. {1 G5 [7 ]: O5 x8 L4 }
  29.     if (value == 0)* F7 l1 n9 k. D0 k
  30.     {/ Y: Q* g$ Y8 G6 [! p2 C
  31.         printf ("\t%s is NULL\n", function);. Q2 l/ q5 ]7 |1 K, M# p# }, m/ W
  32.         printf("\nExiting program!\n");! y8 H8 ^' O* X
  33.         exit (EXIT_FAILURE);    1 T; w4 h$ D& X
  34.     }
    % Q, k+ e, x2 O* `; H  ~& E% w1 u/ q
  35. }% m3 V/ B0 w4 q( R+ x

  36. : G! m5 j& q- p& {& h4 b; |1 l. W

  37. & C+ C9 h( b* W
  38. static void do_it(void)( |: x; j* ^1 \5 ]. `% t5 ^+ X+ }
  39. {
    & v; Y4 z( @3 j# q) |: d
  40.     int ' e, K! B* R3 f$ I4 Y$ \5 _1 t1 h
  41.         attach_types[1] = {1};
    * T' ^% r% B+ B
  42.     tag_t
    + C+ |" E5 B% f' z& ]2 t
  43.         rev = NULLTAG, ( o; n$ A; C! n. v* n7 t+ C# g$ F
  44.         process_template = NULLTAG,
    9 ?: D6 V/ ~4 G
  45.         process = NULLTAG;" ^; |# y' C. m% p" e5 d2 n
  46. / }1 t) R# O  L$ I: P5 E
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    ' @8 Y: v7 J2 y  l( S
  48.     EXIT_IF_NULL( rev );
    , M+ c% E7 i/ k; V" h
  49. # Q) {  O( V3 _. ~
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ; t- o( U+ L" V
  51.     EXIT_IF_NULL( process_template );0 h& m" r4 }( ^8 f, ]' E

  52. & @9 d' q& b$ {& ~5 @; m- x) k
  53. 3 Q5 A3 L: u4 j; S, p
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 9 F2 a7 Z7 o( a! r; z! Z+ p* e
  55.         attach_types, &process) );% V" t* U$ }/ v2 T; @, Y2 H/ p( `
  56. ) o! `% e# a& \% v( R5 F6 h
  57.     EXIT_IF_NULL( process );
    9 E2 w7 f/ o7 L% d% S
  58. }
    0 ^0 u' j, C( [! Q+ W
  59. & X8 v; V) U' ^* G$ Z1 X- l3 Y
  60. int ITK_user_main(int argc, char* argv[])) p% w0 }* e* H) \9 }
  61. {0 s* _& m5 T" O8 h$ X: j' [( v
  62.     int
    ( Q* x$ d# Z4 b5 d) {
  63.         status = 0; 5 b& B1 b4 V: L# K% @! f
  64.    
    # @& J. n8 R  L: `: u
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );5 D$ e8 S) Y" g+ ?
  66.     status = ITK_auto_login();7 N  I1 y" Q0 O3 s, C, g7 q
  67.    
    ; l: \2 H" _7 `$ m2 v+ \$ B
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    $ }; p# e# q: }! N0 l3 H* ~& z
  69.     else8 u# [: J, @6 Y; V: o5 Y
  70.     {
    4 G8 f/ Z1 F! ^6 X; b
  71.         printf("\nLogin successful!\n\n");( P5 {, o: }% r& U* B
  72.         ITK_set_journalling(TRUE);
    3 }0 Y* \8 b" s! p7 I3 u
  73.         do_it();7 n  N: {& o% `) l
  74.     }
    1 `$ S+ m1 a5 A; _* s& _4 i
  75.     ITK_exit_module(TRUE);% I9 K7 b# `9 G! Y# Y5 _2 O
  76.     return status;% c, J) J: A( N) Y# ?' `
  77. }
复制代码

5 b9 m* @: N) M# V' m- [& q6 Y/ h( x6 V
0 N0 M. M/ E+ j4 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二次开发专题模块培训报名开始啦

    我知道了