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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

; [+ x: b. L& u) b7 N2 g9 E$ R# D# P- I
1 k7 }# ~* |2 {4 _7 t) a
NX二次开发源码分享: 导出 step格式6 o5 |, D: l0 h, q8 z

" Z$ J0 P- e$ X2 ^参考一下,很简单哦!!
7 a& H( T5 `# V' S
: c* d0 t% M! B. _. Y" Y- Xvoid StepExport::do_it()/ C# |- g% W' p
{* L: w, w" |. T
    std::vector<TaggedObject*> objectArray;
! c5 I5 t' [) Z/ p% C! O# p! N% e' m
* x0 n( H9 H' q9 J: q$ u& ]    if (select_bodies(objectArray))* z* Y9 S3 ~( i
    {
( }! h6 N# u) c+ B" D" {2 q) _* a        NXOpen::Session::UndoMarkId markId1;  y" V. @, @9 U% ?1 J
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");# {& O3 w# U! c  n& T6 k
* Y+ x; n4 X0 G# ]* T7 f: X% R- U
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
7 G* f4 s* T* F6 \4 a, B* F: S        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
  D( h0 A* G. Q" J. k( O        NXString sPartSpec = displayPart->FullPath();+ }9 b# \1 r" L0 r" C/ Z
        std::string sFolder = sPartSpec.GetText();
% d+ F! }. P; `; l+ D        std::size_t found = sFolder.find_last_of(".");2 r/ B( m8 V% t% a0 x7 P
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
' r0 z& [6 [; I5 C; @6 S; w1 S! o' i
1 D6 I3 x, u4 D& w4 {; T0 ?        NXOpen::StepCreator *stepCreator1;
7 ]% t: Z& [0 ?* E% N5 D/ }        stepCreator1 = theSession->DexManager()->CreateStepCreator();
$ h/ X0 A* ^8 d; _% n/ I  U9 Z8 q0 ?        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
  d9 F3 c" u* m$ o        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
) j: K% L$ J$ a1 J3 O) N        stepCreator1->ObjectTypes()->SetSolids(true);7 v. N. H8 ]5 ~, g$ O
        stepCreator1->SetSettingsFile(sCfgFile);" D/ S9 t" U+ s% q7 ^* U7 p
        stepCreator1->SetInputFile(sPartSpec);
; N% f% s2 l* b8 @7 a! }3 H3 B        stepCreator1->SetOutputFile(sStepSpec);  V: G' Y- j5 D! i
        stepCreator1->SetFileSaveFlag(false);! D, g7 M1 p7 _% M+ s8 ?
        stepCreator1->SetLayerMask("1-256");8 ]! @3 o6 U) H5 h5 q7 X3 j
" Q& P9 `: R# j# U
        std::stringstream sBodyList("");
. _9 R- j0 J6 U, R
) O9 [9 W0 N: U* ]        std::vector<TaggedObject*>::iterator iter;/ [2 B. R9 z$ _3 \9 P
        bool added1;
* J* l; s! e# W1 B        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)' h+ v( W! t0 K1 v" s$ H
        {
. B! `2 k: ?0 i$ n5 |% n+ b6 }            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);2 N* c1 n- @  R) k; k
            if (theBody)
8 `0 Z$ t* J/ o- }1 j3 u            {8 S1 R5 q4 @: a, o8 I$ j
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
" ?2 _* `$ p! x% `# [                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
! h& J. n3 f! c6 [% T5 ^5 F            }& s" @) J9 q. v8 s; [+ O
        }, e" F" m, x; k( E5 _

; H# n+ e% I8 g* n        // Debug output: _' D" u+ O1 e: o6 ?( E9 L
        print("UGII_BASE_DIR = " + sBaseDir);3 ]" q6 N- O, V1 `3 Z  _& T
        print("Settings File = " + sCfgFile);
; W6 T5 @4 r6 L' g) b        print("Input File = " + sPartSpec);
3 b: R: t; \+ Y' |" H        print("Output File = " + sStepSpec);, j% l* m0 _- F
        print(sBodyList.str());
" F4 _7 G# t) c, U4 B9 v* ?. q2 Q( s9 {& g5 n
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
7 J. m- ~  c9 {- Q& T        stepCreator1->Destroy();% D7 ], Y: s! P  [' @- `( K
    }
4 E) @/ w" Z+ S! C
$ I& a- M  ]2 K) X6 M}
5 g% t! A+ i/ \( p1 P$ e8 u, J' |: @' v* S2 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二次开发专题模块培训报名开始啦

    我知道了