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-国产软件践行者

[二次开发源码] UG NX二次开发源码分享: 报告所有的表达式信息

[复制链接]

2016-3-4 13:45:00 3394 0

admin 发表于 2016-3-4 13:45:00 |阅读模式

admin 楼主

2016-3-4 13:45:00

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

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

x
UG NX二次开发源码分享: 报告所有的表达式信息! G. n6 w5 Y$ N+ K, Q  C  w
. f4 ^$ A# Z3 x& @+ f+ c4 I, W- |+ s
. n+ v* t! _6 b- d6 C
7 f- ~; ?5 O0 F) t% `
void MyClass::do_it()
8 H' I! W/ B# L{
1 k6 ~8 \: d. U: M    std::stringstream out;
; H) p( ]' m5 q0 P- j    ExpressionCollection *expcol = workPart->Expressions();. Q, ~1 B+ _& f2 Z* _- P
    for (ExpressionCollection::iterator it = expcol->begin();- z4 k: J; Q! y5 i( `9 k) U* k
        it != expcol->end();6 K9 T9 P) ^# E  }/ M$ Z3 e/ {; J
        it++)! o) }# c2 l9 `
    {
+ T2 ~. m) h3 v        Expression *expr = *it;7 [" U# @& @* E, S% @
        out.str(""); out.clear();
% w( y! ]0 P. g) n9 E* B* v% E        out << "\nExpression: " << expr->Tag() << std::endl;
. X  d& s$ @; Y* `: z        out << "Name: " << expr->Name().GetText() << std::endl;
& O: D7 @6 _7 Q2 Q2 Z+ X) i        out << "Type: " << expr->Type().GetText() << std::endl;; \* T9 b. Q" r% Q) N
        out << "Description: " << expr->Description().GetText() << std::endl;  v- [$ I5 J' }! C5 c/ H
        out << "Equation: " << expr->Equation().GetText() << std::endl;
7 X, w/ `$ ]" _; p  ?  r; `0 U8 ]" y, K/ ^6 D. D
        std::string strType(expr->Type().GetText());
9 ~# P  @5 ?0 G& [( Q7 I2 R/ n2 E) [. E! e# a
        if ( strType.compare("Number") == 0 )
! g( c% h  c+ S        {
2 J( F9 T! h& }4 B& O            out << "Units: " << expr->Units()->Name().GetText() << std::endl;! O1 t1 {; v# u2 H. i0 m5 u% l( l
            out << "Number Value: " << expr->Value() << std::endl;
! p& l# i) l! I' i; X5 F        }
7 Q0 x# g9 t1 z* w        else if ( strType.compare("Boolean") == 0 )3 \5 J1 {; R8 b& z. |+ i+ M( t
            out << "Boolean Value: " << expr->BooleanValue() << std::endl;
9 K$ M+ B) D4 a2 K; \        else if ( strType.compare("Integer") == 0 )+ I' S6 ?. E( _) t5 u
            out << "Integer Value: " << expr->IntegerValue() << std::endl;5 O/ _7 c/ C7 t, E! P
        else if ( strType.compare("String") == 0 )
! k; p+ N! a, \2 i: R- t7 U            out << "String Value: " << expr->StringValue().GetText() << std::endl;
) Z) D# `# e5 ~6 j% a6 M        else if ( strType.compare("Point") == 0 )7 @3 ]+ v8 _% [: D0 ~+ j
            out << "Point Value: " << expr->PointValue().X << "," << expr->PointValue().Y << "," << expr->PointValue().Z << std::endl;. X5 r, ~/ @2 w8 l
        else if ( strType.compare("Vector") == 0 )) k4 d/ O$ J+ ]
            out << "Vector Value: " << expr->VectorValue().X << "," << expr->VectorValue().Y << "," << expr->VectorValue().Z << std::endl;8 W9 A1 F& }  E/ G9 y: |- J
        else if( strType.compare("List") == 0 )' w, K1 C. ~- r: K2 Y
            out << "List Value: " << expr->RightHandSide().GetText() << std::endl;. i- e3 {% C. p! d* B" M3 W. P
3 V# `$ I, ]3 ^$ d( j* b, }
        std::string strRHS(expr->RightHandSide().GetText());
2 o$ n$ Z/ Y) Z2 r" G        std::string::size_type nPos = strRHS.find("//");# n* H4 l  F, v+ W3 l
        if( nPos != std::string::npos )" s$ x/ L( v. ], e6 |( F0 M
        {
. A8 B+ y% m. y( n+ C3 I            std::string strComment = strRHS.substr(nPos+2);
- V2 `' R1 i/ V3 X            out << "Comment: " << strComment << std::endl;# z2 M$ g; @; b- |/ v
        }  |# F, ]) a$ r
) R( n" d: B2 w0 `  X2 j
        if(expr->IsInterpartExpression())
& N1 z4 z6 i& w; c6 Y; e        {
1 {) k1 ?. e1 J" R; O' U5 G            NXString sPartName("");
+ Z" w' p, z2 S1 D. S$ Z            NXString sExprName("");
1 `$ e- C2 n& F) t/ z            expr->GetInterpartExpressionNames(&sPartName, &sExprName);
0 ^  O; G7 p6 A( p. j* ^            out << "IPE partName: " << sPartName.GetText() << std::endl;
; Q3 V; A/ w! H! Q1 l            out << "IPE exprName: " << sExprName.GetText() << std::endl;. o7 N& C% o  m4 ]$ j
        }. s/ ^6 M/ b5 s- N7 ~

4 X: r% x: P# a# x& L+ s' U        print(out.str().c_str());
- F- S9 ~4 _1 b8 q& b    }
4 O; v+ Y, J% W" j# Q2 O   
) M, y, Z1 ]) a# Y}
2 s8 @+ [1 W* I5 h: N/ c" W0 Q6 A$ K: Z- ]( R* S/ p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了