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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
! L( U: W' B% Y6 V
Teamcenter ITK二次开发源码分享: 创建一个工作流
( J, {( @& W: \) c: j! v
9 W& ]! y% R0 {6 |5 @
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    1 n! c0 U- B4 C$ h' W3 d# _
  2. #include <stdlib.h>
    # f- L! {7 `6 R1 q) ]7 |1 |/ P
  3. #include <TCcore/aom.h>8 ?* B$ P" O- i. R* H8 z7 P
  4. #include <tc/emh.h>
      K- B# x) o' t% F' K) P
  5. #include <epm/epm.h>
    $ r9 e( w: s2 B- c
  6. #include <tc/tc.h>) }6 c- {6 o- U
  7. #include <sa/tcfile.h>; n8 p( }' y' x+ ^) Z
  8. #include <itk/mem.h>
    8 b, G) r- `9 r. ]; q. r
  9. 7 S& L: G' d5 ?3 Y2 v2 x
  10. #define EXIT_FAILURE 1
    ! O2 y7 v) H& c8 i
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    : d) u8 r1 Q! I# u! Q
  12. static void report_error( char *file, int line, char *function, int return_code)% q% Q* w7 o3 U+ Y# W% y5 [+ ]
  13. {. X8 F) i; p: E& A( ~
  14.     if (return_code != ITK_ok)3 l% h! f& _- d( g1 I# C) }
  15.     {& {7 K& a3 }6 A' k$ k- t
  16.         char *error_message_string;
    0 \- V' d2 R9 H3 c$ O; S, z0 G5 B* L6 j
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);" Q2 D8 o( c* W& V; K
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);' w% v! ~: L, Q; W
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);- \$ d6 C) g" P2 o  H' o
  20.         if(error_message_string) MEM_free(error_message_string);
    ( Z, C2 F0 s/ O2 [2 v
  21.         printf("\nExiting program!\n");9 K) D! E3 X; ~; Q1 K
  22.         exit (EXIT_FAILURE);    # H# X: u  ~8 L3 L% H4 G& H& b# Z
  23.     }5 ?/ m9 ^% g* ?0 A% O
  24. }
    7 q6 q& i" a/ k9 L% s8 [

  25. / Q: H+ e- q$ m* |8 V" Y! M
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))& J8 ]$ h3 S. C
  27. static void check_value( char *function, int value )
    7 m+ N) T" G" t1 f1 r
  28. {& p9 l3 G  H( }
  29.     if (value == 0)
    . q$ ~1 {3 K, Q
  30.     {( a) |' z( q7 \" B
  31.         printf ("\t%s is NULL\n", function);
    $ B0 V. f6 e( m2 S' T1 L
  32.         printf("\nExiting program!\n");
    # A% y! K5 s( ?  N: U7 W; l
  33.         exit (EXIT_FAILURE);    ! |: O1 A: z$ y) Z
  34.     }4 y$ ^' a, W' {: b' C) z9 L
  35. }" u2 p( l# _8 I
  36. ' Q; ^3 p: J8 f: m+ w0 o) p

  37. ! _9 K4 k" }7 n7 V  l% X3 d6 o
  38. static void do_it(void)9 l% d$ ~% A* Q% V& ^  m
  39. {
    " ]% V+ ]& j9 w7 n
  40.     int
    9 m8 q5 i: d  ?# d& `; ^) @
  41.         attach_types[1] = {1};% P+ j3 Z4 R1 M2 y
  42.     tag_t
    1 L8 Q, J5 c+ P
  43.         rev = NULLTAG,
    ' ], K+ t! c# L3 s5 A1 R) P; }3 r
  44.         process_template = NULLTAG, " a9 n1 N4 Y  D7 ?$ x$ X
  45.         process = NULLTAG;7 Z- l9 W. c0 c7 F" Q* M
  46. 6 Z/ ?4 t& {  u
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    2 Q: |3 f, |; P" @% ~
  48.     EXIT_IF_NULL( rev );
    ' Q7 \8 ?5 I( z

  49. ) x: A) W3 V  w& g0 p
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    + T" q4 J& o: V6 ^" V
  51.     EXIT_IF_NULL( process_template );
    5 z/ w* z8 I5 o" M8 }: o* i5 b
  52. $ q* ]- h' f; m/ B
  53. " z( V9 O0 H, ~* `+ b
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    7 O1 [( I8 u* d* D+ G; M. I
  55.         attach_types, &process) );( P& E2 j3 }4 p& @: B+ ]

  56. " `3 `8 _5 X' ?8 E4 v9 W- c( p0 _) g
  57.     EXIT_IF_NULL( process );
    9 ?: E4 ~5 c3 z8 d6 @2 q$ Q5 }, r
  58. }6 N- A" @" c# c6 q! ?9 _

  59. 9 R1 o5 b' {) d& S+ `  N: H5 u; a
  60. int ITK_user_main(int argc, char* argv[])% b' C6 D* F. [% `
  61. {
      z) |# T  ]3 N
  62.     int
    * Q' {1 J7 M- ^6 d# R
  63.         status = 0;
    . H, R. {; V* y" @/ J  @
  64.    
    % @: @8 |  V: h6 G0 N
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
    + C# T! U3 r+ w2 t4 b
  66.     status = ITK_auto_login();
    & q2 v! K+ n4 Y4 {% l5 ?
  67.    $ L: \9 f0 e1 O6 C8 Q4 _6 z/ `
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");. H. C: {6 R# I( C4 y7 N( |7 Y
  69.     else
    8 p. C: U: S# H& z* }: `% d) x
  70.     {# X: R) N* n0 b
  71.         printf("\nLogin successful!\n\n");+ L) v+ R. }. K( S3 Q
  72.         ITK_set_journalling(TRUE);4 G0 H1 ?# ?5 }+ V+ v9 _( x; w
  73.         do_it();4 i2 S" s0 [7 ~; {- J% J" U. D: o% r7 X
  74.     }
    / D6 {: X+ F9 A. P$ d
  75.     ITK_exit_module(TRUE);
      X- y8 L3 L7 b* }
  76.     return status;
    ( v+ o; |% r# t! @& D( N
  77. }
复制代码
, A5 D7 |' b0 u
3 l) U+ O; [# X  p+ H

' f0 z6 D/ t" v7 a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了