|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
7 d. A( X. }- J0 n" J* UTeamcenter C++二次开发源码分享:创建item和item版本
7 d! \$ _5 e8 c) `( h9 o4 f a
# Y* C$ t+ u, l4 r# S
8 y4 S$ ~6 N$ h+ ^& B通过创建businessobject 指定的createinput 完成对象的创建
2 u; o9 K0 X8 W7 E( u7 v- R6 ^# ?, u% O _- R* R, ^
6 v% ?8 @; }+ T- #include <constants/constants.h>2 q8 r( {, {1 [6 r2 c# w+ F
- #include <TCcore/Item.hxx>
+ B( @, o. ~4 }) }8 m - #include <metaframework/CreateInput.hxx>4 w' @2 z1 M4 m: q% W5 K
- #include <metaframework/BusinessObjectRegistry.hxx>
7 Q0 u; Q9 \3 f- C) h4 ]9 ]
% D' d f* C( E/ D3 I- using namespace std;
' I, w8 m1 v$ B) d* \# J" W - ; U! N! [( B" M( G, M/ V
- static void createItemAndRevisionWithDifferentNames(void)% }8 g' h2 L* J. G0 a9 h$ }
- {$ H. @- Q0 ]7 f; r+ E$ t& S1 I4 w
- int ifail = ITK_ok;% x# ^/ o2 d, x3 [3 Q% S
- ; L& c" h* \' ?+ j
- char type_name[] = "Item";, p, p' n* Z7 k6 |# B6 G- q! p) \& E" [
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));
6 @7 h. {& H! e' z+ M) S% h - l5 @# V$ q, L- t+ S; X# }, O
- //Revision type name is not always <item type name>Revision" W! t$ g0 e8 ?- k
- char *revision_type_name = 0;2 [( u$ ~8 Z- Y& ]2 q
- CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
$ S" s! i4 ~! k- x. A3 q h - 1 _; [1 u, K" B2 z
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
- T5 d5 J0 k* G3 J" u - L; J: q& r0 m; X( s( v
- MEM_free(revision_type_name);
4 ]) w# [7 \) w! ~: {1 t0 b - $ L u3 p1 |* T+ |
- // set Item properties
- X \" b/ d- u p5 } - itemCreateInput->setString("item_id", "1234567", false);
* r5 @& e, r( s" P$ J4 R9 v - itemCreateInput->setString("object_name", "My Item Name", false);
7 W7 X1 |$ j, l o6 \2 M - itemCreateInput->setString("object_desc", "My Item Description", false);% b$ \$ i( Y# c
- itemCreateInput->setTag("revision", revCreateInput->getTag(), false);
% N* g R; D2 T" j7 Z
" { @: g4 k. ?) {4 Y5 P" }8 h- // set Revision properties
2 |9 j2 X, a" ~: c - revCreateInput->setString("item_revision_id", "00", false);3 j# H, X# q0 M x% h
- revCreateInput->setString("object_name", "My Revision Name", false);7 q0 `6 n2 T) ]) W% w. o' Q) x
- revCreateInput->setString("object_desc", "My Revision Description", false);
7 K2 U& u* r) e0 o. c# ]2 u% T% Z5 t" w6 `
/ C7 N# z, c- p+ L* L- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));- d. s% s0 A6 Y& O8 b. L" D u
$ x1 G! h& T6 k* G' ?' m0 a- ifail = AOM_save_with_extensions(pItem->getTag());& d ]6 T1 C, s$ ]' |: [2 v# ^
- 6 _. D$ B$ o- o
- // If the Revision is not saved it will inherit the Item's Name and Description.( o, S. J# }! |9 b5 _
- ifail = AOM_save_with_extensions(revCreateInput->getTag());& p; p/ i3 t9 P4 r% T4 t3 ]
- }
复制代码 9 M8 |1 t, J7 ^3 ]
, N! ~) D5 R" ?% h2 @ |
|