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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
. Y" a% x) d: l' `5 v3 V  J( Q& Q* b
4 @6 a5 Z4 v( e: L* A
0 k* x9 c1 ~7 u; \6 @& h% J0 F
NX二次开发源码分享: 导出 step格式
/ a, {) o" U& g: U9 ]0 A; h5 |6 W. l- U5 A
参考一下,很简单哦!!' e8 R& O- _! {& S1 u  O* d

4 t% D, g6 c  ]: d2 w* k: |void StepExport::do_it()$ ]) ]8 S! ~" x
{
5 o) {% M6 B( u5 W0 l& [    std::vector<TaggedObject*> objectArray;7 |* j! ~5 p7 W0 s: D

7 H3 W' l# U! {, F2 ^    if (select_bodies(objectArray))
# |; [: c  J, f8 L  V% y    {0 B  ?8 }9 r0 \6 H/ ~6 [
        NXOpen::Session::UndoMarkId markId1;6 O8 S% G/ H! z+ ?' x
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
3 h9 I# L+ p% g( e/ K# W) T( O* N  m% D: b; ]3 {
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
! Z$ |) q- N' H        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";' g% g. z) O% I) ~) i& m! |& T
        NXString sPartSpec = displayPart->FullPath();# H1 a# n. d0 ]4 x. |1 O
        std::string sFolder = sPartSpec.GetText();- N) L0 A6 W5 h1 S5 u) @8 ?) W4 _! Y
        std::size_t found = sFolder.find_last_of(".");
& G5 ~3 Z; @2 b( }        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
1 z( i% L: [0 \
" _5 o% |! I/ D$ U2 k7 W  a        NXOpen::StepCreator *stepCreator1;' f* o3 q) ~6 M1 K' v2 d6 V
        stepCreator1 = theSession->DexManager()->CreateStepCreator();* q, z  l; b) _. a: H& Z! T# N# w
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);2 k! y  R  a3 y" x
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);8 U4 R. g* P, T+ m* a; k. @4 E  R
        stepCreator1->ObjectTypes()->SetSolids(true);) o# M( [4 G6 z7 G% k
        stepCreator1->SetSettingsFile(sCfgFile);
* W; O7 ~+ h  C' Y: i        stepCreator1->SetInputFile(sPartSpec);
- u4 N3 T- K( w        stepCreator1->SetOutputFile(sStepSpec);8 I& v) c' h8 Q1 Y! ]0 G3 R
        stepCreator1->SetFileSaveFlag(false);
8 }1 _/ _( U; S% a) z        stepCreator1->SetLayerMask("1-256");
) j& u* I# @' _2 O
% i: G5 c$ K! A' N8 L8 D: c4 z. X        std::stringstream sBodyList("");
* J: b5 i9 g; z9 A4 v
/ a9 I, D: r6 R  m" L& U        std::vector<TaggedObject*>::iterator iter;
5 i( n3 e7 `6 z, L4 w: {, L, ^        bool added1;6 g. j! z6 [: D- p3 q
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
" u8 g! S8 r. i( Y# M# s6 n, h        {2 a6 P: m0 z  @1 ~3 @/ z! s, r" t; F
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);( w3 z! J! A5 d! g4 I1 y" R* H) ^9 l) l
            if (theBody)
7 |1 j: i/ {6 H8 K# N            {8 P: ]/ @+ \& H# T2 y
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
( S' I' p" [" x' B: i" ~+ L$ V& ~                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
& H* H% k3 x: z  U( N            }( c; N1 ~8 v3 u5 q- B
        }
* q, x! {% h, h8 U6 f# f$ o7 @! {3 Z6 d
        // Debug output: _5 T: ^' K8 {8 q5 u
        print("UGII_BASE_DIR = " + sBaseDir);% e& n+ B' Q- h# G: h/ d
        print("Settings File = " + sCfgFile);' f+ Z0 {( H3 e/ W
        print("Input File = " + sPartSpec);
1 {6 Y% [/ F) n; p3 J* _        print("Output File = " + sStepSpec);
& u: i( W0 }, d$ y+ u6 q        print(sBodyList.str());- V1 _6 \. [6 n7 ~- R

  q# d0 G# K0 f/ I6 h  ~! D        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
) D4 l# p' W* b        stepCreator1->Destroy();
- E1 x1 s1 V3 ]( W    }. V! \$ c% n9 _( {' B0 |4 C+ J

* Z& P3 k: e( ?/ e- z  @( i}
/ B$ _8 X% F+ W' e! ?# m- V1 X; [. I' m. h2 w% X* u
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了