PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

4 \5 u' ~4 N( D7 h* e: \1 m
$ o) Y9 h4 G& h& j7 o: P0 H% C* ^% ?. |+ E4 R1 L
NX二次开发源码分享: 导出 step格式
* {4 n! N9 l! W9 ^
; E) v- e2 B" n5 H( R参考一下,很简单哦!!
; ^; U# z) O; d- P2 k5 ^" C3 I' Q3 J2 n4 \# M
void StepExport::do_it()0 v6 T& C$ w; K/ p2 y7 `
{' [; ]) a) [) a
    std::vector<TaggedObject*> objectArray;1 E* b$ `, p% E! L$ ?' {8 F

4 G* t0 k, X" D. R    if (select_bodies(objectArray)), I$ _- K4 R* s2 I$ i
    {
" k) |( O4 C/ h  @  T        NXOpen::Session::UndoMarkId markId1;4 _; `) y! w$ y* Z. m
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");0 G' A- R/ R; F5 P9 O
/ a+ x0 e; F" }8 Z: k  I
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");0 ~( b$ X+ x' q7 M0 x5 C, n8 e
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
5 l! ^/ A" P( u. p+ @+ S        NXString sPartSpec = displayPart->FullPath();% h. |0 e5 Z: l
        std::string sFolder = sPartSpec.GetText();# `) O% }/ N# D
        std::size_t found = sFolder.find_last_of(".");1 V+ f( `5 v# h
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";$ {/ s. n. n. F4 F

! \. l: M; o6 ~; ^' h0 U        NXOpen::StepCreator *stepCreator1;
' T1 F, b, A2 }7 b, T! t  ?        stepCreator1 = theSession->DexManager()->CreateStepCreator();
- t. y6 U& u8 [! `8 u+ \: k9 a        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
$ z8 z: k# z- E3 U" I  ^        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);/ ]4 s5 q  o6 B- R7 O6 p" m
        stepCreator1->ObjectTypes()->SetSolids(true);
* K9 q# |# ^4 O3 _6 w: ^; L  w9 {( f        stepCreator1->SetSettingsFile(sCfgFile);) i6 J4 @/ u% ~5 z' R, F0 V) _5 d. T
        stepCreator1->SetInputFile(sPartSpec);$ D$ x3 T/ j. T
        stepCreator1->SetOutputFile(sStepSpec);
0 O2 T+ C; F5 `6 c3 N( `1 f        stepCreator1->SetFileSaveFlag(false);" J& r. b# {9 d* [$ o% z9 t
        stepCreator1->SetLayerMask("1-256");
) z+ {+ H& L# ^, ~7 d% t. z) _+ B8 `/ f
        std::stringstream sBodyList("");
. h& ^" ^7 X) u: d; a5 D% E9 f( R6 `0 w& p8 h, {5 G, N; J9 J# N
        std::vector<TaggedObject*>::iterator iter;5 V! B3 }/ j1 Z! _" l% ^6 ^
        bool added1;
- ?+ y* W! u5 M. w2 R2 t1 q        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)  N9 ?, j$ M0 F7 \/ r, h* P
        {
. }- a" ~% C0 F. s" _3 K5 ~, h            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);) V4 s3 W4 w5 ?9 R1 C1 [
            if (theBody)
% }. y- s) R* m* `* O            {
" x1 H: l% @% o% e4 t) S5 D2 w                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);, k2 T1 M2 N$ y6 ]2 o9 I
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;8 F+ F: O6 v2 [# V8 A8 @+ t; k
            }
8 n  B6 P4 `- I0 F. |7 c        }9 H6 c& [6 z; w; K7 G+ _3 W

" d" g, C/ R% d7 Y        // Debug output
, T  `- L4 P- |/ u- V- C2 x        print("UGII_BASE_DIR = " + sBaseDir);
6 ?: {6 T+ q% ]3 u; E! p% D$ r( V6 b& O( X        print("Settings File = " + sCfgFile);# `: G# {  d8 U9 Y6 S1 u7 Q& a
        print("Input File = " + sPartSpec);
3 s8 j  r) ]7 A$ N5 B        print("Output File = " + sStepSpec);$ T1 x3 B% z' g: U  c1 w1 u6 w
        print(sBodyList.str());
7 G5 \# ?3 b+ }# V' j) n/ ^# ]3 M' o2 p# _- J7 m: o) A/ \! d! q2 [
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
' E% g% D9 [; U9 u        stepCreator1->Destroy();
. [% Z, a: M( N+ s+ ~* |    }8 L$ f" s! g0 }! B
3 y5 A* N) c2 [4 v; U$ z
}5 }5 M4 g& `" D
4 K! a( D; ?: s6 }: y! j- w: d
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了