PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

- L' f  h7 K9 w- n( ^  u2 P: P) }4 [, h, H# y

: H2 {# [) k2 }6 B! Z* TNX二次开发源码分享: 导出 step格式; I7 O" A7 V- E7 a% K/ \7 z
- L" O. [9 x; C0 i4 h- I, f
参考一下,很简单哦!!6 b: N, _& N: U/ T" W, d- [
+ h) g3 Z, v* f2 f
void StepExport::do_it()7 ~3 Y  S6 ~; _
{
7 W  z6 V) X4 D. c3 ]+ {    std::vector<TaggedObject*> objectArray;
6 b) C' O7 _2 y+ u& b6 R$ a3 C: ~
    if (select_bodies(objectArray))
0 y) X# @3 ?5 |3 m! H. J    {
! \- z0 W) i- u& b        NXOpen::Session::UndoMarkId markId1;% }! L) e* G( s; `/ P, W9 p
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
" s  T$ @& y0 k& \" v- ~, P. m+ C3 t) [8 d) a8 [( |
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");3 h+ V2 K/ v+ x+ Z
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";4 p8 @+ [3 a7 Z3 b/ q
        NXString sPartSpec = displayPart->FullPath();: O2 V& r3 R" d* `' R! P3 `
        std::string sFolder = sPartSpec.GetText();
2 s7 h+ G& X: J7 @        std::size_t found = sFolder.find_last_of(".");
# \0 x5 |+ C+ [3 _: |        NXString sStepSpec = sFolder.substr(0, found) + ".stp";- b" B0 o- c" [' @* P% C
/ q9 r  N6 P- x* L! h) l
        NXOpen::StepCreator *stepCreator1;
* t0 n- T5 K6 {% [( w! h! n        stepCreator1 = theSession->DexManager()->CreateStepCreator();
( T5 E7 B8 q: F+ l+ b4 O* e+ k        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);& r! g6 i; ?, i- M7 s" X: g8 T
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
2 t1 G* V4 u6 n+ h* {3 p" }. o        stepCreator1->ObjectTypes()->SetSolids(true);  X. h& p6 e; p; X2 M
        stepCreator1->SetSettingsFile(sCfgFile);! L8 ^; V/ }, i
        stepCreator1->SetInputFile(sPartSpec);' f4 ?, R+ k$ A2 ?# x1 @
        stepCreator1->SetOutputFile(sStepSpec);
2 m, y6 t4 U$ }. i4 M1 |/ L        stepCreator1->SetFileSaveFlag(false);
6 m6 ?4 D3 V) M/ H1 T. z        stepCreator1->SetLayerMask("1-256");- V. |8 e1 s( t3 n! E
# P+ K; A: W) L2 k. t! a# E
        std::stringstream sBodyList("");
( x/ e. c4 W6 x) }+ }8 a) e
4 d. m& M. C, o$ `/ c& t4 o' p) Y        std::vector<TaggedObject*>::iterator iter;
" s& p, f6 l1 q# o        bool added1;
. Q, X  H( w$ N        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
- _1 x9 c& |5 ?        {
# L( ]" X. R( z# P            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);" d( t! \/ G9 x* S
            if (theBody)
  T# z) `8 R3 R$ v6 V7 l7 @            {
0 ]; F/ Q5 [8 G3 B, d. _                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
9 }4 y2 b( E- k! H) ]                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;: e; T3 H8 g) S- \( M
            }9 E( I. A1 L$ s
        }% W5 j3 d3 M2 t# n9 u1 J
! {, \3 o5 H9 m- g, l5 j
        // Debug output+ B; Z. s8 u1 P$ F3 A, }! ]% @
        print("UGII_BASE_DIR = " + sBaseDir);
. \: [% r( p4 U  H& M6 k: O# o: d        print("Settings File = " + sCfgFile);
3 ~' N7 _- I3 B$ X        print("Input File = " + sPartSpec);3 M; K" D  d/ e+ H5 `5 g; X
        print("Output File = " + sStepSpec);
' t5 O& @( W: g) ]' e& e$ q8 u        print(sBodyList.str());
. H  u; Y6 N% l- m; T0 A& ^% \1 z4 E3 M3 `, h2 m
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
- K1 {3 C9 b2 X3 X        stepCreator1->Destroy();
4 ~6 f! a# k, D0 ^- G    }9 @; i3 Y; ^1 g$ m3 Z

1 x" _4 o7 n5 l0 a( h$ `4 [}
1 t  d" P) v5 {# _
5 ]  O1 J4 ?; v; z$ x8 ?1 _
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了