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 4291 0

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

admin 楼主

2015-6-5 11:20:12

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

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

x
这段代码可以参考看看哦,显然比ufun的代码长点,但是是新的也是最好的方法
) \( `4 J5 C" V
1 F) [& ]: g$ Z4 f, t# O0 R5 ~2 J' U" h, W- p# L8 `
{# q! v3 k) }3 `- f$ ?  F
    /* Initialize the API environment */* H6 {! W8 V1 }, W
    if( UF_CALL(UF_initialize()) )
4 A3 W( e. ^, r# _0 ^    {
  ~$ a7 }6 K2 o. A4 g# o6 Q9 s: Z; h        /* Failed to initialize */
$ M& f1 I; f; f6 j        return;
& V1 _% l! x* G' v/ H$ U  M    }) ]  g4 a0 i% A3 a

. P# O8 i; S1 z8 e5 B    Session *theSession = Session::GetSession();
5 s5 j( S/ a2 ]8 d    Part *workPart = theSession->Parts()->Work();
, L# @5 x9 \- S1 X: l" ]6 z+ c" X% \  ?1 y$ ?
    /*Get the existing group objects to create the operation under*/
* {$ f# s/ Q5 B; K/ ?    CAM::NCGroup *programGroup = workPart->CAMSetup()->CAMGroupCollection()->FindObject("PROGRAM");/ k0 m7 y8 M; s: d2 I, e
    CAM::NCGroup *methodGroup = workPart->CAMSetup()->CAMGroupCollection()->FindObject("METHOD");1 q7 M( n; u: I
    CAM::NCGroup *toolGroup = workPart->CAMSetup()->CAMGroupCollection()->FindObject("MILL");
& U, v, m! d) V* S# P. S+ m' x    CAM::NCGroup *geometryGroup = workPart->CAMSetup()->CAMGroupCollection()->FindObject("WORKPIECE");
6 |$ f$ ]& N" P3 g- R" W
" D8 j% R/ C+ I% f, ]* {    /*Create the Cavity Mill operation*/7 W# g1 a1 `0 M7 k/ h, L
    CAM::Operation *operation = workPart->CAMSetup()->CAMOperationCollection()->Create(programGroup, methodGroup, toolGroup, geometryGroup, "mill_contour", "CAVITY_MILL", CAM::OperationCollection::UseDefaultNameTrue, "CAVITY_MILL");3 y+ \/ n* p2 ^+ D* f2 d6 [! [

) \( M  g) ~' v# Q    /*Create the Cavity Milling builder*/
1 `4 }( l7 n9 Z- G    CAM::CavityMillingBuilder *cavityMillingBuilder = workPart->CAMSetup()->CAMOperationCollection()->CreateCavityMillingBuilder(operation);. V. }9 ]/ t1 y% w5 \

, l) L' T9 A1 c) }    /*Get the solid body named PART*/! O3 h& O" w% _2 @2 O
    tag_t partSolid = NULL_TAG;
6 P/ g5 \, u( J! e# C    UF_OBJ_cycle_by_name_and_type(workPart->Tag(), "PART", UF_solid_type, false, &partSolid);
2 p( g  i! I3 Q    Body *partBody = dynamic_cast<Body *> (NXObjectManager::Get(partSolid));& X+ b! J8 X4 v8 a8 }( b; D
    std::vector<Body *> partBodies(1);0 @: B) ~: O6 c' \
    partBodies[0] = partBody;( P: h. K$ \& ]% ?
( j1 v4 Z0 M- H3 n* [% b
    /*Set the part geometry*/
6 E& |" K6 [/ X& z, z7 Q  h7 E* |    cavityMillingBuilder->PartGeometry()->InitializeData(false);
- T5 d2 g1 V6 F! [" ]* v0 a. Z    CAM::GeometrySet *partGeometrySet = cavityMillingBuilder->PartGeometry()->GeometryList()->FindItem(0);. O) n8 J# f  ]5 h
    BodyDumbRule *partBodyDumbRule = workPart->ScRuleFactory()->CreateRuleBodyDumb(partBodies);
/ D6 H  a  `! B    std::vector<SelectionIntentRule *> partRules(1);# g0 w9 x3 }: a8 E2 n* c
    partRules[0] = partBodyDumbRule;
) h- S+ d' G0 @  P1 n7 {    partGeometrySet->ScCollector()->ReplaceRules(partRules, false);
' Z2 Z8 {" A3 K+ [$ ^: p! s. Q6 I
    /*Get the solid body named BLANK*/
& R6 B" J. g5 u5 f" k3 H: w. h    tag_t blankSolid = NULL_TAG;% X: C% i. _, M. B* `% |
    UF_OBJ_cycle_by_name_and_type(workPart->Tag(), "BLANK", UF_solid_type, false, &blankSolid);
9 X- @( X; c4 m/ @! V& f# e    Body *blankBody = dynamic_cast<Body *> (NXObjectManager::Get(blankSolid));, k) D1 y' G, U  @+ q
    std::vector<Body *> blankBodies(1);3 }, ?$ A8 }: g5 ?6 ?6 B
    blankBodies[0] = blankBody;8 Y9 m7 k/ i! i/ Y0 C) _5 x, @

$ e5 K( j& i. z$ s4 o5 l( M    /*Set the blank geometry*/
4 A: P4 O* C; ]5 Y& q1 e3 C( j    cavityMillingBuilder->BlankGeometry()->InitializeData(false);- d: i- H$ [3 x$ N3 Z
    CAM::GeometrySet *blankGeometrySet = cavityMillingBuilder->BlankGeometry()->GeometryList()->FindItem(0);
2 y! ]( g: c0 y, q    BodyDumbRule *blankBodyDumbRule = workPart->ScRuleFactory()->CreateRuleBodyDumb(blankBodies);, P3 K  u2 x$ l3 T" H
    std::vector<SelectionIntentRule *> blankRules(1);  a5 e0 v+ S+ ?" |1 m- x: ]# M
    blankRules[0] = blankBodyDumbRule;; n; ^' Z4 Y8 ~* ]" y, t
    blankGeometrySet->ScCollector()->ReplaceRules(blankRules, false);; Y. G* r, t' @' @$ A
' L" \# V: w( }8 y0 y. x4 }
    cavityMillingBuilder->Commit();
6 J: Z( H& h, A1 d7 i: M' E    cavityMillingBuilder->Destroy();
. a5 [! v  [- N: Z! {0 S1 y  @1 U/ e. ]; \( `8 `) N5 X* v& s
    /*Generate the tool path*/
9 \& I: B  x. e    std::vector<CAM::CAMObject *> operations(1);
8 ^; b" X/ W+ ^; b$ d    operations[0] = operation;, j' {. R2 @! o- q$ s
    workPart->CAMSetup()->GenerateToolPath(operations);0 N" }5 G3 o5 v9 f+ x! k

- Y5 p4 d, w$ R4 Z* P& g7 z% j: F    /* Terminate the API environment */5 t. c! L( t3 H" z# j
    UF_CALL(UF_terminate());
: t0 O. N4 f& _5 b2 k7 S6 Z}
8 W8 ?2 j( ^) v1 M1 N/ H% Q3 n: P3 @$ l0 j& y/ k7 ?
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了