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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

8 u: y2 L! i# q
) `% c; L$ B4 n2 [% w% ^  u  A5 l. b
NX二次开发源码分享: 导出 step格式, ~# ?2 \* y6 Y* V$ g2 c$ `
1 ^+ ?) F+ K8 L  o) K% n
参考一下,很简单哦!!
  s9 `/ [- X) V7 f9 p3 q) V. l- I- J, V2 B; k) M3 i( k
void StepExport::do_it()) x: I9 k4 S+ P  i9 L+ t  m4 Z+ l! X
{" G' q. I8 [: l! H/ u7 h. J
    std::vector<TaggedObject*> objectArray;+ G" g& ?: U& a, H8 ~  M% ]

# }/ W) @* Q& }6 v; w# V    if (select_bodies(objectArray))
$ n+ b3 t& Q# ?) Q    {
  g! ]! {) U& B. g        NXOpen::Session::UndoMarkId markId1;+ S: {; P+ f3 |; w! U
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");7 O5 W; e4 L- g! f' I3 Q$ |
8 T: w4 @( c' s2 r
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
  h1 q9 Q( `( }" ?1 F: ?. q* x* E        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
6 ~5 Z! W0 G  K" I, f        NXString sPartSpec = displayPart->FullPath();8 p8 d! J8 |5 ?: |9 h
        std::string sFolder = sPartSpec.GetText();
6 v9 x# l$ n/ p1 G* t, I        std::size_t found = sFolder.find_last_of(".");
& A; t9 U5 X& C$ M6 a' s/ n        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
* z7 M* @# ~" L8 v# [1 @
" Z  g+ L3 o* f3 Q. \# Y0 S! l        NXOpen::StepCreator *stepCreator1;1 M! i4 ~/ v9 k# Q
        stepCreator1 = theSession->DexManager()->CreateStepCreator();6 p% n" T  n, Z4 L- S& s; @6 Z
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
. j; g4 |" \, I' _( M6 S9 g        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);  |" T* a9 `9 |( [% K6 x
        stepCreator1->ObjectTypes()->SetSolids(true);
4 o5 G+ O+ |% t) @, {; s& y        stepCreator1->SetSettingsFile(sCfgFile);
, |7 J9 D2 ~% t        stepCreator1->SetInputFile(sPartSpec);
: S9 Q6 L. Q3 b. f& }' O5 z: }# j        stepCreator1->SetOutputFile(sStepSpec);0 ?" l+ J% y  Y8 @6 S* E9 x- ]
        stepCreator1->SetFileSaveFlag(false);0 S# V0 B3 T; a* T! _
        stepCreator1->SetLayerMask("1-256");0 V5 w0 ~2 [$ _- v0 A- A1 r# X, _
  a! x( S/ U# M2 }- ^3 c
        std::stringstream sBodyList("");
3 [$ M6 C+ g2 ^% r) y2 l9 C3 H
4 z) h; a: }4 |7 O0 p" t        std::vector<TaggedObject*>::iterator iter;
+ d, x; k, B* F" W$ H4 ]: }        bool added1;" r0 j$ L( B, R4 G& x8 Y9 L4 M
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
( z: x0 n  h8 W) \( z  t$ S0 p        {! `5 t0 _7 y& b$ U8 l
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);$ y, ~1 g$ F6 J+ K
            if (theBody)
2 }2 Z3 p/ R* l- |6 [5 _/ @( P            {
) x6 c. Q/ o& z; y/ M3 g                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);. n1 f3 a" n; T9 G5 N
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
$ p" Y9 }) D; i) `" C1 o            }
0 _4 [+ X( A$ g& U. l- j& a        }  D1 h) w: i2 Z
& m& O6 N' f5 I$ ]: O
        // Debug output
$ g/ D1 W/ T0 e& P        print("UGII_BASE_DIR = " + sBaseDir);1 @. P+ A% ~0 M9 V# m; w8 j/ O
        print("Settings File = " + sCfgFile);: e! g* k5 w% Z
        print("Input File = " + sPartSpec);
7 W2 h  |! R2 T* \        print("Output File = " + sStepSpec);
% n5 g/ E& r4 S7 [$ \$ p        print(sBodyList.str());
0 X5 t* J& g, H( u$ Q# @. |) J
+ V3 }; N/ }% T6 h" n+ d9 d+ U        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
8 c5 x" `2 {2 X6 z2 J1 ]        stepCreator1->Destroy();
* }- K0 L/ D( ?; `    }
! {4 k; X5 ~: z5 F, B, q" R9 @, `! ^4 X4 N9 Q" b
}4 {7 Q# h* a% \% v+ G1 _" q

8 e% [' i* W' @9 ^" [% c# _4 y, F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了