|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
3 y2 A9 @1 X9 C; WTeamcenter C++二次开发源码分享:创建item和item版本/ t E" _) a8 ?' J$ ^+ |; J6 }
/ T% M3 z5 m/ V7 ^$ @7 F' t# r+ \/ p9 Z F( Z: T# P% l2 L
通过创建businessobject 指定的createinput 完成对象的创建
U' q. L+ S% [# m" r8 h0 K: s8 d( Q! h% n% [$ X
( Q0 L- U7 [6 G, c }, t* |$ U
- #include <constants/constants.h>
& h0 J2 W m; I5 d1 Y, z' p2 {5 O G - #include <TCcore/Item.hxx>
7 L! `8 Q2 T! W2 G3 h2 y! e - #include <metaframework/CreateInput.hxx>$ X( ^% D) h5 J( \
- #include <metaframework/BusinessObjectRegistry.hxx>
# A( q6 A6 s: ^0 ?: {
9 r2 b$ K7 ]5 L4 o& `- using namespace std;$ G$ _0 ]1 T: W
- 8 t" o! L3 d0 ]3 v" t
- static void createItemAndRevisionWithDifferentNames(void)
& L" Q) ?% L. { - {
6 i1 `$ `! d$ ^1 z6 t1 q! ]; t - int ifail = ITK_ok;( m9 ?1 @% P& m: u! U+ C, Y) z
- 1 I0 u# D( @. a' ^- U/ ]- Z
- char type_name[] = "Item"; w: H+ p9 s/ a% r3 e9 x
- Teamcenter::CreateInput* itemCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(type_name, OPERATIONINPUT_CREATE));
2 e M% G" a4 }) F
) E @( c( e; A5 ]9 ?* A0 T* J( f- //Revision type name is not always <item type name>Revision8 f% c! L" q: ^; F& A
- char *revision_type_name = 0;
$ a0 q9 ]3 P2 A% L: f3 ` - CONSTANTS_get_type_constant_value("ItemRevision", type_name, &revision_type_name);3 ?/ a+ q- X/ s: f/ x
- & R& b( }% {! B Y
- Teamcenter::CreateInput* revCreateInput = static_cast<Teamcenter::CreateInput*>(Teamcenter::BusinessObjectRegistry::instance().createInputObject(revision_type_name, OPERATIONINPUT_CREATE));
+ h$ B( u I0 K- k3 \$ D -
. {' L E [+ j& e0 L- [ - MEM_free(revision_type_name);- M b; X5 s1 h; x3 ]7 q
- ~8 R( q4 L9 p, W7 F$ A t$ n7 Z
- // set Item properties# P7 ^# j; D- N1 h
- itemCreateInput->setString("item_id", "1234567", false);3 v" K* @5 Z+ G$ f9 F/ {' K0 @
- itemCreateInput->setString("object_name", "My Item Name", false);
: m5 Z* X) c/ S: |) {5 b - itemCreateInput->setString("object_desc", "My Item Description", false);
* f9 X1 X; T4 h+ j3 N9 t - itemCreateInput->setTag("revision", revCreateInput->getTag(), false);! M& C3 _( D* @' u9 U
4 F# M4 ~" Y7 \( C' S- // set Revision properties
8 ` a4 p( E9 [4 ^" Y( j- W$ C' t - revCreateInput->setString("item_revision_id", "00", false);
5 B" E- `% z. D3 ~! D - revCreateInput->setString("object_name", "My Revision Name", false);
, y- Y0 A' u: o9 |/ Y- O* `& | - revCreateInput->setString("object_desc", "My Revision Description", false);
* O, w9 _/ T0 z% m* [
8 ~- p( s8 a9 d% ^* c, M- Teamcenter::Item *pItem = dynamic_cast<Teamcenter::Item *>(Teamcenter::BusinessObjectRegistry::instance().createBusinessObject(itemCreateInput));& m4 f) ^: }0 r p7 E
. A$ [" Y3 [2 M( {- ifail = AOM_save_with_extensions(pItem->getTag());8 J. L7 j# P: S3 p. \
9 t7 P t6 B, \ X7 d- // If the Revision is not saved it will inherit the Item's Name and Description.
5 W( ~" x3 T- t2 e& \" S; D _ - ifail = AOM_save_with_extensions(revCreateInput->getTag());
, M F1 ]: X i' Q1 x- l$ c* k: Q - }
复制代码
2 O; |4 U4 y9 D! Z1 J2 R$ f) h H
8 k: {: {! K' _ |
|