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

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

  [复制链接]

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

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

admin 楼主

2017-1-16 15:31:09

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

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

x

1 }% r6 O* W' ]' o, l& S( S" R  ~4 }: f) b! A7 @- u  }: k/ r0 G

, \* n9 v2 ]; Y/ D7 R. S& PNX二次开发源码分享: 导出 step格式! v; o3 e. }5 R
  D8 v$ e  W+ c; O
参考一下,很简单哦!!7 L( |2 {- U5 l) r/ F

" d! c# Q8 Z5 R2 S0 j7 A$ qvoid StepExport::do_it()
. ?4 I& l% ^/ F4 B1 T{
+ y6 W4 l: {! O! F    std::vector<TaggedObject*> objectArray;
: _3 v* t3 K9 O7 I/ T1 i! W0 e% S# |) n3 h# w+ ^( K
    if (select_bodies(objectArray))
. z% z. I( t" \1 B, Y3 W) F9 N9 v    {
6 [. T! c1 c6 o        NXOpen::Session::UndoMarkId markId1;
: x5 W4 p( g$ p        markId1 = theSession->SetUndoMark(NXOpen::Session::MarkVisibilityVisible, "Start");" ]; O1 z! R, N
: a+ u, R3 v4 z/ U7 P: q$ F7 w
        NXString sBaseDir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");
! ]/ ?7 @8 K0 {. O        NXString sCfgFile = sBaseDir + "\\step214ug\\ugstep214.def";
& V# ]0 K' C/ r        NXString sPartSpec = displayPart->FullPath();1 R3 r8 s  W0 a3 C) K# U7 Z
        std::string sFolder = sPartSpec.GetText();0 q1 V( w2 d- u# p
        std::size_t found = sFolder.find_last_of(".");" j( t: |( ~( a3 m  ^8 r9 F
        NXString sStepSpec = sFolder.substr(0, found) + ".stp";' _  @  Q9 p1 J, X) k/ V
& t5 I5 r' K" U  V- O3 g, E) Q
        NXOpen::StepCreator *stepCreator1;2 n) L! z& p$ `6 f
        stepCreator1 = theSession->DexManager()->CreateStepCreator();
) J, I9 Y- q; v2 _( `) ]        stepCreator1->SetExportAs(NXOpen::StepCreator::ExportAsOptionAp214);
; h1 E* e% ?. w; p) s; B' N/ [        stepCreator1->ExportSelectionBlock()->SetSelectionScope(NXOpen::ObjectSelector::ScopeSelectedObjects);
% c' U- I* ~5 ^8 @! G- ~1 Q  h        stepCreator1->ObjectTypes()->SetSolids(true);% }& G* Z* s8 u( n8 Q6 \
        stepCreator1->SetSettingsFile(sCfgFile);
; R3 P# v% @/ q4 \. \% X8 q        stepCreator1->SetInputFile(sPartSpec);
- s' M) ~( [2 Z        stepCreator1->SetOutputFile(sStepSpec);% R  A3 x- `8 {
        stepCreator1->SetFileSaveFlag(false);
2 a% H# p# |3 j6 X9 @" m* }: e        stepCreator1->SetLayerMask("1-256");. K" A: j' C; i5 t8 Y
9 G6 v% y2 ~; f. r1 y$ f
        std::stringstream sBodyList("");
$ r( ~; X, |% a. {$ S, [, x/ j+ {1 O5 n
        std::vector<TaggedObject*>::iterator iter;/ f3 h$ b2 ]9 j! E# h' I5 R
        bool added1;/ D% Z; I* m- H1 t+ Z& `0 d
        for (iter = objectArray.begin(); iter != objectArray.end(); ++iter): e& ^1 {3 E' Q  v
        {
' X8 O+ r, o- F0 ^            Body* theBody = dynamic_cast<NXOpen::Body*>(*iter);
  b+ t5 _+ s- _" g6 C; x- U            if (theBody): U1 P6 D! R4 W0 O
            {- ~9 e1 m2 J' J) n
                added1 = stepCreator1->ExportSelectionBlock()->SelectionComp()->Add(theBody);+ f/ [1 d, e) E; o' f% f8 a+ m
                sBodyList << "Adding Body " << (theBody)->Tag() << std::endl;
; g, [$ f0 r* C3 o$ S% i9 P6 \            }! N8 d6 Q1 x3 b$ V- x+ y0 ?
        }+ b. l! z0 u: Z3 U

; y& O7 k2 u% H. W6 ~0 @  C8 `2 G        // Debug output# Y) }8 b( S% h! X
        print("UGII_BASE_DIR = " + sBaseDir);
  l, b. ]' O) E( ?; H! ?        print("Settings File = " + sCfgFile);* `+ p0 e7 A5 p2 Y
        print("Input File = " + sPartSpec);
4 _- {2 J" A- P        print("Output File = " + sStepSpec);6 g. s/ d5 G3 O/ A" a
        print(sBodyList.str());
, X4 Z2 H. }: |, R, _, P3 g+ Y6 J& X# l
        NXOpen::NXObject *nXObject1 = stepCreator1->Commit();- ^. ?7 P) s2 ^, I( L7 M- ]
        stepCreator1->Destroy();
" z; w3 N  J" \9 c    }
" Q% O# l* v  v5 A2 p- \, M, N# C  P  F/ R$ E: z  q7 @
}
4 I* L  B/ K. L% f
* S. V' f; q! y2 F" R! `$ V7 p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了