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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
6 B0 I4 W( @0 {1 y
; a9 I2 ^' n( v4 D2 K. J! ?

1 z5 h, F9 h8 D$ N& H9 w: C1 RNX二次开发源码分享: 导出 step格式6 O" P  B5 O4 p8 D* |/ a
, O. P8 {$ ?; p0 ?3 x
参考一下,很简单哦!!
- E# f9 Q3 I0 a$ I. n, \( j, T% H
) A5 F' N# w) J3 F' K5 cvoid StepExport::do_it()# j1 O4 ~' C, x4 g
{! x3 b! N: h! n; Y. P4 w9 s
    std::vector<TaggedObject*> objectArray;7 x0 M) {9 m. f+ s2 K: O+ |; g9 K

' n3 _8 t0 v' M& U) n# {' y& ~    if (select_bodies(objectArray))
5 s; E) A" S* Y6 I; F    {5 W7 ^3 E3 Q% m& ]
        NXOpen::Session::UndoMarkId markId1;
5 X: C1 E1 S9 O$ a1 l$ L        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
$ p; u& d3 R2 j# i/ X! q! ~, p: i) o$ ]
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");. [' _$ k6 k' ?( N: j" c" V- M
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";9 W. N7 c& V7 }
        NXString sPartSpec = displayPart->FullPath();5 c6 `# J. Y: h. u) W' U5 V2 A
        std::string sFolder = sPartSpec.GetText();
4 r, v  x- ^4 P        std::size_t found = sFolder.find_last_of(".");
/ ~& G% l3 T! O; R, F        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
9 r2 A: b7 }* N0 c9 l# B& G1 k( m9 }( e$ _# y) F( r, ?; R: K
        NXOpen::StepCreator *stepCreator1;8 P' Z9 v% P8 O1 W
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
) I! _  l+ c. S$ ^        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
3 _3 r( T) J4 m        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
/ `8 I1 h/ B5 N8 o1 t* p: s        stepCreator1->ObjectTypes()->SetSolids(true);: n. g0 T: I# x0 [/ C( s/ }
        stepCreator1->SetSettingsFile(sCfgFile);% O: W1 B* z& \& j( {+ K! s: }+ p
        stepCreator1->SetInputFile(sPartSpec);6 C% s, Y* E% P# ?9 r* |
        stepCreator1->SetOutputFile(sStepSpec);
) x6 l" p! ]* @9 l/ Z: f        stepCreator1->SetFileSaveFlag(false);- d4 _. P! s- q9 P, S1 x
        stepCreator1->SetLayerMask("1-256");! q& H' ]/ Q4 C/ a- X

6 q* P# ?3 i( b% Y) }        std::stringstream sBodyList("");
- j+ u( }) e" U) S
3 h" B- J' l0 ~/ ]$ {        std::vector<TaggedObject*>::iterator iter;: e: e! j% x. T
        bool added1;, h! B1 a- o/ V% ]1 }8 A' ], |+ y; t
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
: m& n. L) n5 o* s& \5 [        {
7 u  B6 {0 w" ~            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);  s$ t# d9 w4 B6 c6 K* E
            if (theBody)
8 o" p2 o, s1 @$ s2 \& ]  C            {
% p) V4 ?( S. \( n$ I  }" o                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);" A" Y1 C1 |" z, d1 o
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;9 f4 f0 e, p9 C' i1 q7 P8 j6 P
            }. ]( P7 m3 w7 x6 N+ w5 B* M8 d! C" M
        }
. r& ~: u) t, n6 ]+ w
  C2 @2 V4 t4 {1 F5 t        // Debug output
  o! Y, u. W6 y8 ?/ W        print("UGII_BASE_DIR = " + sBaseDir);
) K& m7 Z0 o/ a        print("Settings File = " + sCfgFile);
* s/ Y. d- o4 u9 K* h/ `        print("Input File = " + sPartSpec);( A' P, H, R$ x9 t. x3 b7 Q
        print("Output File = " + sStepSpec);+ ?( _( N! I" L) l3 C
        print(sBodyList.str());
) s- v# {8 |" Q2 t, ^* H, m4 q5 t5 g1 Q( f0 Y# |
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
! w! z$ E; g2 H6 s3 X9 d1 _8 }5 r# o/ A        stepCreator1->Destroy();
$ z  e' Q2 F" X* M    }
( `7 q% D3 I7 m  M5 \) [- r
+ z1 e/ v8 T; a7 }}
6 `5 e1 B+ c. g* d% }3 H2 `; T+ R4 U2 M# Q( ~7 b# G
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了