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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

* A* I; a! G7 g* F* m
: d$ [) a& B5 H' A& M& E- u
& U8 P$ P8 n6 V4 H  c5 yNX二次开发源码分享: 导出 step格式% u- s- Y) z( a3 F" i2 K

* W! q9 x( F( g/ k; ?: S) D5 n参考一下,很简单哦!!
( b( U* z6 C- r9 O' A! u! J5 ?! L" m; J
void StepExport::do_it()
2 y, x4 k: W9 i! U{
6 Z8 `$ e& Z! o+ Q, S& x" e: f    std::vector<TaggedObject*> objectArray;4 E0 Z* N. |) }2 y
) M% x% J4 Y! M8 x$ D7 h
    if (select_bodies(objectArray))* A1 y4 e$ O  `+ i
    {# k" H4 A5 o: q3 I9 }% \" T
        NXOpen::Session::UndoMarkId markId1;3 v6 y, l* A# W( H
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");7 H1 E5 z' L5 Z4 ~6 z
7 |; Z: G$ A  N+ F; \( D. h
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
1 J- |" E$ K7 W+ B4 ~; R        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
4 U' K( ^0 X# P% J! B        NXString sPartSpec = displayPart->FullPath();
9 w; N8 Q- ^2 E% |, Y7 N        std::string sFolder = sPartSpec.GetText();' V$ ]0 y6 m+ N$ Q) J% H
        std::size_t found = sFolder.find_last_of(".");
9 J2 y6 z- w! q4 b        NXString sStepSpec = sFolder.substr(0, found) + ".stp";3 E# s- L8 J( w  ^5 [; ^( k

5 j7 X- |5 O; d0 X1 `/ o0 i4 v0 Z        NXOpen::StepCreator *stepCreator1;+ c' R% D4 B0 ?7 N) X/ |
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
& l! B/ w4 T% c  o# h        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
6 X* J  B- m5 ^* e% p        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
' ], N2 j2 x) s        stepCreator1->ObjectTypes()->SetSolids(true);
8 S# J3 {  C8 ?4 b        stepCreator1->SetSettingsFile(sCfgFile);. }- k% ^0 b! H  `, S/ H
        stepCreator1->SetInputFile(sPartSpec);
$ l6 C' j( I% Q; W        stepCreator1->SetOutputFile(sStepSpec);
! j; E: m! b1 @% d2 i2 r& c3 Q        stepCreator1->SetFileSaveFlag(false);
. J0 N7 J7 |* Z        stepCreator1->SetLayerMask("1-256");6 W. ~8 E, ]3 @6 [6 p' i8 l3 x

% r1 P) Z/ S& |5 W- f: ?        std::stringstream sBodyList("");4 v) O* L5 a' J% G, m$ M! W

4 p- j  Z. {7 K$ g3 M$ Y( `        std::vector<TaggedObject*>::iterator iter;
% T" A& q% k! c5 c        bool added1;
# |5 d: j. L- H; P$ ^: s        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
( t) b6 M9 E+ f# a        {; I; ?3 I. L$ t4 V
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
' g/ ]# K. d% z; r            if (theBody)0 q9 x) G+ \, J$ i! R0 q' m. K% ]7 z
            {8 j& b$ b6 l+ R$ l
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);9 }3 S# G4 D2 F& ^6 A7 D
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;4 z% o& v) @" `/ c9 B
            }. e" [" K8 j8 m: }
        }
  s( X/ t6 L2 ~2 K) W# l" c6 R' O; A# g9 X) y
        // Debug output
% `  s+ ?. R; E1 h1 W        print("UGII_BASE_DIR = " + sBaseDir);
& C  p  w$ p- `  L        print("Settings File = " + sCfgFile);
( q" {  K" K" D( B+ p1 F) r        print("Input File = " + sPartSpec);
; D+ m$ a& l2 H1 L/ n/ Z* [2 Y        print("Output File = " + sStepSpec);
4 X, b5 t* h8 \8 f        print(sBodyList.str());
1 ]( f3 B. X* m- J  u3 ~6 y- l& r* Y0 _2 d- ?+ k
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
5 q6 E% W5 }; \- m7 m2 c        stepCreator1->Destroy();, I/ S  E$ s$ x6 o: l4 m  g" G
    }
: o; W& o4 H' [- P$ u( W" L9 ?; f/ O% v' o* Y- |# f" s
}
4 S$ B( \) v9 k1 v, F/ |9 W2 ]# m, B" N6 a" n; F/ p: {
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了