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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
7 l" I4 h' i( m1 \& ?4 [; Y8 `
. h3 D9 A$ k- l( v" I6 p. O$ L
, U0 B/ b0 g- \. K! e
NX二次开发源码分享: 导出 step格式/ X/ a6 N9 {" P0 U9 ^! o

; _. M* L" g1 e3 Z参考一下,很简单哦!!+ ^) Q. s' l1 ~& ~- `2 a! H( P* n* r

4 Y/ `1 `$ x' Y. |void StepExport::do_it()
7 g6 f2 i. J! I6 U& M8 t! u$ P{9 F# G* f5 {5 E- _. i, |* v
    std::vector<TaggedObject*> objectArray;1 k' {; t/ y  a  K0 G" }" B
0 K8 A. P# n  r9 ~8 \! a
    if (select_bodies(objectArray))
- k# `  r3 q/ f/ m2 I  R    {
2 e+ Z: ~- h$ Q# f        NXOpen::Session::UndoMarkId markId1;) }2 c( K) a8 e4 Q( d8 I3 {
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");- G3 R, h5 u" |( x2 K' l

; X& s& k2 u8 K* _0 P        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
- O' g, i( x( a, O+ n% p        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
/ {& T# K3 j- Z# j! @        NXString sPartSpec = displayPart->FullPath();4 `6 `" g7 N7 ], e1 N! r- I0 O, {
        std::string sFolder = sPartSpec.GetText();: R& Y! }7 _+ E* m# S
        std::size_t found = sFolder.find_last_of(".");4 L2 t7 F4 O8 O+ k' q
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";7 ?. B- @; T0 G

( Y8 e2 k& K- n: S7 M3 a$ Q        NXOpen::StepCreator *stepCreator1;7 k% k/ }# ?) ^( C1 t* o7 J
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
7 f# @% F5 w5 ~& S8 ^8 @        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
0 b! k  i6 y/ K7 P! L/ y$ D        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
7 Y9 s* x5 P6 X) a        stepCreator1->ObjectTypes()->SetSolids(true);
: R. Y4 r/ D, s2 q1 N5 O        stepCreator1->SetSettingsFile(sCfgFile);6 T5 @. H. k, V3 q: [
        stepCreator1->SetInputFile(sPartSpec);8 ~, }6 V$ L- Y( x/ s
        stepCreator1->SetOutputFile(sStepSpec);
5 q- D* T$ i/ y, M$ ?% ^4 ]        stepCreator1->SetFileSaveFlag(false);% w( z5 X  n! ?. a6 k: n5 e
        stepCreator1->SetLayerMask("1-256");8 _( h5 j1 H) I0 h9 k, V
+ |0 {* \# ~3 x8 @% [3 C( f
        std::stringstream sBodyList("");
* e& \0 |0 }* \- a
, j/ L( x# O$ E& P% w- P* n        std::vector<TaggedObject*>::iterator iter;( e3 l# l$ A/ R4 @- x
        bool added1;5 C7 D7 j/ k2 W6 l! }) d8 I  O0 e
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)* P' s* k% t5 R) c# i) A
        {9 F, g1 C# N7 d, w. A  `2 m
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);7 x+ ?6 }+ N: `) |
            if (theBody)
3 I1 X0 K" y4 x/ t, ?" G            {( H& J: f5 V. f( z6 H  q' \. f5 n
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
' p, J4 P  X( B2 R# @                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
; o9 G$ L- \  M( J5 K& X9 V; R& ]& l            }
4 M& n( @  R; u4 n$ I% g+ Z9 D        }
: H! q4 D- J7 `/ G4 j& a' K
) ?1 g* u  s; d" c) e! ]5 k. y        // Debug output
$ |8 M: F. V/ e        print("UGII_BASE_DIR = " + sBaseDir);
; O" I- f( t/ \* e0 o        print("Settings File = " + sCfgFile);
+ a6 @. z# Z7 W! Q6 O9 l        print("Input File = " + sPartSpec);- R: W' _5 L% e5 i* [" T
        print("Output File = " + sStepSpec);$ T7 U0 N! ]. o) M" \
        print(sBodyList.str());
, y0 d2 |6 @$ A! H& K) u5 Z- B. @1 ?3 n, M3 G" j% i) Z: @% J% I
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();* ~5 h  l  v% p8 X* t0 \6 p% C
        stepCreator1->Destroy();
- v  x' Q" h; N5 a. m9 U    }) k! K. V8 N1 {+ a
0 m1 S8 Z' v, m8 E
}
4 p1 Q. I% q4 j# }; j% f5 o- G3 y  }* G+ v3 v9 o- Q& v! n; ?3 \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了