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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
( t# N% M6 J' ^) e" j
$ H" G3 S9 @0 y, L1 k& U

& ~+ A6 l4 l* x- P8 \! g  vNX二次开发源码分享: 导出 step格式
1 ]0 Y! g0 O9 M1 ^0 M7 ^7 O  E$ W
参考一下,很简单哦!!
. G; y; e  m. d3 s, K1 R; X! d3 \9 G" S" R
void StepExport::do_it()
5 D9 S& B9 [! p6 f+ _; e6 s; u{3 D8 Y4 D) p  C
    std::vector<TaggedObject*> objectArray;8 }: |4 S+ a' V! x8 Q. Q

! b& F; m! w5 a2 v' Y  ~& [+ d    if (select_bodies(objectArray))
$ [  v$ Q/ M, b    {% c% b  `/ I% W/ u! w" x
        NXOpen::Session::UndoMarkId markId1;, c7 I* k4 `$ Q, [! d
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");0 ^5 _3 u  C# j' A) A$ c9 g

. T1 d7 v7 _, M3 K  s& i/ m! O# k        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");+ X3 P' R; t5 z  m
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";" }3 b: ?5 L! \' e& d
        NXString sPartSpec = displayPart->FullPath();) B: l% N9 J: x" a: M
        std::string sFolder = sPartSpec.GetText();
) Z# T/ |6 N# F/ _        std::size_t found = sFolder.find_last_of(".");2 r! V8 y. i7 {2 r% @
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";9 a; i( K% F2 o9 V
0 m# p/ J1 p( C1 z' O* k; m, Q
        NXOpen::StepCreator *stepCreator1;
; b6 }+ r& @* j" p0 @        stepCreator1 = theSession->DexManager()->CreateStepCreator();
1 L8 Q6 `& V& \; `( n        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);; S7 R* g; Y3 `) ~1 ^
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);7 D9 s: ^1 S5 }0 @" S
        stepCreator1->ObjectTypes()->SetSolids(true);. r$ X4 |: K7 {2 w, u0 u! r
        stepCreator1->SetSettingsFile(sCfgFile);
5 i5 o# i0 S+ }/ h) g# K  d, C        stepCreator1->SetInputFile(sPartSpec);
$ T& ~; H6 l. j1 T        stepCreator1->SetOutputFile(sStepSpec);
+ `& D3 V/ b, S        stepCreator1->SetFileSaveFlag(false);
$ v0 {  S# j; M6 h1 v( E  s* p0 k        stepCreator1->SetLayerMask("1-256");
/ L6 y) ~7 M: A7 |& L* o( B! h# K6 U$ k$ y0 M7 G* x2 I
        std::stringstream sBodyList("");, \; a# P2 h* G, q$ ^
9 y7 G' I2 j' T. u; y4 w
        std::vector<TaggedObject*>::iterator iter;9 S2 n' u2 M1 m
        bool added1;
7 T+ ~4 ]& }7 l9 W        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
4 L$ ?! D& Y3 j! a        {- j5 Z4 k9 `9 E2 _. W
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
% Q9 x# E; ~8 y3 G$ k! S% L2 D            if (theBody)% v2 I9 o" T! |/ T5 G- B
            {  B* `0 G$ n2 A( z
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);% d: m. Y0 d8 l
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;3 e( Q) s. ~. E: R- E% X
            }8 c5 b7 F9 c6 E8 v' K1 p, l9 D# [
        }7 [# v1 s. O: U7 T7 X; X  J

4 j0 e5 M" R& H- s! `7 W* W        // Debug output1 E/ W4 |: q. @7 _& i4 r* i$ P
        print("UGII_BASE_DIR = " + sBaseDir);2 O) B7 I7 _2 T* G9 w) D7 J" ]
        print("Settings File = " + sCfgFile);
" K& o1 L5 w4 y# c/ F) p8 k        print("Input File = " + sPartSpec);
6 d: Z. n" G2 A6 d9 \, U% z        print("Output File = " + sStepSpec);9 o, a) J( _8 [- W6 |$ q
        print(sBodyList.str());6 Y; b- c0 J% p* Z
1 h- }  _1 m! c# O4 P& c
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
# ?! r, ?, U9 \( L4 A: S* R0 d        stepCreator1->Destroy();5 j) g1 m% u7 }9 v) d7 {5 v, ?
    }
: B- ~9 R! a. m5 v6 l) R- R/ h3 R+ A$ t
}
2 i/ P$ P& {3 b* }% Q" B5 Z2 g3 L6 m/ G  ^2 g
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了