PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

5 y6 s' g4 K4 R; c+ d9 ]2 [2 O- E3 I& B7 z
( C  N( z( b  W  G, D) x( ]1 T
NX二次开发源码分享: 导出 step格式; z8 g! f: s" e$ v8 W% I
- t; |* e) B3 L( x/ G8 T
参考一下,很简单哦!!6 D! v0 w/ {  F4 ?9 r6 J

! _3 i) g0 b+ Y2 P& L8 Fvoid StepExport::do_it()
' T( t0 @! M# ~6 {1 f5 n{
& ~, f. b" U: i2 o/ `/ |5 ?% l    std::vector<TaggedObject*> objectArray;
1 B; c* D8 G8 J/ O. e( w
* S8 N1 I6 Y( a% z    if (select_bodies(objectArray))! g) v& k; `& Z" R; u
    {6 I; I7 v+ _- \. I" j
        NXOpen::Session::UndoMarkId markId1;( p' S6 g0 c3 v6 s3 d
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
  V/ O6 M4 E  t* `4 ^' p. X. `; w3 @3 R  _" a
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");( e5 r7 F: F" @
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";  j" ?# W& q& ?% d, q1 t
        NXString sPartSpec = displayPart->FullPath();
6 I( [4 e& y3 w% r6 b        std::string sFolder = sPartSpec.GetText();. a, D% W6 d4 \
        std::size_t found = sFolder.find_last_of(".");1 s9 n2 E" d8 t) Y2 i
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";& z4 q. q. B. g, ]2 Z2 M" F
7 [/ N- U1 [' @
        NXOpen::StepCreator *stepCreator1;. r, l6 Y5 A9 P4 W6 i! t) M; t
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
, |: b. `, f' ^# f8 l1 n        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
) D6 B! Y6 B0 I- f- m1 |        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
" ~2 Z1 T- r5 G        stepCreator1->ObjectTypes()->SetSolids(true);
; E" W, Y/ A* s9 o        stepCreator1->SetSettingsFile(sCfgFile);
- l! ?5 }: L& E$ C) V' o5 n, J        stepCreator1->SetInputFile(sPartSpec);
$ i  f+ F! ?( k% E- ^* w        stepCreator1->SetOutputFile(sStepSpec);
) [2 c+ P2 [/ q9 Z4 s        stepCreator1->SetFileSaveFlag(false);1 ^" Q/ X' P% Y: D2 r/ b4 U$ {+ {
        stepCreator1->SetLayerMask("1-256");) k% }5 l) S1 I9 z+ b

9 K' _+ X! |$ [% s# z( i+ p  S        std::stringstream sBodyList("");3 v! t: ~* u: ~

4 J: _$ _# d, B3 K) g$ j' l        std::vector<TaggedObject*>::iterator iter;1 F0 p, j* m4 R2 ~) l9 A* e
        bool added1;- ?/ b* t1 o; C
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)" m) J9 [& c* G. ]/ J$ ^
        {
' q( S) n6 r2 y/ Z: o6 V            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);7 x: l6 I1 p( b  V
            if (theBody)' x) o) H# [9 N3 H* E7 x
            {
3 P, G6 X5 `+ b# H7 p% V( c                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);  m, j/ N) `" k# r9 y' j
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
( `# A4 W+ d. @. U            }
2 n' V8 P3 l6 D6 g9 B" s8 R! ]0 r        }. [4 ^5 C- e! q1 ~

% Y: z, y1 P: l0 B* k$ b/ J/ B( g        // Debug output. E& w; {5 Z  g  c$ s6 K( @# V- W
        print("UGII_BASE_DIR = " + sBaseDir);3 y9 r: J4 i8 G  i7 S
        print("Settings File = " + sCfgFile);
7 k. D! O8 _7 v3 X" L  a/ @$ L        print("Input File = " + sPartSpec);1 W9 O8 r9 q! ?8 D8 g& Z1 ]( F
        print("Output File = " + sStepSpec);
) v, r( U4 G' \! f  u2 d, o' D* i        print(sBodyList.str());
! G2 @/ B) _* t) G7 k9 g3 |) X: k4 i# a2 e5 S) {
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
+ x" {3 i4 [7 H1 K        stepCreator1->Destroy();
3 L4 r% Y! }, E8 \( |    }9 q2 \9 r# b( N* D4 [8 u! D
- I& K! o0 k/ \7 \7 s8 _0 ?
}2 k/ K/ o( w+ [; G5 o; }/ N  Z

& g& Z' z+ w% B3 Z9 x  u4 i% W
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了