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

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

[复制链接]

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

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

admin 楼主

2016-12-25 10:40:44

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

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

x
2 H" \1 I. @; e
NX二次开发源码分享:选择体导出Step格式
6 }- u* f8 G' Q  o% }
$ ~) u+ B  W1 h! U% D6 H  Z% @void StepExport::do_it()
% W/ H: f# y  l2 j' L: u& K{5 v4 q3 E$ q* a( J4 c* |% N
    std::vector<TaggedObject*> objectArray;
# C2 k. ^+ u3 i1 e0 N    if (select_bodies(objectArray)); l( Y; p: i$ `* U/ F
    {
: s2 v4 Z9 ~  {% J        NXOpen::Session::UndoMarkId markId1;" O4 K. u- r  A  p
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");; v( D  O5 [/ g, H3 I: }. b
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
# s. m; W. \/ F# Y6 U" Y9 x( S        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";4 ?) J! l$ y" j2 v4 m
        NXString sPartSpec = displayPart->FullPath();1 P3 x9 c! o  a/ v% @
        std::string sFolder = sPartSpec.GetText();0 G) \. {" {- s2 m
        std::size_t found = sFolder.find_last_of(".");
- e: [8 X, Z' b# V! q" b        NXString sStepSpec = sFolder.substr(0, found) + ".stp";2 J, h$ a! }6 k; \
        NXOpen::StepCreator *stepCreator1;
0 l, d1 K6 q% _; F7 z. I        stepCreator1 = theSession->DexManager()->CreateStepCreator();; }8 ^0 ], K9 l% ?0 H6 c
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);( c% [0 M9 [  C5 Q
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);( s4 }) t0 `8 Y, J: ~: X
        stepCreator1->ObjectTypes()->SetSolids(true);) _- f' o9 `! a" X( U
        stepCreator1->SetSettingsFile(sCfgFile);
6 u  ~+ f9 M, \, u! K4 A# D# X        stepCreator1->SetInputFile(sPartSpec);& t' A3 i6 D- r. c% D% @; S" X7 r
        stepCreator1->SetOutputFile(sStepSpec);) c; `* |+ ~1 h3 ~- P( n& }
        stepCreator1->SetFileSaveFlag(false);, \" m$ h" r% N) Y) L
        stepCreator1->SetLayerMask("1-256");5 a# I$ O4 a7 S/ |# x- }5 g
        std::stringstream sBodyList("");
# I# P: U8 u8 @  ?$ f        std::vector<TaggedObject*>::iterator iter;
! n  F# |- b) _& h        bool added1;" Z: D/ b9 Y4 R5 z1 S- u4 ~
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)( L5 g# G. |  E; ?% n
        {2 W/ L3 D. Y3 Y. K; e+ |1 v  R
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
% ~  H3 U3 R4 ^# N) k            if (theBody), s2 Y% T5 j: l# Y, T
            {+ a. a0 c1 V! P2 x% ]  N" e* D1 T
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);6 h3 n+ s1 `0 ^1 R! K, u
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;0 O! m' v( S! e+ e
            }
4 h/ H: `( a* W' |: F% d        }6 G* V4 \$ j( H5 R8 ~2 [
        // Debug output1 q/ e% k9 q/ A$ |. D
        print("UGII_BASE_DIR = " + sBaseDir);
7 B4 @, p# {% J; n$ Y6 v: Q        print("Settings File = " + sCfgFile);' N# Y) a& |$ i8 r$ [
        print("Input File = " + sPartSpec);8 `( r& o% q; l
        print("Output File = " + sStepSpec);
  N" Z1 d; I2 B/ b, x        print(sBodyList.str());
9 f7 k9 X0 [: i        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
9 b" Q$ D1 Q: d2 C" i) r% F& ?1 u  F8 G        stepCreator1->Destroy();
% U1 y' W0 Y6 |: `$ d& [  Z8 R1 }* X    }
  v4 |  ?) K/ }2 v5 Q2 R   
: M/ g' [' o1 G! J; k$ y4 e}
( J& b- `( [& [8 v" H2 s7 q) P, V$ j
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了