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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

0 Z% v7 H+ D6 i: y
0 K6 S' [7 M# B0 Q8 G2 e! o: D5 L: `
/ Q5 X5 d/ c# {9 c; a9 pNX二次开发源码分享: 导出 step格式+ T9 \9 g& Z" A: y, e+ \3 D% ]& I
$ `$ x" e) a% ~: d4 N' ^& d
参考一下,很简单哦!!
% }3 i9 f  `: ?& t+ {5 q1 `" T
0 O, ]7 A1 L& a8 s/ t$ Q4 g3 h) Lvoid StepExport::do_it()
# [* a8 N" \* T, U- o{
5 [. }- \6 B: X0 S    std::vector<TaggedObject*> objectArray;: F9 ?1 ~, z: \& @1 B
; W2 G4 H. z; u% u$ ?  F
    if (select_bodies(objectArray))4 r) c3 H3 D' f" K2 C, `1 ~% Q
    {
: ?; ?! e* M7 N, _- m$ q7 z9 C  {        NXOpen::Session::UndoMarkId markId1;; f  S, y. _3 i$ f
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
8 @  n# Q) O* f( z: R
; _& Q% ~0 G. A; @7 u4 P2 R  E5 C        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
6 [2 Z4 e# N2 ^) t* B/ O        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";( j# C2 g$ l+ q( `
        NXString sPartSpec = displayPart->FullPath();( q3 F+ A2 t" t2 T4 P, V9 f9 U
        std::string sFolder = sPartSpec.GetText();
; z2 f7 Z8 Z& P5 f% v1 l- I        std::size_t found = sFolder.find_last_of(".");
6 o% U& q" }9 e8 f! S1 ?3 `) o" E        NXString sStepSpec = sFolder.substr(0, found) + ".stp";1 e5 S) x% S, }2 v* _

2 V& T. F7 E& y, \        NXOpen::StepCreator *stepCreator1;" S% u* y/ Y1 J3 x  @
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
8 S' z3 ?+ A8 N0 Y        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);4 X, x$ x6 H9 G
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);8 @1 e1 @, F: s$ p+ ^2 L
        stepCreator1->ObjectTypes()->SetSolids(true);
1 `* \2 n6 \! D        stepCreator1->SetSettingsFile(sCfgFile);1 ^! k) }3 [* u% J; [1 C
        stepCreator1->SetInputFile(sPartSpec);
) f* e3 }, v: f% a7 Y* c        stepCreator1->SetOutputFile(sStepSpec);
! @3 }3 `# Q( f# H, Z8 l        stepCreator1->SetFileSaveFlag(false);
8 L- C  e, r( F, Q        stepCreator1->SetLayerMask("1-256");
1 {6 ^& ]  N+ c9 Q& o! H$ o) U2 {
' D! D* j% Y6 o* x0 t$ P' C        std::stringstream sBodyList("");7 o4 _( H3 a# [
) ~, w& E- }0 G. V
        std::vector<TaggedObject*>::iterator iter;3 H5 c# l  y9 i* B' z& q
        bool added1;+ `( f1 u$ U- P1 F
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
: k$ w) p7 p& C' G        {
! T$ i0 n# M( |4 g6 h            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);+ w5 w8 H7 K5 m9 t
            if (theBody)1 l+ {4 \$ w- r1 c! \
            {4 N5 d2 z) Z/ C
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
/ k* U) r8 M" X0 j                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;2 w! g0 \! i* p
            }
7 \6 a2 i: v0 v+ `        }+ x( u9 Y1 ?% @( j# v: j; X5 K
: @% t+ G7 w5 r! G
        // Debug output
) L1 X- p$ O  ~' f# C1 }        print("UGII_BASE_DIR = " + sBaseDir);
$ d. ^! W9 N; v. d1 J" L( g. U, D2 }        print("Settings File = " + sCfgFile);
: [. E! h  N" z; y+ \# y; l        print("Input File = " + sPartSpec);
0 F$ I; O, `& X9 t        print("Output File = " + sStepSpec);
+ L" M; ?! }: ~6 ]        print(sBodyList.str());/ w3 o( R* G! {& z: F

% }' J! M1 H, D) K        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
3 G4 p3 A( S1 f/ _        stepCreator1->Destroy();1 E) ~/ g9 Y5 P. l% _. {
    }
! M1 T+ B$ {6 e$ y+ b
" A5 x, L6 q$ `; n* m% U, H}9 B8 T+ c8 B" V0 X, L

& _7 w  l8 u3 W8 _) j- g: q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了