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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

( z; t4 I, U- H% K9 p0 i. ~4 @0 i  X( g( q; p1 }; R& t
6 \+ ]6 F$ c& {- U0 ^
NX二次开发源码分享: 导出 step格式
7 `- R" \% m/ q% g( [" R- W, p% M3 {& g/ I5 ^6 ?  ]
参考一下,很简单哦!!
! |; m  t. P9 x+ i: ^# U2 _9 E. w4 k1 M4 L: Y- b, G
void StepExport::do_it()( p/ b$ y4 `0 f5 E& y
{$ L% ?+ P. \2 L- a  q* E
    std::vector<TaggedObject*> objectArray;6 r& G. E3 u/ V0 U" K

( }" }- u1 }4 f; v1 h    if (select_bodies(objectArray))
8 g; K% u3 y/ y; {- C+ X    {, z3 W5 X9 ]* y4 D: Q! ]! I2 ~
        NXOpen::Session::UndoMarkId markId1;" q4 H( {  z, n
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");  j! w' e+ `& S7 O/ U" t4 e4 S

% O2 C- I7 e/ `) G2 m& M        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
- o( Y- m8 `$ w8 D) Q6 V5 O        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
( E9 k0 p# J7 e; j4 G        NXString sPartSpec = displayPart->FullPath();5 i  C7 _8 X" s# f( B
        std::string sFolder = sPartSpec.GetText();
  l3 |* q3 h8 Q0 q! v% W2 v# D        std::size_t found = sFolder.find_last_of(".");
* r1 H5 S5 g: I& i; X/ \" j        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
5 X. B# n2 F9 X" u8 j" ~# J( Y4 f& j& l: {( N4 U+ s; |* `
        NXOpen::StepCreator *stepCreator1;
( p, e- U. ?2 |1 L* O; r        stepCreator1 = theSession->DexManager()->CreateStepCreator();+ C& C  }- W/ {
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);+ w& e  M3 f# f2 ?
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
: X7 x) y& v/ u6 v8 y: ], M        stepCreator1->ObjectTypes()->SetSolids(true);
; T4 C! _9 C! W# ~  v$ Z$ E        stepCreator1->SetSettingsFile(sCfgFile);7 c# L' a! u/ U2 d0 H
        stepCreator1->SetInputFile(sPartSpec);
# l% s. U, b2 S        stepCreator1->SetOutputFile(sStepSpec);& r1 }1 y' k  i, H" y2 e
        stepCreator1->SetFileSaveFlag(false);* [& P* j) j$ V: W% l4 z* u8 x
        stepCreator1->SetLayerMask("1-256");
/ ~3 b, B. i( w# P
& s  j" H6 X# c8 A        std::stringstream sBodyList("");
. Q: n' h: L/ Q9 X2 U7 V( F5 `6 R  j5 R, v
        std::vector<TaggedObject*>::iterator iter;4 x$ c9 Y5 N2 l8 Y: S% [) Q
        bool added1;
$ J1 U( [- R+ C2 g; H        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
9 z9 O$ c5 P7 S1 x# O: W: _/ g        {. O5 c' L+ S; W7 {2 T- ]
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);2 V$ u+ Q4 f) W* H; N& N2 A
            if (theBody)* p  O6 Q/ \+ e3 A8 N4 y
            {
1 x6 c, I8 ?4 j& J1 c                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
. Z% u! ^3 v6 |! G                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;* _  ~/ t0 l/ f5 D. r$ z0 a! {
            }
& s% b' g0 k  W4 \0 m) J        }
0 l5 X( U' N* Y) N; r: X% q! L
( ^# [1 B( H& s. B1 O6 A5 r  V* u        // Debug output
  B% H4 |1 M1 v4 b0 e# \& x2 o# Z. w        print("UGII_BASE_DIR = " + sBaseDir);
% d1 u( P' c% f! d3 a        print("Settings File = " + sCfgFile);1 M0 D: L/ y% r1 T6 x6 M( g
        print("Input File = " + sPartSpec);5 N' R) {; D# c5 E# I9 T9 `
        print("Output File = " + sStepSpec);3 l- k! S& M3 k
        print(sBodyList.str());7 v  A# L; ^' H

* B6 R9 E! r. I$ l) }        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
4 [( a$ n* h8 o4 ~! K2 o5 L: C; R        stepCreator1->Destroy();  j- m/ Q9 D+ K4 K  M) T
    }
; N" z/ `" a! z/ v4 Y: n
# a% j! q! T* Y8 ]4 ]( v}9 L1 s# m8 t9 U% o; L% O8 w

( x+ v+ D/ Q- ^9 k. j
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了