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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
( k. t7 \! f8 P% N2 R7 [

5 j  q4 V% i8 l# e& _: l5 \! g( a% u2 r2 b, v! Z0 l1 E
NX二次开发源码分享: 导出 step格式8 y+ Q% Q) L; e0 U! H

% }3 [! o' x+ l! K. H  Y* h参考一下,很简单哦!!  s8 U. E. E9 b% j0 ]- D

  {. u. t, _* Cvoid StepExport::do_it()
/ y5 y9 q6 q  t7 ?{
" c% _+ v# M3 O6 K. |- _    std::vector<TaggedObject*> objectArray;/ I. [3 V$ c  g! K9 d

: p2 _: j+ X& n2 w) R    if (select_bodies(objectArray))
) P% c& x8 f) o2 K& z& y$ ]5 O; @! Z    {; v+ P, Q- U' L% u( Q% I% n7 h+ ^+ y
        NXOpen::Session::UndoMarkId markId1;
& k& p' _7 q5 g        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");* ?+ U- g( W8 t

& J" Y( K- M& L        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");1 Q. s6 ^# F; R4 C& d9 i* \" P
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
" O! {# f. e- |  Y        NXString sPartSpec = displayPart->FullPath();
4 s5 f* D( r6 H! ~" B& l        std::string sFolder = sPartSpec.GetText();* T# p/ f& [5 o  N% f
        std::size_t found = sFolder.find_last_of(".");6 Z4 U3 T; R. t! z( V) ?
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
  M9 J2 Q7 c" o) }
4 ^0 |7 V8 F7 |- \        NXOpen::StepCreator *stepCreator1;
+ d; a) J5 I  P" \& _, \3 D& [        stepCreator1 = theSession->DexManager()->CreateStepCreator();8 e' a. q2 C" c
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
2 h, M8 Y" `/ I' D7 X' ^0 F        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);' V# o8 k, N  N: k; X5 r% v4 J6 \* P
        stepCreator1->ObjectTypes()->SetSolids(true);
* ^; O. L- {; W  j0 a4 q+ d        stepCreator1->SetSettingsFile(sCfgFile);- x1 I% {0 g! s" i  t0 n
        stepCreator1->SetInputFile(sPartSpec);
/ H+ ?& ?" o2 h; i; O        stepCreator1->SetOutputFile(sStepSpec);$ X) j$ C. @* h" s8 ^6 n7 b
        stepCreator1->SetFileSaveFlag(false);
3 @+ G# j0 A( E1 Z        stepCreator1->SetLayerMask("1-256");
* `( z9 j8 |% Q6 Q
  p0 b( e) B0 ?# k8 _( [        std::stringstream sBodyList("");( L; ?8 q; m- F, d8 l+ i; C
1 K  @: ?' `: N/ r
        std::vector<TaggedObject*>::iterator iter;
8 v0 Z5 @0 E; c. ?1 Z/ {7 @# [        bool added1;
. o4 @' u$ B2 K% \        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)3 V  t- p; n( T2 k, j
        {3 L9 _0 j- W& R  s& G
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
* v$ p$ j& {0 W" T0 \$ @            if (theBody)
5 Z3 I4 z$ S4 J1 y% M; k            {
- ~, Z( K+ J* u/ ^                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);: X( a% g4 x& d+ p2 b# B4 I, `
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;: a; R+ \) P' i, A) Y! U
            }  D& I- |. y! a" N+ p8 u
        }
3 ~$ z: C9 s, U3 M5 o' l
) k$ m" h, i2 K        // Debug output9 r! ^7 {  ]% |6 @
        print("UGII_BASE_DIR = " + sBaseDir);- v. g! D* @$ j6 H4 f8 {) ?
        print("Settings File = " + sCfgFile);
+ q: ^; L9 V/ `0 l# e        print("Input File = " + sPartSpec);5 @' O+ a" i% ~
        print("Output File = " + sStepSpec);
1 `! F3 i. g! h. K& a% d        print(sBodyList.str());# H, i/ ^5 [6 K
' Z2 g* o* z  M" J
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
6 h  W% [6 U- ?' e        stepCreator1->Destroy();
- p3 k% r$ {1 V. ]/ h& ^    }$ ]. P7 C, U) H7 y* x" _' K
. s' f9 y! t7 Q/ \! Y
}) V0 h3 |3 [2 x' O, ?

! D5 }" _1 u, z4 W7 M8 J! V* u6 ?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了