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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

% J6 x' c& ]7 N  h3 i# C6 G6 m' d4 Y( N3 P$ N
% I. z; n+ [9 b' q9 _; w& O
NX二次开发源码分享: 导出 step格式
* t, L. P% P# @) o
5 H5 @- c6 E0 l8 B  m. k4 l参考一下,很简单哦!!, ]7 ^6 y/ ~# b) r9 g5 p

3 j& B! C( v1 `/ w" Wvoid StepExport::do_it(): H- [3 ]( N: h: d) H! X) L
{
9 b. u( n; N* K, t4 x  w    std::vector<TaggedObject*> objectArray;4 l3 L) H  n% k2 W9 \

0 B# w$ E: \% [" g2 S6 a( H    if (select_bodies(objectArray))+ D' y' i6 B/ S' Y4 F) P' ^& f
    {$ P' O9 {* g; x9 J; v
        NXOpen::Session::UndoMarkId markId1;( y7 \% w$ s/ ^/ o8 |! a2 r! h
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
: L6 i0 x4 T' ?8 K/ U/ V; e: c
+ x$ u* B2 N' z6 m' l/ e7 j        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
7 b& @0 @" B6 j# c6 F        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
1 A) S! ]( \+ O  I        NXString sPartSpec = displayPart->FullPath();. W0 _' O! ~6 P, M: i
        std::string sFolder = sPartSpec.GetText();) b! W/ e( A" S: ?% X% ?
        std::size_t found = sFolder.find_last_of(".");
+ E& F6 p# |* R7 T/ K2 T( R/ r        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
! [3 Q% w4 F: e6 a8 f. I
4 O9 e+ p$ v1 v* [( M) J        NXOpen::StepCreator *stepCreator1;2 r2 }# g0 X$ H( D
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
: v' c: R) r) U& M" `        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);1 B1 ?  T2 {, u8 {9 \$ z3 S8 L
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);! V4 s0 X+ E9 r- I' `5 M
        stepCreator1->ObjectTypes()->SetSolids(true);
7 {8 l) Q9 F/ x) e7 ]8 ^        stepCreator1->SetSettingsFile(sCfgFile);# Q/ n( E8 D1 [4 Y
        stepCreator1->SetInputFile(sPartSpec);
0 X0 x' ^$ u' t2 G$ d) L, q( I        stepCreator1->SetOutputFile(sStepSpec);
0 P* f2 C$ X4 q$ R3 t* V% W$ T8 `        stepCreator1->SetFileSaveFlag(false);
1 D" c0 \) ~. j: v        stepCreator1->SetLayerMask("1-256");
& k" \/ {6 ~% E5 z" f( x" ]$ U( d8 i  b3 }
        std::stringstream sBodyList("");
! s$ M, W4 _; C" E) u8 i7 ?5 j7 O" E
& S# y/ Y: ^: b$ J        std::vector<TaggedObject*>::iterator iter;3 H% Q& _5 e) V* @' M5 t& |7 O# v: L
        bool added1;
3 [7 t3 h7 ]$ O9 D8 I  [        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)1 l: }6 m) b, i: Y
        {1 d# q0 x* f/ e& @! }! k
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
8 v: ?) H, r% P+ \            if (theBody)8 N1 o: y% M. W$ z
            {. d( z& ]5 G" X( o' d5 W) M
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);4 k$ ^" T- i2 U% n6 ?
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;3 Q5 A/ k8 n5 B: M2 c
            }+ f, _8 g4 `$ ~8 ]' h/ I
        }
% D5 n' h1 f: s& r
- w6 b8 [; l3 ]4 L+ b  y        // Debug output1 i6 \2 v. T- [4 R
        print("UGII_BASE_DIR = " + sBaseDir);: ]* U# Z: r. S3 g3 Y
        print("Settings File = " + sCfgFile);  B( t& J  O  V$ }
        print("Input File = " + sPartSpec);
6 `: ~' e! W) P- ^4 v        print("Output File = " + sStepSpec);
( |+ V' P" S% S, G9 v        print(sBodyList.str());
8 q; y2 j7 a% T$ q8 a$ v+ f" C7 E3 `$ w6 F: t: W2 W. f
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
2 r. w7 A3 `. q  ]# E        stepCreator1->Destroy();8 q* k: A& K& S5 d
    }
! Q3 E+ `5 I% s7 z+ a/ s
: L! s/ X& z& M, B}
$ D- r! B' f) w6 j* A9 O
) T+ X& n0 ?! m3 A
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了