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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

" c& t- o4 K! s" y  r
( [# K& z3 _. X2 g2 R: [& u) r( O' B8 K. M/ J% [$ ^, B6 N$ s1 n; a/ t9 }
NX二次开发源码分享: 导出 step格式
4 M" v5 x9 K* i' m5 ~; e/ L6 s4 ?6 u4 s3 O
参考一下,很简单哦!!
6 R, @, H( r; V5 M! {4 O9 M5 u7 s  g( k3 f) e9 a) B: j
void StepExport::do_it()6 K+ s$ G$ P  a' o. M
{2 }5 B# u: w1 h% Q5 m# S, u# v
    std::vector<TaggedObject*> objectArray;
* H& ?! ~$ @. w, i5 A
# O7 A6 w0 y, e, x+ t    if (select_bodies(objectArray))/ h1 Y5 O, Z2 A" _6 v! S: c8 O
    {4 L. x6 {; O- M: i% C# B7 J
        NXOpen::Session::UndoMarkId markId1;% L+ S* t) ?; ~' i8 {0 Y/ q3 j
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
2 Z: }, J) x" z' y* y4 v7 X4 I! m; F8 w% c
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
2 @4 t. d: p/ X9 J( |        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";3 f. k0 z1 l  m7 d9 p" D1 H' J( ^
        NXString sPartSpec = displayPart->FullPath();
7 Q0 v, |! `1 x9 Q$ m8 n        std::string sFolder = sPartSpec.GetText();/ R0 C2 q, x8 l  n
        std::size_t found = sFolder.find_last_of(".");
" v2 v3 O7 J* [$ c# s! `        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
0 k3 n& c* S& B4 z+ g; W5 A- R) T: b) K/ k' e4 D. B5 X# O% d
        NXOpen::StepCreator *stepCreator1;" r0 ~9 t4 W6 ~' N
        stepCreator1 = theSession->DexManager()->CreateStepCreator();. m5 c& @) R8 T
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
; f6 ~9 x' }& ~5 k        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);1 [* a& N8 Y6 f/ ]! Q3 F
        stepCreator1->ObjectTypes()->SetSolids(true);! ]: _4 e) \* z6 ^% K
        stepCreator1->SetSettingsFile(sCfgFile);
6 J/ H8 I' K0 O, c" j/ v) t        stepCreator1->SetInputFile(sPartSpec);
+ c) K0 K7 Q. ~! h. E        stepCreator1->SetOutputFile(sStepSpec);4 l" C5 q' \' C3 _0 n7 }' f) t
        stepCreator1->SetFileSaveFlag(false);
. e) N! l- ]& e" C2 U' j        stepCreator1->SetLayerMask("1-256");
6 \$ i$ O2 g+ i7 p2 B% P; E8 {
& Q- q6 \# ^0 E* e        std::stringstream sBodyList("");
; K, p+ M8 m/ u' w; P
+ Y' S1 P9 J- a        std::vector<TaggedObject*>::iterator iter;9 Q1 |8 r# u' G: K) H
        bool added1;, O) f* L+ p) N/ X) X2 h
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
9 c: `4 G8 L8 ]" \& q& [6 S! r) a        {
5 S+ N! I. Z9 S: J: f# N            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);; g7 U! E) W0 ~' r& N7 \0 W
            if (theBody)/ m. X: |) b/ j( @* U
            {
- [# k; @; X2 t7 H* I                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);. e5 d+ c  P) w+ }
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;' g& A# m' Z& T) U/ I
            }
+ Q* R/ f& d2 _4 A* b. U  \        }
# E" D  L! z$ K$ k9 c
4 J  J; c) Z; e        // Debug output
! ^& n! e0 K/ C# y: ?, M1 F        print("UGII_BASE_DIR = " + sBaseDir);
" H# Y5 j* |" t! m$ G. S/ `0 K        print("Settings File = " + sCfgFile);  I; C8 Q- ]8 b" |/ [; d( c
        print("Input File = " + sPartSpec);. ~$ m8 s! Q+ ~5 q  _7 n2 t& R
        print("Output File = " + sStepSpec);2 G# p1 w# n/ N; h0 @
        print(sBodyList.str());
2 r1 C' A7 `- R; t( R/ z6 O: ^* a: ^2 H4 j
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();. l* u" E: F  T9 {, s
        stepCreator1->Destroy();6 C  x0 T- h* V7 j# O
    }& j4 m8 X4 _+ ]# U

2 E6 s' @+ q% ^  ^# V, \/ G5 l4 t}
8 `4 Q- ^$ L. ?3 k6 L3 l$ M6 P1 Y
$ U7 C; M4 l8 |8 M& Z+ E1 v
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了