|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
d- j4 }+ ~* y3 O# `& ^Teamcenter C++二次开发源码分享:创建item和item版本' m7 _2 m2 k& |; I
( Z* O! g& ^- K' v4 A: d
B: H2 D+ g% s+ }/ x, ]) v" F通过创建businessobject 指定的createinput 完成对象的创建 i A2 z" v% K) v4 f5 Z
- y5 O' r. B+ s1 l$ e0 x6 u! e/ b
8 [+ j% ?0 }% p2 @& f C9 E- #include <constants/constants.h>
2 J3 E) \) U* V1 @( |2 s - #include <TCcore/Item.hxx>
4 g( t# j4 T# F. }2 O% [ - #include <metaframework/CreateInput.hxx>* J4 _/ }7 ^& H: z
- #include <metaframework/BusinessObjectRegistry.hxx>
! b8 f+ x7 t$ r' F! q9 R1 o
/ } J6 K. S9 `( U W: d- using namespace std;
; c5 J* m& O v& ~2 O: o - 5 j* s, o9 [! O% k# r5 n3 B
- static void createItemAndRevisionWithDifferentNames(void)% F) s0 J& M; D( q; y; U8 M
- {1 t. J+ x, ~( s! G: [+ B
- int ifail = ITK_ok;- I$ `+ d/ N& ` r4 {
3 I/ N5 A+ Z" S; w) O3 D& c- char type_name[] = "Item";
% `, t5 x$ u, b: ~7 ~' x! S5 W - Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));% e; o" ]* r5 G S) G9 z
- + _# H" C/ ]* s4 [8 L" m
- //Revision type name is not always <item type name>Revision! w, u8 x& x1 d4 R9 q
- char *revision_type_name = 0;
( @4 N- \5 N$ k. T - CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
! y+ s) p6 ]( B/ N5 B - & s% _$ H% {) S
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));9 l, v$ p, H+ y
- ( e! q! J0 Z! T
- MEM_free(revision_type_name);
( i/ d9 P" Z# l" Z
( b) r+ w9 r8 n- M- // set Item properties' {/ ~) j2 G" S+ U- b4 v6 I
- itemCreateInput->setString("item_id", "1234567", false);( |- ]* n; {# U
- itemCreateInput->setString("object_name", "My Item Name", false); }8 U$ g' ^1 R! D
- itemCreateInput->setString("object_desc", "My Item Description", false);" G' e: Q) V6 u6 _
- itemCreateInput->setTag("revision", revCreateInput->getTag(), false);, `4 M& H: p+ H( M0 v
' x( `8 K) H) Z6 Z! q- // set Revision properties
" _9 I3 `7 Z" m6 ?- { - revCreateInput->setString("item_revision_id", "00", false);- N( V* O6 b8 A
- revCreateInput->setString("object_name", "My Revision Name", false);
% ]2 _# X+ W. \2 } - revCreateInput->setString("object_desc", "My Revision Description", false);6 ~, _5 h, E+ i/ w! E _
7 T7 v2 G% l, B; h9 `- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
. n8 \( `% I) c3 c8 [# c
8 |4 p2 ?( }: h0 R( w( A- ifail = AOM_save_with_extensions(pItem->getTag());
0 \1 w( t6 S( L( {; q3 M - 3 V/ P# {0 M, ^8 P
- // If the Revision is not saved it will inherit the Item's Name and Description.
7 @* @/ E q' H- M$ B - ifail = AOM_save_with_extensions(revCreateInput->getTag());
4 j# O& h0 Z9 y) j; U - }
复制代码 ; b# {8 ^3 U" j+ N( f, P9 V$ m3 ^
1 W5 G2 G+ m& F: X" | |
|