|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
& T' b1 E3 _. PTeamcenter C++二次开发源码分享:创建item和item版本
& S9 A& o: H6 R. _+ [* N8 Y) E/ U1 E* l
9 L. z. r9 B* K, }. M7 A5 }! t通过创建businessobject 指定的createinput 完成对象的创建
- X" x1 b0 y4 u. L( L" A/ z2 L+ o4 \; M3 D
. l) j1 W5 {% c: ?- #include <constants/constants.h>1 F9 c. s# c/ f' P! q
- #include <TCcore/Item.hxx>
! g6 n! q$ ^. Y8 S( G5 i - #include <metaframework/CreateInput.hxx>. h0 X+ J# A. k
- #include <metaframework/BusinessObjectRegistry.hxx>4 r2 @0 O- \! Z6 K: H2 Y
! K6 L% c- G% `$ l- using namespace std;( a5 Z. X7 {% g$ y& h
2 ^/ s) s2 x# G' f. k5 }1 w5 H- static void createItemAndRevisionWithDifferentNames(void)
2 Y2 z6 a8 y8 v+ F6 R3 Y6 U - {
6 V/ j" }' @- G/ f' A6 @: _ - int ifail = ITK_ok;
* e& J, C# e/ U. x! B# O% Q* Z - 9 I; P3 _+ T& \9 q
- char type_name[] = "Item";2 Z/ j) q) Z0 |+ t
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));
5 Q3 T0 D, P j) n' X
2 T2 j- x# ^, J6 ]; {3 g& f- //Revision type name is not always <item type name>Revision* y1 f$ M- C: G! l% x
- char *revision_type_name = 0;3 ~2 Q/ s4 p) m& C' R
- CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
% ~* S) }+ w% X0 v
" U* p7 ^$ o7 q, G# e. C- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
. y0 |; j9 e% G' Z2 v7 X - 2 c3 _) i8 E" w( w4 J
- MEM_free(revision_type_name);
) a* [& u" w2 x$ |% Q, A* n
; M) P6 i7 o2 A ?! T5 F! D1 m- // set Item properties. c; }0 p8 t( }
- itemCreateInput->setString("item_id", "1234567", false);
A2 f. s2 _4 C+ |2 a - itemCreateInput->setString("object_name", "My Item Name", false);
- P, O0 a4 l0 Z9 I3 X7 X/ V& f - itemCreateInput->setString("object_desc", "My Item Description", false);
" p* G% I: J& G* X! U% v - itemCreateInput->setTag("revision", revCreateInput->getTag(), false);7 B( U6 ^% C, g: p. {0 T7 R$ Y5 h+ G
- ) A2 o/ \& a$ ]& g3 {. t
- // set Revision properties3 o, W. F2 b; j0 D0 d2 l
- revCreateInput->setString("item_revision_id", "00", false);# M# o* `$ B# {
- revCreateInput->setString("object_name", "My Revision Name", false);4 T, y" V$ w5 b& q
- revCreateInput->setString("object_desc", "My Revision Description", false);" I3 p4 M: t: w. t+ B+ b) q+ i
- 9 _0 x. E. z% b* ^
- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
1 n! r/ q1 k/ V" u+ c& P4 I- N7 y% B - 8 v- A" m- q5 c) p0 w( F
- ifail = AOM_save_with_extensions(pItem->getTag());
" t* o* d* B( Z' W1 n! F1 b - % @& L% v# q$ ]' D
- // If the Revision is not saved it will inherit the Item's Name and Description.; e+ O) M- E X/ X2 {. a0 [7 X
- ifail = AOM_save_with_extensions(revCreateInput->getTag());1 }8 c ~" i7 S( T
- }
复制代码
1 A$ Q% ^$ T( J9 d( i9 }! u$ t" O
|
|