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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

! t- f( P9 E! W3 b
* c1 j/ j: L7 g, W- f9 P
9 w8 h2 R  `7 B0 `NX二次开发源码分享: 导出 step格式, B% H+ h1 |# S7 k( }8 F  j
+ ^+ i6 W' c8 s' k9 o" W7 Z
参考一下,很简单哦!!, O  b0 C$ H$ `* c- {5 D/ x, ^
) s7 Z! O  M% h' h
void StepExport::do_it(), O( Z; J. x4 M- A( t
{' d: O6 L% Q5 k$ N
    std::vector<TaggedObject*> objectArray;
3 w) m: t2 p( _7 p
  X) H/ ]- l4 C    if (select_bodies(objectArray))- z: W- g% E: U: t* L4 u
    {2 I! {8 o9 \! L0 o! p  d4 W
        NXOpen::Session::UndoMarkId markId1;" Q3 ]" c# d' m4 f
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");' v6 F" e2 [, P  T( _* N# v# g

& z+ c, S  I8 Z% N/ `& V        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
( y* V( w6 w' c! M5 P6 t7 O        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
. J7 }  H" ^" S/ C, i3 B        NXString sPartSpec = displayPart->FullPath();
" Y3 p* r, Z- @, j+ d9 Q% o        std::string sFolder = sPartSpec.GetText();
3 V& e5 \# _8 w1 j+ L7 X        std::size_t found = sFolder.find_last_of(".");
& B) C7 c7 i2 e% u        NXString sStepSpec = sFolder.substr(0, found) + ".stp";/ @6 C1 }# K1 j  a( E% L
. k) x& X% m3 ?! P) s
        NXOpen::StepCreator *stepCreator1;
  E7 A) |" J7 w0 N7 E        stepCreator1 = theSession->DexManager()->CreateStepCreator();
; A6 g& g8 B! D) _+ _: g' I  }        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
8 _/ T1 O% x& }/ i! F- {6 x        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
3 R  r$ P7 z2 B$ U9 Z) c0 w+ T" Z$ j        stepCreator1->ObjectTypes()->SetSolids(true);
- _! H) e5 {! S9 Z7 F/ W9 p        stepCreator1->SetSettingsFile(sCfgFile);
) k9 ?5 C; ~1 y        stepCreator1->SetInputFile(sPartSpec);
% s8 C" Q: ^+ ^        stepCreator1->SetOutputFile(sStepSpec);9 ^: Q( m+ T. M. g/ C; Q
        stepCreator1->SetFileSaveFlag(false);8 `# S6 Q) @, K" m  ?0 }8 `$ P
        stepCreator1->SetLayerMask("1-256");
& Q0 c+ g& s$ J3 j2 E
; J3 v4 c/ w: C) ^+ {! S        std::stringstream sBodyList("");0 ~) w( H! Y) v- K
" p; k2 S& ]6 [. A# ?, w9 Y) |
        std::vector<TaggedObject*>::iterator iter;
: X& h. a% }4 f        bool added1;# Z9 s7 K3 t- D* i! C0 S
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)' r( }1 p. ?& r9 F8 b' }- X/ L
        {
) L8 w! R0 J' }  z$ X% D            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
. W2 o" T' F; j3 B' ?            if (theBody)$ I9 a9 V# c2 D6 Y* ]
            {
6 A' A4 f. g' G& h: F8 ^5 T                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);7 h7 {0 j4 }) l/ x" H& {
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;' e7 d! O5 w7 n" W
            }$ M. H% Q$ U+ Q& n. _
        }
: Q4 z- b. H6 p1 t: Q& p
0 z/ n& I; Z. y8 q) T; N% I4 @        // Debug output
7 n5 ?2 B" y  t5 [/ n# k4 j        print("UGII_BASE_DIR = " + sBaseDir);
! g5 E4 D# r3 p" r        print("Settings File = " + sCfgFile);
: B* t$ U$ V4 F( `9 D  z        print("Input File = " + sPartSpec);8 _' l8 k) D8 ^( t% K( m9 _6 M" D; c
        print("Output File = " + sStepSpec);
# `. n' K9 g* Q$ Y9 c6 S. H        print(sBodyList.str());. N& Y5 L% m( N% W) C: V( F
% T4 G2 K9 Y! @0 J$ Q, @# A
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();$ k( ]3 ?5 L1 G
        stepCreator1->Destroy();
8 M  A1 H+ \# N$ h! H1 \8 ~; \    }
. x& e* H1 ?% P8 E# ~4 d8 V: U# x3 @, l3 [9 S6 g( G
}
( C  w' A& e5 K) f- D  V) Z  K& m
0 S4 l7 o8 t5 Y$ K/ g% x
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了