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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

" w9 d: D% y& ^6 J- Z* t4 r( n1 q3 P; X/ Z' C# `

0 H1 ]. U8 e; r& X& |NX二次开发源码分享: 导出 step格式
: z$ p2 c  T0 ]1 k, P9 u( G9 H- U
参考一下,很简单哦!!; P# j5 S6 L' U" D9 t! t
; y% c' N% A& W/ M# x" a" G- m( [) `
void StepExport::do_it()2 ]) i" n" B& |
{, H, e- r. f0 j6 r# W' N* J& ?( o
    std::vector<TaggedObject*> objectArray;
5 F) f- x; K1 X
$ o9 d" e& W! d+ x+ _    if (select_bodies(objectArray))" \0 q6 a4 k5 X7 T
    {
8 Y  r$ w* a2 r% |        NXOpen::Session::UndoMarkId markId1;+ }. ?% A6 h7 C
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");& J% S. O1 Y" J0 x
, R# V' ?/ M1 ]+ a
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");& Y- A! i5 O% l8 j. k0 D
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";& B7 d  S& U+ M; B
        NXString sPartSpec = displayPart->FullPath();
1 c2 l( s' [# z& q/ H3 z8 `# t        std::string sFolder = sPartSpec.GetText();
, C1 R, ~/ @8 _2 ~2 u1 v) \; v4 x        std::size_t found = sFolder.find_last_of(".");
$ K) e; W4 F, n) u. l$ `        NXString sStepSpec = sFolder.substr(0, found) + ".stp";; h( X1 W: R; D" u
4 h! T2 p% J' M9 A0 }0 d. r, @0 m. t* Z: D
        NXOpen::StepCreator *stepCreator1;
% t. J9 C& s, Y- p& t        stepCreator1 = theSession->DexManager()->CreateStepCreator();5 P4 P" f( I4 \% ]3 C
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);9 b. ~  E( k  B, R1 p
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);5 ?8 Q& R# l1 m7 P+ `& u
        stepCreator1->ObjectTypes()->SetSolids(true);4 T/ |3 I3 ^( b- m7 x
        stepCreator1->SetSettingsFile(sCfgFile);
6 N/ m0 \( I7 p' a! \* ~8 G        stepCreator1->SetInputFile(sPartSpec);# |; b3 g: o* U+ N4 N& n
        stepCreator1->SetOutputFile(sStepSpec);
' H' ]2 _- W3 ~7 ?4 o) D        stepCreator1->SetFileSaveFlag(false);
6 U4 P" ~5 x5 u- A' `        stepCreator1->SetLayerMask("1-256");# o+ k. m- D' Q; Q
! T; ^* w3 Y% V$ d- V
        std::stringstream sBodyList("");
& O  g4 g0 d% S! ]. }: \. x. s8 O3 G0 M* M4 O8 W( _
        std::vector<TaggedObject*>::iterator iter;) W' m% E$ l0 C0 k' t& h
        bool added1;2 O# O! J7 P5 D0 ~4 r4 i
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
, Q2 n5 P2 B7 M        {
' }3 q. y( n( T) J            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);* e( ^! z2 j' i# U  c) i# i
            if (theBody). ?% A& Y* a) k7 e2 E* l
            {
$ P' S% F' B, w# @1 `5 H                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);2 j7 R. n' W' Z( A0 ?
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;* V+ @' l2 X" V' H0 S5 W
            }5 E* E" h0 h% d, y0 c$ j# A
        }8 L: H( Q. N0 `9 o& r. t2 Q2 w# j
7 g1 _8 X/ g0 q$ U3 G2 K
        // Debug output2 e( {, _9 b+ v5 u
        print("UGII_BASE_DIR = " + sBaseDir);
* p% y0 R0 q2 u6 d        print("Settings File = " + sCfgFile);7 ~) n  V3 a/ m7 ?* t
        print("Input File = " + sPartSpec);
; D( O) q+ x; s; p        print("Output File = " + sStepSpec);
5 U, b7 @3 G) {8 \% O7 z        print(sBodyList.str());
' N, u0 c" b- q( @/ N: Q- w$ f6 p4 H* `, R) g) D
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();& C5 c" ]- m  U) i, k9 P
        stepCreator1->Destroy();
! a& S# U$ Y4 y( b4 t$ z+ c1 i    }
9 w! N: x+ A% w
, Q' L  z% e0 o}
% F. x5 |, d7 M" u8 r' C7 J3 ]2 V" @8 {$ m9 ?4 b- e
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了