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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

! Y  A% h, _! N' k" H  s1 N- n2 s# P- ]$ \. F! U0 m; g' z

3 F. @8 j0 _6 L. I6 Z! ANX二次开发源码分享: 导出 step格式6 W4 g- c4 }. s! {! S( |

' m% N  ~/ [2 l' w) H/ D+ q- S参考一下,很简单哦!!0 [6 p% w' B6 K, F, f2 |: T" q

1 O. w' f& x: j5 g* @2 c; Rvoid StepExport::do_it()
( W% K& B" X3 G% L& W# B( d( _{+ i8 z6 \  S" X% g1 s
    std::vector<TaggedObject*> objectArray;: }+ A; d$ l/ d% ?2 L! x$ Q
! g5 R7 o" O1 J/ |4 l9 y. I/ W9 C
    if (select_bodies(objectArray))6 W( o  \8 y7 p8 J  l
    {
1 I# g3 ?$ K9 y# e3 X5 p0 a4 J8 h        NXOpen::Session::UndoMarkId markId1;
3 y8 _8 E" u- V4 L        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
6 S9 `: ?7 W( ~: F5 X
1 L( y" E9 s- Z        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
7 P( p! z1 t2 k" ]        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
2 z( b! P3 M4 K: `( H; _& x        NXString sPartSpec = displayPart->FullPath();
) i$ n& T  G1 A1 Q7 o1 K        std::string sFolder = sPartSpec.GetText();
+ u( i" N" M/ @9 k# k        std::size_t found = sFolder.find_last_of(".");
& ]4 I% L. f' R5 e2 u        NXString sStepSpec = sFolder.substr(0, found) + ".stp";4 D/ G" y. w3 ?0 N; C* Y/ q7 [

# Z$ U. V( J  f; M; y$ ^, v        NXOpen::StepCreator *stepCreator1;
" B" p* ?9 T, Y        stepCreator1 = theSession->DexManager()->CreateStepCreator();
3 }& M# p  T% l        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
/ l" g1 A+ K7 V% q, z' O        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
3 G) {6 `! ]) |; G1 H. e; Q        stepCreator1->ObjectTypes()->SetSolids(true);* _7 |* t7 Z0 s- F. Y7 K
        stepCreator1->SetSettingsFile(sCfgFile);
- t- |, A% R! V4 x- H        stepCreator1->SetInputFile(sPartSpec);- q; j/ S5 I, L
        stepCreator1->SetOutputFile(sStepSpec);
  B7 `$ ?+ w7 z# l# ]; @4 s) g        stepCreator1->SetFileSaveFlag(false);
8 O$ s2 @+ b8 s' W2 |) F' d7 ?5 ]        stepCreator1->SetLayerMask("1-256");$ p- C1 C4 \. g  k
' l, i7 L- i1 C! O0 h6 P/ N
        std::stringstream sBodyList("");$ G  ~2 e* R# C
8 p( l# `4 ~- ^1 ], W' A+ G
        std::vector<TaggedObject*>::iterator iter;
6 e1 @; I6 o4 n) B2 ^7 D* K        bool added1;0 k2 `$ {( g. n4 j/ a: t; \- `1 z
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)% }1 R+ @% J5 B: }8 }! ^8 K
        {, w2 Z0 R+ v, Q# V! B
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
5 S' ~' P( O" b# f, x            if (theBody)
3 `( i" T% o  _  N! X            {
- d( x/ k0 W  A  R7 J                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
1 X* i2 d6 p& R, @2 p$ |, t                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;8 V$ T! \1 f9 Z1 [- w4 F
            }+ w! j$ h- O1 B
        }
& o+ M: U" L7 p( g4 P( v: X
" [9 A& S1 j& S4 u& }3 b  ]8 f. n        // Debug output/ q- e3 y9 f/ E$ b  V3 v2 Y
        print("UGII_BASE_DIR = " + sBaseDir);
3 m" A  m+ f8 n( r/ y  D        print("Settings File = " + sCfgFile);
/ ]( ]3 E3 E1 ]$ C4 g) i/ V        print("Input File = " + sPartSpec);1 Q# I: G7 [/ j8 s- w! c
        print("Output File = " + sStepSpec);
5 i; A: `- n+ Y, J, d        print(sBodyList.str());: R; D5 J# _4 c# A" G+ t

: K" @5 o  h8 \. z4 N+ H        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
  D; U0 q0 I! G7 r& j6 S" x        stepCreator1->Destroy();( q6 p$ w& R. n7 Y2 u! C1 Q+ S
    }4 y2 @& A- S$ r1 ~6 Z3 o8 U# u, D
. q6 r& J) g- v8 _0 z; s' E$ l
}
$ R  S& o" I# X' y& K0 d9 t
0 ~6 {/ B5 A* U8 l* C& U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了