PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

" g' y$ {& @. @. V& d$ ^, I5 G6 S. W( o0 p8 c. I3 J* ?
, }& O: X( s' q: V! I
NX二次开发源码分享: 导出 step格式) m3 e' y* N3 e: |0 Q( K

* e) k& d" n. O# d1 z: u" e参考一下,很简单哦!!4 I  l7 Z4 Y, k+ G1 F

2 s# t1 K* ]3 N7 zvoid StepExport::do_it()  L* v7 P6 z# w' b
{
- r& P9 I: R0 U3 W2 k8 y9 G. K    std::vector<TaggedObject*> objectArray;1 n5 R) \' o9 y9 h/ u

7 k. d; |2 e1 e' g- v+ x: t    if (select_bodies(objectArray))
  G# C* e% ]" z! e0 i: G    {
4 x) G( `. ^# ]        NXOpen::Session::UndoMarkId markId1;8 u: J7 o* _$ R  T. @& R5 {; k
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
" ?# `6 `9 |1 a  @1 z* V
+ B3 A7 \" R, s        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");! `2 j2 B, `. z  |; ?! a: }5 R2 Z4 e
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";0 L+ ^6 F+ M0 V
        NXString sPartSpec = displayPart->FullPath();
# ~' y0 m7 n0 X. t( G. x        std::string sFolder = sPartSpec.GetText();- C" J" o* e; a9 I) A
        std::size_t found = sFolder.find_last_of(".");
2 c; A1 o, h' p        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
% q% t  z/ A5 Q7 X. X
$ g+ I/ G% S" ?( n* v        NXOpen::StepCreator *stepCreator1;2 h2 j: d) P; }& V+ i3 u7 x
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
$ }# h7 I! x# W4 [4 p' R        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);4 ?3 }' }- I& F
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
8 R6 n, J# a4 `/ H        stepCreator1->ObjectTypes()->SetSolids(true);
# J+ `) g. i' w5 d3 a% q        stepCreator1->SetSettingsFile(sCfgFile);
; q: T' D% C: s! l. j5 v        stepCreator1->SetInputFile(sPartSpec);5 Q0 l  c( M1 w8 r& m! b1 P
        stepCreator1->SetOutputFile(sStepSpec);9 I. v6 l) X+ l. y7 s
        stepCreator1->SetFileSaveFlag(false);
3 Q, q* o) ^9 n# s        stepCreator1->SetLayerMask("1-256");: K, n2 }: O' S, ~3 ^$ k4 ?

1 V. f) o0 j1 {- D' M) A7 H        std::stringstream sBodyList("");$ f2 M3 J- r5 i, g
; t1 @  s9 b, _8 t8 C& W! I" H
        std::vector<TaggedObject*>::iterator iter;
9 s9 w; I2 J* m" E7 n. I3 ?: F  |        bool added1;
) k* \1 T8 [. W6 q) h        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
' d$ q8 m4 F7 m- P$ [        {8 q4 S4 P: J1 s7 g( J4 Q( E' ]3 a
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
' ~( V0 ?/ m0 M0 c8 L$ f            if (theBody)
7 D) n$ u; u/ Y$ k" z) D* I            {
8 x6 ^- D1 y; `                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);/ P# V& J* |8 C+ }: @
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;+ Y) n0 t$ ~" e, L4 y
            }
- R/ s# y# `; Y        }* D$ ?! A/ S) A  k% Z: Q
5 ?& P4 b/ J3 f$ h
        // Debug output
- j. b$ w, y. W        print("UGII_BASE_DIR = " + sBaseDir);) h6 K! f5 ~! y: _
        print("Settings File = " + sCfgFile);
" m* R9 Z4 K# h* ?        print("Input File = " + sPartSpec);
. D4 e2 \2 s3 F4 P$ g        print("Output File = " + sStepSpec);
8 i6 i5 a& {5 |" p: |' b. j; A        print(sBodyList.str());
0 p+ R) r$ Y, w* p; Z+ U
! [! {: f, k, Y3 I; p2 m: A        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
+ }6 b0 ^* o6 |        stepCreator1->Destroy();6 s; Y3 A- C" M/ _! i1 e
    }5 y. z0 [0 r  }# U% ?( \
" d0 k# B: N* I
}( G0 @0 Q* q4 F) j- I

7 t# Y7 n* X! Q7 Q& K& b
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了