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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

. r. i# T# X( W7 D  }+ g4 K& R' ]& B  [' {

* [( I# Z: h; ONX二次开发源码分享: 导出 step格式
8 q; R' _6 m+ u; G
/ C, E6 C# ]$ y5 Z% k' [' s, V参考一下,很简单哦!!
* ~, ], D1 I- z# K6 j, ?/ s1 b( {  _4 c2 q
void StepExport::do_it()
) W+ s' B# g8 ?0 F* T{
2 a/ B+ ~7 w! Y$ d    std::vector<TaggedObject*> objectArray;) g3 H" A. v# q9 z5 U

; s4 E3 L8 P- c6 h$ [0 R* t9 V8 K/ G    if (select_bodies(objectArray))$ c6 L: a2 j0 [  K2 q3 @& f
    {* h4 a6 x5 ^2 _% `
        NXOpen::Session::UndoMarkId markId1;- N8 S7 v/ b$ t0 ?: q
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
8 |2 f0 X% G5 k7 \; V
1 k! L1 n7 w1 Q( h4 ]7 j, A* ?4 f        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");( k) r& d$ B6 |, c+ n3 H
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";# s" d4 U  |4 {9 L) o
        NXString sPartSpec = displayPart->FullPath();
$ R2 k# c# e2 _. ?! ]        std::string sFolder = sPartSpec.GetText();
7 U3 k8 R2 P/ u: }1 c1 }$ d        std::size_t found = sFolder.find_last_of(".");% e' [& J) V; G* T' r
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";0 t# ?% N. `- n1 Y* Y8 p1 A
& X0 v6 T: z  _) ]; C
        NXOpen::StepCreator *stepCreator1;: @' I- F" T, E8 X7 L
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
3 ]& ^$ @; G2 ?+ {        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);2 d9 Q4 P/ k; }# m
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
4 F  q7 \9 n# E0 j/ u, ?1 _' ^& e        stepCreator1->ObjectTypes()->SetSolids(true);
( {" ~+ A+ B# b        stepCreator1->SetSettingsFile(sCfgFile);
% ]  G9 B. |: k2 D- b        stepCreator1->SetInputFile(sPartSpec);) u- B3 W- M, r7 C2 J2 N# T% L( q. x
        stepCreator1->SetOutputFile(sStepSpec);
; G( Z" w7 _& q. b# m3 Z2 B3 W5 K% l# l0 F        stepCreator1->SetFileSaveFlag(false);2 ^6 y8 R3 Q; Y7 F$ j/ `+ G
        stepCreator1->SetLayerMask("1-256");
+ `! G% i& n, U8 O, s& Z  B1 ?7 j  \0 _% N5 U4 ?" P
        std::stringstream sBodyList("");: s. V1 m: J7 N  t% [( m
- ^. n* y, Y* H) f% A# S
        std::vector<TaggedObject*>::iterator iter;
; d* S1 j1 u& A- Q$ w: V% }        bool added1;
2 J' E8 Y0 W1 i# ~        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
6 u+ |! T6 D  {( T0 ^+ w2 d6 {$ X' d& c        {/ u  |- j3 e) [- I
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
- y$ |& }, H  [$ D+ {  g            if (theBody). J1 R; S6 p% ^; @
            {
0 I: W7 H* C7 l) C' e$ P0 Z, l                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
" H- {0 I% l/ X8 W$ i+ n                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;1 i$ Q% z5 Z% G* p) `
            }
& ]% H% L3 x3 k0 v7 s: B9 R1 _: g$ I        }
0 s9 W& f7 f- _. {6 G8 U1 y9 Z4 V3 h" w& S8 H$ o% m6 s! _+ J
        // Debug output' }8 O/ M) |, s
        print("UGII_BASE_DIR = " + sBaseDir);
( B) B: `1 [$ c/ {        print("Settings File = " + sCfgFile);
6 D8 e% j( j. X% \) S        print("Input File = " + sPartSpec);
: S8 s' ?7 f  X0 a6 M        print("Output File = " + sStepSpec);
6 u: E$ j" O, E        print(sBodyList.str());9 I" I* L) R6 I. ]$ V& ~. S& Z& p

* z7 {* f/ U: f+ q( a        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
' r8 l/ t" ]6 R4 }        stepCreator1->Destroy();9 t- O7 M# v" g' e0 P7 G
    }8 Y3 _+ _' z! v& s( F8 {( t
, c* V$ W" v' S  p5 I$ M
}4 S1 k" C0 W( |  f) Z
. {3 M' t& C8 s( X/ |3 s. P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了