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

[二次开发源码] NX二次开发源码分享:选择体导出Step格式

[复制链接]

2016-12-25 10:40:44 2616 0

admin 发表于 2016-12-25 10:40:44 |阅读模式

admin 楼主

2016-12-25 10:40:44

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

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

x

" I7 J$ g% p' u5 O7 z# [* kNX二次开发源码分享:选择体导出Step格式- _. i4 f) }$ k3 z# D8 B6 u6 Z
* c& \" A& V0 N& x9 W" R$ `! y
void StepExport::do_it()8 f" C9 Q; x; f6 |
{( [# k  x, k! }, K- m5 _
    std::vector<TaggedObject*> objectArray;* K$ k0 a, ]8 b$ ]4 B* {' \; g  s0 e
    if (select_bodies(objectArray))5 c9 }3 z4 H+ R8 Z8 H  e) {7 u
    {* Z. i  a# q9 O4 Z
        NXOpen::Session::UndoMarkId markId1;
; W  b0 b1 Y1 z) v        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
8 {& V; Z0 a( X% c& r7 b        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");( P4 d2 ^8 X- L& P
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";. O# a! F2 @/ o9 |! }0 f/ d
        NXString sPartSpec = displayPart->FullPath();% y' ]2 L, a5 o9 e7 Q3 D/ V6 `
        std::string sFolder = sPartSpec.GetText();' n! m* x. T# B8 u: ]8 v: y3 H2 h8 z
        std::size_t found = sFolder.find_last_of(".");2 i9 {0 Z6 N; p( N7 p
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
0 H- b2 M4 l8 U' X* K0 F        NXOpen::StepCreator *stepCreator1;
/ L2 Z/ B7 [8 p/ V- _        stepCreator1 = theSession->DexManager()->CreateStepCreator();
! O" A6 L/ s) E0 Z. c        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);" M. S1 a4 r* `( l
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);1 m5 y0 N. a/ y! o% R) {+ L* d8 i
        stepCreator1->ObjectTypes()->SetSolids(true);1 |# ?1 ~# O& R
        stepCreator1->SetSettingsFile(sCfgFile);& \& d% z0 ]$ L4 \7 A2 x2 q% Z$ m* Y/ h
        stepCreator1->SetInputFile(sPartSpec);
: o' i: \( @% P  }- c        stepCreator1->SetOutputFile(sStepSpec);
$ e5 v- g# |5 B3 Y1 W        stepCreator1->SetFileSaveFlag(false);
* s) b) b% Y3 m% B        stepCreator1->SetLayerMask("1-256");! b2 j9 }0 D6 E
        std::stringstream sBodyList("");6 V0 q: @( P/ _5 t1 j$ S
        std::vector<TaggedObject*>::iterator iter;
9 R' |+ u6 q! H0 ~  B$ O3 j. v        bool added1;+ N9 P; f6 t. S% k8 z7 Q% p9 |( {
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
3 ^2 m. S) {  }9 e1 B1 ~$ E$ G  Z8 H        {. p  F5 T6 U% L$ A7 R6 r
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
$ ]6 s& C4 [6 t* z6 z. P            if (theBody)
9 p# G: f) J) T. a* W% k/ x6 j            {. S/ I9 e# M9 r7 z- w) A
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);6 a, B9 u0 @7 m; \3 ]
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;& b+ I  P; f2 K0 k# T
            }
; f4 j5 o6 G8 E( Y+ h( q        }2 f5 w, k$ I3 i" A0 K; a' A3 C
        // Debug output
; \* u: U% o) C7 i7 _8 W) p; p/ R+ ?        print("UGII_BASE_DIR = " + sBaseDir);
: |" r) [- L# R6 w7 M7 Q5 K        print("Settings File = " + sCfgFile);# h6 E; w6 A6 v2 e% v
        print("Input File = " + sPartSpec);
; Q- Z+ p$ u5 o3 a# x        print("Output File = " + sStepSpec);
1 @2 Z8 m$ |+ t        print(sBodyList.str());
8 u2 F" {6 ]6 ?; u& T        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
7 B( S8 y1 h0 _4 u        stepCreator1->Destroy();
' g( I2 H1 j; S" r  F; Q1 d& \) o    }. Y1 {% D4 [" ~2 _2 K' J# `
   
* n  t5 j7 R% V: b}
! L: ^* O7 c7 w& ?3 ]  k
" Y/ V; V6 K4 F9 F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了