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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

5 t8 y, a) K/ N7 Q! m" p; s$ _0 K# w" u. M$ Y

% S4 E% T. g. E% [$ }4 jNX二次开发源码分享: 导出 step格式: _! y: m% u5 G
6 W" L5 g" I) L7 g3 P- M
参考一下,很简单哦!!
: U' V) [8 j  ^( i! X; \3 r  [! @  o+ H8 d
void StepExport::do_it()
1 p* e% X- h. y( g, E& i& @# n{4 g9 I, p" v" C6 F% U
    std::vector<TaggedObject*> objectArray;
& C8 K/ P/ k% j  N# P2 T
9 z! r* b# F1 T. b: F& C3 @: g    if (select_bodies(objectArray))
2 s# L3 \: b5 z1 U7 r) R; B) F% r    {1 N. a9 x# i# H- r/ ]. w/ o
        NXOpen::Session::UndoMarkId markId1;
2 ~8 v+ O7 K$ Q4 a* t        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
0 ?& v) C7 i6 [- p8 D1 v2 J
' R5 s" v1 _2 {& m        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
  B& y% e: J: |" c0 F; w( j: k" {/ V        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
* V8 ?3 J1 d3 w' G' U1 C        NXString sPartSpec = displayPart->FullPath();3 w7 a3 f( V0 u3 R3 g
        std::string sFolder = sPartSpec.GetText();& @) s" M9 }+ b6 ]
        std::size_t found = sFolder.find_last_of(".");8 i0 d8 R- `& _7 f5 f9 c! s) i) Y
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
% o5 ~, S$ b/ t: ^0 t1 {% v9 t- ?7 }# U. H( p$ W5 s5 W& w
        NXOpen::StepCreator *stepCreator1;, ~5 Z( G" R0 g* M
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
9 K! u0 |# q1 Y9 }        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);( J: @2 _- J' d: x
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);, S9 P  S0 U/ f
        stepCreator1->ObjectTypes()->SetSolids(true);
; m% e, |; ^0 ?4 B7 z" t        stepCreator1->SetSettingsFile(sCfgFile);
+ l4 E$ d+ ^5 {3 T7 i/ T6 T1 O( g  N        stepCreator1->SetInputFile(sPartSpec);
9 C: h. n7 q& D( X0 p2 p6 }2 {        stepCreator1->SetOutputFile(sStepSpec);$ ]5 s, ~* M4 n2 Y  V  i1 C& e
        stepCreator1->SetFileSaveFlag(false);3 d0 W: r. W8 _( L' k
        stepCreator1->SetLayerMask("1-256");+ U8 D- N! ^$ z

6 V- T1 V2 E/ j        std::stringstream sBodyList("");
7 Z8 z3 F# G& A5 D
; ], I+ b) I6 A; _6 s7 X        std::vector<TaggedObject*>::iterator iter;. M* O$ A% p! @" W4 [
        bool added1;$ C. n% }, \; @* h
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)8 J" n' B' p+ V
        {
* I% Q" \5 x' \; @" F  j) f- m            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
/ A3 [) {, R8 `4 ?0 ?$ M7 c            if (theBody)
+ c1 q0 n$ k) M            {9 _. b+ K  o& @5 Y9 H) W. |
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);% {4 ?  ~* V4 u7 |9 u. R
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
/ {  v' i0 Y, x0 v$ i$ L; z! I            }
4 ~0 Y, D9 d* U/ s* _        }
. V4 {1 W! L/ G7 Z2 ]' g9 S8 X/ j; L6 L: F
        // Debug output7 w) S9 E; z: l3 j1 S
        print("UGII_BASE_DIR = " + sBaseDir);
/ ~- T, c, j6 p& \, I/ ^. s: `        print("Settings File = " + sCfgFile);
; p3 |% H- E- t4 [4 R" P! O        print("Input File = " + sPartSpec);
; I4 ?, y" G9 D, |. q        print("Output File = " + sStepSpec);
) g) `2 q" ^5 y! S" p9 l        print(sBodyList.str());
' ^/ {& ~- j# i' g" Z8 U* o# Z( ~' P# h" J) s) S. ~. L4 \4 ^5 i
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();5 A9 [) n4 D0 ~0 r4 f6 @' W
        stepCreator1->Destroy();
+ Z6 ], q9 @. ]    }- u# X' a# ]5 P4 x) a  }+ k/ U

, R# C  o; \# a: ^}
, e, G' [  |" B: S! k& Q- h+ J
# S- v  H9 K9 \( j+ w1 A1 n
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了