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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x
" ~- a  h, `4 b$ j

7 {* m0 ~, x1 U9 N# U, P* C4 u3 ]3 k
1 g* ^# v4 }/ F5 P/ }NX二次开发源码分享: 导出 step格式
2 i9 S* J: K: P% M4 k1 r* n! I$ B* O8 ~2 B
参考一下,很简单哦!!
5 B# ], P- T3 }& s2 z, F- k7 g! N7 _- X% q7 K' X' @7 S) P
void StepExport::do_it(). W# y! R  x) z! ~/ Y. S) @
{
" V8 g& H  I2 x3 E4 [& g    std::vector<TaggedObject*> objectArray;# j* a& H) e2 [6 v6 j7 `
) f6 r8 q, r. J+ B4 E! s3 C9 g$ X
    if (select_bodies(objectArray))) ?+ s( n: G0 h, h$ e# J; G4 l  |
    {0 t% y) [7 G0 R
        NXOpen::Session::UndoMarkId markId1;/ Y, `% ?, \/ X- Z0 k
        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");
4 I& _5 q, h$ X6 f. Y
( R* t6 }' @3 x. U4 m/ _7 t0 ?        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
0 ~) g2 g+ V- M        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
- ~7 Y# \! L& k* @# }        NXString sPartSpec = displayPart->FullPath();
2 u$ E- j9 ~; `1 E        std::string sFolder = sPartSpec.GetText();0 F, l  S2 y& ~1 {/ B
        std::size_t found = sFolder.find_last_of(".");0 _2 d: f8 m' T" p
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";+ ?5 s( _' ^+ B; O. m, ]

. X. ^0 }$ X% r: w/ r$ }" k+ y' F6 W        NXOpen::StepCreator *stepCreator1;
0 k# a! K. F: I4 Q% T* L) j% E        stepCreator1 = theSession->DexManager()->CreateStepCreator();
; Z$ }+ Z7 c+ h# r& t# F  {( e" Q        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
6 ^2 h) V+ K1 p% O        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);, @. F6 d8 i, L* M- y
        stepCreator1->ObjectTypes()->SetSolids(true);
( ~5 X0 }% O4 Y& `0 v        stepCreator1->SetSettingsFile(sCfgFile);  }" n4 `0 j+ X$ B* ?! w& E
        stepCreator1->SetInputFile(sPartSpec);
/ l8 ~( l, s1 l: L* ?# v1 w        stepCreator1->SetOutputFile(sStepSpec);
+ x" s1 R# L$ \8 A2 m3 K        stepCreator1->SetFileSaveFlag(false);; X  C3 r8 i) W8 o
        stepCreator1->SetLayerMask("1-256");" @- Q1 i9 f9 h
. f6 j+ \9 M* e2 s& p5 H
        std::stringstream sBodyList("");
* C0 h9 \9 ?7 ?# C; C
; ?' N% ^7 o: m! X, h) J        std::vector<TaggedObject*>::iterator iter;7 p& f" C0 K5 w- D9 p
        bool added1;# U6 T# j; ^3 x& B5 P& n
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter)4 i& x: Q* m) a) f% z) Z7 ^2 p* E
        {
7 N. {4 M8 W$ ]1 a3 A3 E            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);' F! {5 m/ R& D- z( J2 C: @
            if (theBody)
+ T6 p- H5 B, V. ]9 M! x: V5 _( _. l            {
  A, R6 ^7 z' A3 X( [  k1 O  x  E1 A                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);' `# B5 e' T$ f; [4 w2 q# d
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
# d% _; ^0 t* G0 C4 b& r            }
5 k  W  |% o" j" s5 S        }
  D1 a- J% N. T0 ?. Y8 c; I! L7 V4 H
1 Z# W4 Y- E/ e& Q        // Debug output  K8 w5 B$ G/ p- I
        print("UGII_BASE_DIR = " + sBaseDir);
7 E4 E! ?* D+ E) C/ p        print("Settings File = " + sCfgFile);, \9 Y2 A3 D) u9 a
        print("Input File = " + sPartSpec);# p3 x& O" _& Q8 R
        print("Output File = " + sStepSpec);; [7 o/ `% f6 A1 Q# v, n9 c
        print(sBodyList.str());
9 V& ?! I2 y6 Q. M% o+ Q: ?
2 [+ x% _' G/ p7 b        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();; S- N0 X) }6 u6 A
        stepCreator1->Destroy();0 q' p% e  `: Z& W% p
    }
+ u2 d2 D2 ~8 R- n- D1 r5 j, \+ ], n+ }
}  _3 l( k$ P* P* {1 L, W" g% `

7 V. ]9 S" e9 h  [( C7 [& s
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了