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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

* o' ?! R$ q8 D4 {: `. C+ y! L) a( g7 H6 g& [; n8 T

4 |/ b+ E; l8 k7 s  oNX二次开发源码分享: 导出 step格式5 |" P! m* U- I8 j

" E% J& F+ F& Z( @+ u) ]; s( C' o. H参考一下,很简单哦!!  _3 e* p2 j' W6 T: h7 A2 v
( ]3 f* P) P) `2 L! z) F0 c
void StepExport::do_it()
; k+ w3 }' m8 }/ G  g: D0 n{6 U) m8 u) ~; f% }  @' k: n
    std::vector<TaggedObject*> objectArray;( s1 r9 m# o" j- k. ?0 P
) ~, j" D- \& h* ]. e- ]6 p/ I- h
    if (select_bodies(objectArray))
/ P6 w8 u: l6 x2 V3 Z7 s    {4 _3 \/ O& q, a% T  s9 Q
        NXOpen::Session::UndoMarkId markId1;
# t( F3 R4 Z0 [3 V& _" f2 y        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");! z% A9 G# U+ F9 z) ^' Z' n

% N! i8 o- I( `/ @        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");  x2 h) b8 D" J  @% }
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";( Q" t' V/ D1 k$ p  g* ~
        NXString sPartSpec = displayPart->FullPath();# k6 p5 U- q, j0 }
        std::string sFolder = sPartSpec.GetText();
; ^! U  K) P. z/ d6 j; ]5 j# o0 T" f        std::size_t found = sFolder.find_last_of(".");" l* s8 R7 X' Z9 a* Q
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";! U+ D% [7 @( i) r+ ?* S/ \
1 u2 Q- o! ], a
        NXOpen::StepCreator *stepCreator1;
; v1 o/ r, t; r" R: U, V        stepCreator1 = theSession->DexManager()->CreateStepCreator();
- M- u8 P. k% k1 R) }: z        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);% h* b7 {  e0 e! Z9 Y. h& j# P
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
4 @. H- S& F" R9 k- @        stepCreator1->ObjectTypes()->SetSolids(true);$ S- {+ d! I- D/ q: c
        stepCreator1->SetSettingsFile(sCfgFile);
* w( S; t" Q3 [; _' Q        stepCreator1->SetInputFile(sPartSpec);
) y$ V- P( F* b$ M1 m        stepCreator1->SetOutputFile(sStepSpec);( ~# \9 E  w. u1 m6 J6 p# @+ [+ R
        stepCreator1->SetFileSaveFlag(false);
0 P. \- [+ V( K( v        stepCreator1->SetLayerMask("1-256");
/ c9 F6 z5 Y( D; H& d
! X( Z  T* B  W        std::stringstream sBodyList("");
! M( s% n+ k" p6 X$ `
( ^: @/ A, `6 f2 w7 f+ d        std::vector<TaggedObject*>::iterator iter;3 I: V1 I% y2 j
        bool added1;
. x& f# n, I4 r- j1 s        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
, z4 u+ O# {( r+ \- |9 p" l        {
. Q6 v1 i9 j3 x9 P: O( V, e4 K8 i            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
* E8 B. p2 \7 ^) ?: K            if (theBody)
& G5 C/ m; o5 h- F7 ^            {# l: X8 S+ H! ~+ J0 o8 X* I7 b
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
6 F$ x$ m3 J+ {* l; J- e1 ?                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
) ]# L4 R! Y# @7 v            }
" P/ ]9 |' m- ]( I" W+ m        }5 t; M; q! G9 w" k
% n; f! i6 ^0 T
        // Debug output/ Z3 Z. Z/ E9 l1 Y5 \  y" o
        print("UGII_BASE_DIR = " + sBaseDir);% J6 F5 ~' t( {+ a6 V, A6 I7 s0 n
        print("Settings File = " + sCfgFile);
# K2 S' a& x5 x" i5 Q, W' E        print("Input File = " + sPartSpec);
4 Y" L2 n" O8 B; L( o        print("Output File = " + sStepSpec);
% O) K! v5 s( J( }/ N4 `% W2 o- u( ~% o        print(sBodyList.str());% s7 u. |0 ~  @2 Q5 {% t: n$ S

7 @! u- N4 C7 z2 ~6 ?4 x        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
; m/ N$ ]0 T' W" }: E- P8 e: [. E        stepCreator1->Destroy();; \3 x# P! K! m+ U( D1 {, N. R) G
    }4 i- n# a) O: Y# j. t0 F

' g1 d! F0 U4 G. J% f# G; b}% E  N, X* p' F2 t, ~9 ^: e

( \. h2 s5 G% R( k0 ~
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了