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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

6 h' ~1 W5 U. |: H; R0 y
, ^8 x4 M. q. |' g; j0 e5 \/ I1 }
+ B: _! o4 Q, ?1 k# i& T' l. p/ GNX二次开发源码分享: 导出 step格式4 N) e6 l! m( a) f$ q

1 r! c+ u' R; P2 C: `4 F参考一下,很简单哦!!/ b' x! P& V* i1 e2 o
2 Z6 C  l4 e: S0 n
void StepExport::do_it()
+ {1 w) j3 P; x{
3 q" b% j, ^3 M! w* |    std::vector<TaggedObject*> objectArray;0 m/ |6 E9 [' x. J( l! c

9 m: I: j* {/ a' t2 r" W4 Y; \    if (select_bodies(objectArray))
2 R: [8 F' p3 @; V" E* e8 d    {& ]! T9 ]4 i; N2 d3 x& |
        NXOpen::Session::UndoMarkId markId1;
1 B# L+ y0 u' e        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
. F: ]- v* m5 z6 D/ ?# I6 ~& d  }/ z; C5 A
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");- ^) i& J& ]% q) Q8 K2 s
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";/ a: L6 ~8 a# m! [. b
        NXString sPartSpec = displayPart->FullPath();
3 u7 s9 F6 H  x9 j. N        std::string sFolder = sPartSpec.GetText();, @! d% `) W8 I* F
        std::size_t found = sFolder.find_last_of(".");
# ]+ t; c7 z  g4 Z% M9 C5 i        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
) |9 j4 U9 u) P+ [/ d& I' l& j+ N: \3 K- [
        NXOpen::StepCreator *stepCreator1;/ N' V) n* e6 @) U8 S. O1 H; O
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
  Q' ?0 B) C; b( l6 R& d        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);) @* H. e6 t: R
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);, `( L7 X# A& s( }: y
        stepCreator1->ObjectTypes()->SetSolids(true);
+ T" f# f5 E5 P* b" C        stepCreator1->SetSettingsFile(sCfgFile);
  ?4 R# a9 b4 B; r& ]" f        stepCreator1->SetInputFile(sPartSpec);3 v0 f& Y+ Z/ k
        stepCreator1->SetOutputFile(sStepSpec);
: o. C  c- c' I% I3 o        stepCreator1->SetFileSaveFlag(false);4 P$ X/ ^. Q, G. k% |7 [- L
        stepCreator1->SetLayerMask("1-256");
; |) y. G' o4 n/ w; D  U) x0 I
; p6 d, d; J/ O+ j7 E, V, F( n6 o" o2 i        std::stringstream sBodyList("");9 O% V/ I: G6 Q5 {; [: U7 }& [
, j) S2 ?  @0 e2 z2 V" V/ Q
        std::vector<TaggedObject*>::iterator iter;
7 b) `$ Z' y+ y- a% S5 c  ^        bool added1;) q. w4 p9 r0 P2 E5 z' Q
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)9 m! e' }! e+ n2 U4 Q
        {( B, ?. o  E; c% F# s* c" p* B6 m
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
' b- b% w4 j; Z. ?  N9 b            if (theBody)
# U; K2 R9 C) @6 @* ?* x) x4 S            {) W# p( D0 Z% \8 r
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
- m- ]! u1 a+ ?) x" T) h- [                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
) H7 w2 [8 }4 u  r7 T            }# `" r8 d3 t8 h2 U) ^
        }
* h1 `0 p& \$ J2 D/ ?3 f. Y+ V( u6 Z' |  g3 y3 a/ e& a0 N( T8 U& R- W  G
        // Debug output
9 Z% g; i0 U" }$ t" y  l, X        print("UGII_BASE_DIR = " + sBaseDir);: X0 L* S3 f! G* l; K+ m8 c
        print("Settings File = " + sCfgFile);
; q6 Q7 j, }$ o; e9 h* k        print("Input File = " + sPartSpec);/ K: M1 p# A% R. @
        print("Output File = " + sStepSpec);: |" n$ ]" i8 n- m* i9 u
        print(sBodyList.str());! e; U& p; E0 Q( ~% N1 }" n
, {& {1 g$ \- R
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
. Q- M6 i6 S3 M1 k6 L, Z        stepCreator1->Destroy();5 M; B- a4 y* J7 b* l8 U% N  m
    }& P6 F0 x! }( l5 J4 K' M$ z

5 P% H7 y( v6 ]4 ^2 D) `& Z}
) ^; i, r6 p) g4 X, C+ Y8 h# f. I& W, D* x0 O
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了