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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
- U8 q, U- g4 n9 c5 J$ F

" @( ?% x( {- m' G) a  B; x) w0 E- R3 Y  L5 D, m/ F
NX二次开发源码分享: 导出 step格式
& B& S- {0 n9 e  p* m+ ^
0 Q; A# ~" V! f4 w: w参考一下,很简单哦!!
7 r! `8 q2 R* k9 N1 C0 ^! t
& v# |+ ?) p% V3 A* S- hvoid StepExport::do_it()
* o/ d  e# M8 V, T8 B" G/ X{
9 i  K% V# t6 j9 _0 }+ b    std::vector<TaggedObject*> objectArray;. x( Y& r. B- _0 b5 X
0 _' s4 z" c+ z) f+ p
    if (select_bodies(objectArray))1 W% k* Z' ^$ Y3 a  X% i
    {, C1 S" I6 y; t: {3 b
        NXOpen::Session::UndoMarkId markId1;3 d" H; c% b# `! i; B5 [8 f
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
1 f" o8 d0 \; C7 j; X! g) W/ O( F9 v* y+ c! e6 V  i
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");6 e) ]2 [" q4 H, w
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
0 z# |2 _; Q$ g4 L2 V& b' g        NXString sPartSpec = displayPart->FullPath();
: `/ w  r5 j! D9 b3 }' [. ]        std::string sFolder = sPartSpec.GetText();
- _! d- i, o4 t+ O: k        std::size_t found = sFolder.find_last_of(".");
* k4 F1 x2 @7 M: {7 w' |        NXString sStepSpec = sFolder.substr(0, found) + ".stp";4 @- C8 j% s# p
: f/ s! J0 F; j- ?! N5 ]7 i
        NXOpen::StepCreator *stepCreator1;, T# ?  h, N3 q' J" P
        stepCreator1 = theSession->DexManager()->CreateStepCreator();; E+ c5 k! Y1 {2 q
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);- V$ R$ u( P& s7 t" c; f
        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
/ k( u) d6 @) C% q1 o9 O0 p3 x        stepCreator1->ObjectTypes()->SetSolids(true);
2 i; A: x$ w/ @& C# o/ g$ R# _        stepCreator1->SetSettingsFile(sCfgFile);
8 g1 Z; `- G: L1 a9 t        stepCreator1->SetInputFile(sPartSpec);+ P% T% I- w, |
        stepCreator1->SetOutputFile(sStepSpec);
4 v  K" A& G/ g8 ?* g* u8 ?        stepCreator1->SetFileSaveFlag(false);
# s! Y5 I+ k: B* i3 j( ?! T        stepCreator1->SetLayerMask("1-256");
1 Q+ T, }: y0 Q+ o4 w) d# m
* X: k% b7 i8 A/ Z) k. d, K        std::stringstream sBodyList("");; }7 V3 d: G0 k# @6 b

: E. a4 T( t* l' Y9 R7 ~        std::vector<TaggedObject*>::iterator iter;& H7 t0 u- `6 [- E# k% k; ~
        bool added1;
8 s# ?$ J  G$ P+ r+ j        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)1 `  x5 a  V+ m7 D$ m
        {
0 b4 v+ O+ F3 Z( q            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
. r, b& t0 s+ ]            if (theBody)
8 G1 F, S9 p  M, J9 t" x            {
% k1 T( |# s4 [5 l2 o                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
& g( x+ F' t" x2 z. d+ Y                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;, t6 u$ _" b' z8 w
            }
, i7 ^( V+ u9 S0 v: M. Z        }
3 h% \0 g  f# ~7 U; E, R" A% w  K- ~! T- \7 r# N0 g) E! W& V  Y$ x
        // Debug output+ }) K8 z& i$ A7 ~3 a! ?
        print("UGII_BASE_DIR = " + sBaseDir);5 x5 u$ P( x3 w0 @9 a% ?. p( {5 A
        print("Settings File = " + sCfgFile);
8 {. G3 K8 {0 f) B$ O9 ~: F7 B        print("Input File = " + sPartSpec);. }# |3 b3 u9 t
        print("Output File = " + sStepSpec);8 }5 J, O; E! ^4 A
        print(sBodyList.str());
0 K6 O& G' Q) M, B
4 k' O& Z) d4 d5 {3 P- t        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();5 `  O2 I! ~; d
        stepCreator1->Destroy();. _9 e2 ?5 D! E# N2 q  r/ \; t9 I& q! j
    }9 H5 [& x3 ]+ _5 P
3 @( M2 R, V* k, C8 g+ ~
}- U* {. y$ I& ^2 H, w
0 ~9 F7 W1 C; w) N0 ?0 d1 u9 c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了