PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

PLM之家PLMHome-国产软件践行者

Teamcenter SOA开发中关于变量声明,转换等代码的新处理方式

[复制链接]

2015-2-3 09:18:14 3626 0

admin 发表于 2015-2-3 09:18:14 |阅读模式

admin 楼主

2015-2-3 09:18:14

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

您需要 登录 才可以下载或查看,没有账号?注册

x
Teamcenter SOA开发中关于变量声明,转换等代码的新处理方式
8 E9 H1 Z0 x9 l1 G& a" ]
& U9 n0 o- L" a5 z2 N/ R' }
$ F' z9 O) l- z
1 变量声明
* v, D( g. H% ]  O
) l) m9 E! `9 G! q+ G
, q! f6 L+ E$ e+ v& V2 p
o Old way
- K- D  g; Z; o& c7 N) s1 f; l( o  ^// Declare pointers for an Item, Form and vector of ModelObjects
% ~. S% e# i8 T' Q' \. R// initialize to NULL
: t1 n' y* B1 Z, c7 Z; U1 y9 C1 cItem *theItem = NULL;9 p5 L5 P$ A! G& Z
Form *theForm = NULL;
5 T, W9 _  U. ~9 O9 x+ n$ Rvector< ModelObject *> objects;
; _( m; y6 l; z0 J! U4 E! Y...
! ?) j; U8 @" p5 R5 t- M7 L6 {- p// Use the Item* c7 ~$ W# N+ V7 [% M
theForm = theItem->get_item_master_tag();
* t6 t4 X5 ?9 nobjects = theItem->get_revision_list();
/ R+ G. S. t0 U) J9 H: q$ To New way2 {* h! y" G( U4 H! m1 i; c. k8 B
// Declare AutoPtr for an Item, Form and vector of ModelObjects# H! t, S- {: d
// all AutoPtrs are instantiated as NULL
  Q, ?. s. }' c+ g; }Teamcenter::Soa::Common::AutoPtr<Item> theItem;- `( N7 q9 k, N% K. S; z& D
Teamcenter::Soa::Common::AutoPtr<Form> theForm;
) l8 j$ s; [, j8 H5 g' ~6 E# Xvector< Teamcenter::Soa::Common::AutoPtr <ModelObject> > objects;8 g3 C& `: }9 ?" k0 M3 G" L
// Use of the ModelObject variables remains unchanged
% W. Z# b# q) `theForm = theItem->get_item_master_tag();1 n* ^6 q9 {& z
objects = theItem->get_revision_list();
. |* T; J* ]; u$ }8 C  l
: X7 p8 b- Y, ]# p2 ]/ M: B9 U5 A5 h: o4 y4 Q/ C  v3 i$ t
2 类型转换 4 l7 n6 a( C: N8 ~, M

3 b" u# F9 O( m3 b: e5 yo Old way
: J3 A1 [( Q& }, z$ n( T/ k8 S// Declare the variables
3 u  O4 \+ L; M0 L, G  v; c6 E6 iUser *user;+ u8 |) M& }% W, {+ \
ModelObject *anObj;: S0 j: W. S# {. [* f
Folder *folder;$ g* E  U0 M  V* y; k6 ?
user = sessionService->login(name,pass, “”,””, descrim ).user;8 Q9 x( K8 a0 Q' v7 J" s1 f+ R
// Cast to the base ModelObject class! @* W9 v$ }, V, ^. W5 v3 c8 U, ~2 }
anObj = (ModelObject*)user;
3 F- K5 o: l9 t9 M  U// Cast to a speicfic sub-type, if not NULL
# x" B' v/ ]- @: n/ i1 A; I// do something with the new pointer
7 b, p" B+ w7 Juser = dynamic_cast<User*>(anObj);( ?5 Q( B8 }) n) [
if(user != NULL)! y6 E0 ^3 e; y3 r
{* C9 x5 V; z+ {% l
folder = user->get_home_folder();3 B: [- Q! k  ?
}) F2 n+ P/ Q( D6 e4 W
o New way
4 G2 |7 \( B! F2 {2 o// Declare the variables' y% v; @2 Y, i7 l
Teamcenter::Soa::Common::AutoPtr<User> user;
( i; Q( K0 r& V6 MTeamcenter::Soa::Common::AutoPtr<ModelObject> anObj;& |8 J6 A8 e4 h4 f; K6 ?
Teamcenter::Soa::Common::AutoPtr<Folder> folder;
8 }8 B! N9 e3 ~: Wuser = sessionService->login(name,pass, “”,””, descrim ).user;
: O+ J% A& s( s9 d, `) z// Cast to the base ModelObject class$ E' e3 j6 R+ B
anObj = user.cast<ModelObject>();9 k/ d2 C5 X8 M, @& E. A8 }' {
// Put the cast to a speicfic sub-type, in a try/caTCh block4 ]- W9 @' R! H6 b' H) `, p9 [
// if std::bad_cast not thrown, then cast was successful8 }+ l  v+ S5 M2 z. B
try, X: r& }0 n2 U7 s
{; T$ h% Q- w7 q
user = anObj.dyn_cast< User >();
& I: ]" e$ P0 Cfolder = user->get_home_folder();, j3 W, ?3 s3 s
}" H) b1 D! |% D, m7 b3 Q
catch(std::bad_cast&){}
/ r/ }( F5 t) G% y9 ?( v# I# D0 V6 r1 V1 ~8 e! ^* Q4 \3 g

' [+ y) z8 ?7 P$ {$ i2 K/ f( C3 关于NULL 赋值9 g( v; B/ r. N. R0 z
# H7 s- q$ l4 z7 I+ x: C( O
o Old way
6 l+ |, Q% D* h! g// Declare the variables( f' {. y- j+ a( h3 t# x
LoginResponse response;2 U9 e  ?" O# j1 x' x
User * user;, S: D8 d4 ]: D1 [
// Call a service that returns a ModelObject (User)
6 L* V: M) Z. L, _8 S5 S9 a( t: Q1-28 Services Guide PLM00076 Jresponse = sessionService->login(name,pass, “”,””, descrim );1 e6 ]$ D! ~/ t: u8 ^4 z* \( f+ N
user = response.user;
' u/ l, c5 b7 {7 F! ^// Test that instnace against NULL7 o1 C& }& Q$ u8 ]
if( user == NULL)
! s/ G) k# ~, j3 `{, S( G5 a; ]9 W: j6 r9 T
...% R& W2 F# `/ u9 K' o( \, q6 m% b
}
* j5 r' p# H7 ~5 V$ H- @: a2 Helse( ~* j+ \: V, ?9 l
{
3 K& K, b& Q$ {. O: l// Assign NULL to the pointer0 ?0 f* G$ i4 L' U; x
user = NULL;
; m# j- x( s( I8 W0 t% y# v}
9 U5 |! i% h3 f2 I  h0 Yo New way
2 N6 Q0 d" E1 S! g4 Q, d// Declare the variables
+ C0 z% j' x9 V. U// The service data structures do not change, only
$ i7 ?  B* z; v" S  \// references to ModelObjects
, ?5 D9 `7 c: p' N0 z$ c9 mLoginResponse response;
7 J6 ?  {1 I: _  o/ Q! mTeamcenter::Soa::Common::AutoPtr<User> user;
1 {9 l: H8 Y& y9 }+ s8 _// Call a service that returns a ModelObject (User)
! _$ G% ]3 V" [# lresponse = sessionService->login(name,pass, “”,””, descrim );- ^3 x0 R& ]+ L& Q
user = response.user;
& a8 j% }1 ~5 j7 x' Y5 o( B% Q// Since we are not dealing directly with pointers,' q" C8 ^2 D# g( i3 x) w1 Q. P* O
// NULL does not make sense here, use the isNull method from the1 d1 ?, \1 V; }# _! M
// AutoPtr template class.1 F3 f4 s  w. E5 ]& G5 P3 V. }2 O
if( user.isNull()): \! E/ Z' I3 Z  I- A3 e0 l9 b
{5 Z( R: `  R/ l8 E* T# p  V
...
% _; l/ `( i6 o: d# E/ o9 L}
2 V. M# K8 l5 B* ]3 q3 felse
9 W$ I5 x& a) X2 }8 F* }4 K7 ^  g{; X# _- M6 X- d. h
// Release the instance and
- S- F/ k0 R4 S) ^- W4 R, c, L  muser.release();9 ~1 R8 k/ g1 K( v2 g
}
! l4 i1 {' u. I- N3 f3 L% l# i
( N; m0 c6 k! c% \1 z
, }4 f5 b' R, S  u4 `/ |2 G0 r+ z
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了