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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x

) _. X. X! V4 V+ WTeamcenter ITK二次开发源码分享: 创建一个工作流
7 U! M- [1 g) C4 ~5 a. B, g1 F. _! `- d; Z
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    7 T2 W( ^7 `  j/ w/ o6 h
  2. #include <stdlib.h>
    0 B% L+ V% z, b, y1 `! @" X
  3. #include <TCcore/aom.h>
    $ O$ W0 h% R* p4 ?. U2 s
  4. #include <tc/emh.h>( \# G* w+ `2 r
  5. #include <epm/epm.h>( w; K0 Q1 D5 H  ?; ^
  6. #include <tc/tc.h>9 B% o5 P' U( b5 B
  7. #include <sa/tcfile.h>7 O9 S( R+ C. a4 r
  8. #include <itk/mem.h>
    * ~2 `  D7 _2 o0 |9 b! T2 E
  9. & b- L) z7 p0 M
  10. #define EXIT_FAILURE 1 - b, Z9 j) D  X+ L
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))2 F" K$ l6 O0 B8 P$ v$ a/ \! E
  12. static void report_error( char *file, int line, char *function, int return_code)1 ?+ u+ x  |6 e
  13. {
    ; ?* @4 q. ^' [! T
  14.     if (return_code != ITK_ok)8 _& ]) r! r, B' g
  15.     {3 W5 z- w& P# v' {. M) I
  16.         char *error_message_string;8 l, [* N1 }7 C% G
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);. s% |0 x% ?/ }# R
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);1 H2 J: v) K" _4 S- `( H" X
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    6 D+ u! [; j! q& V1 v, k
  20.         if(error_message_string) MEM_free(error_message_string);5 u7 Z4 X( p2 a2 e" {
  21.         printf("\nExiting program!\n");
    / B' ~7 L" u: d" v( v% b5 ?. ?1 h1 _
  22.         exit (EXIT_FAILURE);    8 E2 u" n" }7 X; v
  23.     }* H; g' P) T7 e0 ^6 H
  24. }
    9 u$ g9 U9 H' q: T& k! t5 K2 a
  25. 3 o; d- J1 O/ _" Z# z- G) i5 T- F
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))9 }: g0 S3 t% K2 t
  27. static void check_value( char *function, int value )# ?7 ^5 D" p0 a* Z, a
  28. {/ A: B5 g7 r  j9 y' t! _" h# v
  29.     if (value == 0)
    . v) }  F; u8 F: m+ H& n
  30.     {, Y% [: d3 C0 H6 H
  31.         printf ("\t%s is NULL\n", function);
    " z. ^) g( }7 h* r5 \' w
  32.         printf("\nExiting program!\n");
    , j4 r% Y. w4 d. K8 t. e" z
  33.         exit (EXIT_FAILURE);   
    7 k5 u4 f9 \4 u) m
  34.     }, R7 y! i5 D$ I
  35. }
    2 [# m0 W9 e! c

  36. 2 y0 Z1 Y0 I% ]5 A

  37. ) {: W7 l, z1 M, k
  38. static void do_it(void)6 M9 k2 ]1 u  Q8 u  Q
  39. {
    5 U- t) z8 R/ K  t: q2 l
  40.     int ! V/ l' |9 K8 T2 U8 J5 [, K1 S; ^7 ]
  41.         attach_types[1] = {1};( M$ ^9 ]) |' `% M
  42.     tag_t
    6 ?" N) K8 A$ U" i! L0 A
  43.         rev = NULLTAG,
    ; f( f$ g) G) i% P
  44.         process_template = NULLTAG, " c; M! _: I( r' o7 K* V$ t
  45.         process = NULLTAG;+ b* X. ?, p- e7 C) R# c

  46. 8 h: @2 |5 ?0 Q2 s" r# P$ n) _
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    $ \1 N5 {# a$ M/ e; p6 a! V
  48.     EXIT_IF_NULL( rev );  u2 \7 b+ c) _. Z" E3 E

  49. ! N6 x1 c, E% h; g0 {7 u! ~3 n
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 7 o2 c4 o9 h$ F1 R. a; t
  51.     EXIT_IF_NULL( process_template );
    ( ~& e& A' T+ [8 ?' M3 ~, g
  52. ) c( k' [5 u9 u/ u* ]1 O
  53. + i: \# b3 Y, Y
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, 6 t! P' v* ~" g% B$ ^# x' A
  55.         attach_types, &process) );
    / s3 ~! b9 U3 d" i

  56. . Z0 D$ o/ f. L1 Y3 t
  57.     EXIT_IF_NULL( process );1 a& n3 V2 [5 {
  58. }! R# Y; Y. s# i
  59. 4 H4 g7 N% I% w; Z* Z& h6 r, y
  60. int ITK_user_main(int argc, char* argv[])
    ) W7 H& H# R0 m$ C9 T
  61. {% {2 d4 u/ |$ b6 B/ `
  62.     int
    - S4 r& T( o  \
  63.         status = 0;
    9 |) V3 o0 r8 j6 q9 d* z& C
  64.    * R5 C7 a( I. w1 F9 L: d
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );+ a5 S3 J6 S- ~2 r3 R" I0 e' G
  66.     status = ITK_auto_login();
    . o0 i# e/ H1 B9 H, I% N' Q
  67.    $ F* i" ^' [8 v% |  {
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");
    + x* M3 O8 b7 |3 P- M! E" d. K/ N
  69.     else0 _1 c9 s# ^2 p
  70.     {) K0 E/ ]8 F% _2 A. Z0 f
  71.         printf("\nLogin successful!\n\n");) j7 T* L" l" D+ @) j2 O1 P5 T
  72.         ITK_set_journalling(TRUE);
    ) \$ X- l& _8 l* |
  73.         do_it();. o- Z( u7 s, f5 B
  74.     }
    ! \1 O$ j! O2 ?& I; m7 q) ?
  75.     ITK_exit_module(TRUE);
    + K! S- B. ]" @- r, w. X* ~
  76.     return status;7 S4 |9 u8 ]; m# q: K7 B2 J; v
  77. }
复制代码

, A* H; \1 n9 J
* Z' |4 w: S4 S9 E# A+ h5 M7 \: l! M+ E3 M( N0 V
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了