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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
9 ?& k0 Z: S; W
. W7 g& l/ l# W
  N: f9 x; u# Q' @, ?  G7 `. r( K" b
NX二次开发源码分享: 导出 step格式. |- v, f5 x: M. `, `
& h/ Z6 r& h9 y; V: `
参考一下,很简单哦!!
# L0 F0 y5 m4 `2 c& j2 U/ y! u  W, |2 z" f1 X! Y- c* i( c
void StepExport::do_it()
% O. v0 ^% Q! C% t2 m{
8 k! _8 N: f5 V' X+ T" c# d    std::vector<TaggedObject*> objectArray;
8 W- n$ X/ B2 e/ T7 d- Q( {! \# {
    if (select_bodies(objectArray))% H6 p" j% m$ p) A: X
    {1 e8 q9 v0 A/ n5 ?1 T# M: ^! ]
        NXOpen::Session::UndoMarkId markId1;
% S, v" _1 s! S1 r9 H) U) D2 K        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
" x0 z0 j! ?) ^9 u% _- n
, P* V8 Q  j" d& I3 h$ ~        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
# D' t' Y  v$ h; t8 ]: N        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
- W9 d/ i$ Q' g  e        NXString sPartSpec = displayPart->FullPath();/ [: y7 c% [6 x) c5 B1 r6 N
        std::string sFolder = sPartSpec.GetText();
+ X, _! X; ~3 s/ a  D' Q- ^/ H        std::size_t found = sFolder.find_last_of(".");
2 H0 a( V4 x# ?4 K, [+ r% \        NXString sStepSpec = sFolder.substr(0, found) + ".stp";# J) M3 c! `/ Z+ u- a( U$ ]
: l9 r8 v3 f9 [5 |) O# q
        NXOpen::StepCreator *stepCreator1;5 c5 ^7 H2 B3 @9 f, P- O4 o* i
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
9 p' Z4 F' D# |        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);; e2 b  u( l8 ^6 M9 P3 P+ h
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);/ L, N8 h" u3 L
        stepCreator1->ObjectTypes()->SetSolids(true);
& O9 k; l* W9 }3 A8 D6 b6 t( r* y" X) Y        stepCreator1->SetSettingsFile(sCfgFile);
2 M9 E* o( y. E        stepCreator1->SetInputFile(sPartSpec);
* Y" J& w6 @2 `% A        stepCreator1->SetOutputFile(sStepSpec);: P3 p( S8 }# |" j+ g  @% ]
        stepCreator1->SetFileSaveFlag(false);5 t: n% @+ P- t  t( l6 ^) v
        stepCreator1->SetLayerMask("1-256");
3 ?/ ^0 |6 t6 F( F" k  z0 {+ ?5 S6 ~8 w
        std::stringstream sBodyList("");8 W; h5 ^- v( b3 T+ v. Y* u/ ^

: ^; @: f  e# w& y- G        std::vector<TaggedObject*>::iterator iter;. w; `' |% x7 n1 w
        bool added1;( d: k3 b6 c3 Z. O' X8 ]  O1 u9 F* [
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
1 k/ W: d$ [7 I$ H        {
( C# O( x( }% X. S, s            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);) g- h, W1 e  U2 P" I
            if (theBody)3 i" ^- {- Y  B) w% x2 t: x' f" }
            {7 _* T" w3 m4 Y; I
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);# ^' k# U  o5 v, J% X" A( E6 T
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;6 U7 t+ r4 u' a  C2 A: Z& h
            }# u- N( A- n9 {: V
        }8 C1 T; ^2 ^: x& ~) J1 N
3 p* B- H7 T- ^8 ]0 S$ K# ~
        // Debug output
  [; O! h+ T5 z" C6 f        print("UGII_BASE_DIR = " + sBaseDir);
9 H0 x1 n5 P) ]! {- q" U0 B7 q2 m6 Z        print("Settings File = " + sCfgFile);# ^" _2 s+ i5 ~5 n0 j
        print("Input File = " + sPartSpec);
. a# K6 N( u) v        print("Output File = " + sStepSpec);' n7 C" B0 T0 Y
        print(sBodyList.str());
4 d( a5 B* |9 F+ ~
7 o+ c, o& j4 ^& v2 v        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();$ G8 d0 e* ?% y3 \/ m6 e% D2 {
        stepCreator1->Destroy();
0 |/ P% d  e6 P8 X* Y    }/ N- Q  s6 x) G$ c* j

9 [# p  F$ D7 k" i. [& Y: }}$ q% X5 n! z% d2 Z4 m

" D# \) Z3 _& [8 G. N; Q+ 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二次开发专题模块培训报名开始啦

    我知道了