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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
! {% p, O9 M( ]) p3 b  ?/ D

7 }4 w% o9 z9 G3 m- ^4 U+ B9 c3 H; I% e; M3 @% ^! R
NX二次开发源码分享: 导出 step格式
% a! G9 z8 l' }. y2 T
; t  @. G6 K* h( a/ S8 C参考一下,很简单哦!!
! R2 Y; e$ ^9 l7 Z( S5 \& G
. @! P5 _1 A) Y  X8 K+ Q- G: L  Bvoid StepExport::do_it()
% z2 X0 _6 |1 b+ q" v{* D/ U+ M( t3 M& ^9 `8 Q1 F
    std::vector<TaggedObject*> objectArray;
1 q3 W& I$ N; n- a) F, n' e6 s$ n4 d
* J' e& G2 ]$ g    if (select_bodies(objectArray))
6 X& d. Y7 X- y2 u* a    {
5 o7 V: ~* G. C0 i        NXOpen::Session::UndoMarkId markId1;. G& b' w6 j" |, m; F% U( Z6 J! f
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");' C2 I& N9 [" Z: h" }. g
% H7 S- _  n3 J! @9 i
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
' e) u5 w. N9 [$ X; T0 T  U' Y        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";& z( x+ ?' C& l# l/ x- _) r% T
        NXString sPartSpec = displayPart->FullPath();
+ f. p! s1 |6 f' Y        std::string sFolder = sPartSpec.GetText();
$ `1 g' W  n' g9 \% u        std::size_t found = sFolder.find_last_of(".");- w* R5 ]" `3 u9 [7 R5 _# Q
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
0 j8 [* i! ^; o. i
9 a! i4 X" m( ]1 O/ t3 ?        NXOpen::StepCreator *stepCreator1;
" T2 `+ c5 i/ E0 M' D        stepCreator1 = theSession->DexManager()->CreateStepCreator();  ~' ^7 [4 ]( v; a
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);3 h9 k- r4 F$ [% [
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
; E, X3 K- ]2 W3 _" S  b+ V9 h* Y        stepCreator1->ObjectTypes()->SetSolids(true);
8 ]8 b: y- B. E+ f, Q        stepCreator1->SetSettingsFile(sCfgFile);
. o% n4 T  y( s, G4 f: A        stepCreator1->SetInputFile(sPartSpec);6 k% W3 }. F, D1 A
        stepCreator1->SetOutputFile(sStepSpec);
: p% P7 I, |2 x" @( j        stepCreator1->SetFileSaveFlag(false);: P0 _+ y  r6 v! y1 C- o5 u
        stepCreator1->SetLayerMask("1-256");7 [" F) Y' C( A

! d$ e6 {) Z! C& b, m$ Y' e. W& K        std::stringstream sBodyList("");/ |5 A4 c& a4 `' J) m7 ~9 |- R
, S$ j2 p( t( Q+ G
        std::vector<TaggedObject*>::iterator iter;
9 T0 Z8 h0 p  v( x! ^4 u2 P9 }% D        bool added1;
  a$ K1 o" o, {# P' N" A; r  y        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)' J, o0 R8 X, I% l  E( j. }
        {4 S4 n! D' r& l, p) x# y& G
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);* t2 A0 B! P' z& a% z* S7 b3 x
            if (theBody)
3 f* A% y2 n, m6 V            {
% {8 q3 S6 n9 ]# n" t2 Y5 `                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
9 }0 p$ D8 N0 [. ]3 [                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
, j/ j* q+ C! o' _            }; x; S: d/ n0 T4 T
        }
& l& V' v; u' \* ]7 u
9 {, R0 \) s* H" j" r* _        // Debug output
. s2 g2 b" U  d7 J        print("UGII_BASE_DIR = " + sBaseDir);
, T/ Q+ c, \( y) V; @) j" ^        print("Settings File = " + sCfgFile);) H6 x  G9 b& G( o% r3 i
        print("Input File = " + sPartSpec);" r8 Q+ ^4 Y% Z" x
        print("Output File = " + sStepSpec);
6 D( Z" F! Y# t! @( f        print(sBodyList.str());$ L' s; T/ h7 Z& ]

- b: x8 y9 L$ E1 X2 W, \% P# r        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();6 x: k' n; y0 H, C/ `3 d. f) z' K
        stepCreator1->Destroy();
( z9 w+ i5 W& S4 C( u0 ~    }
6 U$ \1 v* q) t; O, F% y
% i1 H+ k% z& z}. I7 A. U6 t- C2 X' Q
  r; N: w  ]7 k( F% \5 ?5 k: g9 X8 M
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了