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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

% S- K  x  ]: ?" u7 }+ x) V- Q
% o0 A3 ^, y( @1 `; K. R% k
NX二次开发源码分享: 导出 step格式
4 O' P+ g5 I/ R( n. Q; S6 H+ [" a
6 C) ^# z/ w8 D1 R6 Z) b. z参考一下,很简单哦!!8 j: L0 r! X5 `5 E
: i; u( I8 N0 }. o: I  j. g1 J! H' [
void StepExport::do_it()
4 J- o/ i3 ~& J/ Y) q9 |- \{
$ {5 K5 Z8 o. f+ F2 E5 T    std::vector<TaggedObject*> objectArray;
6 M8 T9 u+ m: g6 O. r
! z5 W$ j/ ~1 d6 E( n5 x& j9 U8 {    if (select_bodies(objectArray))
5 |* z7 S4 e" Z- P    {* F" a. I5 j% p4 m0 f) S* e, ]3 D
        NXOpen::Session::UndoMarkId markId1;% V  T: J' [$ c$ G5 k
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");& b6 S2 F: x8 a' Y7 A+ |
7 }# l* i9 |" X) }
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
6 Z0 \% K( Y' M( }- Y& A0 b0 {        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";1 i# o; V3 x. \6 k2 P: k. R+ Y
        NXString sPartSpec = displayPart->FullPath();
; l6 |4 N2 |9 l6 z! @        std::string sFolder = sPartSpec.GetText();: C; o% [7 L; h. B. U- m; X+ n" Z
        std::size_t found = sFolder.find_last_of(".");# v: @* `; C6 i2 Z, {
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
+ t7 G& s- b4 Z( K
' S6 q8 q" n& a        NXOpen::StepCreator *stepCreator1;+ I' h- I1 H  d+ y. A; i) [0 n1 s  y
        stepCreator1 = theSession->DexManager()->CreateStepCreator();" c+ F9 ?: s  [! {, v9 G; i
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);4 S) H6 S" N% k1 T
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);' T- N! V2 w& ^. W8 h$ J1 R
        stepCreator1->ObjectTypes()->SetSolids(true);
3 E: `% x  W( y7 K3 m# |6 v        stepCreator1->SetSettingsFile(sCfgFile);2 N$ o1 ^/ `1 [
        stepCreator1->SetInputFile(sPartSpec);
3 W- @$ M7 Y* e2 c" D" f: d        stepCreator1->SetOutputFile(sStepSpec);
5 N$ L! K3 c0 H* r6 i/ W        stepCreator1->SetFileSaveFlag(false);
+ V. h! w; `$ ]& S4 t& {        stepCreator1->SetLayerMask("1-256");7 e2 H6 y5 Z* \8 W1 ?' B+ x

* f$ m- W% E5 O# m        std::stringstream sBodyList("");
/ Q0 v- a" Q& y5 J) }$ w+ D% J- o2 ~
        std::vector<TaggedObject*>::iterator iter;; ?1 d' I8 H% _/ T$ [% }2 P4 a
        bool added1;
, Y$ D- `. A" H        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)- i* [7 z( ^2 E( E) a: b7 x, M
        {
6 C% k1 w- W! a# Q/ T  n7 o7 p" f            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
0 n# |; n2 S/ @8 P' X" E' Q            if (theBody)( R7 B: D4 h. W: \' B# M! r" }
            {2 Y% O! [3 H) s! [; \' F
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);* H) ]/ O- j) \( B# g4 K2 @
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;1 e6 \. B  C! Z  G% W# s% q6 o
            }/ q) m0 h3 r* m  _
        }& p! T6 y& p) Y0 g6 }+ ?6 M; E& J8 R+ m

) |; I8 v9 \# \! W! u* K% Z        // Debug output0 d  ~: m8 L6 ]& L' m
        print("UGII_BASE_DIR = " + sBaseDir);2 J6 e% Q) g9 ^2 K" F) V2 ^# Z
        print("Settings File = " + sCfgFile);
2 J$ _) ?; i' [' h( V8 Q- F2 i; i% L        print("Input File = " + sPartSpec);
8 U  g7 @  O6 J! E        print("Output File = " + sStepSpec);' ?; f2 w! P0 O9 z- l6 Y9 f( _% b
        print(sBodyList.str());! l" \7 E) h0 h! g& O; C
" V, O; [' k. ~$ n
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();) P* Q; a) B  h/ i# c* b; Y. J8 l
        stepCreator1->Destroy();
' F+ f) |% s+ d8 |    }
. h( X3 b5 f. p8 o/ B3 D/ L% l: v) C% W# D; I& J! H1 n6 b
}: Q* g  ^' J+ Y7 J0 d
& }. j$ _9 G  q- O7 _3 n5 ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了