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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
. u) D1 ?- f# T. Q( [: B$ z+ ~  q

" |# T* ]( t9 g2 @- v* [9 _# z9 X8 R7 b
NX二次开发源码分享: 导出 step格式/ R# b+ m$ V% w& g

# p2 E0 O1 y4 I1 l参考一下,很简单哦!!) `/ z' t2 k9 X0 F5 ~; g% G1 B0 H- o

$ S# f. j8 K' wvoid StepExport::do_it()
3 f- V; M: t. Q6 {, {3 b" x8 t{
" i3 G; K  s  _6 Q0 @. b* M    std::vector<TaggedObject*> objectArray;
4 M! @  E" P% x4 Q0 R4 Z
. D/ `  \( d  K9 D3 ]    if (select_bodies(objectArray))
  Y, Q3 V1 U" _2 z! g+ A& C4 E    {
/ l# o) X5 N) ^9 V" x4 j1 \) E        NXOpen::Session::UndoMarkId markId1;; W4 r% E, l3 C9 D! Y5 s- U- C
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
' h- u; Y% m  A5 P* u% ^4 @
. _: _- q$ r0 G& ^8 C. c5 U        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
) S: W/ d4 k. y! o        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";, i/ r0 v! ?* D2 y0 d; }- ]
        NXString sPartSpec = displayPart->FullPath();+ l# \# p" |7 N6 I
        std::string sFolder = sPartSpec.GetText();  A6 y* U! _5 L3 g, e# h7 l# S% R" f- ^4 {
        std::size_t found = sFolder.find_last_of(".");! M! i$ O  @* F3 C/ |
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
9 l: I2 u; C  z3 `1 Q2 X. K! c8 \" x7 ?3 \! l
        NXOpen::StepCreator *stepCreator1;( A' V5 h8 r1 M; ~& P
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
  m* o, }* c# {$ t        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
+ W  L! M6 ?# G        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
+ r4 m" I" c4 v# ]/ x' U( I! E* b2 V        stepCreator1->ObjectTypes()->SetSolids(true);- l" A' u0 ^  e# w6 [
        stepCreator1->SetSettingsFile(sCfgFile);
2 N9 i5 U( ~4 N- {  \' P% H/ r        stepCreator1->SetInputFile(sPartSpec);
! e- c2 }3 W( q/ q! R; }: }. _! ]        stepCreator1->SetOutputFile(sStepSpec);9 s, [  K8 R% s$ u
        stepCreator1->SetFileSaveFlag(false);; L. }% \) e6 r$ P; N8 s3 \
        stepCreator1->SetLayerMask("1-256");
' ]) r9 E7 r7 Q# j# o0 u
8 q. d0 g! F8 T- |        std::stringstream sBodyList("");
3 M1 e( U& i" s* ~( L3 [+ c+ x& ?+ V
: o& w( _0 ]1 E3 ^7 ]' G2 O        std::vector<TaggedObject*>::iterator iter;
% ?; k( C: q( G2 I( }6 W, v! P4 }5 h        bool added1;
& F6 T0 ?; O3 ?6 f1 b6 ~        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
: f0 g3 O+ M- p8 N( D4 D: r        {* n. O& L& M* P2 r" t8 d$ W1 T
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
: ~1 J+ n, ^) Q7 m            if (theBody)
% N' q6 c% v, M  t+ l2 {3 ~            {
/ H: c9 H# p: R; H; k! A                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
9 Q/ U1 G9 `9 m/ c: \4 n- v                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;+ q/ V7 M) t( d4 ^9 s" K
            }
0 I/ f0 x- t* \2 a9 W        }
1 k! p  h% F; ?( c' `3 @3 ?& r/ O) J# \+ `
        // Debug output
: l. V0 o* S. l0 j: g$ d        print("UGII_BASE_DIR = " + sBaseDir);
1 e+ e0 \; X7 X- C' p+ @        print("Settings File = " + sCfgFile);
! Y; D  J8 e; G# }- O8 s3 s$ \2 U        print("Input File = " + sPartSpec);+ q. X, E( D  s
        print("Output File = " + sStepSpec);7 O  k4 K& u# o4 M7 x4 G
        print(sBodyList.str());
5 U. N6 T8 w- F
$ V8 c- p3 I& @$ r  q$ m        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
4 c% D! L8 s! v% g( M. I$ |  S7 M        stepCreator1->Destroy();5 [: ]8 E; p  y2 w2 q  Z5 [6 e% V
    }
0 Z0 x+ k+ q2 k# u1 h& u- C: z
& Y- U# }$ M7 M6 U+ k# G}9 s" I2 I+ ]) O1 p6 {

- j, ^. a; [4 B% s1 X6 n6 F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了