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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
1 D! \; O! j9 ]; n. O

' F2 B6 N! N0 y3 _1 u; v0 O8 L. `8 I; \& D, `' D
NX二次开发源码分享: 导出 step格式& K% t1 p; \$ _* v* G. N
$ i4 P5 c& t% i! d8 c
参考一下,很简单哦!!7 Y: }" w( }: w5 E% V- e

/ Q: Q3 H' o4 p) M% |0 Wvoid StepExport::do_it()
# Y& }- j" B6 `{
# l( n: ]- ^. G8 d7 `' r  V    std::vector<TaggedObject*> objectArray;
7 X/ _8 s0 Y( G( _+ b$ _
  l2 K. u7 K* F3 X    if (select_bodies(objectArray))
, o8 y# _- e  a# t5 J( r  Q5 w    {- b( I7 ?/ g, J$ P1 f% b* @; v# K6 r
        NXOpen::Session::UndoMarkId markId1;
+ H/ X* c& |- @3 f# S9 Q        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");$ N: S. \" l9 L( Q; }

5 \# s7 i0 L; Z! O( O; _4 t) }3 c  u        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
' C) `- w6 Q+ v+ t        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
1 A3 R# }$ |! f# u; X* O        NXString sPartSpec = displayPart->FullPath();: s( y6 e3 t: S" G1 j4 x/ i
        std::string sFolder = sPartSpec.GetText();" O1 e# m" _( z& _" _0 }6 q
        std::size_t found = sFolder.find_last_of(".");$ R2 I. G9 X3 N! f/ t, K9 {
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
9 U3 G/ k% M8 C! m5 p
8 x: M+ \( u! E6 ], L: p) g        NXOpen::StepCreator *stepCreator1;
& R, o; S! `, v! L        stepCreator1 = theSession->DexManager()->CreateStepCreator();
3 ~: `# ?1 E! [3 ~        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
0 |( K6 ~1 P0 w2 d        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);" x! y- _' W. k6 `
        stepCreator1->ObjectTypes()->SetSolids(true);/ G8 R$ {9 q( D: h
        stepCreator1->SetSettingsFile(sCfgFile);
9 a7 G* m  W1 x* f& G. |        stepCreator1->SetInputFile(sPartSpec);
$ U! \5 G; F) J7 ~0 D0 a" }        stepCreator1->SetOutputFile(sStepSpec);) b) H  _6 M# T
        stepCreator1->SetFileSaveFlag(false);/ e( K0 z( L9 }4 o# L* j3 d
        stepCreator1->SetLayerMask("1-256");
1 j$ |7 ^& e. Z& G
9 i0 u4 `3 q& e+ y5 ~# H        std::stringstream sBodyList("");& I! \7 \& h! i! I+ l

' s6 H5 \1 e$ K* n: F' q        std::vector<TaggedObject*>::iterator iter;
2 W, K0 a9 J, J6 P0 P7 t9 [$ ]: U        bool added1;
/ A6 }$ q4 O4 `        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
5 w) V5 \, g& ]+ ?' t        {
( p9 O* C, K5 ~2 E% h. z            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);$ q7 _! [3 I) h7 z5 c" `
            if (theBody)
6 O& T! W( x6 N; u            {
( p, B# U2 N; u' v( L, W                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);# v( p& ~, i! {6 o9 F, a# g& j) ^
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
6 E2 ?! `4 {# k$ `& s            }
+ T$ B1 q! ~7 u2 C  a+ v* A        }
* _  }4 h7 J* o
( u" Z% ~! j& d2 T3 u2 g6 Q% l        // Debug output
! U! b3 Q5 j) P3 S1 p# J1 ^3 M0 L        print("UGII_BASE_DIR = " + sBaseDir);0 f2 A6 I+ S1 u5 ?) @9 s6 S* B
        print("Settings File = " + sCfgFile);! C- y$ `' \7 n! Z
        print("Input File = " + sPartSpec);) F) @7 Z4 R/ a' {) E! g# m
        print("Output File = " + sStepSpec);8 P5 m0 W' a/ i; K# G1 o
        print(sBodyList.str());
" \9 Q( Q4 o, P' T0 Y
& {% H; N2 h- ?  B$ J        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();: L& P# D% O$ R6 O! L2 V- U* ]
        stepCreator1->Destroy();
' Y# L: a. }- Y/ ~9 j& h/ [    }
6 s! Q4 b% o( X: Q) D. x3 U. D  Z1 q/ g2 s4 c+ L
}
' [# s$ g8 l& h1 P0 Z$ i  _6 Y- v! d& R2 x5 A$ y+ a* w$ g' y+ I; X
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了