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

[二次开发源码] NX二次开发源码分享: 导出 step格式

  [复制链接]

2018-1-7 23:25:47 4189 1

admin 发表于 2017-1-16 15:31:09 |阅读模式

admin 楼主

2017-1-16 15:31:09

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

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

x

, `: s: V% O4 x3 F% o: l: {+ j2 f' u+ m! S2 m0 Y. L& z1 c) G: h! |" @
# v6 U" s4 q. H1 o; d! ?
NX二次开发源码分享: 导出 step格式
# _1 W8 H5 @6 W3 ?4 Y
+ o* R: T* z7 y$ v0 M, P* Z( W参考一下,很简单哦!!
" j# `( E7 j% P. Z6 x) Z) c$ E0 \+ T' w5 u
void StepExport::do_it()8 `* t- I2 S+ J- ~& s; F
{
( B" X5 f/ D  F0 v5 r" r7 J1 K    std::vector<TaggedObject*> objectArray;4 m1 |# x& i% ?% p9 R* b& Z' b
: N* C* K/ T+ a' N0 d. O+ j
    if (select_bodies(objectArray))
4 M* q" ]: U+ ^2 R2 h! P+ [    {
& \" Q9 c; Y3 t& ?        NXOpen::Session::UndoMarkId markId1;. l+ |' c& O+ i6 }7 P
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");6 b# L4 @$ ]& s# r
* |! R! @9 ^; S1 V. f. P2 }. P: m
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");6 M+ \, W; ~$ `8 _
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";- d# g$ \8 D1 e. ~. ]. o: b- B
        NXString sPartSpec = displayPart->FullPath();
; j2 i0 A( g. d$ b        std::string sFolder = sPartSpec.GetText();5 d& x4 o4 z' }% Y  A+ }) M- [. [
        std::size_t found = sFolder.find_last_of(".");
3 F! w9 z. q. Y+ n: X& ~) k) O; }: B/ I  U        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
0 P- x5 ?2 P& M) E9 G, s- U5 H: V' R+ P" ~
        NXOpen::StepCreator *stepCreator1;
1 r* \3 C/ h. r0 z9 F: P1 ]        stepCreator1 = theSession->DexManager()->CreateStepCreator();
# h- n4 H( h; f5 W* g9 _! d$ N        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);" K+ Z6 k  z# k/ T6 z
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);# i3 I  b0 c! V
        stepCreator1->ObjectTypes()->SetSolids(true);5 D) W: Q. b' G6 t2 U5 C) e# E$ W: T
        stepCreator1->SetSettingsFile(sCfgFile);: E. p/ `9 ?0 Y& ~% o- o; z
        stepCreator1->SetInputFile(sPartSpec);- f3 x+ ]2 E# f# }" v
        stepCreator1->SetOutputFile(sStepSpec);
* A% q. n" t* K) c8 h3 ]0 ~9 m0 O' K        stepCreator1->SetFileSaveFlag(false);
( E/ P) k! N. S9 b        stepCreator1->SetLayerMask("1-256");
: d9 A! j5 J1 D% j# X0 M9 h, Z& j% f0 q. }
        std::stringstream sBodyList("");% q" j$ t' L" `& M
3 [0 ^5 d/ P) O
        std::vector<TaggedObject*>::iterator iter;
& z: y/ s% I9 {! E3 N8 x3 J0 D        bool added1;
- o, R& t3 J! H) c, ?" v        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
$ f: i  A) C, u1 i" f        {
2 ?& B4 j, n( r* P' @9 I2 N            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
4 P, J9 t$ H5 K! \8 H- S0 A            if (theBody)' n% V- R# I' P( }3 f+ q
            {
6 o% N  @9 t0 N# l8 p                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);; I8 |$ [+ a# E2 P
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;+ j+ z8 ~- U' V# V$ o+ Q5 ]/ O
            }5 E; ~" f! Y5 S
        }, e0 r% ^+ r3 h

/ w3 d. l2 y2 f8 c4 Z$ M& Y; ^        // Debug output
7 q3 p) {7 z+ T! T' a        print("UGII_BASE_DIR = " + sBaseDir);
, C8 |) o3 g: q        print("Settings File = " + sCfgFile);/ n2 k( k! m3 @+ I
        print("Input File = " + sPartSpec);
+ a: d+ E9 ^; w. G4 `" Q$ q9 K3 f        print("Output File = " + sStepSpec);- L' ]4 }& I5 U8 L& V6 g
        print(sBodyList.str());7 m2 f5 y8 l) v0 b% Q

# I, [+ r9 {( g7 F& N+ a* U        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
0 [4 f5 H9 ]2 F9 r$ d3 l: _7 y        stepCreator1->Destroy();
# |* w# b. w2 m, e    }
! S$ v2 x% q2 i( Q$ Q2 o: N5 P/ W8 M
}0 h5 n9 o( i' ~5 m

; P& G6 x) C* E+ M
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

ug_xiaofeng 发表于 2018-1-7 23:25:47

ug_xiaofeng 沙发

2018-1-7 23:25:47

请问导入dxf/dwg用哪个函数?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了