PLM之家PLMHome-工业软件践行者

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

  [复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2017-1-16 15:31:09 | 显示全部楼层 |阅读模式

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

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

x

% O! ^( O  a4 P* s9 F9 y  S6 M' ?6 \2 m+ Y- I
6 E3 O3 o4 v2 O$ q  H
NX二次开发源码分享: 导出 step格式# A0 S* Y9 S. z0 v  _3 f
2 r4 z2 X8 G" ]) ?
参考一下,很简单哦!!* ^. g, n" l4 f: z" h
9 h* l& w% l0 ~4 y# p2 D4 u2 U( g2 j1 r
void StepExport::do_it()
& Q6 n6 `9 j* ]% g- V& B  d* c4 J{3 J$ K/ K. r8 J( S
    std::vector<TaggedObject*> objectArray;" g4 l& U9 F0 P4 O3 p. e( V7 {

/ J2 [% S* _5 e4 B* D/ t$ U    if (select_bodies(objectArray))" A6 r  l9 O4 ~
    {5 i, P: @4 m0 Q! f8 ]
        NXOpen::Session::UndoMarkId markId1;8 v# K) I, @- P. I0 h
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");9 l1 z# F! s+ x2 ^$ X; ~$ b9 M" I

4 ]* P( \- _, L- F* _+ Y        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
' L4 F* w' [! u9 l8 z, O3 K        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
3 s& p; f7 P9 X' L* H2 j' R. ?        NXString sPartSpec = displayPart->FullPath();7 l% C9 ?* y' M
        std::string sFolder = sPartSpec.GetText();
2 ?' Q; A+ _$ M2 N: z        std::size_t found = sFolder.find_last_of(".");
. U* X4 P) ~/ D! c- q0 G1 {        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
1 P  E% k0 U. C. r+ m1 N' ^
5 B0 `: [4 a4 L9 p0 h        NXOpen::StepCreator *stepCreator1;
9 m+ K# _; O# s* \6 e        stepCreator1 = theSession->DexManager()->CreateStepCreator();
8 V5 Z5 o: B5 D        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);" S" o( C" R' ~2 B) i! R) S
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
/ d9 h; @4 {/ y) h' i9 }        stepCreator1->ObjectTypes()->SetSolids(true);3 `( S& ^* }5 Z; d
        stepCreator1->SetSettingsFile(sCfgFile);
8 J, ?& M0 i) H3 `# Q        stepCreator1->SetInputFile(sPartSpec);2 y3 A& N; N6 _
        stepCreator1->SetOutputFile(sStepSpec);
9 c" u5 B' s5 f, S/ r        stepCreator1->SetFileSaveFlag(false);* h+ ?% S. b; H4 T0 C& @
        stepCreator1->SetLayerMask("1-256");
- r, }+ i# I  X" s1 l  }
- j: f8 E0 O6 D# a        std::stringstream sBodyList("");
- P% D7 I7 Y6 K$ |" G' I
3 W7 k% l( l/ N8 {        std::vector<TaggedObject*>::iterator iter;
% n& a1 B3 m! s8 {5 g; J9 E: h4 n        bool added1;+ M) {; _+ u) E5 e( a
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
7 V1 l* S5 x# p) F$ {        {
" @# U3 Q% d. o/ O8 O$ B$ ~8 f            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);5 S4 F/ q. `. y& p
            if (theBody)
5 \2 I) F- l3 y9 Z+ }6 X# }& a, D            {2 N1 R4 w7 R' C4 n4 ]# @! V
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
& z; u6 y% I' t% D+ L                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
) o# b2 Y2 T; c% W            }
1 N- A) B  B, \        }! R+ a0 _( ?: [! |# J( a6 o" k4 U
3 U5 ?6 b7 q0 k6 H4 E0 b* l
        // Debug output. K4 U: z; a% ^  N  w
        print("UGII_BASE_DIR = " + sBaseDir);1 E3 g/ I+ T7 u4 L: K
        print("Settings File = " + sCfgFile);+ A$ R7 s* L$ S+ g7 e7 c& }
        print("Input File = " + sPartSpec);
$ R, k3 E: Q2 [8 ^# t        print("Output File = " + sStepSpec);
& x' O' I- X9 @/ a8 M        print(sBodyList.str());
+ d, j1 Z* @8 Q$ v; g: g
1 f3 g6 b2 J! K. R/ F        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
# I/ S* p) n5 n; p2 Z+ I7 e        stepCreator1->Destroy();
' D  U9 O9 `. @0 a, k0 Z    }
( ?8 [( @  n8 |& l$ m- [5 j
3 S" F; \. G3 B' n, `5 F}
/ K) O% g1 ?1 B) l4 N
2 Z5 Z" `: p  N, B$ L
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

全部回复1

1

主题

4

回帖

54

积分

注册会员

积分
54
发表于 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.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了