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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

# i% o3 j- o' ^2 a: r- r) e+ _- G& A- n" x9 c+ R% \* |
) X/ c! J4 v# R6 a
NX二次开发源码分享: 导出 step格式
. }: s( P! A7 u7 G! l) W$ P% Y% G+ e: P% K( ^
参考一下,很简单哦!!
3 A* a  Q  M& ]" ]! r- {# h/ K* Z
void StepExport::do_it()+ |+ m; P1 U2 k; e7 W
{' i! M5 T0 u$ M0 P+ d+ s9 f
    std::vector<TaggedObject*> objectArray;
) W$ [: R$ s; Q, U6 Q; M8 Z( s
' s( i5 J' Z) E9 s' R$ b    if (select_bodies(objectArray))
$ |2 l/ o8 m1 c6 n8 _3 v* h7 V" |5 j    {
  I# r) G, j1 Y, ^9 t/ @        NXOpen::Session::UndoMarkId markId1;2 q) {2 z1 S6 T7 d1 `' w
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");6 p* [5 j( `9 x; W$ S- |  E

8 B" R1 E/ W8 m. C$ F' F        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");% \: }* [. c" Q4 [7 Q9 _
        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
3 v* Q1 U# \7 [* M! t+ o        NXString sPartSpec = displayPart->FullPath();
, x8 s  Y4 K2 ]% M; q; h; p        std::string sFolder = sPartSpec.GetText();! l/ e" l' y! z- ]) W+ c
        std::size_t found = sFolder.find_last_of(".");1 _. g3 y2 w- _( E. x6 W
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";) n- _( Q8 @+ l- r

4 o; z+ t# r) G* M; i" d* D        NXOpen::StepCreator *stepCreator1;. A1 F$ y$ [  u1 k
        stepCreator1 = theSession->DexManager()->CreateStepCreator();# Q* V' o7 I  C* ^1 d% @  h
        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
2 c5 _3 n' k2 H$ W+ f        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
3 w+ w; W/ ]1 ?' A$ u6 o        stepCreator1->ObjectTypes()->SetSolids(true);3 `( i1 p+ {0 u- C) p; s- v
        stepCreator1->SetSettingsFile(sCfgFile);* g; D. I% x! @: U, J* S
        stepCreator1->SetInputFile(sPartSpec);
" |/ A9 h- o! a2 V, w# q        stepCreator1->SetOutputFile(sStepSpec);
& j4 Y$ d- i7 G        stepCreator1->SetFileSaveFlag(false);0 B. x$ }8 t/ B) {( ~$ e! V
        stepCreator1->SetLayerMask("1-256");
8 k5 B. Z" ~, b- a  g: ~/ d$ F6 I' s
        std::stringstream sBodyList("");
& o4 B& W. L- T% D% V- ^. U& _# @) c0 q2 J% V) u( r4 s1 J
        std::vector<TaggedObject*>::iterator iter;
/ H6 R! M6 L. q4 x" j% r, d        bool added1;# Y( J+ d! Y4 A; E# @- L# b7 x6 B
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)1 B2 Q: n3 t- D3 G
        {7 Q4 @% ]$ u; i0 ]% ]. j
            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);3 R0 U( |2 Y7 V
            if (theBody)9 M  R- b& [% E* w0 a/ R$ v1 K
            {6 b$ k4 e# z% l9 J% [" K: j
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);+ ~) Q; c$ S) J8 Y
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
, U3 b& u& ?' I* Y' {            }
* f' S* N' e  |9 s        }  k6 Q* C. W* P/ P; Z: x( {4 `
& L+ M  y0 ^2 @
        // Debug output
- x/ U9 K+ i6 Z9 V' y, c5 E        print("UGII_BASE_DIR = " + sBaseDir);
% n; f) o- F6 P- j+ v        print("Settings File = " + sCfgFile);$ N- I" X+ E; C/ d1 Q1 X" Q
        print("Input File = " + sPartSpec);
0 n* |6 s0 t0 h. t2 |        print("Output File = " + sStepSpec);
0 p% j& t7 g5 q- `/ Z        print(sBodyList.str());; m; B# H2 R0 \2 F* _: V2 r
* C: x4 ], g) L" q$ W8 t/ _2 D
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();
/ S9 X& p# g. c& R        stepCreator1->Destroy();
' ^: e3 B( v0 b$ r% s    }
% M( X, U: R9 `% y9 Z3 z5 R; F7 f- }; Z
}4 ]' o+ N  F  F0 I1 k1 Q

1 Z/ j7 `5 |0 ~0 E0 ~' F+ f( u7 |' z
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了