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

[二次开发源码] NX二次开发源码分享:选择体导出Step格式

[复制链接]

2016-12-25 10:40:44 2773 0

admin 发表于 2016-12-25 10:40:44 |阅读模式

admin 楼主

2016-12-25 10:40:44

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

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

x

! o3 m0 Z( @2 I# UNX二次开发源码分享:选择体导出Step格式
& d9 m) O$ c* g0 e1 f5 M3 A
1 {8 E* ?& ?1 i9 V4 @void StepExport::do_it()
: w$ Z: j1 p; e/ m{
' {3 ?5 I$ M& G! Q7 I) M+ h    std::vector<TaggedObject*> objectArray;
# n% T; r1 r  J5 _! w    if (select_bodies(objectArray))
; B4 l7 o( Z# @. a    {
; X, x+ h( c! r3 j  r. j        NXOpen::Session::UndoMarkId markId1;; {8 ~' c5 [/ v4 C5 D# Q' |# v5 a' e
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");: s% P3 r0 _& A# f# S) z; o( G
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");% {3 W" k% f1 O" l- v: h
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";6 j" \. _! B% h# |8 b
        NXString sPartSpec = displayPart->FullPath();
, b) J% \& {9 e+ _        std::string sFolder = sPartSpec.GetText();
% \) D8 L$ y  h. ]        std::size_t found = sFolder.find_last_of(".");! j8 r$ x  \6 t5 v3 Q0 k& j
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
6 [9 H: W7 m& K        NXOpen::StepCreator *stepCreator1;8 S! y( c; }& g: i5 R9 `
        stepCreator1 = theSession->DexManager()->CreateStepCreator();% z0 m- g  p1 T) h( x6 f% d
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);) f, X7 k" T: \$ _  ]* o
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
# F) \6 z$ `3 v- e        stepCreator1->ObjectTypes()->SetSolids(true);
% Q0 [$ }% [& c3 v3 d6 M  ^        stepCreator1->SetSettingsFile(sCfgFile);- g$ \" A* m) A- G* F6 [1 ^
        stepCreator1->SetInputFile(sPartSpec);
! f% Y7 i, v2 b* u9 y; F! f        stepCreator1->SetOutputFile(sStepSpec);
$ Z2 V0 S1 u3 m# y& f' D        stepCreator1->SetFileSaveFlag(false);9 w" d1 F# S4 a# T% ^8 c
        stepCreator1->SetLayerMask("1-256");
/ [& I0 X5 D' C+ q6 Q        std::stringstream sBodyList("");0 U# @. Y8 Q$ A& M$ B
        std::vector<TaggedObject*>::iterator iter;( v' W9 ?# k; s; \- \6 F. P
        bool added1;- }% a  f# L. {$ w% V; s
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)3 t( H. S% l! ^* }
        {2 J6 S6 X4 K2 G, j7 B6 h( V' G
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);4 y$ i6 `5 z/ y6 E/ K6 t. `
            if (theBody)/ v& u" S: h. L* ]7 n1 _; U
            {' I/ ~0 j0 J6 c6 M) U/ Y4 I
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);. `3 r, w/ O& h! y3 X9 z2 Q
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
! ]3 B0 o+ ~, w; b            }
* ~- t& M) B( v* v+ s        }& [/ Y. e+ F5 C' |+ D
        // Debug output. i5 b; L% _0 d7 P: n7 K
        print("UGII_BASE_DIR = " + sBaseDir);9 a. p* K1 K( e$ c; P
        print("Settings File = " + sCfgFile);
1 t& r6 F* J4 s        print("Input File = " + sPartSpec);2 R3 s; e- V! f
        print("Output File = " + sStepSpec);
$ ^0 ?$ v9 E2 _6 _" H4 v9 z" n- W        print(sBodyList.str());/ h  b+ y# u. z& M6 W
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
* e# B1 {2 u* [0 @7 s! G2 R        stepCreator1->Destroy();) @6 ]; c1 V: [0 f2 G
    }
6 J" t8 p8 z: X7 G2 [% H5 |, n" X    , G: C0 }8 i0 c8 G7 x' N/ E" z
}
  c. |9 R* M# G0 K' W( j
2 E0 V* G1 e4 [( |9 B: p: L' I- a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了