|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
& @- t# y: o4 |
Teamcenter C++二次开发源码分享:创建item和item版本& S3 u- _( R6 b& i
T3 S& r7 I6 g2 [3 S- V* L
9 X: d0 h3 ^% V% K3 ?' v, X通过创建businessobject 指定的createinput 完成对象的创建
3 j+ r8 t- m- F* n; E; S
3 E- B( C b3 X. @; T/ P
( A& |) o7 N* b5 t5 G% i% S" e- #include <constants/constants.h>: X1 p U4 r' R0 s# E
- #include <TCcore/Item.hxx>
6 A, I; h; ? J" X; b; Q# l8 r5 r - #include <metaframework/CreateInput.hxx>
$ U# P. J* O$ F, _& U Q - #include <metaframework/BusinessObjectRegistry.hxx>
7 g1 P8 \& Y) w8 ~2 y
# N0 R5 |8 V- M: ] l- using namespace std;2 z7 E& e1 I& y5 G
- ! b/ O/ f6 o& h3 X$ p
- static void createItemAndRevisionWithDifferentNames(void)5 Z0 X g) m3 ]+ G: y
- {, C7 j+ X: q0 o/ Y
- int ifail = ITK_ok; x& { j' t6 [% L1 C
& O3 A: k( \" G9 y( L6 { v: X4 }- char type_name[] = "Item";
* G/ ^8 N6 E( k) Q& Y7 M% a) K! x5 b - Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));; _. s, K0 N, r3 ? K% L
4 Y2 E9 p/ |' w+ c6 H; b9 U+ O- //Revision type name is not always <item type name>Revision" j; o( B' v7 |3 b7 L
- char *revision_type_name = 0;
1 N- n ] G8 d+ a/ J+ B- @8 i - CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);
3 G% R0 F6 D" V; b" P7 S
V. D9 {4 l/ j: F' V( J- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
6 C. V2 [% [9 ]) }, Z9 u - d0 i& R& W/ q# q* k) Q
- MEM_free(revision_type_name);+ F% k) v" Z( f- {
- 6 g1 y6 e: |! o
- // set Item properties+ t6 Q+ j- d+ p i; W
- itemCreateInput->setString("item_id", "1234567", false);- g6 B) A$ d; g! x) B) U7 N' A
- itemCreateInput->setString("object_name", "My Item Name", false);' L; X( `8 f7 R* m# s4 G
- itemCreateInput->setString("object_desc", "My Item Description", false);6 J+ Y7 y9 h6 m+ k1 c% n) S( I
- itemCreateInput->setTag("revision", revCreateInput->getTag(), false);. d+ |& A& s. g/ i3 }
- 2 P$ Z U4 M: p5 p4 |9 F2 f( q
- // set Revision properties$ V% O6 ?0 i% ^, k% B2 H! r4 w
- revCreateInput->setString("item_revision_id", "00", false);
2 k! J* C7 M9 m8 J) b4 O - revCreateInput->setString("object_name", "My Revision Name", false);
; N% Z" B( l5 l( h h - revCreateInput->setString("object_desc", "My Revision Description", false);" m U% |% G9 x7 b- r
+ N; K' s$ h. v- L! b+ |- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));
$ z8 {8 z8 I& ~; k+ j5 ^; ?
4 p5 |/ p4 H7 O3 I6 |0 D, }+ z* }- ifail = AOM_save_with_extensions(pItem->getTag());8 b! |4 f% u* z* p1 a
: s: m- d3 I# T( X P- // If the Revision is not saved it will inherit the Item's Name and Description.% i% S# |) Q; f/ T
- ifail = AOM_save_with_extensions(revCreateInput->getTag());2 @7 K$ z, K; s) w9 l6 E0 J
- }
复制代码
/ f9 ]0 e9 k/ I \0 T" E
. |9 G* Z+ }% K% x |
|