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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

  B. v! m+ C  P  L+ C& O9 t. m
" F2 ~# `9 d1 l: n" |; }: Q  `. L3 J; Z$ K) d2 t
NX二次开发源码分享: 导出 step格式' e+ {9 b$ N. a$ e% o& Y8 Y
& h' {8 X, Q$ W* `, M
参考一下,很简单哦!!
! h2 {) W6 Q, P* d& X0 ~* D' ?" [" Z$ ^1 u' ^6 i1 p
void StepExport::do_it()
# Y/ R) Y/ C- a9 k, L+ D! P{
* F' A: K) N& Q, u+ l- C    std::vector<TaggedObject*> objectArray;/ }) h/ j& r# H
4 s4 f/ B& A9 ^0 u: u$ h4 P
    if (select_bodies(objectArray))
3 F8 c4 c  [, g3 L# X6 l5 k0 P8 @    {2 K0 }: W8 p8 `- K& M5 @8 e% H
        NXOpen::Session::UndoMarkId markId1;# d8 {0 m, \/ n) t2 z, A% d/ d, I
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
5 J: U. ]8 Z9 D/ j: p$ P& c
7 c  p6 R, |% g, c# p        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
$ C8 P6 G+ U; v) V( R8 \& ~5 K        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";+ R1 X0 r: F9 r- r+ X, S& V
        NXString sPartSpec = displayPart->FullPath();& V5 ~# p- S9 G: I4 q+ U/ Z
        std::string sFolder = sPartSpec.GetText();
) W1 F- W/ J0 }" n1 R5 A        std::size_t found = sFolder.find_last_of(".");
0 A. k6 g, A5 V1 F/ M& W        NXString sStepSpec = sFolder.substr(0, found) + ".stp";  Z/ D( S% K8 G) T7 h4 w( Q8 E
4 H3 U6 `$ ]( X. g
        NXOpen::StepCreator *stepCreator1;
+ |& ^8 k8 N! L- ?9 a+ g+ x- A        stepCreator1 = theSession->DexManager()->CreateStepCreator();
, D" b0 `0 p  P- o: Q        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);! y% _1 g+ L/ S9 J
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);" a- q+ j' P0 }6 ]! ~, v
        stepCreator1->ObjectTypes()->SetSolids(true);% `, U( z' o- K! N
        stepCreator1->SetSettingsFile(sCfgFile);  N+ ^; f6 m" s9 j2 {# Q0 [* k
        stepCreator1->SetInputFile(sPartSpec);
) @0 c" M7 w2 g% j- R        stepCreator1->SetOutputFile(sStepSpec);# R# h3 z7 s% O, ], ~% {- I
        stepCreator1->SetFileSaveFlag(false);
9 P6 Y8 ^+ x6 K% \' W3 }* V        stepCreator1->SetLayerMask("1-256");( q3 C) k( |) z

: D* B4 c7 f( D* A  t  R+ H  n        std::stringstream sBodyList("");
) v! f+ L! G/ j6 ~: f. h
  e; v: g6 b6 E" m! v" ^6 P: Z        std::vector<TaggedObject*>::iterator iter;
# K! X0 C1 t4 O- a        bool added1;
% ^' Z' |! X2 g        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)5 I% W  m# u% e  L
        {
6 k  E3 l1 h" Z            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);2 ^% w3 R2 w: z3 ?) q. }
            if (theBody)
" m' J. Y( v: M+ d            {
" V0 S2 ?9 T. M. |                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);7 m& G; U; N1 @, f; }
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;' d- J% }# J5 K) {3 T' s
            }
& k8 j% k: o' L7 b/ q3 @        }
& o, W& m# s$ l7 a" h! W. s3 L1 U+ E0 z- r: C* C; N
        // Debug output
( D7 w5 [7 o) Z: Y% t7 q1 @5 x/ Y! |        print("UGII_BASE_DIR = " + sBaseDir);
9 O) z8 i5 d+ k% y0 a1 F; A        print("Settings File = " + sCfgFile);7 F; T5 v) E" y; V* P
        print("Input File = " + sPartSpec);
& H. e! _  i: J        print("Output File = " + sStepSpec);' ?, ^& h0 v0 Y* U5 l6 T
        print(sBodyList.str());- i& V9 N1 x. r

  x3 q: z  s# H/ L9 h$ n        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();3 I2 D* ]8 ?: k1 @
        stepCreator1->Destroy();
& f1 ]! \) S; I$ M8 @, l    }1 |. k/ s6 W  B

+ z- k0 z) |$ l, n2 X7 T$ |}! R$ v' t& A5 c* q- ?
, V2 x+ c/ _7 U5 F7 p6 [
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ 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二次开发专题模块培训报名开始啦

    我知道了