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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
1 ~3 A2 Q1 ]6 ]( K

) a6 Y# g9 W/ a; V  h! g" V( @2 A! L# \1 g) m
NX二次开发源码分享: 导出 step格式
, u& t8 j! i1 h1 {- o6 b# N( n% T9 q
+ t" r: u4 I$ q1 |, k; ?# A参考一下,很简单哦!!
( I: v7 P3 h0 r; v4 u+ \+ E  b- ^) K# r6 Z1 t
void StepExport::do_it()& j* a! y  w  e3 L: w; A+ b; \6 n
{
# s+ X6 }/ O, {3 E" w  Z    std::vector<TaggedObject*> objectArray;
) C# P) }# V) {$ z' U$ j8 t7 G, Q& O$ m! r* p0 _/ S+ p
    if (select_bodies(objectArray))6 b4 k9 q/ |2 I0 z8 q
    {) x; G9 l. y& p2 D7 p- O
        NXOpen::Session::UndoMarkId markId1;
( [2 O( i4 o5 l        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");' N$ S0 G/ I, m
; P1 [& P4 a1 V
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
  ?8 g! f5 R: v9 l3 T        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";2 w& I6 F$ x" C& H
        NXString sPartSpec = displayPart->FullPath();, u0 L; R% E# h
        std::string sFolder = sPartSpec.GetText();* ^# _+ H3 U* Y: ~, u+ ^
        std::size_t found = sFolder.find_last_of(".");
3 Q/ K) p) {9 ?7 H        NXString sStepSpec = sFolder.substr(0, found) + ".stp";1 o3 O; a  I/ H6 Q- d, y9 S
2 b) `1 ~# I+ V4 ?- X' @8 B
        NXOpen::StepCreator *stepCreator1;
7 h( m1 i1 o2 S5 {: i        stepCreator1 = theSession->DexManager()->CreateStepCreator();
* v/ t! f  L8 D; @; D# Q: h        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
, b, }# S- v& O- v; v: V3 k        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
( ~+ x/ O4 M* F, I: E3 D5 X) m4 q" q        stepCreator1->ObjectTypes()->SetSolids(true);
; z3 T) t; `, }. q% M        stepCreator1->SetSettingsFile(sCfgFile);* L) F( {" E6 r- }- h. ^
        stepCreator1->SetInputFile(sPartSpec);
$ N, Y8 E: |( e2 E% j3 U' V! X        stepCreator1->SetOutputFile(sStepSpec);% {6 N" A* T4 a3 V5 i
        stepCreator1->SetFileSaveFlag(false);1 g) y) H0 \: I
        stepCreator1->SetLayerMask("1-256");2 ?5 D- e" P1 ], W5 u* c: ]
9 u( F/ ]2 `! [+ Z/ {( n' F3 i5 V
        std::stringstream sBodyList("");
) D: M) x/ B  I  |2 M
+ G  y0 Y& I( @5 j( x3 X/ }        std::vector<TaggedObject*>::iterator iter;# U& K' d: |# e) O7 J
        bool added1;
+ ]/ A% i' l4 R& A% X+ u/ _        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)
9 D* G8 I* h. t! ]        {
% B; A) @7 a4 F" T9 p7 F3 V            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);: G( W0 R0 t' y; F* c6 Q2 h: |
            if (theBody)7 R2 e, b, k1 D
            {# ?  Y$ q" z2 B! I( n1 v
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);9 s* a- y- v5 N( z* [1 U
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
, b( L! X& {6 v7 o5 g7 N7 T( I$ P% `            }
9 J+ n4 s/ b8 r- u        }
- @9 ~" P* j. o% V; c! X+ C
- B$ r2 m; C5 Z$ f- R5 ?6 v        // Debug output4 w" h" v- m' Q2 N3 n/ t- J' e
        print("UGII_BASE_DIR = " + sBaseDir);
9 }; c# h) h  E        print("Settings File = " + sCfgFile);& ^- n2 {3 S2 i6 u% m3 T$ q) m
        print("Input File = " + sPartSpec);
1 H' `: C0 N5 E$ k0 E: ~        print("Output File = " + sStepSpec);9 Y: ]* t" v$ v2 E
        print(sBodyList.str());
3 }0 ]* F. I( D5 {: J2 g5 @+ a2 U. S0 m: {
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
# F4 h+ n9 P) _        stepCreator1->Destroy();
8 i& P4 Y% J+ R4 i2 B/ C    }- c' E' Q+ v) @6 a3 E$ e, }7 c; z
3 E% E; D$ e( k% @; {: U
}- A3 a9 {! ~3 ]' \. M& j) t1 W: P
; j. G4 g& M3 k" `# B  |/ Q8 I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了