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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

9 f0 I5 R6 j& l/ k
0 ^) |( ^5 j/ ]6 F9 J' v0 u* d4 V) {  {' l) \% x
NX二次开发源码分享: 导出 step格式
' B. w) u8 p  A
, M: o3 f- u- D2 ~7 T7 C参考一下,很简单哦!!
# V1 G7 b5 o3 D9 p8 o0 Z6 d
- K' y# B2 S$ l; p* H' e% {void StepExport::do_it()4 o' W1 C9 r; p; Y( P8 _$ t: Q) I
{  Z' D5 Q! J* f, W  H" ?: l, l' _
    std::vector<TaggedObject*> objectArray;
$ M8 C8 x. t! k8 w" Y  z/ ^, Y# }/ Q/ D4 R
    if (select_bodies(objectArray))4 X9 w0 [8 a3 a! P0 U
    {/ b$ I# x1 T8 ]
        NXOpen::Session::UndoMarkId markId1;
' k' r* A6 Q5 u  m/ k2 J        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
% i3 R4 K( i* Z# O. B% W
5 _# L, P/ L  x        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
7 G& b8 ^; b$ i        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";; i" v2 {7 q; ~% {6 {0 F. I
        NXString sPartSpec = displayPart->FullPath();
% w; S$ N* y$ ]% `  d# ?9 T        std::string sFolder = sPartSpec.GetText();
; e$ Z# p2 \# z3 Z' P! d% ?4 M; a        std::size_t found = sFolder.find_last_of(".");; ]4 J$ C9 c) J7 z( h$ g- ]
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";% ~' `( D; ?* V; P( i* Y1 i
) K9 F! ?5 F7 ^5 f1 F! ?4 @: {
        NXOpen::StepCreator *stepCreator1;
" I* ?1 k0 _1 _! H  p        stepCreator1 = theSession->DexManager()->CreateStepCreator();
. @+ L: c0 o4 L, T2 |9 b        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
5 f) q) k% p$ s. C: A0 d' V        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);$ z- W) Z; o4 C* I1 ~% k! k5 d
        stepCreator1->ObjectTypes()->SetSolids(true);3 f# |) y9 d, t, m# h- {; B4 |
        stepCreator1->SetSettingsFile(sCfgFile);
/ c9 n5 A0 _( k+ C+ E5 Q        stepCreator1->SetInputFile(sPartSpec);- J6 F2 t' }% }$ z: U- X
        stepCreator1->SetOutputFile(sStepSpec);* Q/ o$ k  ?' J9 s
        stepCreator1->SetFileSaveFlag(false);  r# j3 x/ l8 U7 @  {' I7 E
        stepCreator1->SetLayerMask("1-256");
8 s  B4 g8 {9 a+ |' g* ^$ j: S3 Q' n3 P$ F
        std::stringstream sBodyList("");
8 _  D) ^. Y: b5 [: |+ k( j& \; I+ P7 ~8 x& `/ I$ u
        std::vector<TaggedObject*>::iterator iter;8 A- F' G1 h/ W! J9 F
        bool added1;
& G$ H9 ]) D# ]8 L2 a& L) D0 w* v        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
$ {  n' ?3 T# _( l3 t  a        {
9 J, T- j0 r5 I4 W1 w8 o5 a: j            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);9 _# Q4 V( s4 g% a% T" [7 y
            if (theBody)
+ A& j  S- Q* R. N/ I& s+ Q4 Z( j            {
& U& g5 k+ w: j5 O, b+ |                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);% Z# s9 q! \  [7 D' F* X2 ~
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
0 N# P6 h' I  v+ @/ D            }% b4 \5 g2 k* b1 O
        }" V+ v( ]; S# N+ k" u

0 z. `/ E4 p) v) _$ f' P        // Debug output
; K, f  q) Q* w' e* |        print("UGII_BASE_DIR = " + sBaseDir);# c. {' t9 V2 B
        print("Settings File = " + sCfgFile);
+ y; L+ r* o, C. J: L        print("Input File = " + sPartSpec);
1 d# g5 D3 p: X$ l# W8 t8 }        print("Output File = " + sStepSpec);5 Z5 P  d( H' a9 j
        print(sBodyList.str());
8 M1 R; o! G. V3 s( e6 u/ u7 p; E% _' x
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
: m7 g! a- t5 Q0 F; E. O        stepCreator1->Destroy();8 d7 {" r2 f  E
    }
+ ~! s1 ~- Q* Z/ P% E, r" T
, ]0 V$ r6 z5 j; D) |- h- X: k}, d, Y( K/ I8 J  H& E+ M

% @0 @5 c3 y) {: a  w
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了