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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

* ^/ g4 e' y1 T! y. r5 q0 o) V1 `7 Q; C" D* t' \+ d

4 `1 g6 A7 L; JNX二次开发源码分享: 导出 step格式
( v1 l- |0 @9 G0 R, o1 S
+ }( M8 w8 M# q+ u! Z+ D" F4 ?" r参考一下,很简单哦!!
& y+ f  s1 t/ ]. j$ @5 G3 i9 O  o
void StepExport::do_it()
( m2 Z8 {$ z2 @1 l{: A* `" ~' \# w& G
    std::vector<TaggedObject*> objectArray;
5 o& P  ?# n, `* \: \* _$ x( P7 Q1 Z: E; o1 u6 ], a; T4 r- G6 X
    if (select_bodies(objectArray))
; a! j+ q0 @9 v    {
0 g) N$ {: w6 B  a9 n; d: ]/ R* A        NXOpen::Session::UndoMarkId markId1;2 E$ u+ l) Q8 U& c; @
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
, w0 T, ^$ Q! a( [' |% s
, u) ~* G$ _6 Q) {- W        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
- [6 G; a5 F2 M" M1 q0 f* X        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
$ b" X+ D! a- m8 G  N9 K1 k1 i        NXString sPartSpec = displayPart->FullPath();3 y9 k! h2 v( i1 I( R& J! _2 n2 o
        std::string sFolder = sPartSpec.GetText();
/ m# K2 G- H6 b$ u" Y2 S        std::size_t found = sFolder.find_last_of(".");
8 r1 l* X5 J( c0 X4 O        NXString sStepSpec = sFolder.substr(0, found) + ".stp";: X$ h+ F) [$ d+ `5 ~
( V; P6 F! |, e% _  v! o" ~7 s
        NXOpen::StepCreator *stepCreator1;
9 M, X+ L( T; J2 ~# P        stepCreator1 = theSession->DexManager()->CreateStepCreator();( k8 t, [, s/ n. ^, u& q# ?. a
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);8 S+ G, i' f/ n" `
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);( o) N6 W6 S3 G- @% l
        stepCreator1->ObjectTypes()->SetSolids(true);
0 {. B' X" O; b2 d1 {) d: [4 C        stepCreator1->SetSettingsFile(sCfgFile);6 @/ @0 r! {/ E& l
        stepCreator1->SetInputFile(sPartSpec);
0 t) y0 I3 A5 K3 N' p        stepCreator1->SetOutputFile(sStepSpec);
/ m3 X2 d" Y& L; @0 M        stepCreator1->SetFileSaveFlag(false);9 N* c* P2 `" Y3 c# e
        stepCreator1->SetLayerMask("1-256");6 j  W( x# L/ g; m

2 G$ N" ?, y2 T" b& g. k0 o        std::stringstream sBodyList("");
( Z& n% r2 C1 O$ C4 e! m  t% y% @4 |1 g0 s/ {8 V5 U
        std::vector<TaggedObject*>::iterator iter;" T' @, Q& p( u/ n
        bool added1;
' A% V  R2 q5 m- s# L        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
9 v/ t0 \$ x1 W        {
4 f2 I2 ^# f: o# {2 J6 P/ r+ Q3 a            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
. R' p" s) u+ P- m; ]2 D" ]  ~            if (theBody)
: w$ |( x0 Y4 C! v2 R& }3 V            {; g& @2 W, R2 b" r( a6 u
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);" ]; v$ S: H3 j. N6 S- }
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;) @: _( G" y& M; t' t1 T
            }
4 f3 _7 }7 T6 J        }
. ^0 j2 v6 P/ N. N' M* d8 {0 u
        // Debug output
* s$ ]$ j, _3 I3 Q/ w# i4 ^        print("UGII_BASE_DIR = " + sBaseDir);
7 N$ T) Y! l( }5 J        print("Settings File = " + sCfgFile);
4 `& B, M! }3 w7 _        print("Input File = " + sPartSpec);; a: C8 `: I# _
        print("Output File = " + sStepSpec);
0 }3 D$ P/ v+ b4 u! o$ X) ~        print(sBodyList.str());5 G4 E, `. H  A0 e/ f
- {8 Z' M! D' e$ s
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();! j; f1 Z/ V1 t4 o0 r8 O
        stepCreator1->Destroy();
8 ]8 u2 }( C* D7 L    }; W- n! W/ W$ c9 Y7 ~' I4 S" J8 x

2 a; a2 }2 _( p& I6 T}
! l; ^& `: Y0 F, A1 J% b1 k. p
* a; l0 V5 w, z% ]4 g  M
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了