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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

* A$ g) G6 q6 v  C7 K* N. ?, ?) ?
- m+ ]" P) F; [- G8 E: |: _
* @2 M0 j4 p" C" _NX二次开发源码分享: 导出 step格式! b/ s0 z; Q! a( t% M$ W, m0 @

6 g* L3 Z! ?; T- |' N/ E6 F参考一下,很简单哦!!( |5 a. m8 S5 b( c; ^% R& d

# T0 M$ F9 S% x- \1 evoid StepExport::do_it()& i6 M2 m/ W, C! [
{& k0 ]# {$ Q+ S" I; u
    std::vector<TaggedObject*> objectArray;
  l+ W+ p; Q: t& \4 N! R& k/ T9 {3 J, ^' ~+ G
    if (select_bodies(objectArray))
$ ?3 ?/ B( J9 ?7 @* o' ?    {
+ `/ F, Q  O  A! s; C" n        NXOpen::Session::UndoMarkId markId1;
3 T" v. ~$ z! j$ ~        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");5 k( d) V5 F8 A0 r* G. B
2 O* P6 A9 `$ E7 c
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
% j! D+ l9 w" q8 C/ {        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";5 F1 u! G9 j! T  b! v9 B0 O
        NXString sPartSpec = displayPart->FullPath();
4 z) X1 q- R, |) E9 h! H: b* z+ ?        std::string sFolder = sPartSpec.GetText();
7 T9 T2 @- A1 R        std::size_t found = sFolder.find_last_of(".");
3 v) C$ H( P; `+ \8 y9 w6 N) X        NXString sStepSpec = sFolder.substr(0, found) + ".stp";# l- m) \+ @& ?0 y7 F
. L* D, O+ i& ?; |# K5 o1 m
        NXOpen::StepCreator *stepCreator1;3 {2 Y: ^, `2 p' H
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
7 E6 C8 N+ ?: {7 C4 x$ ], l: A        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
7 V' ]3 ~% i" Y        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);5 \' E. ?" G/ \9 U; w  T
        stepCreator1->ObjectTypes()->SetSolids(true);
% x8 c1 ]7 Q! G3 d( b        stepCreator1->SetSettingsFile(sCfgFile);
9 l. E& U9 s  B2 S        stepCreator1->SetInputFile(sPartSpec);
, U6 v& Q- M$ @, a        stepCreator1->SetOutputFile(sStepSpec);/ f6 A; ]) H" A
        stepCreator1->SetFileSaveFlag(false);5 T" X4 U/ t  O
        stepCreator1->SetLayerMask("1-256");5 j; E; W' X  ]) V- h$ N9 x0 Y

, J5 F0 {+ G" Y$ R6 n9 K1 m  E0 c        std::stringstream sBodyList("");2 B' J) L! `6 [

1 h$ J8 H' a! D1 L$ o! p        std::vector<TaggedObject*>::iterator iter;( \' Q9 T9 q& t0 [2 a
        bool added1;5 z+ P4 }# |: `7 X3 w
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
* O5 [1 a  _0 X1 _# O: ?- Q        {4 l' n; W7 Y6 w5 L9 \3 z$ e1 W
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
4 `' T8 D  K4 L9 C" [  _* D            if (theBody)
' `9 X: h, y" O! E- b# o/ F8 O            {! u7 D" ?* H5 M1 \  q$ ^' i8 C3 V4 P
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
& X. \4 Q8 K4 b; Y/ [) F' y                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;% K- w, _; }2 c/ J+ O
            }) H* L. `! u! L; e
        }3 ^* N, H  ]3 _$ {2 G7 j6 @. I1 u) \

  t- w! W; O- U        // Debug output
$ }8 A8 h& C8 J" a6 o" z. j        print("UGII_BASE_DIR = " + sBaseDir);
4 z7 I  R1 F6 v1 N. c        print("Settings File = " + sCfgFile);5 N/ o2 w6 \6 k
        print("Input File = " + sPartSpec);
5 u4 t7 v) o7 C* n" s2 o$ ]0 z        print("Output File = " + sStepSpec);
$ S! _1 w+ z% B3 a2 U3 D2 Z        print(sBodyList.str());5 Y$ g; E! r) C/ t
2 e; a7 w  ~- Q
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
+ S, [' |! n) ?5 E" H. [& y        stepCreator1->Destroy();) r) D& i- H% J
    }
; R1 b' R6 ~: B2 c& v4 ]' Z7 p' o. C+ b1 W
}
* [4 l2 \' g& ~' S+ }/ y, b+ H/ G# o
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了