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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
0 w/ f. t) j4 |8 J0 P  d+ P
' G' W; J# }. ]+ E6 |) e: w, b
3 [2 x, ]  v6 ]  ]
NX二次开发源码分享: 导出 step格式* o& j2 w9 @* x- `7 z
1 o7 @* }. S) i# s. A
参考一下,很简单哦!!0 a/ ~6 w4 q7 o! m

! ]! U9 ?7 _2 Dvoid StepExport::do_it()# |5 G9 A* C% h
{
, l: H; R* N- z" }    std::vector<TaggedObject*> objectArray;/ m( L$ K3 y/ r9 j4 I

- F) _( m% Y4 O# Z: S! g* P    if (select_bodies(objectArray))5 M6 t' W+ [" j: j4 m0 k9 t: f
    {
, z* b( Y7 u& V# B8 }        NXOpen::Session::UndoMarkId markId1;' J6 N4 k+ b) m5 f. s; [7 H
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
1 k; l; d( J  f' \- E2 l, Z; Y4 s
- f' u( g6 W( J7 }( L  \/ z        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");( E: S4 T% U6 f; k0 G* o# E: j
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";# p' f* V' S( N% M% m
        NXString sPartSpec = displayPart->FullPath();
, ?4 b5 L0 ?6 ?" @+ }* B% p        std::string sFolder = sPartSpec.GetText();
9 E3 X# U% S3 k* X        std::size_t found = sFolder.find_last_of(".");- [4 R  u. l. ]+ @% s) o
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";9 R% g& e) f3 H. e& j7 w4 H- d
0 c! _/ `* U; a/ i9 d+ w
        NXOpen::StepCreator *stepCreator1;4 d3 |( x+ q. R, i7 c. }& t
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
& G# s3 o1 {6 f        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
, S: x% K. i6 H1 E        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);8 R" u: `9 e. J3 c2 Q' I+ S
        stepCreator1->ObjectTypes()->SetSolids(true);2 e6 q5 c! t( E2 o* m# b4 |! x
        stepCreator1->SetSettingsFile(sCfgFile);
- g* K/ O" Q+ n$ S1 F        stepCreator1->SetInputFile(sPartSpec);1 z: ?; G& E1 u7 y8 _+ F
        stepCreator1->SetOutputFile(sStepSpec);
- G0 a$ D! _% q- e+ w        stepCreator1->SetFileSaveFlag(false);" D# l9 j; v  I( B; e* Y/ e4 h1 [; F& B
        stepCreator1->SetLayerMask("1-256");
1 D8 _7 b6 A/ f9 y
; L/ V# N9 `& b  L! r        std::stringstream sBodyList("");
8 [, R- W1 l. E: \& x7 T1 n5 s: E3 Q9 {" v0 G9 L! C- X
        std::vector<TaggedObject*>::iterator iter;
8 y% G2 h% M( n+ ]6 p4 R        bool added1;4 Q, m4 {3 G# Q  U
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)& T2 v$ Z& a+ G6 d. o
        {3 i" J7 B4 e+ L9 q/ O6 F/ H
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);. S2 C' }- [3 \7 {* h& h
            if (theBody)
1 {8 ~7 R7 K/ t3 C/ g+ U5 [            {
  t- u4 }1 j2 D' r                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);4 ~4 I% f4 r+ K: A0 k
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
  c+ N, `; S2 J* ~            }
7 u, t- O3 \- b$ G4 Y9 i8 A        }
$ h( e  |3 K% c. ~- R& I+ @
! n% E' _8 R% x        // Debug output
- N8 g3 [1 L& q) l$ I/ b; v+ p        print("UGII_BASE_DIR = " + sBaseDir);
; J% T" q7 ]0 X        print("Settings File = " + sCfgFile);
- ^/ `) i$ ?5 ]# j        print("Input File = " + sPartSpec);( y2 X9 h5 a3 Y$ Y: y. L4 S) \
        print("Output File = " + sStepSpec);
4 J- @8 C5 Z) c* l$ h! d* K2 P        print(sBodyList.str());
$ e% a5 z$ g) i5 X; }  b3 H+ h6 N8 Q% l& R1 O/ Q( ?; x; j8 C7 k
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
% {8 Q% {5 p6 C' \8 X        stepCreator1->Destroy();
- N! W  X- M1 Q5 g    }
+ z: q2 Q0 V: k7 N: G
4 o2 Y1 [6 C$ r( `2 N* H% `}' e0 w3 u0 I2 Z9 B: j
# z% @; a1 g( K$ [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了