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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
* K, q6 O- X  I8 Z6 H
% d0 d  ?+ ^- D+ `' `, M8 z# C
: D+ n3 n( F$ d) {) T* _% a5 ~
NX二次开发源码分享: 导出 step格式+ S2 i- c3 g2 t% [6 }

- M) D5 p! v- a/ w  a参考一下,很简单哦!!6 ?5 m0 |3 s* A* H& Z

* S6 K* i% @8 u4 s+ F. p$ ]void StepExport::do_it()
5 A- _: O5 \, V; h9 \. _{
" [0 j8 Q0 _( A: j/ P9 }    std::vector<TaggedObject*> objectArray;
* R9 o5 e" i( W: \, ?
* k0 l+ o8 Z+ C9 V" V6 Q9 Z! S    if (select_bodies(objectArray))! h( N! T( K/ E) V# L
    {+ m6 a2 Z6 ^) ^* I
        NXOpen::Session::UndoMarkId markId1;
! k: G0 m( v7 H' Y0 ~        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");8 S' I* M8 b% F7 F# ]; y: ]

! [' t/ K/ }: s" K+ L% j        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
- O* w* R2 `) h- O        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";6 M# l. ]6 [4 X3 H+ C6 k
        NXString sPartSpec = displayPart->FullPath();
! F# i$ z; i! w9 z0 n        std::string sFolder = sPartSpec.GetText();9 g4 m; t. f! c- [  q  I* }
        std::size_t found = sFolder.find_last_of(".");9 h# d, L& E- J: ~8 [
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";; L* `/ V4 Y$ k/ p

: M6 V5 H- I  q- L( Z        NXOpen::StepCreator *stepCreator1;: k: |- b: G: q
        stepCreator1 = theSession->DexManager()->CreateStepCreator();, L& J  W0 e+ o
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
3 ^) }) {- i7 ]4 c        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
7 d5 H- k. T0 f/ L        stepCreator1->ObjectTypes()->SetSolids(true);
4 }" C$ H1 G; _& a+ a        stepCreator1->SetSettingsFile(sCfgFile);
" x+ `: m" I/ W( A$ o, x        stepCreator1->SetInputFile(sPartSpec);
" N* a0 V6 o$ x$ W, S7 l- A0 G        stepCreator1->SetOutputFile(sStepSpec);
3 o8 p9 l/ r# M5 [* S4 x        stepCreator1->SetFileSaveFlag(false);, f1 O; M9 ]' J  @
        stepCreator1->SetLayerMask("1-256");; L+ h& ~2 A) y" l+ s

6 V9 C5 a& N8 c4 ]5 j% }        std::stringstream sBodyList("");# y+ F7 x$ h1 A  Z- @$ v

1 ]. S8 f+ Y& S& `9 k) z( F        std::vector<TaggedObject*>::iterator iter;
1 H+ n( h7 X6 p4 J% [        bool added1;2 P1 N, G  {3 F/ c' |5 i
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)% c9 @3 e  I9 ~4 \# u& E7 j
        {
) y( ~0 D3 D) Z1 H9 ~3 U, b, j            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
5 k9 e0 e6 D5 I' q            if (theBody)6 O2 N( w* C! Q0 R$ D6 J% \1 R  p' p
            {
% j! `8 L& n. ^                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
  i8 @! t/ O! Q( F$ N; A( E                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;( l7 b4 a3 n+ H* i2 ^$ S3 S8 b
            }
* a$ q4 i0 u9 U& N- w! c; c5 L        }, C+ h% K6 D! v  x
! d+ D( n5 Q( R+ f% ?, q- m
        // Debug output
* K2 I) w& E; K) ^: a        print("UGII_BASE_DIR = " + sBaseDir);" f2 u+ T/ S& |6 |% P9 J1 B
        print("Settings File = " + sCfgFile);" q# }5 x! V5 F! i* n. J
        print("Input File = " + sPartSpec);1 E; C4 O$ E& v% x0 t+ Y4 M2 _  H# `
        print("Output File = " + sStepSpec);
  [9 s0 b/ n" I6 Y! p, F. V4 `5 s! r5 w) I        print(sBodyList.str());$ P0 C: O1 p. Q4 K! L1 ?, l0 S

7 }! h1 U7 l! }) R& ]+ ^" b5 K        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();9 x* E6 s/ b1 M- b2 R6 B
        stepCreator1->Destroy();
4 a, @- M& U* B  f- `. V/ V    }  a: s  R. {! n' }

) E  t! k4 p: P6 q: T* F% d; y}
5 Q0 P& c1 V5 W, v4 P# T" w5 h3 T* H" E% A/ _1 `
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了