PLM之家精品课程培训

PLM之家精品课程培训

联系电话:18301858168   |   QQ咨询:939801026
NX二次开发培训

NX二次开发培训

UFUN/NXOpen C++和实战案例

适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术。
公众号二维码

关注公众号

点击扫描二维码免费在线高清教程

课程详情
Catia二次开发培训

Catia二次开发培训

市场需求大,掌握核心技术前景广阔

Catia二次开发的市场需求大,人才稀缺。掌握开发技能潜力巨大,随着经验积累将在汽车、航空等领域有所作为。
B站二维码

在线原创B站视频

点击关注工业软件传道士主页

课程详情
Teamcenter培训

Teamcenter培训

全方位培训,从基础应用到高级开发全覆盖

涵盖用户应用基础培训、管理员基础培训、管理员高级培训及二次开发培训等全方位内容,由多年经验讲师打造。
QQ群二维码

加入同行交流

点击扫描二维码加入QQ群

课程详情
×

PLM之家plmhome公众号

课程涵盖: PLM之家所有原创视频

×

关注B站视频

所有高清视频一览无余,全部在线播放学习

×

加入PLM之家QQ群

同行交流,疑问解答,更多互助

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

[资料分享] NX二次开发源码分享:使用NXOpen C++创建加工型腔铣

[复制链接]

2015-6-5 11:20:12 4295 0

admin 发表于 2015-6-5 11:20:12 |阅读模式

admin 楼主

2015-6-5 11:20:12

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

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

x
这段代码可以参考看看哦,显然比ufun的代码长点,但是是新的也是最好的方法
7 K: ~6 z# _: p0 W$ a. w' N6 c' R; ]9 o. l: m

% I3 q0 H( ^5 A3 e4 C{
, y6 N1 R/ z/ R5 }    /* Initialize the API environment */
7 o( X' X% ~* K+ ^. j    if( UF_CALL(UF_initialize()) )
$ [6 w  O- b' M7 g+ r  k    {4 [$ `1 e& i4 J  |# t% P2 d4 ]( _
        /* Failed to initialize */
  L6 _6 \' Z2 i0 ?& V        return;+ K" Y. K& _- \6 a& x
    }
5 O# F9 a+ b1 t9 K
4 z9 y4 H7 P8 M9 {) p9 M6 i    Session *theSession = Session::GetSession();
  [% o- _6 `$ W9 J+ J3 C    Part *workPart = theSession->Parts()->Work();! G) c8 J1 c0 H+ g. w

; x3 [( l, V  c3 p' T% e    /*Get the existing group objects to create the operation under*/9 C3 d1 U+ d2 _9 V% K. G
    CAM::NCGroup *programGroup = workPart->CAMSetup()->CAMGroupCollection()->FindObject("PROGRAM");
& t' d% h" H/ x, E6 P* S    CAM::NCGroup *methodGroup = workPart->CAMSetup()->CAMGroupCollection()->FindObject("METHOD");
* b% [) H, E7 {9 t1 b4 Z' }    CAM::NCGroup *toolGroup = workPart->CAMSetup()->CAMGroupCollection()->FindObject("MILL");' f, P3 t- U) I/ B5 J9 |
    CAM::NCGroup *geometryGroup = workPart->CAMSetup()->CAMGroupCollection()->FindObject("WORKPIECE");
  x3 l+ ~: }/ r" E1 ?4 d
) e; ]0 J0 Y+ u7 R6 B9 s    /*Create the Cavity Mill operation*// b1 W  T6 f  S4 o0 ~7 K
    CAM::Operation *operation = workPart->CAMSetup()->CAMOperationCollection()->Create(programGroup, methodGroup, toolGroup, geometryGroup, "mill_contour", "CAVITY_MILL", CAM::OperationCollection::UseDefaultNameTrue, "CAVITY_MILL");
# G) N$ f6 b' L; `4 L8 Q1 |% `% G0 j1 c; u) Y5 l5 l# t" }. b
    /*Create the Cavity Milling builder*/
; d  {0 V# c: g. s8 A- B    CAM::CavityMillingBuilder *cavityMillingBuilder = workPart->CAMSetup()->CAMOperationCollection()->CreateCavityMillingBuilder(operation);. O: R( r- p8 {
5 W* e2 x/ e# @/ \& R  y+ h
    /*Get the solid body named PART*/
4 G* V, v$ e! J$ a5 Y5 o    tag_t partSolid = NULL_TAG;
+ H6 J' @3 A4 ~" i; _% Z( h9 r    UF_OBJ_cycle_by_name_and_type(workPart->Tag(), "PART", UF_solid_type, false, &partSolid);- |. L8 ?1 i! ~  @5 Y' ]: o' Z+ r
    Body *partBody = dynamic_cast<Body *> (NXObjectManager::Get(partSolid));
) R& G1 F) E. m5 x    std::vector<Body *> partBodies(1);7 [2 N8 O) a- d7 B9 J$ A
    partBodies[0] = partBody;
/ p+ a. C, V+ l+ O: L- {/ n6 P& _
4 X' S% s/ s' j) d    /*Set the part geometry*/
% O4 y7 T3 V+ _* A; ]8 E    cavityMillingBuilder->PartGeometry()->InitializeData(false);% K- ]' k2 U& r9 N. Q
    CAM::GeometrySet *partGeometrySet = cavityMillingBuilder->PartGeometry()->GeometryList()->FindItem(0);
, s0 M" i. Y, w* G    BodyDumbRule *partBodyDumbRule = workPart->ScRuleFactory()->CreateRuleBodyDumb(partBodies);
) y0 i3 s. q0 s! m3 j7 w    std::vector<SelectionIntentRule *> partRules(1);5 H& @# d' b2 h% @. P, u: }: Z8 V
    partRules[0] = partBodyDumbRule;% Q3 H# \) a( w* a
    partGeometrySet->ScCollector()->ReplaceRules(partRules, false);
9 u" o/ i0 H& l# g' }' @
& b' ^6 h! I, D  u    /*Get the solid body named BLANK*/8 y) x* g' _9 m
    tag_t blankSolid = NULL_TAG;* |4 X( i0 O$ I
    UF_OBJ_cycle_by_name_and_type(workPart->Tag(), "BLANK", UF_solid_type, false, &blankSolid);8 h- E9 ^, t& x* {& _
    Body *blankBody = dynamic_cast<Body *> (NXObjectManager::Get(blankSolid));
8 l5 M/ i: _  j. ~- d    std::vector<Body *> blankBodies(1);$ S3 C0 ]9 c6 B4 v# j$ y4 F/ x
    blankBodies[0] = blankBody;6 L/ d2 f3 I/ [* N* X6 q
3 c7 g. A; r& y& H2 u3 e8 O# |4 h0 P
    /*Set the blank geometry*/
6 G! A' l7 v) u+ ?    cavityMillingBuilder->BlankGeometry()->InitializeData(false);
2 B5 D1 b& B- Q* a$ n! b8 d    CAM::GeometrySet *blankGeometrySet = cavityMillingBuilder->BlankGeometry()->GeometryList()->FindItem(0);
3 W+ }2 @" [' j. C- q4 t8 i    BodyDumbRule *blankBodyDumbRule = workPart->ScRuleFactory()->CreateRuleBodyDumb(blankBodies);# }9 j2 T" Z6 E, j
    std::vector<SelectionIntentRule *> blankRules(1);8 e9 |+ |3 B! A& d
    blankRules[0] = blankBodyDumbRule;
' o1 j; Y% [5 `+ w5 c' l( U    blankGeometrySet->ScCollector()->ReplaceRules(blankRules, false);
" n* m, b. W2 C! i: V3 r* o8 e
) }$ T& Z( B5 @1 b% N7 k    cavityMillingBuilder->Commit();
( c4 ]% w4 t0 i3 }4 L' O% z    cavityMillingBuilder->Destroy();% H! u3 w9 {3 ^% i/ W% v
- H( Q  y0 w& Y; ^
    /*Generate the tool path*/# U6 y. l4 j" f7 o$ _  x
    std::vector<CAM::CAMObject *> operations(1);
5 g) }5 R, Y( P3 P% x    operations[0] = operation;) n1 W8 v" Z* N$ B. E
    workPart->CAMSetup()->GenerateToolPath(operations);
+ D% h' M; n. u( k% A2 L7 L. s0 {
    /* Terminate the API environment */5 {  ]7 p1 U$ |% v
    UF_CALL(UF_terminate());
& u# q& i: w. f3 o}  z/ f, m$ j5 [

  J# o0 K: }/ K% {' d& p
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了