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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

% o4 z; W  U6 C, p& \) z( G- v2 v

8 m" \9 r* j/ A3 S+ i% `& MNX二次开发源码分享: 导出 step格式4 s$ _% Z$ l8 J; K0 e# j

% C- H7 i/ a* S* ?" [! c4 |$ C参考一下,很简单哦!!
9 ~0 k9 J$ t# O" t% y' S3 O
5 m/ T7 m3 D: j6 G1 v: x6 E4 Qvoid StepExport::do_it()
. Q. H8 m- X2 a+ ^$ t, {: Z{: v9 Z* J/ E5 {# y) X
    std::vector<TaggedObject*> objectArray;
$ T9 S# P6 N( f* W* ]9 {+ B/ y# t( `! _- }% }
    if (select_bodies(objectArray))
. m! A; \. |! H0 u! w( l9 i    {1 O8 o  u8 ^: m
        NXOpen::Session::UndoMarkId markId1;
/ b6 V4 p! T7 h; W2 N- h        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
0 I1 s$ r* i, @9 a
. u! y: n' y0 W. ^        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");. \3 W( n! P6 e$ ^: ]& e/ I
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";8 ?- S: n$ Y# `% n
        NXString sPartSpec = displayPart->FullPath();  t/ x" P: q$ ]  _3 {" m2 F
        std::string sFolder = sPartSpec.GetText();* d: C' `8 D! K% O0 ?- M
        std::size_t found = sFolder.find_last_of(".");
+ D) k& y+ @; w8 \# N6 K8 m        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
/ I/ H- {* Z0 A) C, W# I8 B$ y9 J7 H9 y# B" t5 d% Q& n" Y7 m
        NXOpen::StepCreator *stepCreator1;3 K+ j, q+ Z. I5 n
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
2 }1 c7 c4 K$ |5 f" o% G7 j/ o        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
: _/ O' Q2 F) A4 j; `        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);2 ?1 e3 J# r9 u1 {
        stepCreator1->ObjectTypes()->SetSolids(true);
/ e7 Y5 M% U- a        stepCreator1->SetSettingsFile(sCfgFile);2 g* i7 j9 b. E% R. H5 y6 q
        stepCreator1->SetInputFile(sPartSpec);* o% W' k8 G4 u- T. H) L
        stepCreator1->SetOutputFile(sStepSpec);
' s% i! @5 @: v* Y        stepCreator1->SetFileSaveFlag(false);3 ]8 S7 Y% s$ a5 [/ P
        stepCreator1->SetLayerMask("1-256");
- [0 |$ O8 D8 Q) E  R
4 o, Y1 \* a0 `# w" ?  A! z. z' {        std::stringstream sBodyList("");7 e% ?9 v4 s( f3 _  i
6 _! X4 |% s7 m3 ]
        std::vector<TaggedObject*>::iterator iter;
! l1 ]- J5 c' Z% d" n        bool added1;
% h8 L7 B7 w' ~) ^        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
: \) ?0 O- L# c8 @" B        {
1 A8 l3 x3 \" L( ~3 Y            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
! S' _3 c& k1 v& h; b/ b( c" J            if (theBody)
1 E- X5 l( p/ U: |; E: w            {
4 m2 }4 V. e# e) q6 |                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
5 c* Z  i! I. G$ G6 \; v                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
$ b; g6 p  y) ^3 D( _9 r1 @( U            }
7 h  o" S7 V( s( S        }
2 j7 n8 D% V4 _: X$ u! a3 [: e
* m/ q5 R5 `* o+ U, ~/ O        // Debug output
9 J( c5 _5 B2 u        print("UGII_BASE_DIR = " + sBaseDir);
& U- C( @1 q( X  W' N5 @        print("Settings File = " + sCfgFile);
0 d( Q/ [+ f2 }) F; ?: M. i        print("Input File = " + sPartSpec);
; Y  \& @" p: }        print("Output File = " + sStepSpec);$ G0 H9 h& q; a1 n$ G* j) U& Q
        print(sBodyList.str());
% Z+ M+ y1 \, W8 t$ a8 \  N# A
! v3 \, J, a/ P, Z* g9 I) s7 r        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();, V5 k' Q& A! J# C$ p6 N2 e( A& A7 w: ~
        stepCreator1->Destroy();+ T) ^( s2 h' y0 X0 _: K1 ]
    }6 C6 a- o6 k4 n9 y1 F7 W
9 l* X2 [9 R4 C. Z
}( u( F$ q" I/ e9 w0 |  b

. q: h3 @% y5 G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了