PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

/ H/ K: i. q  \& p* ]: h( b
$ i' T) \- l( b6 @: Q& n) M
' @3 \9 P7 t9 Y. K- T! f$ F! `5 HNX二次开发源码分享: 导出 step格式
9 l  J, E6 D) r% p/ n
( H/ H( X' {. P: d; @参考一下,很简单哦!!
1 _. o' ]: ~9 `0 y9 d6 K) E9 ~
, Z& w0 R2 @8 Xvoid StepExport::do_it()
& h$ o' @+ f8 q1 z$ m/ G# }6 n{" C( j1 {+ e4 X) _4 Q* g
    std::vector<TaggedObject*> objectArray;
0 U" T- l# o$ \6 S0 k) b. |8 L% J" l7 K4 Q3 z3 |
    if (select_bodies(objectArray))
/ B& A& a. O" Y& ~8 i    {
# W. B- {8 ?  a( [8 g/ k3 L        NXOpen::Session::UndoMarkId markId1;
+ I# C. \! z+ l! g: o* i        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");4 |6 v- K8 f" ?9 `. {8 ^& c
7 h/ l: Z4 M2 `. y1 ~  n
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
' D9 `" C1 r8 h6 F2 S  A        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
! R9 n6 [- ?# P: P0 c' s/ x- M        NXString sPartSpec = displayPart->FullPath();
  x: ^' W4 g0 e1 T1 I' P$ p        std::string sFolder = sPartSpec.GetText();" E. b; E" ^* l. |" ~
        std::size_t found = sFolder.find_last_of(".");
% w! b+ Q0 U4 x4 x. G        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
3 ?/ A7 O% p* `  h7 \( p/ ]8 |: g7 F+ Q
        NXOpen::StepCreator *stepCreator1;. i& C5 S4 ^& W+ D
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
' j! g( _, f/ w. x8 ?6 x/ N        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
+ X: ^1 P  i) e6 A9 M        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
! j" H1 {, z2 r6 [        stepCreator1->ObjectTypes()->SetSolids(true);
' n* q( k3 p; T+ C& u  ?        stepCreator1->SetSettingsFile(sCfgFile);
7 n- L, N- `" k% r7 V        stepCreator1->SetInputFile(sPartSpec);
( q6 E$ ]: ]; A        stepCreator1->SetOutputFile(sStepSpec);
5 s, M2 e: j7 p6 Z' \7 t6 j        stepCreator1->SetFileSaveFlag(false);" G) J: m: B2 `9 Q; B5 L: h6 _
        stepCreator1->SetLayerMask("1-256");, q9 t# Y3 Z2 x: P
; j4 K6 s5 I+ n. p5 u4 y8 v9 c0 w
        std::stringstream sBodyList("");( @' P: P% w+ Q" B
6 u/ ~" }" t2 l+ p7 ^9 {
        std::vector<TaggedObject*>::iterator iter;
* d# F1 U+ i# C( F        bool added1;
# c( L6 U) B$ |$ ]        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)6 H8 A2 y/ ?3 H( |  d" ~' ?4 E8 X
        {2 @& K% d. t( ?0 H4 x/ o6 e
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);: G! R* K9 ^. o8 \  F; t! c
            if (theBody)9 m) E7 }8 }8 C' ]1 i
            {
5 _* P- I% t+ [1 N. L3 j6 `# n) y( J                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);* P# p, u, `# e
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
' S6 V5 w1 ]$ g4 ?& O  E% A            }
/ A2 h! D: V2 v' U" n        }
* X/ x- d) w* i) R6 W4 H' C& f
* v3 I0 X% V$ f5 ?* A* I7 ]        // Debug output& _. a$ v  y' E4 D- i
        print("UGII_BASE_DIR = " + sBaseDir);
" M9 h4 m4 U7 {) c& ^; d3 \2 [        print("Settings File = " + sCfgFile);& O8 {, q! l) H
        print("Input File = " + sPartSpec);0 A' H: y' F' V; n7 S
        print("Output File = " + sStepSpec);# @8 o2 C, a3 ?4 d- r
        print(sBodyList.str());9 ?3 K- g5 ]) J: i6 F- b

% Y- Y; ^$ C8 H4 l1 u  a        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();( h( _) y5 P5 t' Y  v8 D
        stepCreator1->Destroy();6 o5 `* Z4 ]+ y' h7 A3 H$ U4 w
    }) |; d. s0 V# `3 k$ n0 m
9 Y9 I% p$ l) G/ @
}
3 [0 K* m7 S) T2 U6 A! p  Z/ p& \; q# x! `0 u
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了