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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

8 p) o! {$ Z# l$ L) ?  t+ [8 ~) C3 Y7 ^4 s, M, g- S. X, ]7 j
! S6 P0 m, K! v0 S- G6 a% n
NX二次开发源码分享: 导出 step格式
* _- v, E8 k0 M6 _/ e
0 g# X, x5 N1 t! ^) o参考一下,很简单哦!!2 D5 m2 I; |3 s' U" s$ J

( ?+ D0 D, e* W, a$ |' V$ ]" ovoid StepExport::do_it()- W; r! d( ^4 G& f
{: ^1 z3 d, R2 L/ K; k1 _! A. {( \
    std::vector<TaggedObject*> objectArray;
% i- c3 d8 _, ]$ c* B7 {* o: o" w1 W
' Y7 h+ W- |% T  Z    if (select_bodies(objectArray))
; v% w4 d( H: J5 `% o5 s    {
0 `* ?+ o4 [1 k        NXOpen::Session::UndoMarkId markId1;7 S8 R% i0 A+ c8 M# k4 Y
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
' P/ P, Z6 \, C! f! l
8 w! T: b) Z0 p        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
! j, h/ B" R  i6 @9 N5 n- U        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";3 r/ k: D; u3 ^3 |
        NXString sPartSpec = displayPart->FullPath();+ B: @( R/ }6 `9 F3 L
        std::string sFolder = sPartSpec.GetText();
3 R4 e! W3 R& k, D1 M1 u        std::size_t found = sFolder.find_last_of(".");
" N  o( u) S4 F- x        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
* r/ o$ F' f0 E, t& a% W' K- _% Q5 J9 ?7 B; e
        NXOpen::StepCreator *stepCreator1;# Z1 {) U# n4 c3 W# r! K& n; m8 o
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
) z& f/ N& R! h, F5 g        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);$ ]4 K; f0 q  L5 G$ b
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);( S8 G2 e$ \: a. n+ a
        stepCreator1->ObjectTypes()->SetSolids(true);
3 _1 P4 _" k$ b9 Q# C0 D* x        stepCreator1->SetSettingsFile(sCfgFile);
5 `& Y9 e- C  V- h$ x1 p/ G( D        stepCreator1->SetInputFile(sPartSpec);# M, i& F. @7 r. q% E6 h
        stepCreator1->SetOutputFile(sStepSpec);
# Q9 r$ R- O  K* U- a( ^        stepCreator1->SetFileSaveFlag(false);
, n; j( C4 p: t- w# E        stepCreator1->SetLayerMask("1-256");' ]4 e% @3 i$ j/ {% f: D
! m! f: Z4 R3 {+ D. h9 N* p. R
        std::stringstream sBodyList("");
0 e& N! h) t+ ^
6 _; M4 Q! D- {& w4 y. \8 r        std::vector<TaggedObject*>::iterator iter;
9 [; @% R# z" F: Y$ N6 U        bool added1;1 b' e% s7 J! S* R
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)/ p, f, p: \* [( g( x1 b
        {
6 v' N1 Y- H( v2 x            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);: F6 D5 o; Y; n+ j( ~  b
            if (theBody): i# o) }1 b1 d& |, j$ o: T
            {1 ?1 \( A/ T; @" `: n6 E& t
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);4 c2 {2 p$ F; n4 A. ]( `
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;, ]) Z, k( T6 x. g8 y! A( b
            }
5 s5 p& b: `7 c        }& }4 m5 n7 |; A4 i5 _
- ~8 a5 {2 p* L% v) W( P
        // Debug output
9 h2 j/ ]1 j5 t$ T; W( ?! d2 M        print("UGII_BASE_DIR = " + sBaseDir);
' I' a1 H  W  M7 i! U: m        print("Settings File = " + sCfgFile);. m  d( S) N5 x! u1 Z
        print("Input File = " + sPartSpec);
7 t( b, f  `' R$ Y        print("Output File = " + sStepSpec);5 L' k2 y' \! I0 I  R! x1 g. N
        print(sBodyList.str());
$ Z& _8 o+ @# m4 G% ]: z, t/ r
$ t7 r0 E$ @" }& P5 }        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();" J1 |* R# f6 B0 P9 a! ]
        stepCreator1->Destroy();
4 v0 ?8 O- @' k) j- `    }/ ]3 ]7 N/ S: |: u2 V# \" g+ W

/ R& t& x) x" O  C1 }. q5 _}
' p9 [- l5 c7 c; _5 T2 }0 `" J* u( a
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了