PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
. h0 W, b9 Y( y$ V2 Y# ~: S$ i

3 d& l" o8 ^/ O; E' ]" p" }5 C# @/ x# y3 N
NX二次开发源码分享: 导出 step格式8 g! ^8 [! C. O; S1 }/ e
9 t1 s  U1 G, @+ w
参考一下,很简单哦!!
' I; m' P* ?# w# c; D; r* z3 [( D9 V3 K$ m: [# f8 Z; i
void StepExport::do_it()7 f+ u6 r2 g  O4 w3 _; A
{* N& c0 Z8 A, p" i8 L0 x
    std::vector<TaggedObject*> objectArray;% \4 f; g! `) e( @
% F7 O: c9 h' l& P. A, k
    if (select_bodies(objectArray))8 Z4 ]: w( a& n' v
    {
4 S4 J( F$ e% B# g! c  S; R        NXOpen::Session::UndoMarkId markId1;& v) w* F9 G9 U; i
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
( C/ q6 I2 @/ @- g; F
3 B3 ?+ q0 I  s        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
+ x) _8 R. X1 y7 Q        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";% \$ K1 E8 F4 K! s& G  }
        NXString sPartSpec = displayPart->FullPath();
9 V9 s& C$ r7 u' r, n        std::string sFolder = sPartSpec.GetText();7 t4 ]" n( Q+ @( T" ^" V2 \
        std::size_t found = sFolder.find_last_of(".");
& B2 Y3 Q" S+ b+ q5 [- C        NXString sStepSpec = sFolder.substr(0, found) + ".stp";+ t$ D2 a7 o  W7 \7 B/ H9 n

, K3 h6 h' w6 f' h! M. G: V/ n+ h        NXOpen::StepCreator *stepCreator1;
& [: V, u+ M7 \* m        stepCreator1 = theSession->DexManager()->CreateStepCreator();
4 W0 v+ ?' V  w' p* h* w5 \4 v3 X        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
# r0 |) N& u3 p; z$ G        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
) A7 N( k: `2 I* V1 F* `        stepCreator1->ObjectTypes()->SetSolids(true);
* |/ g. v. a) R0 G8 E        stepCreator1->SetSettingsFile(sCfgFile);. \( W2 ?1 v1 f8 U  K
        stepCreator1->SetInputFile(sPartSpec);
" d( t% T5 A) Y: M0 f        stepCreator1->SetOutputFile(sStepSpec);
3 i0 H$ Z( x9 S1 j; O        stepCreator1->SetFileSaveFlag(false);9 S+ C; S. V1 G+ \1 C8 b, ?
        stepCreator1->SetLayerMask("1-256");6 a' z* X( X; k5 i; R

- F8 p) b: |- Y5 q        std::stringstream sBodyList("");4 M2 i" o. ]& W% l. S' V
# Z4 x. E8 F% p. g. B* I" J) w- p
        std::vector<TaggedObject*>::iterator iter;
$ Q3 d; y6 D5 ~4 U        bool added1;. d, b( \) X3 r' v! }7 ^
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
' v( [! k  e2 [: _        {' D4 W$ o0 W6 W2 x+ ?
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
  M4 F- }6 J5 t            if (theBody)
. e: R! x) y2 G9 s1 |            {
& A- t& x' N! F8 ?                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);
9 U- \6 C8 W8 c4 e7 w( [                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
9 ?  j) `, ?( T& N" n            }
: ]- s; V7 P3 v& F$ m        }1 E/ \1 F2 J0 B) l5 R3 B. O2 d

$ Y8 E* r  A/ f  l2 D        // Debug output
2 v! n- A- h9 c- K+ M        print("UGII_BASE_DIR = " + sBaseDir);
9 ?% `4 b& O9 f+ o1 r3 E( B        print("Settings File = " + sCfgFile);
0 B: {8 i" n% O* S9 K9 X3 C8 M        print("Input File = " + sPartSpec);
- }' X# ?( x: c        print("Output File = " + sStepSpec);
! \+ N) r8 h3 n( K8 c        print(sBodyList.str());7 ?* S, @7 T1 O- B

9 b2 m+ M+ h/ P: q9 Z6 B/ C0 U        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();! Y/ O, y! q% @/ u" {. Z
        stepCreator1->Destroy();3 {% _- b2 U7 M' F& i5 I
    }. r# h0 }* S( h3 V
0 ~3 M2 j5 H& a0 W
}4 m! e/ A9 }' L% @8 Q* p1 P

: D+ e/ m; G& q
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了