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

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

[复制链接]

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

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

admin 楼主

2016-12-25 10:40:44

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

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

x
5 ~4 O) u( F: b7 q/ M3 d6 D* U" {; D
NX二次开发源码分享:选择体导出Step格式
4 @, r2 e9 o7 g, J3 ^* x* ]
+ @( A3 s; W7 g5 W2 |2 d5 Ivoid StepExport::do_it()
: j- R6 \4 o" D  o$ w' R{3 O# ~2 z3 l6 o) ]  D0 G# H! L
    std::vector<TaggedObject*> objectArray;/ J* h. p+ ~3 W8 q7 C4 R1 |% G5 J
    if (select_bodies(objectArray))
% V/ v' s( L: l  ], U! ]* R    {7 V: m- O; H7 |; L; |9 L5 F, |
        NXOpen::Session::UndoMarkId markId1;
! T0 s  R. D/ ^6 W( \: z        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");( K4 H# b8 E4 T2 F$ u$ H, d. q  @+ j
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");4 s$ F( V! F3 B' f3 `1 s
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";9 d* z" j! \* @& A1 ^' q# J6 T
        NXString sPartSpec = displayPart->FullPath();
/ M9 T  Z) g% Q7 d        std::string sFolder = sPartSpec.GetText();
8 P/ E3 k9 w* a2 W2 G& v        std::size_t found = sFolder.find_last_of(".");, a2 S4 K9 Z9 n
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
6 n6 @$ T4 R9 y  {* e) C        NXOpen::StepCreator *stepCreator1;
' _4 s3 A+ _  ^8 y8 I5 p6 h# k        stepCreator1 = theSession->DexManager()->CreateStepCreator();- ]& b: N7 d6 R( O4 n* f3 E
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
4 H& T5 y9 s2 C7 U: V        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
7 D2 U+ N; [2 P/ V+ F        stepCreator1->ObjectTypes()->SetSolids(true);
+ M3 X9 [+ O( x' ?  T. C        stepCreator1->SetSettingsFile(sCfgFile);5 _& M4 J( q, R5 e+ _# f
        stepCreator1->SetInputFile(sPartSpec);
$ |* q$ j$ v* I) e$ @" k% V  @7 J" V        stepCreator1->SetOutputFile(sStepSpec);1 z0 b5 s' Y. f7 R$ Y
        stepCreator1->SetFileSaveFlag(false);
) \* M" S3 q* \4 O/ H' l7 W        stepCreator1->SetLayerMask("1-256");
# F' U0 w( w2 h2 _8 f        std::stringstream sBodyList("");
7 S& ^; [% E4 F- c/ ~  h        std::vector<TaggedObject*>::iterator iter;8 b# [: p9 n. e) |: z
        bool added1;
2 }, R( n" I1 U" _( p        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)& e! l4 H2 @3 G& ^, c5 O/ U4 K
        {
: Y5 A0 T# z  w4 I; a, Z5 O            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);+ G. u" q# D* k# t5 Q! B
            if (theBody)
' p. I- ?- V3 l. q% g$ _            {
% H% J, W7 k$ H                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
9 n" m% W8 t6 x                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
! H! N* s& d+ ^  R( }! j( m! A8 |            }, i) }% n, l- w* @3 k
        }
. [3 u2 P0 u# M" S" G6 x: p3 p        // Debug output
2 E1 q6 l! _% f" c" y        print("UGII_BASE_DIR = " + sBaseDir);8 O4 J) Z7 r/ E8 \$ z
        print("Settings File = " + sCfgFile);
0 U; S3 j6 E. P; z* n        print("Input File = " + sPartSpec);. C) j5 K3 \8 ?" Z
        print("Output File = " + sStepSpec);
4 G/ O+ e: }* U; [+ x        print(sBodyList.str());7 s7 q; H; J, T+ a& x4 r1 [+ L! |
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
" Y. m- K* x1 b# T        stepCreator1->Destroy();. c7 {* Q1 ~7 a4 _' P
    }9 V& V3 [& `, {* \: H6 f4 I
   
# u6 U5 Q/ A2 c6 B2 S7 x7 W}4 e% O  `2 n( F+ j# w

8 T* E8 K2 g, \$ U4 V
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了