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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
" y& z7 v' ]1 u2 P

7 X' Z: S. A, e6 Q0 b1 V5 [6 L/ x  i" R" D
NX二次开发源码分享: 导出 step格式; [8 i7 J9 V/ n# d! ^
' Z/ N; d; ^$ W
参考一下,很简单哦!!
2 M( k6 j( m2 g6 V0 y
1 r2 d& u" J1 W, C0 L0 \" |& Z5 Gvoid StepExport::do_it()
/ G, W' W4 A7 N) p6 n9 _{8 ~# z/ y& G, d. Q, y+ n
    std::vector<TaggedObject*> objectArray;
: H5 ^- g1 r& Z8 j2 a
4 Z7 |! B6 Y2 S% E( j    if (select_bodies(objectArray))
0 G2 g. v9 M# e0 ~* @1 s2 e    {& {& l4 o! y3 S
        NXOpen::Session::UndoMarkId markId1;
9 T! h! z# {/ d( P/ z" W        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
; V: N+ W- y( m; E* Z3 r; M
3 w3 z  q; S1 j- D; A5 W9 v        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
0 I6 u# ]# R. L9 v# }5 T        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
# s1 }# C6 r- f, `, E        NXString sPartSpec = displayPart->FullPath();
8 F) |! g9 ]( \, X        std::string sFolder = sPartSpec.GetText();
2 s/ K0 |2 a# E5 {9 `! Z; @# T        std::size_t found = sFolder.find_last_of(".");2 w0 r9 e7 }- _1 S3 F$ h* Z, g
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
4 I& v; q; l* _# ^2 q
/ c+ D! N. M, W# A. s        NXOpen::StepCreator *stepCreator1;
- h9 i8 X4 }7 {4 b2 n' w. |* J        stepCreator1 = theSession->DexManager()->CreateStepCreator();9 Z; R. |4 C' o: W' A
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);% @% i+ K- E& S6 m( b9 K* f
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);. d# [6 B2 K+ M/ {+ H% ^, X
        stepCreator1->ObjectTypes()->SetSolids(true);
  S7 A' U0 _! R- H        stepCreator1->SetSettingsFile(sCfgFile);
* U, J: P  k; \0 X4 ?; @: V0 t        stepCreator1->SetInputFile(sPartSpec);' F: j' P0 o# i: z
        stepCreator1->SetOutputFile(sStepSpec);
! s- X% T( o1 ^, y        stepCreator1->SetFileSaveFlag(false);
* b+ x1 ?/ m% z  C6 Q' S        stepCreator1->SetLayerMask("1-256");
+ O# M+ K3 l6 m2 K; ~
7 x3 N* D& \0 {        std::stringstream sBodyList("");) G& O- o6 h- x7 Z
* I0 h- d5 s2 @4 @2 d9 B9 J
        std::vector<TaggedObject*>::iterator iter;+ G) D. K* g4 _% a
        bool added1;- X# l- N1 ~) w' S3 h
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)  ~2 z1 b) \9 e8 M
        {
5 R3 K; r* B; B" W; s" Q% j            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
% K# J& _' l! K" P) ?5 W            if (theBody)
3 o2 t0 _3 `2 {. r% A: \3 w' b            {1 T+ y& t9 s. t5 K
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
/ w+ ?& }% k- t) h                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;+ Q+ D3 V" T3 {  y
            }9 r- E0 X4 u: O/ b6 ~" V
        }0 j; ]) j& A6 b& Z7 r8 e
" e8 `4 v2 c; P
        // Debug output0 L3 F. j+ C: t$ K
        print("UGII_BASE_DIR = " + sBaseDir);. h, |. W* x2 O2 d% H$ y  e
        print("Settings File = " + sCfgFile);, D  D% b8 R5 T" \, @' Z2 K! y
        print("Input File = " + sPartSpec);
& _8 h0 R% _: I  u' Y3 |& d        print("Output File = " + sStepSpec);
. ]" _- m+ G* f) [0 }        print(sBodyList.str());( r9 M$ ?' J0 D  z6 w
- j: P, l# y3 F0 S, h5 S8 r
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
. C& w' c5 j% [        stepCreator1->Destroy();
5 Q% t" M: S! \' n. Q8 C    }0 r( r) U; k# W" `0 W; x9 O7 s

  s1 }9 I9 `3 w9 P}/ o& u4 }  O' ^6 F

% I$ l6 f' |2 m# M% q6 D9 [7 f0 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二次开发专题模块培训报名开始啦

    我知道了