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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

$ \( L& R- W& l, ]0 W2 t0 \+ K0 b& t

+ t; v  A. w0 UNX二次开发源码分享: 导出 step格式2 ^+ V6 K: n0 K# N6 ~! P1 Y1 [4 K

6 ~1 a& r/ y1 `; v& _参考一下,很简单哦!!
. N- C' w! U7 z7 \' B1 B4 Q7 [: q) b. X- I
void StepExport::do_it()) Y( z* L, q5 D# k; R: [
{" E- w- D9 t1 s: y; h$ v
    std::vector<TaggedObject*> objectArray;/ C/ a3 G2 ]% D: n. i5 t

2 S) d  Z- h% g5 L+ `/ r& b2 G    if (select_bodies(objectArray))
. Z3 }' Y$ T% \    {
6 G+ ~2 T  j' B: g0 W        NXOpen::Session::UndoMarkId markId1;! \5 d$ e2 S7 f1 `. z# Q
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");  u& I3 x7 r: j9 R  R2 T

# Y1 h. u+ T, d3 k        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
9 Q! l* D3 i. o1 R& G; ~6 ]; O        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";/ ~. T4 R* i; K) A5 T- d
        NXString sPartSpec = displayPart->FullPath();$ |" t$ ]6 a' \8 m% G* D
        std::string sFolder = sPartSpec.GetText();; {8 b  E/ h6 J" t
        std::size_t found = sFolder.find_last_of(".");' U% C. N! X9 o! a( A. [* k
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
5 i( i1 U3 Z3 s% S1 L
( h2 ?5 B3 z3 E        NXOpen::StepCreator *stepCreator1;
6 i3 ~3 w8 X, |" b        stepCreator1 = theSession->DexManager()->CreateStepCreator();
  k! p$ `; a- ^        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
( d+ l8 t/ k; s7 C        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
6 o) B% o# J2 F6 x9 {        stepCreator1->ObjectTypes()->SetSolids(true);4 f. t$ v6 c% ^8 ~9 a
        stepCreator1->SetSettingsFile(sCfgFile);1 ^9 [" T5 w) V3 m; I# ~
        stepCreator1->SetInputFile(sPartSpec);
: K; n  R. x! E, M        stepCreator1->SetOutputFile(sStepSpec);
. K& _; \% k0 {3 N0 h% M        stepCreator1->SetFileSaveFlag(false);, j* F3 z2 g7 x6 r( L# _4 R
        stepCreator1->SetLayerMask("1-256");
8 \# z& c# ?3 S" M. @7 B& h% Y6 P: P: r0 T4 n
        std::stringstream sBodyList("");; J, O6 }3 s9 U3 }1 p

1 l# N& g( O% s/ F        std::vector<TaggedObject*>::iterator iter;* ]+ _" S6 ~, \) y5 {, e5 D
        bool added1;- s; k% G: x, \& U* ]4 W+ s; {2 |: o
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
% \9 U$ c7 g0 R' B6 {        {
# Y$ t1 [) y% z, f# v/ Y1 y8 l            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);; \% X2 I$ r' Z0 `* M' Y
            if (theBody)( m' |: |& Y; V1 N& Y- }* ^
            {1 x8 x/ {% X+ Q
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);; t  S( O; v/ T5 G6 K
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
3 f* Q+ U, h  Y  S7 z$ e            }
2 s( L; [& P1 t        }& ]! B5 }" M' Y2 X" V4 p

3 X+ e( v4 e8 B4 ^        // Debug output
5 L  ]* f1 d- F" w+ y7 ?* j$ q        print("UGII_BASE_DIR = " + sBaseDir);$ p* w" K2 V2 y/ N2 M  Z# }
        print("Settings File = " + sCfgFile);
% F1 t* v4 r6 k6 k; v        print("Input File = " + sPartSpec);
) n. V' {8 c$ Z+ `- B) n- z4 v        print("Output File = " + sStepSpec);9 _7 D! C( |) T2 u6 k5 d4 T. I
        print(sBodyList.str());# R4 @5 I3 ?9 W/ H2 T2 O# n" ~

- s, g1 I$ v% t$ I) ]! V' Z2 e        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();! ]/ ~* u8 J& g
        stepCreator1->Destroy();
4 [- N+ s% _; D# @    }
1 g6 z% B, d) d8 a1 ?  {1 z
1 B. R. S; u8 v3 d}( J$ `9 Y0 y7 t9 j0 j  K$ b
" f% @2 B9 U2 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二次开发专题模块培训报名开始啦

    我知道了