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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

% H; K( z8 @0 F  f8 `# K$ p
( z- o$ F* k! p4 I9 z7 }3 U) P3 W6 o! m3 ~' t+ m7 r
NX二次开发源码分享: 导出 step格式
) w  y" k5 A' j  I9 g/ ~9 t2 g% J, F" |: C. l
参考一下,很简单哦!!: v3 i: A$ A) o6 e+ W
6 j0 o* H  c) m3 m
void StepExport::do_it()" n8 `$ |8 E7 p- g# y
{2 k" g1 g: P6 g6 y
    std::vector<TaggedObject*> objectArray;/ C( |+ w" o5 Y3 `
! g$ ^0 m7 k2 @, Y  S- C# r* X
    if (select_bodies(objectArray))
( j5 @6 \6 k2 h0 q    {
! ~) m5 J* l6 D/ c- r8 Z        NXOpen::Session::UndoMarkId markId1;- E+ C" F1 X' v# L1 l, n6 \
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
! H/ a, \  X3 K  M
/ J4 D7 c; y3 ]$ V0 l. q        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
6 x' r2 O! V) k  O/ y9 d        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
9 e0 [9 z: ?  N/ C  e# g* }        NXString sPartSpec = displayPart->FullPath();
, L: f  p  r) H9 b# K6 Q        std::string sFolder = sPartSpec.GetText();6 r: N4 H8 U! L) g# e; v) n6 l7 d* L
        std::size_t found = sFolder.find_last_of(".");
0 T5 Q  ~# |/ T. V$ O0 t        NXString sStepSpec = sFolder.substr(0, found) + ".stp";* |1 `/ V$ d$ H( P

$ r' h4 \9 [/ \( @, z5 f- A        NXOpen::StepCreator *stepCreator1;
9 F) }0 H  @# _" c        stepCreator1 = theSession->DexManager()->CreateStepCreator();" V3 h# ?: O3 H& [0 w4 M
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
7 i) I; i. ^+ n5 ~8 h0 h* d        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);+ ]* s: s; E2 z+ Z0 l$ y
        stepCreator1->ObjectTypes()->SetSolids(true);
2 c3 z* G& _/ j4 B! O        stepCreator1->SetSettingsFile(sCfgFile);0 z; j9 J: t6 E5 h1 [& j9 ^
        stepCreator1->SetInputFile(sPartSpec);
8 j9 z3 [  W* q" v; |7 D' O        stepCreator1->SetOutputFile(sStepSpec);! n3 ?7 a* ?, j* ]! v' R0 k
        stepCreator1->SetFileSaveFlag(false);% Z& K7 F8 x0 `( G2 ?
        stepCreator1->SetLayerMask("1-256");
, j5 y( V3 ?; j9 D$ g) T$ B, G, B( e6 w+ L6 X8 Y) [# P; O
        std::stringstream sBodyList("");
4 q% E4 f8 n3 V9 r* u8 S) R  ^" \5 O6 Y
        std::vector<TaggedObject*>::iterator iter;
" H# f; ?. L8 n. n( |' b6 _        bool added1;  x  ~5 }4 |  A9 @
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
5 J& @4 U$ V" |' Q1 Z        {
  v1 ]( s# c" q9 N# E$ ?0 K( n            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);$ \/ I" m# Q8 z# V5 d
            if (theBody)9 e5 \' R: X2 y' c( n! g
            {8 v  Z" a( l) I$ e; G. N
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
; M* p$ m) R, q6 u6 \                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
# ?+ x8 X9 T, L4 k+ w: \            }
; M* I" B8 q* W; _( s        }
1 t' B5 q1 E3 j9 ]& |4 C
+ a! M, O0 {8 `, U+ M8 n% p        // Debug output
9 w$ ~1 E6 l8 B3 g6 a        print("UGII_BASE_DIR = " + sBaseDir);$ }  U6 `% f- d( E
        print("Settings File = " + sCfgFile);9 A4 a1 r3 W# q7 d4 M7 a2 [4 a
        print("Input File = " + sPartSpec);* \0 Y/ m" z+ F: j( p$ n2 d9 \$ J
        print("Output File = " + sStepSpec);! |3 O. T( e6 y0 Q1 H& `
        print(sBodyList.str());$ a, \! ~6 ~& H  a0 M$ y1 i# n
2 _; C- E5 J/ ?' z6 b# S
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();: e+ J; h6 A. Y& o1 o
        stepCreator1->Destroy();
2 r) Z5 N9 h: }$ h7 m    }" z' B& @; l3 {  Z8 g6 y- j# Q
* X  N* s: X/ V
}
2 B% g, x8 S4 \8 ~
* r! r7 x# z/ H+ F" U- a; N
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了