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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
3 n# {  o5 X1 P7 T

1 K, L# E* F4 E0 B0 E
7 h( _# k4 |+ ~- z# C& N7 ~NX二次开发源码分享: 导出 step格式
2 u, O5 R+ q' j% j* J2 F8 A5 O% Y5 G/ x' ]
参考一下,很简单哦!!
% C7 q9 {8 k4 O( V& Y9 b
; H0 B; W  S7 ~6 n, Yvoid StepExport::do_it()
2 l% p+ s* H0 O' b) x{
2 {% t! n' X: {& u& c. c2 r    std::vector<TaggedObject*> objectArray;. N: a1 V; n0 x

3 }, v0 t; G' f4 c+ h& r, X    if (select_bodies(objectArray)); `) Y0 Q7 d/ K# v; G3 I
    {
% U6 [. P+ {$ f5 M3 J* S, |2 Y1 y! v# U        NXOpen::Session::UndoMarkId markId1;( W! s! Y2 L' W
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");4 |0 g: r, t4 d. [% L+ T

2 Z+ n8 S6 w8 l1 I& @        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");( C+ S, ?7 {& M( G4 V6 h/ \- u
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
0 f3 J4 O! f0 o0 |; D        NXString sPartSpec = displayPart->FullPath();
- x# Z; Y3 C. X2 m* _        std::string sFolder = sPartSpec.GetText();
3 s, h. m( r% u! b, N& X- ~% p        std::size_t found = sFolder.find_last_of(".");
% m% H& t% M+ {; g" q( }        NXString sStepSpec = sFolder.substr(0, found) + ".stp";+ f) C" u! h: f/ c

$ M5 J( B5 w4 E& o! ]        NXOpen::StepCreator *stepCreator1;7 Y, ^1 R' {  D& ^+ r6 q# \
        stepCreator1 = theSession->DexManager()->CreateStepCreator();0 M$ n' ], S$ C' [+ s6 Q  U
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);, T4 w; O& F. _; w
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);) ~* }" o7 I* f' H5 W; S! ]6 i. e
        stepCreator1->ObjectTypes()->SetSolids(true);
, G& j. T4 i; i+ n        stepCreator1->SetSettingsFile(sCfgFile);1 Q) x8 h- ]! _5 A& w. Y- W
        stepCreator1->SetInputFile(sPartSpec);
' B3 f' {/ s: `. K; P& i5 r" [* Z        stepCreator1->SetOutputFile(sStepSpec);
7 @; W) o* p. X# n' \6 p4 S7 h# ?        stepCreator1->SetFileSaveFlag(false);
% K4 y' W# Q1 j. D        stepCreator1->SetLayerMask("1-256");; g/ F$ H- x7 p4 R7 q7 O. i
5 |: z" b& d5 z! A, Q
        std::stringstream sBodyList("");1 y" ?8 s  i* y$ W; C5 c0 \1 t
7 ?+ P: n1 h1 \5 \: x0 Z
        std::vector<TaggedObject*>::iterator iter;) |8 k: a+ B/ E2 v$ C
        bool added1;0 A/ Q: j+ Y. v/ r7 Z) D1 z+ o
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
  Y, o2 w1 C8 v7 |% H2 _        {
* `2 R) W0 s1 V            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
) k6 t( w8 R7 _9 v3 d- M* N            if (theBody)2 V9 }( s5 ^( J8 v4 K5 v9 f4 s
            {& W" ^" e# \- [& Y
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
% F3 O3 C! T0 R2 p7 F" S% s                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;8 g: N/ {# z& i) w9 F$ \9 U5 Y
            }
, [" i/ S' @; B        }3 `5 }5 D  M) U, j4 \+ c

' u, q1 Z; l( k2 `+ {        // Debug output, v# U! _. s! e6 Q# ~2 {$ a8 s
        print("UGII_BASE_DIR = " + sBaseDir);  w! v0 l+ P1 O+ v/ L: \
        print("Settings File = " + sCfgFile);
6 j1 v* M; _" O% E        print("Input File = " + sPartSpec);
8 T$ K1 H! x0 S1 v$ ^3 U& ^0 c        print("Output File = " + sStepSpec);
, E9 K# n: ~- e; X% C1 l0 M        print(sBodyList.str());
7 w% u7 T0 ~3 Q1 Z2 A
7 i9 X9 j9 R/ V" m. L        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();6 B$ b/ p& ]8 V8 w
        stepCreator1->Destroy();( `: ^- f0 W( h2 ~: |2 @
    }
: u' `, U% j8 t5 j" X. I' I( P
: o# M- G% y  i6 f1 g  k}
) c; @' f* k& g3 n# D
& k3 T, y1 o( ^) }* l
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了