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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
0 C' P) ]* Y3 A4 F$ D

4 W8 B  B1 A& |# v! s' z* o
  H. T% P- o( P" NNX二次开发源码分享: 导出 step格式' f8 d$ \- j. O2 ]3 l% V2 b5 ~
/ I& l; {$ O! [( Z0 E2 a- l
参考一下,很简单哦!!
. `) U) {8 Q! U% Q# ]9 O  y3 H
3 e2 d2 A) {* t. t9 Y- D! ivoid StepExport::do_it()6 w- ]" \0 @: W: Q; M9 G. G
{
' }' v. m3 F# E, s( L6 }) |    std::vector<TaggedObject*> objectArray;
- G4 L5 U) s1 ^
- \1 b) S3 R5 H( W; Q& }9 I    if (select_bodies(objectArray))
  J. Y, _1 B% s, p8 |    {
' c' n; q. c" R  `! b        NXOpen::Session::UndoMarkId markId1;& B* W4 y3 n5 g2 i
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
5 x* V# x# L5 D- J5 `# s% {
. U& n- J5 H; L. G2 m        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");7 d3 U! q8 T6 z  ~. d. b
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
  U8 p: v6 v6 H9 ~+ B        NXString sPartSpec = displayPart->FullPath();
7 M' F1 d+ H7 e) G2 w! x+ c        std::string sFolder = sPartSpec.GetText();
  t3 ^! F  B6 w) e9 V        std::size_t found = sFolder.find_last_of(".");
0 j" q& n) x" A* o: u+ g        NXString sStepSpec = sFolder.substr(0, found) + ".stp";* d+ w8 S2 J- g. c, G: o
/ `7 A4 Q0 f  h
        NXOpen::StepCreator *stepCreator1;( m' x. @4 A0 Z% ^
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
% l" @& y! `6 {  z! G9 ?        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);2 t5 h% h: q* d; J% i/ ]6 b
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);6 B- X) a  c* I
        stepCreator1->ObjectTypes()->SetSolids(true);
1 z- V" {* R3 H* B/ c        stepCreator1->SetSettingsFile(sCfgFile);
2 h/ s$ S9 t) W9 D        stepCreator1->SetInputFile(sPartSpec);
# a4 J5 A% j' Z0 r7 Q; f, [( i        stepCreator1->SetOutputFile(sStepSpec);
3 M* f% w) z5 y- {% z        stepCreator1->SetFileSaveFlag(false);
& P( J& {$ c& N0 b( e! b1 e; j5 n        stepCreator1->SetLayerMask("1-256");+ T1 E; c3 H3 n( G
; ?) T8 j( ~* m/ X& M
        std::stringstream sBodyList("");6 Y6 \, X1 X- h0 v$ b
0 B$ B" d" O. U
        std::vector<TaggedObject*>::iterator iter;. m7 d% W5 i& E
        bool added1;" `% T% I+ c; E) @0 W/ _
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)% F, U8 O1 ?( u* S  _
        {
* f% i' T$ b  w# i. B, I5 t            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
3 L2 z- A+ ]; O4 M' E            if (theBody)* N! z  A0 J6 {9 @* K8 d+ r: {
            {! t# O2 K/ Y7 G
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);; W% ?: L. P$ E' S4 z
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;. X5 B: m- J0 P1 f+ [- k
            }
7 \* A! Y1 D/ S4 X- P        }
( J- K6 X' X! S0 j
' Q0 T0 l( @  C        // Debug output* r& @9 m7 Y2 |; i/ k; F/ \
        print("UGII_BASE_DIR = " + sBaseDir);
2 V% G2 p# m" j; [4 ]# ~        print("Settings File = " + sCfgFile);
. T) q4 B. m& W' g3 c        print("Input File = " + sPartSpec);
3 b2 m! w. T( n# O) G8 k/ X% X* a        print("Output File = " + sStepSpec);- |$ v" J* }7 n+ q) D% a6 Y, r
        print(sBodyList.str());
) ~) L* L8 O! J! Q7 \% ~+ o2 p1 g. N' q
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();0 x- R  o, _& v: l
        stepCreator1->Destroy();2 m9 _0 @0 t8 A. Z
    }
- r) r% l1 U- H( E: }+ c- z! Q
3 S: A" E$ }) y}
+ Y; ~5 C. t, d, z9 G, T
8 Q- u9 W: k/ D% j% N' c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了