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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
6 |% u  k( p& \# _1 P% s

) R7 d* \! m) J& f8 J- i' O1 }) x7 J2 j" A
NX二次开发源码分享: 导出 step格式- a/ x# T7 O& O# X
& [. W2 k% U& s+ N% ]  G
参考一下,很简单哦!!* z2 b0 N2 |' Z( J! d! K
; S  x, C2 j1 _9 t4 l* U
void StepExport::do_it()5 p3 V" Z7 U8 X/ @3 ~( L7 `
{
) U% K1 [3 l" ^- @& G    std::vector<TaggedObject*> objectArray;7 G( A( _+ \6 M

' H' Q) [. X& t- i    if (select_bodies(objectArray))3 X8 g/ e0 Y1 Y# r/ {! q/ R9 G- e
    {0 x: u- f: X$ ~+ h, Z2 V3 t9 P3 d
        NXOpen::Session::UndoMarkId markId1;
8 N+ j2 p& v- r$ C; Z  R        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
% y; n* z: ^% G2 W/ S
: T; Q  b" Z8 A$ y7 F        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
5 s( C, ?" l5 L% s7 A7 {        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
  O& Z$ K7 i8 U        NXString sPartSpec = displayPart->FullPath();  R( d# d/ w+ a( A2 _$ C
        std::string sFolder = sPartSpec.GetText();. z5 t- d+ k2 F3 [, q( X
        std::size_t found = sFolder.find_last_of(".");
. U$ P- Y. N1 Q+ k        NXString sStepSpec = sFolder.substr(0, found) + ".stp";- H7 o+ y' j4 z% j' D- e7 ]& S
$ J. o) Y0 b$ L+ \8 ^
        NXOpen::StepCreator *stepCreator1;
9 ~7 C. O* D0 W8 E" f( _3 P( j        stepCreator1 = theSession->DexManager()->CreateStepCreator();
0 \  N8 S2 c! D8 H        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);* ?3 i& q( J& u- G7 t6 T3 g
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
9 S# F8 A1 A0 g        stepCreator1->ObjectTypes()->SetSolids(true);
  [1 g  ^& K9 `6 c- p        stepCreator1->SetSettingsFile(sCfgFile);7 d$ t* T( Q- g7 |+ I4 O
        stepCreator1->SetInputFile(sPartSpec);+ W- ^8 s3 j& ^7 f# ]; M! S
        stepCreator1->SetOutputFile(sStepSpec);
5 T" ~. U8 W7 Y  _- u        stepCreator1->SetFileSaveFlag(false);
% f; A' }( N* ?% o1 z        stepCreator1->SetLayerMask("1-256");
0 f+ i/ {( c/ H; E) W8 i, W) g+ C$ e8 J' m% l
        std::stringstream sBodyList("");1 I% t5 _3 s* n' }& g& H& |; P+ n
+ Y# x( K; h5 J
        std::vector<TaggedObject*>::iterator iter;
: Z2 l. ~5 S( R  D. c$ _7 g# v        bool added1;
+ D" F* z7 j0 U0 ~1 y        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)" E: C5 U2 H3 m. N3 d/ q
        {/ ~1 h7 U( M1 N' u: E- R' [  s2 u
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);" m, Z5 \& j4 x+ i
            if (theBody)+ n) y9 v: D! z; |, n( @9 |1 _
            {( l# t2 \5 f  J* S  g
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
* c* l' Q( B) O4 K3 H" m- p) L: ~                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;$ p- P) j9 n* @* [( x  g
            }
9 c% R( K( |) t. \        }
* ?1 E1 b9 |+ z' w$ f  ]& j' i: \
/ m( l% u' s7 f5 {  p% m$ o. L# a        // Debug output3 f$ H7 c7 d) P7 t0 o1 O/ D
        print("UGII_BASE_DIR = " + sBaseDir);
0 L  q" F7 d2 j) g( v: \        print("Settings File = " + sCfgFile);! w% X0 }: }) T& m2 r
        print("Input File = " + sPartSpec);4 H/ ~; @9 T! ~8 W0 k
        print("Output File = " + sStepSpec);
3 L0 Z& j' s: c' A5 @4 J. `" m        print(sBodyList.str());
; _, o' Y; Q5 y/ q4 a
0 J( B: I7 Z0 @2 D# b& v% ^        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();; X' Y" ]4 I& u# G0 x
        stepCreator1->Destroy();: X6 Q: ?+ ?) s, ?
    }  I0 m1 I8 Z" F7 V' J
8 Y1 ], W% M# B
}- n* g' @7 T, X3 c4 \

1 R. T0 l3 ^; ]' y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了