|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
" w- _6 J* j+ D E7 p
Teamcenter C++二次开发源码分享:创建item和item版本
3 E% n9 ~- b! T s3 U* d+ M/ v- J: X# ^; t/ z8 I6 P1 U1 Y6 }
& I( k& g2 L4 |2 D! ?$ B2 M
通过创建businessobject 指定的createinput 完成对象的创建; @) S! C1 a% @) M' n9 G
R4 g9 N* o. Z( j6 r
6 A5 X) q: @& P1 _7 [
- #include <constants/constants.h>: S) U \3 ~/ m! i
- #include <TCcore/Item.hxx>
, Z. }! c( `. z6 @$ J - #include <metaframework/CreateInput.hxx>
" S B7 c" e* O% x3 { - #include <metaframework/BusinessObjectRegistry.hxx>
3 m+ v8 \2 N' F- K, h; ~4 F# J
; ]7 X& h5 U. D1 ]/ U2 `- using namespace std;( m! \2 G4 A) ~3 m
- q/ m1 C! q5 V W; e8 q5 u8 q
- static void createItemAndRevisionWithDifferentNames(void) f2 L3 G# T* B, R) P$ S0 {
- {
0 i. T% h; O1 r$ j( [) } - int ifail = ITK_ok;
* N0 T& e( t N! t/ A8 R2 m
! o5 S! `7 a W7 G- char type_name[] = "Item";; ]( P3 y1 O, @6 Z6 ]
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));3 ~7 h3 w8 U9 S
" k/ h- N( }# U3 `- //Revision type name is not always <item type name>Revision t- h: e6 g, Q& }$ X: Z
- char *revision_type_name = 0;5 N- C% a6 u7 D$ [2 F0 l
- CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);" J% a3 d7 g7 z% V4 n
- 8 G6 V( ~; K" B- d% ~4 g- V: N
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));$ b/ s! s, j8 C8 J
-
6 U4 D, H; @& N0 o7 T/ k; f9 w' t - MEM_free(revision_type_name);. x \( o$ ^, P
- " x/ ^8 K b+ k7 F0 t+ Y
- // set Item properties
1 y7 F7 J5 F* [3 R$ x3 R% v - itemCreateInput->setString("item_id", "1234567", false);
- B; F O. g$ M8 V - itemCreateInput->setString("object_name", "My Item Name", false);
- c) Q7 U/ W' W! Q - itemCreateInput->setString("object_desc", "My Item Description", false);6 h" @, F" o3 G7 z) @6 ]; J9 Q' Z" |
- itemCreateInput->setTag("revision", revCreateInput->getTag(), false);
( c9 S3 I/ _2 M/ S - 7 M H& V2 q& |+ ^! Y
- // set Revision properties, g8 c1 \7 r: P- u0 g6 U
- revCreateInput->setString("item_revision_id", "00", false);1 [ ^; u; t2 Q& \8 Z
- revCreateInput->setString("object_name", "My Revision Name", false);$ L8 j7 r* L {, P8 [( U3 i# s/ O
- revCreateInput->setString("object_desc", "My Revision Description", false);
. P, W. l* G2 ~% o& a. g, h - $ N4 X$ E1 E% m. P+ _
- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
+ M, C) C: d! u3 x0 i5 y
( `, C, y" u8 Y5 P0 |- ifail = AOM_save_with_extensions(pItem->getTag());5 T% N, m; @, _" K
4 { f! S2 w! u. h6 c3 H# ?- // If the Revision is not saved it will inherit the Item's Name and Description.. Q( w; C. R# W6 ^$ l) I
- ifail = AOM_save_with_extensions(revCreateInput->getTag());
- b7 S) X: `% i1 Q) }2 S& B; o1 m - }
复制代码
2 q7 e% ~+ s6 S' J( W. V7 C! P8 c" _
|
|