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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
# J( J, x1 @1 t) j, `
! q0 f- H0 o9 W

1 O! X# N6 f+ sNX二次开发源码分享: 导出 step格式
% g6 S3 K; ]7 j: {! u: \3 r, w% d( {) C- c' u" V3 x
参考一下,很简单哦!!6 m7 T% ]/ T1 V, x5 x( C
5 E1 r0 _0 r! `# N2 s
void StepExport::do_it(); v+ c8 P' u' D% ^4 v  W$ u/ ~
{
  C6 I* v! f, N    std::vector<TaggedObject*> objectArray;1 L  g% T3 h+ m' c$ i4 O
. X6 O; F* z* j4 R% k
    if (select_bodies(objectArray))
+ r* v3 g6 N- t0 |( _    {4 J+ U$ x9 M9 i1 A' B
        NXOpen::Session::UndoMarkId markId1;
: m* k% q2 A/ P% b$ Q        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");  l& d5 t" E8 ^- j) P! v6 A
7 s7 M: q  K% Q/ ]! L3 \
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");, k0 n% S% K3 k- }1 k6 D+ {4 Q
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
% i! t$ z* @* X2 [2 y        NXString sPartSpec = displayPart->FullPath();8 z4 [( g2 |6 Y! y; O* A/ E
        std::string sFolder = sPartSpec.GetText();
2 F* T5 e( O1 Q        std::size_t found = sFolder.find_last_of(".");2 J& Q& M8 V- D- ]
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";+ T: l6 s0 }7 O! y0 P8 U3 H
3 I8 d/ H6 F: `% w0 E  ~8 i, N
        NXOpen::StepCreator *stepCreator1;, q& L- T! p" J1 A, y: m
        stepCreator1 = theSession->DexManager()->CreateStepCreator();1 x. N5 r6 ]+ m8 K/ P
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);5 U) R6 W6 [* {/ o* ?# x6 Q+ j
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
) z- F# }, @7 a0 O6 i; C        stepCreator1->ObjectTypes()->SetSolids(true);; R! s2 F& q' ^( [9 j1 l6 ~! r; e
        stepCreator1->SetSettingsFile(sCfgFile);
, V. ?, m; W; T/ N2 W        stepCreator1->SetInputFile(sPartSpec);  `7 ]( h+ w* l% a) ^
        stepCreator1->SetOutputFile(sStepSpec);/ H0 J0 Q! i: C- ]( b% Q' [2 ~8 h1 t
        stepCreator1->SetFileSaveFlag(false);
6 k" U' d4 u+ g* j3 {6 s; i: e- M$ Z        stepCreator1->SetLayerMask("1-256");
: N; U; {6 H( R) h/ k- k6 [3 u, `* m+ I- q3 ^% ?6 r3 U( b0 \
        std::stringstream sBodyList("");9 s2 N# R8 v6 H* L

; o  r! v# N1 F' ^* R        std::vector<TaggedObject*>::iterator iter;" M: U4 G8 ]! q. j0 _1 H
        bool added1;
! E1 {' U. p* w0 r$ G% W        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
( O. d* X1 e7 x, i* j        {
* B1 E) {6 }9 w+ a* s/ v            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
4 z. o9 y% w* p- V+ I4 f            if (theBody); B6 j( [; }/ Z3 S6 f
            {
" e! \% ~+ j( b  N- t& u                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);) \) T7 q3 K. |9 t6 M
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
* o' j. t0 g/ f2 z            }- ?8 o0 d7 {; E
        }' c( y" q3 U5 C) }

& H) C' S% k- j' n/ l! L        // Debug output6 D" |( Z. [  K: G
        print("UGII_BASE_DIR = " + sBaseDir);
4 j4 e' b5 r5 e) r2 t6 _        print("Settings File = " + sCfgFile);  a. ?5 l) g! a. w9 [! ^/ X/ J4 E
        print("Input File = " + sPartSpec);
1 \. p; n3 r) H5 B) l        print("Output File = " + sStepSpec);2 C, c( H& Z3 d" [$ s$ h- f+ O
        print(sBodyList.str());
. M( g5 x$ Z0 m3 ~2 L$ h5 _4 b* }3 q7 R8 f: ?6 M( q* y
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
. q; V( y8 L% E1 j) u( _  l, }2 c        stepCreator1->Destroy();
5 S1 U9 c- X; [5 J, c    }
( g# B; }9 C& E6 Y9 Q( C1 v) x8 H# P
}( e+ Z9 F4 U7 H. s* l' @! w1 Z, T$ l
" Y' x& `: {8 O3 n, y" ]" t/ ?( b2 ~5 D
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ 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二次开发专题模块培训报名开始啦

    我知道了