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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

6 D3 ?4 G! }/ d# Y3 j+ b+ I6 r2 j& a& g' i& D! J

: r7 P& b9 r  w8 _- H: |NX二次开发源码分享: 导出 step格式6 M: l3 d9 X* A& o* c! b7 c

, P8 x& {, m+ ?, ^- i) S; E. n参考一下,很简单哦!!# N$ X7 s4 M+ X* r

4 b1 A2 y. |  W0 S- H( fvoid StepExport::do_it()
/ h  G$ y! ?3 Y0 v3 |8 t{
0 t; [  D% o7 ^  i- \! i5 i* O8 }    std::vector<TaggedObject*> objectArray;
/ z, J4 E) u2 v4 W! q9 A7 x0 t$ l
, G; E( t3 X1 K# s8 s    if (select_bodies(objectArray)): w) j/ m2 l# u0 e& E7 j& @
    {- D( K0 s5 ~- }2 y5 l0 p
        NXOpen::Session::UndoMarkId markId1;
+ P3 J/ h2 I# ]! g$ |4 k8 a) G3 B        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");8 _3 J7 O& r8 I' E( p$ P
$ Q% t* n, X7 V' ^6 D# ]5 X1 g+ q
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
2 m5 z" c. B0 d6 ~        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";, K! S, k2 s, T, T" m( c# \
        NXString sPartSpec = displayPart->FullPath();# k* ^& ^6 {. G
        std::string sFolder = sPartSpec.GetText();" {( E" G4 e7 Y
        std::size_t found = sFolder.find_last_of(".");- f: ?1 h1 F4 e" O' b
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";0 {1 v5 k0 r: D

$ ~: l0 W" ^$ Q8 B        NXOpen::StepCreator *stepCreator1;" r0 U" I2 L! r; b2 z' I
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
; C/ B1 N* y* |; S3 W1 @        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
/ E) ~! |$ i$ ]% \0 ^" A        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
; p' {) H  q& l- \        stepCreator1->ObjectTypes()->SetSolids(true);
* o0 F2 R% i7 H$ f& @        stepCreator1->SetSettingsFile(sCfgFile);( T' B6 S; O9 A7 Y. v& I, X
        stepCreator1->SetInputFile(sPartSpec);+ i) c, l  h9 G+ l- m1 d
        stepCreator1->SetOutputFile(sStepSpec);
( N0 Z% j" q. v6 D/ V8 f        stepCreator1->SetFileSaveFlag(false);2 e' {! u( u7 x+ e5 I* i( j- q
        stepCreator1->SetLayerMask("1-256");
- {2 c1 V& ~/ {4 F+ v  a
+ x0 v! r8 g, s) g  ^        std::stringstream sBodyList("");
; w' y1 y0 p8 H/ i. e5 P1 Y/ y0 W& Q, N, ?
        std::vector<TaggedObject*>::iterator iter;
2 U' `' |7 F! [7 W  M        bool added1;9 M& V2 V# I" s$ k; c1 b
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
. w7 V( r/ u. Q; i        {2 ~# |0 [& v( C3 z: \* Q
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
3 d: G2 H: O! d. c            if (theBody)
9 V0 X0 u; u. p1 a* l            {' ~9 u  V0 _( {  N. y  Z
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
, R6 N% v! g8 A1 w. K/ |* [                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;1 p1 w1 s% }# E% ^
            }
' {# [1 ^& \( t9 @        }. `# w$ h: f$ b2 }

; T1 h4 i5 |' M; }* y% W6 O        // Debug output
6 z, c- o3 U7 X6 \: t        print("UGII_BASE_DIR = " + sBaseDir);
8 [$ f5 s2 J" f$ u- M. ?, ]        print("Settings File = " + sCfgFile);
; _: Q- j# v" q        print("Input File = " + sPartSpec);
& _. ~# k" s2 \. X+ p& A& _        print("Output File = " + sStepSpec);3 M, d' k. S3 m. h- c
        print(sBodyList.str());
# W; l. U0 L9 k; n$ |9 W4 W" ~- y* b2 G( S9 L
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();- T! S: e) m. s8 e/ E
        stepCreator1->Destroy();4 t' B; ~% h' ?! k8 N6 J
    }
, `4 K: V! H( ]# C( w- G' ?# z, E9 \
; w( y6 w2 b4 j$ A) n. z% n; q6 R}0 t0 q. g& M# B" N7 G
$ m9 i/ v8 ?% K+ J5 Z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了