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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
, q1 d( z! s8 C* A
# Q! R! a2 [( |$ K) ^

  P2 s4 l5 v5 f9 p/ V+ |NX二次开发源码分享: 导出 step格式
3 g; N& O4 f1 A+ F# C& n7 J7 Q3 T0 {  Q4 Z. Q+ h) T% H( N
参考一下,很简单哦!!$ @. G* G$ b2 `6 q' q
' r6 ]: O0 \  I3 _
void StepExport::do_it()
9 `* i! Z. U/ O+ z$ y$ [8 b* b3 U{
4 Z9 m* T" z8 r    std::vector<TaggedObject*> objectArray;
" ^5 U- J$ z5 I  M) x2 D
% g' ^4 H- x, t* o" H5 _+ n/ v    if (select_bodies(objectArray))
* }" a! s- J7 u7 f8 N- _    {2 I  v5 y, B- ]6 e0 J
        NXOpen::Session::UndoMarkId markId1;% |, {+ _; _+ ?! x4 u2 _0 e
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");$ s" p6 ~+ E8 Y

1 Z7 O" w, Y7 c" H/ ^0 U2 \8 L; u        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");  p3 a3 |2 W! q
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";; o& F0 i+ m1 M7 |0 M8 j8 B) t
        NXString sPartSpec = displayPart->FullPath();( g/ U6 N, S+ n5 D
        std::string sFolder = sPartSpec.GetText();2 I- f7 ?- S7 U/ ~$ K! L
        std::size_t found = sFolder.find_last_of(".");( \6 m% R- I; s3 A
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
9 C8 W6 i3 I1 ?! h# }3 x
/ A$ `4 T* e3 g. }        NXOpen::StepCreator *stepCreator1;
6 s) N  u$ O& g6 n5 z8 S4 L        stepCreator1 = theSession->DexManager()->CreateStepCreator();% i4 }" B8 d4 y/ E3 S
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
: C( E% h3 r) y5 K6 b- b        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
. A% Z6 l: D' T5 T        stepCreator1->ObjectTypes()->SetSolids(true);( M7 F4 ~9 w9 B! P# e% V
        stepCreator1->SetSettingsFile(sCfgFile);: ?) [) D$ Z& x+ h+ S' y( f
        stepCreator1->SetInputFile(sPartSpec);
4 J: z- c6 t5 p; \* C8 ~        stepCreator1->SetOutputFile(sStepSpec);
2 h# d) H) h, |7 B% _* s        stepCreator1->SetFileSaveFlag(false);3 T. |/ a6 M2 J/ l+ ~- C% S4 x
        stepCreator1->SetLayerMask("1-256");9 T! l7 ?, V3 g

( F# V. O5 |  z1 g5 V        std::stringstream sBodyList("");
5 H6 {' Z8 B, X" c6 q' k/ c$ N5 b' s+ ?0 O
        std::vector<TaggedObject*>::iterator iter;1 |! k9 {8 S$ H( ^6 K1 d4 y1 e/ m
        bool added1;
1 Q7 k' m6 ?/ Y( p/ w8 K! L! i$ o* T        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)( }3 A$ H$ k9 `5 Y$ S; d
        {6 s8 y% l7 \3 X  b+ D/ X+ L3 C
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
& \' o  l# G+ n+ A% V( L            if (theBody)
+ q+ O, k* g* H            {
" E5 X) Z0 I6 H8 P1 y2 `                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
  f# w; C2 d) v. J  }. r( b                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
/ T+ |. P' E" P% D  b. |            }
5 p) q5 p9 }, J5 O5 T9 h5 m% C        }6 d/ c2 j8 {; S# z5 E
3 u, U& i3 b, i9 K
        // Debug output
4 K; w4 y2 }- ?3 i1 I# q        print("UGII_BASE_DIR = " + sBaseDir);& x* r* b6 O7 {$ i, Y
        print("Settings File = " + sCfgFile);" `& C1 _" k+ x% D# z1 t, Q  n
        print("Input File = " + sPartSpec);
- i7 y0 f% b: }% z$ ]4 W        print("Output File = " + sStepSpec);
, O! b+ ?& |8 P. {        print(sBodyList.str());8 m9 t; _3 n# S! Y+ C$ W
3 o( A( Q/ H4 L4 h- {
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
, s4 J. b, q3 o1 i5 w        stepCreator1->Destroy();6 `5 @# M( ^; G& {+ i/ U* I
    }6 q( y, a8 @$ K# t3 O

5 }+ z( |. P3 o9 w}
) m( N. O7 P& D  ]. C2 R: ]- _/ J
1 E2 O6 h6 v2 }: N6 F
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了