PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2016-3-4 13:45:00

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

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

x
UG NX二次开发源码分享: 报告所有的表达式信息
) v) Y! E2 ^+ K/ T" X2 ?
: |6 r: C3 z0 ~9 a7 J% @* U5 W# _
# W! p! H4 M6 f4 y) K! T' }( L
void MyClass::do_it()
% R" Q3 x# \' w( m# O+ K" G{
& l* [) r8 o4 ^* t    std::stringstream out;1 J) m+ C0 e0 H# h& k, c0 _
    ExpressionCollection *expcol = workPart->Expressions();% {% T5 q+ e! ]$ B4 f% f
    for (ExpressionCollection::iterator it = expcol->begin();2 p2 k* @8 C  C% t, V* C% g6 s+ V
        it != expcol->end();6 z9 P7 d$ ]3 h8 F1 b. U7 D9 w
        it++)
. U1 T5 c! [( M7 H    {( p+ @6 E' C- V, I
        Expression *expr = *it;
: n9 _3 H" I3 W' L1 X        out.str(""); out.clear();: C% f; ^$ F) B
        out << "\nExpression: " << expr->Tag() << std::endl;
$ t7 {) [# V) t8 I# g# z        out << "Name: " << expr->Name().GetText() << std::endl;4 t! I  O% K" h" D. [
        out << "Type: " << expr->Type().GetText() << std::endl;7 z" }4 [: l1 D: b) y3 c, E
        out << "Description: " << expr->Description().GetText() << std::endl;
& M' C* E6 f: e, g3 h$ J* H        out << "Equation: " << expr->Equation().GetText() << std::endl;
! n) u( l0 z+ a, h
  [% L  T8 E* j6 [( [4 T5 K        std::string strType(expr->Type().GetText());
% a1 ?2 r% S, S3 {' Q
6 p+ Y, Z( |1 v        if ( strType.compare("Number") == 0 )
3 Y0 i, E: n9 d0 J        {
6 A" a8 {; r1 A% v& B4 u            out << "Units: " << expr->Units()->Name().GetText() << std::endl;0 Z! u# f1 ^8 j* x$ z4 f5 z
            out << "Number Value: " << expr->Value() << std::endl;; J2 I, j5 p- a. D" A
        }2 x) C/ w6 J( H0 |0 p
        else if ( strType.compare("Boolean") == 0 )$ V1 b8 o! E- ^' i2 _2 Q
            out << "Boolean Value: " << expr->BooleanValue() << std::endl;6 y* D( x- J$ ?; _
        else if ( strType.compare("Integer") == 0 )
4 h( v! g. H6 [% x. c9 m2 c            out << "Integer Value: " << expr->IntegerValue() << std::endl;
7 _4 E6 q+ x' @        else if ( strType.compare("String") == 0 )# [' G1 [, [; t" l- [; e1 P
            out << "String Value: " << expr->StringValue().GetText() << std::endl;* N, O: |: |& O. ^9 C
        else if ( strType.compare("Point") == 0 )
* d1 M: I0 ~& {% L1 W            out << "Point Value: " << expr->PointValue().X << "," << expr->PointValue().Y << "," << expr->PointValue().Z << std::endl;& M" m( W& I, V, k$ Z+ }( \' V. F
        else if ( strType.compare("Vector") == 0 )5 C! W1 s1 Q. I/ E0 Z4 i
            out << "Vector Value: " << expr->VectorValue().X << "," << expr->VectorValue().Y << "," << expr->VectorValue().Z << std::endl;1 {* t$ B% U5 W
        else if( strType.compare("List") == 0 )
( \: ]: O( x2 T* c            out << "List Value: " << expr->RightHandSide().GetText() << std::endl;/ r" t+ ?4 A3 R. t$ M7 \
  m, W* U2 h1 p; m
        std::string strRHS(expr->RightHandSide().GetText());% Q/ b& [7 @0 s# T
        std::string::size_type nPos = strRHS.find("//");* Z5 n, k. c) R0 i- l
        if( nPos != std::string::npos )
" h7 D5 F+ D: ~( [/ d" H$ K        {: y$ m( G: t9 O9 c# Y  y8 H1 y
            std::string strComment = strRHS.substr(nPos+2);- N. o5 g% |0 P- i
            out << "Comment: " << strComment << std::endl;2 ?! f6 _9 r# Z! e' ^, j' M
        }
2 X8 v% E- g9 P; x# g9 t: H
- ]& Y" V% m0 Q- j6 y( l        if(expr->IsInterpartExpression())" C" `! v! h$ ?, p! p% j$ n3 @# L8 w
        {
( c+ ^! s4 U5 C5 g( G( j) L            NXString sPartName("");' w! j7 c5 p5 H: |- w
            NXString sExprName("");: B0 k1 r8 T0 g; ~% M9 V
            expr->GetInterpartExpressionNames(&sPartName, &sExprName);
6 s: N7 N0 ~0 ^9 C0 z; ~            out << "IPE partName: " << sPartName.GetText() << std::endl;
/ a) C; N; Q0 j* d$ @# _+ d8 }            out << "IPE exprName: " << sExprName.GetText() << std::endl;
7 d4 i' P8 ]0 R/ K1 U        }; R) |9 I& @6 V, g0 T

/ a* Y0 m  G8 E6 D! s7 H. b4 m6 Q        print(out.str().c_str());
& t/ q1 p$ C- N# L    }& b# w) H0 T- Q' q
   
, p; C( @' w, a' ?% V}
+ f$ |% D; i" R. r- A8 m
$ l: X* t) i7 [- @0 m3 Z
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了