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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

  L% v+ B6 K! k7 o8 b( O4 _8 {2 c8 A! a) C$ q2 g

) T( U/ L% _% o- i& I& \NX二次开发源码分享: 导出 step格式. J7 W' u6 I1 h8 j8 b3 c4 S1 N2 Y

2 k( c. S* U. [6 Q0 O参考一下,很简单哦!!
; z4 [! O% U& \* `2 P. ?- H2 O' J5 U2 }/ z# B& H; I) E
void StepExport::do_it()1 A- }4 V2 o; S7 Q
{+ o6 K. P" h0 o- l0 h% |8 v  @
    std::vector<TaggedObject*> objectArray;5 f4 Z- ]% d/ g* Z# I1 x! y- Y

, n* k) T1 A) @8 M# ^( t0 [3 l    if (select_bodies(objectArray)). R8 L% I  B7 C& c- g: U
    {2 s+ s! F1 w8 M! R; }# J
        NXOpen::Session::UndoMarkId markId1;
/ L: ~& `6 Q9 Y2 g, W        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");. z8 Y! G4 H" I+ ?& e" B! }

) M2 T0 O0 h5 N        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
- ]  {/ ]6 k7 l, g4 v6 u        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
* a/ \3 h# }7 v2 O7 I        NXString sPartSpec = displayPart->FullPath();4 k0 p, @! w: s8 D4 ]6 t
        std::string sFolder = sPartSpec.GetText();' b) {8 e. f' t* K8 l$ q
        std::size_t found = sFolder.find_last_of(".");
1 e7 t( h$ {# ]+ G$ \$ S        NXString sStepSpec = sFolder.substr(0, found) + ".stp";
3 G( F5 e2 d$ m. ~, W' _( W0 _! S3 s. f1 B' {% b% Q" w
        NXOpen::StepCreator *stepCreator1;& ^; J. T" @9 i$ R# b
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
: U# _* n* [+ ?( G        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);3 F! o% t9 M( a7 x- B. ?2 k
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
- T4 Y5 f, e5 S; k: C7 k+ O/ v7 n- q6 q        stepCreator1->ObjectTypes()->SetSolids(true);7 x: N& S5 W! i- G9 E
        stepCreator1->SetSettingsFile(sCfgFile);
6 [, n# g8 r! R( y1 p# P' r        stepCreator1->SetInputFile(sPartSpec);
- T: X+ L6 C  U4 U' q/ v  m        stepCreator1->SetOutputFile(sStepSpec);
& |9 B2 O, y) w9 H  o8 \3 O& x        stepCreator1->SetFileSaveFlag(false);
3 S* m5 P, q. r# h        stepCreator1->SetLayerMask("1-256");
% e9 n. R7 N4 N7 c2 s6 }% |/ u4 N
& @. X, Y- {1 D7 E+ A) x9 E        std::stringstream sBodyList("");/ h/ ~8 q  w- w2 e# }8 f
9 F  T. I- C7 a9 U8 ^
        std::vector<TaggedObject*>::iterator iter;* b, N4 P8 U8 a
        bool added1;0 {: F- w5 l  X
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)+ T/ S4 T2 L1 `% X
        {2 ], I) S! i6 m4 h8 S8 Q3 M
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
: c7 S( t3 [- `7 D            if (theBody), j0 S  |0 V2 F9 y5 L
            {
% P9 o. E- t' b! S0 p. E$ d. D# z6 O  K                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);: n- S2 J' i6 m$ a9 A0 C; x5 ]* z: ^
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
! @3 _9 \" [& Z2 X% t1 Q            }
- }& \* l6 l9 k/ I1 ?: @+ P# w        }
9 X5 k, y0 Y/ b( [9 r8 w6 G5 X' @" Y- h* M! [) d# B4 f) [7 x
        // Debug output
- m5 U) Y  N8 E        print("UGII_BASE_DIR = " + sBaseDir);# B* f. E3 o; l; _9 U) K. ^- `
        print("Settings File = " + sCfgFile);
  ~2 n" J( E; E+ c' o        print("Input File = " + sPartSpec);
# Y( n6 X, g# A* u: E        print("Output File = " + sStepSpec);
6 G! N5 C8 _% v0 B% M        print(sBodyList.str());
2 K, Y. I% {/ U4 \5 _  z
* E" D9 _5 |* E- f3 o  |4 O0 o% p: ?        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
% z. G/ E7 J0 E        stepCreator1->Destroy();
5 ?9 {1 L: @6 A0 H8 t    }$ H# q# u; P, U

! d/ u) ?; K7 m9 F}( F  Y$ C+ v. I0 Z

- R4 J2 ^3 q9 b# j& f1 f4 U3 |+ R' L  V
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了