PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

1 P4 i  p& T( PTeamcenter ITK二次开发源码分享: 创建一个工作流* X: D/ u5 p+ }% ]2 m* N0 J8 v

, u1 M3 {' R1 D! C  F3 J
  1. /*HEAD CREATE_A_PROCESS CCC ITK */1 T0 ?4 W( b: ?( U# c5 q( B
  2. #include <stdlib.h>
    & ]; i+ J7 g: d0 J* ]- W, [
  3. #include <TCcore/aom.h>
    2 Q4 p; [* n. J: H
  4. #include <tc/emh.h>
    / H* k+ u  n: D
  5. #include <epm/epm.h>
    ! [1 B7 _5 x/ |
  6. #include <tc/tc.h>
    $ A% k7 R1 O5 G/ R
  7. #include <sa/tcfile.h>, Y- n: p& w5 ^! I$ N" \2 {
  8. #include <itk/mem.h># A3 U7 r( s  q6 _' P

  9. 3 o! M& Z1 y! Q
  10. #define EXIT_FAILURE 1 & T" v* \5 k5 f0 c4 B6 C+ P
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))8 e0 T+ s/ i5 S. h' E
  12. static void report_error( char *file, int line, char *function, int return_code)" \3 |8 D( G3 R" g' y3 {8 U
  13. {
    9 M9 ?- {* q1 d& F: n7 t
  14.     if (return_code != ITK_ok)) f+ \- w& u* V9 W, i3 F
  15.     {
    - ~" {& ]4 L' A- J( r. ]$ G* L, ~
  16.         char *error_message_string;
    % @# s3 R; q, e
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);
    & u4 b* D/ e" z3 m
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
    , A' G5 O# K2 g' y! r- g
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    & v/ z$ x- T$ U$ U- p$ j5 M
  20.         if(error_message_string) MEM_free(error_message_string);
    & d0 C  O  }7 E) K6 p
  21.         printf("\nExiting program!\n");
    2 r7 Y# X3 I; T; d$ h: l$ S, o: g; m
  22.         exit (EXIT_FAILURE);   
    6 a+ D& W% e+ X0 u$ e) A# k+ X$ y. k
  23.     }
    ) M8 F. Z! D% ]. V1 e
  24. }  S# g5 L; x9 \/ F
  25. $ _. w- v" ~4 D7 Y
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))1 O* k) l& M2 Q& s& v
  27. static void check_value( char *function, int value ). ^6 s7 i! t" ?6 v" R
  28. {
    & G  F% v! P' `" }, L
  29.     if (value == 0)
    & A% g/ v0 `$ R% P1 w! |8 K+ u. G7 B
  30.     {, x  ^; y5 l3 x+ U  ]/ v
  31.         printf ("\t%s is NULL\n", function);
    . _* v: h0 ?, U4 _
  32.         printf("\nExiting program!\n");
    . w: K9 P! a6 I( Z
  33.         exit (EXIT_FAILURE);    6 ?+ b8 {; v$ D0 o& o2 ]
  34.     }
    $ Q! S9 o+ y/ }
  35. }3 M6 z; c( p8 O# p1 e
  36. / ]! B# s" V9 @6 |
  37. ! n% Y3 u- i. `. H( s$ W7 a
  38. static void do_it(void)2 ?% ]% ?3 p: Q- j  v4 z! N
  39. {
    ( W5 O% L7 S( R+ q' C6 Y& r9 G
  40.     int
    9 m" L( y4 m1 }# F4 i( J
  41.         attach_types[1] = {1};5 f: T- M/ o# k8 Z& Q
  42.     tag_t . ~. ^9 a5 P" }
  43.         rev = NULLTAG,
    9 b' S+ i9 ]$ j3 j' j8 W7 `8 l
  44.         process_template = NULLTAG, - ^$ M' E2 a, f+ ^, U
  45.         process = NULLTAG;( a  M2 N; b+ f
  46. * R+ q! l! n" u# {7 i6 Y( c
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    4 }' K( s- K* q) u, Q4 x
  48.     EXIT_IF_NULL( rev );$ F4 `# a5 d+ \2 h# Y5 w$ B

  49. 1 p+ d4 H1 \; ]2 u8 d7 Z5 a; p8 ~$ q/ l
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); ( p: X9 M# m- x  G1 A' W  H
  51.     EXIT_IF_NULL( process_template );3 p) y( {9 I/ G. G4 E
  52. ; e( t% O  L* ?3 @3 ?* B& ^- X! l( J
  53. , J9 }+ z$ ^. E7 g' b: D1 z8 r
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    / Y' D# {3 i2 T1 G1 a) G
  55.         attach_types, &process) );3 B  A+ J. P" \0 a% l% @  n  e
  56. 2 l, ^9 c, B8 o+ n9 e# _
  57.     EXIT_IF_NULL( process );
    " P+ s8 E) q9 ~3 N, g8 s9 d/ A
  58. }
    : X5 ]7 `4 L1 e- v

  59. ; d! T+ u- v6 r( a2 o( e' o
  60. int ITK_user_main(int argc, char* argv[])1 F$ \% X  p/ @
  61. {
    0 S% P% y& I) v+ ^* z7 V
  62.     int
    * L0 d! C/ X1 M- M$ F2 c
  63.         status = 0;
    ( r( `& r. T; g( n: K: P
  64.    + L1 q$ Y( {  R0 y
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    $ }. V" v3 O! G& [  e4 ^
  66.     status = ITK_auto_login();  S* N3 y/ C3 E  a% F5 U. \& i
  67.    
    1 {' n3 q! d& z
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");7 u4 R5 F4 F+ \; `$ G! o& R! T: w
  69.     else
    $ ^# E: {) A$ |+ t; _" u- n" c: `
  70.     {
    ' L! H* S- Y: u& a2 H
  71.         printf("\nLogin successful!\n\n");
    8 L; o/ O+ a: v! {  s
  72.         ITK_set_journalling(TRUE);! V5 o: r8 n* R/ Y6 `
  73.         do_it();
    6 Q% ?3 d+ _6 D6 _! n* @
  74.     }
    . g- A! j* }. n5 p  _$ U
  75.     ITK_exit_module(TRUE);
    ' p6 ^1 ~+ y& M  t9 c
  76.     return status;! R# g" U4 c% S: o- q1 K: a
  77. }
复制代码
+ f/ y' ~! M+ J3 l$ D* y+ J* \

" D; c. l, W/ J: j3 [# E
. Q3 Y  `  [* c* x4 D! P% G) y6 v
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了