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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

# Y" G6 ~0 b) D
- \" J: D* B( c' H. A: }* ?' M" z( G& s& k- |9 K7 T
NX二次开发源码分享: 导出 step格式
3 V" |( H) X+ M7 T- M5 f" [, A' x+ J8 A; v6 Y, ]' \5 r& @
参考一下,很简单哦!!
7 d2 V4 \5 t7 T- u8 L! F  `) C* }% A$ y
void StepExport::do_it()
/ f1 e1 R6 q6 P% p6 Y3 \{
, v+ m1 h1 L/ H% w' t    std::vector<TaggedObject*> objectArray;1 ?* m' w9 x5 y! @1 ^' l

/ Z* Z1 m4 G. X9 Q( U. p  `: i    if (select_bodies(objectArray))
6 r! g7 |& T3 W( q; S6 K+ [  U    {
/ }8 \5 {! A8 r1 |1 a9 h- \        NXOpen::Session::UndoMarkId markId1;
2 M9 z# I4 F. P: @8 f1 \  v" x; W        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");6 q9 E4 g2 I2 L3 l2 n7 s* M, C

" l3 @0 c3 ^1 ~8 [' I: Z, n7 M$ r        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");! S) _3 Y9 Q0 N: w8 G8 x
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
* x8 w' Z% S2 v3 j$ T% ?) M+ |, f0 d        NXString sPartSpec = displayPart->FullPath();; U* u" X8 h6 t+ Z2 |
        std::string sFolder = sPartSpec.GetText();: W  \" N$ T' l5 P# m
        std::size_t found = sFolder.find_last_of(".");# z) R3 `- Y- d  B: S1 Y4 v2 T! U0 y
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";, |& M$ U8 d# [& Q) I

( }2 S" \, g" J        NXOpen::StepCreator *stepCreator1;
" s: i& s* J# _% g- t- q% w        stepCreator1 = theSession->DexManager()->CreateStepCreator();
( d. X2 {$ g6 j        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);# l/ M% c+ E4 N# k$ t
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
+ y4 B1 z/ [8 y6 J: W& K* Z/ U        stepCreator1->ObjectTypes()->SetSolids(true);
5 ?* v: t1 S. I& }6 F3 i/ V        stepCreator1->SetSettingsFile(sCfgFile);* ^& |% Q0 a. F5 W9 R# |, W" K, u
        stepCreator1->SetInputFile(sPartSpec);) G- o8 _; R/ X) }
        stepCreator1->SetOutputFile(sStepSpec);( K5 {6 ~) T3 y' j
        stepCreator1->SetFileSaveFlag(false);
  F# X. d; P$ p+ W! |        stepCreator1->SetLayerMask("1-256");
+ a) A/ t: p/ G) C/ e) w$ x& t$ z# ?! P! G3 r: `* H1 I
        std::stringstream sBodyList("");
: N1 \3 R4 R( \+ B  c' d  o  i% B- w
- N4 L$ X9 @+ _5 z, u$ `        std::vector<TaggedObject*>::iterator iter;4 k' Y7 s) i' p3 ?/ x' J8 Z* v
        bool added1;) `8 H/ q6 w0 ]) F0 |/ V5 ?
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)6 m# [  Z' R% e1 i" w  @4 A
        {  k( Y1 s9 |: Q6 G
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
5 I+ n5 Q. M% V# R9 k            if (theBody)
, O1 k. E5 n0 r0 f- J- L/ ?            {" y! `, Z, ^" i* L6 v5 D" D8 ^
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);  F+ `6 z) o- ^) O
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
6 h2 D. e! g9 p$ t9 G            }
: s* h- Z1 |( v3 W) r        }
. r/ D4 G" G" _5 M8 b" V( v1 D$ O0 @! @# V( \' _+ E  u. U& m0 d
        // Debug output
- E6 r+ X- [6 h/ t! g# Z; c2 j        print("UGII_BASE_DIR = " + sBaseDir);
) {) ?" ]: W. t$ u        print("Settings File = " + sCfgFile);# |: S. E. Z1 w4 f1 P
        print("Input File = " + sPartSpec);
- X0 i0 T; D( z: }: _        print("Output File = " + sStepSpec);
# z' @3 V* B! a# U' O8 {        print(sBodyList.str());
4 I, W# c( o( Z) \: S0 b' h0 Q5 L3 I( ]( s2 p
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();7 |/ }" D3 p9 a  X
        stepCreator1->Destroy();8 {/ \+ o' r9 \* p
    }. M( H/ h2 v& l0 x* a
" u: c" c" Z& y" ?6 ~" U
}+ u$ ]. }9 D& k
0 C+ m$ {; ]6 {; I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了