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

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

[复制链接]

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

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

admin 楼主

2014-1-15 19:30:29

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

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

x
+ B3 ~* I- I/ h' ]. Y" {
Teamcenter ITK二次开发源码分享: 创建一个工作流4 {6 r8 t  I/ D/ r* \8 K2 Y
3 `# }0 t! y( U- q) f. p
  1. /*HEAD CREATE_A_PROCESS CCC ITK */
    " P- m- i- M2 D- @5 Z
  2. #include <stdlib.h>
    / }. F% j2 o) V% C+ |+ {
  3. #include <TCcore/aom.h>
    $ @: Q# d! t' k# P- ^
  4. #include <tc/emh.h>; Q+ Q( x, D+ H, ]6 i  {6 H, Z
  5. #include <epm/epm.h>
    ! o0 M/ O$ @- ]1 F- O, R1 }
  6. #include <tc/tc.h>
    ' y; V- s5 L5 M  N* S
  7. #include <sa/tcfile.h>2 q' r8 [* K4 |: e9 M) X; {
  8. #include <itk/mem.h>0 g" v$ }: U. x' A* @

  9. " R6 M* X. }+ k( H
  10. #define EXIT_FAILURE 1
    ! L- k; G  ]# j' `5 C2 D4 A1 n
  11. #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
    / w( {& H+ h! h
  12. static void report_error( char *file, int line, char *function, int return_code)! |$ i' T* T# O  k  Z- y
  13. {8 s- H- a3 {) A. F. z; x$ J
  14.     if (return_code != ITK_ok)
    5 ^; T6 }# ?* F8 L
  15.     {
    $ D8 |# t$ O0 L' D; c3 S
  16.         char *error_message_string;
    : ~4 c/ Y% {( c, U0 [- E/ \
  17.         EMH_get_error_string (NULLTAG, return_code, &error_message_string);2 t& _" K: A& g) f6 V* Z
  18.         printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);% U( S8 n/ e6 S3 d& C$ D) h" h8 G
  19.         printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
    1 w: O  Y3 n" g4 c
  20.         if(error_message_string) MEM_free(error_message_string);: j1 s. X9 L4 x. }0 k
  21.         printf("\nExiting program!\n");
    " L  s. `4 ~1 m1 b. v$ N
  22.         exit (EXIT_FAILURE);   
    5 Y9 h2 u; z0 s5 v* e. `$ k9 A
  23.     }+ m( r! g& n( {
  24. }# l1 M6 h( `( w# A. E! y9 W; D
  25. 4 s# h) E: M- O% I3 x3 b
  26. #define EXIT_IF_NULL(X) (check_value(#X, (X)))2 b& o6 X* q( ?' K
  27. static void check_value( char *function, int value )
    . K5 X& h6 @( f6 z# X/ S9 F5 M
  28. {: V$ L& [8 q: N4 w* \0 I+ ~1 i
  29.     if (value == 0)9 K7 a  D& Y4 m. O# H, k5 g1 m
  30.     {% M2 u1 j$ z, ~& V
  31.         printf ("\t%s is NULL\n", function);
    + N$ \2 O1 B6 X; ~. w- `. D0 H, }
  32.         printf("\nExiting program!\n");
    3 y, O# ^4 ?! r- w
  33.         exit (EXIT_FAILURE);    & F0 a! `* D9 m5 R
  34.     }; [! D# d+ w& C7 x# C
  35. }; H/ m! [. f" K6 |5 P0 c8 h

  36. " `& D% T# D7 z" L6 \' L( F/ k% A
  37. & r. A' P% W; {8 R+ k1 ~  B
  38. static void do_it(void)
    4 \$ X6 A1 }/ t* a0 e' ]
  39. {& |$ ^+ d9 p# F( g+ \
  40.     int , J$ Z( T2 j9 W/ S) F
  41.         attach_types[1] = {1};
    ; n; [/ V- \! n  \7 K$ v2 k9 A" A
  42.     tag_t
    * i7 W  t* v% j1 v4 d6 f
  43.         rev = NULLTAG,
    * e# l" g2 \, x" `. l0 G; r
  44.         process_template = NULLTAG,
      z/ b4 p* \6 A" \- J$ X2 J; ~
  45.         process = NULLTAG;
    $ v9 l9 ]& \, O, t
  46. . M3 y9 S! A" s$ A$ E7 f% `
  47.     ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
    8 o3 L, I9 _$ ]
  48.     EXIT_IF_NULL( rev );( |! t" z2 U2 O

  49. ; C$ w  O$ a2 a8 T
  50.     ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
    % y! n' }7 ~4 \  x; L) ~* p0 |
  51.     EXIT_IF_NULL( process_template );9 A) t( k* i/ r3 }' h% e8 {

  52. - c4 |; J. X9 u+ k; o
  53. 5 ]/ }- D& y" E1 x* ?6 p7 D
  54.     ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
    # ~% e: T0 d; l8 U' v$ p0 @% T
  55.         attach_types, &process) );/ e& Y0 U+ Y6 z* o) H& f- g
  56. & o  P0 s5 o, t0 q. w" V0 |
  57.     EXIT_IF_NULL( process );! J$ ]/ t; M: z/ f+ s: m
  58. }
    1 o9 T! r! X& \. ]! b( l
  59. $ y9 y# X' U: q7 O, W0 ]% I1 @
  60. int ITK_user_main(int argc, char* argv[])- k0 z% w* l/ E* m( ?8 q- ]
  61. {! t; N% o% k" Y
  62.     int
    % A7 q9 c0 e! z, \. |
  63.         status = 0; 5 }# U0 Z$ ?/ k; s+ G. Y# b
  64.    
    3 {8 D2 l7 ^0 [2 G+ l+ N# D
  65.     ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );' U6 e) V2 f  f& a) }7 X3 C: U2 R
  66.     status = ITK_auto_login();4 }$ z/ c' a8 D& b' `
  67.    
    + F# W: q0 w6 h* I$ [8 W
  68.     if (  (status != ITK_ok)) printf("\nLogin Failed!\n\n");* |4 v/ G# E7 g& R1 d
  69.     else' t- V& d- M- [& e# k& b
  70.     {
    / L7 T# j9 D: r5 u9 r
  71.         printf("\nLogin successful!\n\n");
    ; f/ v( P5 P! a
  72.         ITK_set_journalling(TRUE);8 |$ c* Y5 ?. h6 U
  73.         do_it();
    1 K+ o9 l! i( F- W# t3 `" m& p
  74.     }3 m& X6 P4 I4 v6 L
  75.     ITK_exit_module(TRUE);* H! V1 y' O6 B% r4 R0 e$ |* |
  76.     return status;  {" a. e' |3 z( n9 g2 ^
  77. }
复制代码
3 t8 ^# A1 V6 ]

, M) h  l; t0 ?, Z" {- k" `9 m$ Y; J* l3 j
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了