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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

- T1 j2 F9 F% J; k7 e9 O- C
9 C# d$ u/ m; `6 R- H/ e
: B" C" ?7 s; {8 c. C6 A$ b" ONX二次开发源码分享: 导出 step格式9 N5 _3 F# T  t. K+ O* |; f
3 a$ ~7 N0 f9 W5 m7 |) p
参考一下,很简单哦!!
5 X8 l; p  `, M* x
( ]- J7 r: `/ U7 o, g, v( `void StepExport::do_it()
: l9 J+ g0 g, N# P+ l1 S{
6 E& W& K9 g9 Z/ @' j7 P& y" u    std::vector<TaggedObject*> objectArray;
' j1 t# o6 ?% q9 [
! ]' Y- b' s( n* A    if (select_bodies(objectArray))1 f5 R1 I+ P* \! i
    {
. F5 `0 n9 d, t- V3 f+ Y3 F        NXOpen::Session::UndoMarkId markId1;
* h% z! I$ {4 y" V% `        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
+ x/ b2 H; h4 ?# F6 i* p, D* P( q# a. h; ^) t, n$ s  e9 T
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
# Y0 V  _4 _" S4 R6 h3 U        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
8 x! {% u) K- j+ K        NXString sPartSpec = displayPart->FullPath();
1 c1 [7 d" F$ E- O8 z! m        std::string sFolder = sPartSpec.GetText();, R/ g8 z* B9 G* M
        std::size_t found = sFolder.find_last_of(".");* w$ y3 `/ Q+ S/ l
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
; s9 k% E$ c; }+ Q% H
! T9 J7 I  Q8 z" @* z  e! b! j        NXOpen::StepCreator *stepCreator1;5 G: z7 K) J. n- H
        stepCreator1 = theSession->DexManager()->CreateStepCreator();8 d4 {4 S/ W, W6 S) w, ?
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
, }& a/ G  V/ J8 ^4 z) O( ~* g+ y& h        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
, i# d8 D! p1 Y& l  W7 g9 O; @        stepCreator1->ObjectTypes()->SetSolids(true);9 y0 @% ^. X  J. I1 ^/ W
        stepCreator1->SetSettingsFile(sCfgFile);
+ B, Y0 f8 f: [- j8 x        stepCreator1->SetInputFile(sPartSpec);7 c$ |1 h0 |6 D2 N) b9 Z
        stepCreator1->SetOutputFile(sStepSpec);4 o2 I0 q9 ^- ]/ g3 }9 U5 K; _1 F
        stepCreator1->SetFileSaveFlag(false);! x4 v: R' d& D3 o3 r$ J! C6 o
        stepCreator1->SetLayerMask("1-256");
  ?! f: f& T  p  o2 j; z
& q1 g8 \& [, V3 D# J1 ?        std::stringstream sBodyList("");
, Y% B/ ~; s7 [+ A) O
0 F: R& Y5 X2 e$ a: v" k        std::vector<TaggedObject*>::iterator iter;8 M9 {4 V, K7 S! \4 l9 O+ v: y
        bool added1;7 v, F0 Q4 Q6 V( n2 N7 l
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
8 ?! f$ {+ X2 t; d) A2 V        {4 L2 c0 J# q/ L
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);1 v1 J$ e) F) F0 [/ x: h
            if (theBody)
! U' N7 _. V7 i            {
+ k. X' @: Y0 I& \/ h7 M9 s4 x! ^9 U                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);- B+ t# H  K$ ~9 u) C
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;0 |, D% }( S  V' R/ H( A4 i+ ^( A1 Z
            }  k  ?+ [. z- _% V
        }
# ^7 |) ~2 _! `" |
- E/ W$ n* r1 o- [5 K: p0 l        // Debug output
% h: c# u8 E# G1 C) d$ W        print("UGII_BASE_DIR = " + sBaseDir);
! e3 h6 f) g9 U* b- f  ^        print("Settings File = " + sCfgFile);' R  J5 A* f& t$ M( a
        print("Input File = " + sPartSpec);
& \4 F6 H% g$ |5 V2 f        print("Output File = " + sStepSpec);$ n2 _8 ?  ]  u7 A; W5 _
        print(sBodyList.str());
1 _+ E6 X; j+ p- l, h, |& H1 ~" z( J* M
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();) ~0 j5 f" u: S8 F! N
        stepCreator1->Destroy();8 A; S. r' F" ?( l8 J% s$ x
    }/ h' M2 s6 W& m1 B9 q3 Z  _
7 K" T+ V% i/ p% c2 U
}+ q; P% g; Q; A6 b; t1 O. s! T! c& r
) ^- d8 z2 X+ f+ j. H* I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了