PLM之家PLMHome-国产软件践行者

[二次开发源码] NX二次开发源码分享:选择体导出Step格式

[复制链接]

2016-12-25 10:40:44 2699 0

admin 发表于 2016-12-25 10:40:44 |阅读模式

admin 楼主

2016-12-25 10:40:44

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

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

x
  c$ U1 R7 V$ Q( f4 X
NX二次开发源码分享:选择体导出Step格式& A4 H8 ]" {; n

# Z8 H4 P( l  d" W7 L+ E' {0 Dvoid StepExport::do_it()
! o4 s$ l( u8 D3 a1 K- K{
# |4 w. ]: s' y& C8 H) c5 Z$ d- x    std::vector<TaggedObject*> objectArray;
0 O9 L: K0 J5 ]" X7 _2 W4 `    if (select_bodies(objectArray))
* h% p) r! W- `    {( m; }/ |6 G' i) Y
        NXOpen::Session::UndoMarkId markId1;1 @6 I) S! r1 S, F# E, V& P% ]8 ~
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
. r5 ~) ^5 z& l        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
2 C! i: t4 |& ~0 q" E2 ~% \        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
3 k: J/ y7 `6 f2 W4 \' F        NXString sPartSpec = displayPart->FullPath();
& }5 f+ r- g3 ]0 l4 w$ T        std::string sFolder = sPartSpec.GetText();
% N/ |1 r4 q) x& [& I# g, z: c3 M9 W        std::size_t found = sFolder.find_last_of(".");: {) q1 @" o  j) x
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";6 U) u3 j6 i/ I5 E; `. f
        NXOpen::StepCreator *stepCreator1;, \, Q$ v* Z0 K1 Y5 U
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
6 ]8 q/ u9 }7 h# A. y        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);7 |( G& c1 y* ]; V* E7 w! X- F( x/ U- h
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
1 Y/ k* S8 P5 r7 U* C/ H; D7 U        stepCreator1->ObjectTypes()->SetSolids(true);
) Y/ l; Z( T) X' H1 G, E        stepCreator1->SetSettingsFile(sCfgFile);
+ G. _' R6 V& a* C        stepCreator1->SetInputFile(sPartSpec);
5 \/ R/ ^6 y8 j        stepCreator1->SetOutputFile(sStepSpec);1 R* [# N8 J/ ?
        stepCreator1->SetFileSaveFlag(false);
( j( _2 S# y& l% y        stepCreator1->SetLayerMask("1-256");
- z: O6 d9 B4 A& ~. o        std::stringstream sBodyList("");' m/ a8 ~5 k* p! O0 E
        std::vector<TaggedObject*>::iterator iter;' I+ x/ x, T+ p5 X
        bool added1;
0 F( r7 w. E; Y" N9 V3 A        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
: X$ e0 m8 v- r& y; Y        {) T$ w, K  L9 V* t* t! h, w6 q
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);3 l* t8 Z) Q& _3 \
            if (theBody)+ {" q' _7 e, M4 x* U
            {1 b1 g$ O: i; E. Q9 L( _; R& g, ?
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);; u7 E+ b( ?2 D& N  L3 m
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
+ |6 o0 m1 `- @# U0 w- O' k" T) v            }' E0 C) G8 e5 @* _* G
        }
% p. d- `, x1 L; z6 u        // Debug output
# S* G3 c/ ]- X8 F) ~" \( O        print("UGII_BASE_DIR = " + sBaseDir);' T8 H2 S5 u! Q+ c. S
        print("Settings File = " + sCfgFile);( ^( j9 l+ F+ B" p/ P3 {: s* g
        print("Input File = " + sPartSpec);
0 F1 V2 C1 O1 W7 x        print("Output File = " + sStepSpec);
4 i  Q, J! v. P- o' R  t3 B        print(sBodyList.str());
* e, |( @5 Y  }5 R% ~+ z        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
4 U/ n0 [& N, k8 S  }        stepCreator1->Destroy();
8 n+ Y3 d% D% Y; l    }+ S2 b! g8 G1 R# ^
    6 c- j# k. g& q% i. N
}
" I2 |7 Q/ d# u2 d! h5 b6 X
# _5 X/ {9 f) g7 r3 B! u2 C2 ]
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了