PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

Catia二次开发源码分享:创建圆柱体实例

[复制链接]

2018-2-22 13:28:03 2795 0

admin 发表于 2018-2-22 13:28:03 |阅读模式

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针8 S; @' W$ R# f( h. y/ Q
// 获得文件指针( H- }; ~# F- L% ]$ X" k
CATDocument * pDoc= NULL;
2 t1 r2 F: o$ ^* eCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();1 G& g. k) Q* }
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针8 w) ]8 ~& ]4 i1 r
CATInit_var spInitOnDoc(pDoc);7 S5 |$ I3 }. k$ g
// 得到零件根容器( e  w7 _/ W5 B  s8 ?/ q

" O# @: F! ^! o* i3 D5 @' Q) _CATIPrtContainer * piPrtCont =" o1 x) G1 p8 m5 l' s
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
$ Z: K# v# s* g6 h1 \// 得到零件指针9 i1 d) p' ]6 c( w; w; H
CATIPrtPart_var spPart = piPrtCont->GetPart();
* I. a- H# }% g+ I9 T7 W! u) u; I8 e0 I: j1 w' E
创建草图
$ _# D0 ?/ u0 C* v0 I//初始化草图工厂
+ U; ?8 A  z# d9 MCATISketchFactory_var spSketchFactory(piPrtCont);. a3 B4 Q8 [; A% K
//在XY plane 上创建草图
% M9 ^# _! u+ O/ qCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));" D9 U4 l- r7 v+ i" e5 c. g
6 r1 Z  n  g, O% {, m
创建草图几何
* L' W0 A2 h" P' q  z) l5 W. A, d//首先声明编辑草图% \2 v0 N- O) ~- ^
spSketch->OpenEdition();
0 D$ C- ~+ ]9 F" p7 m# L0 S9 lCATI2DWFFactory_var sp2DFactory(spSketch);
3 g( G% @3 t/ \/ m) `" h4 `//这里表示圆心点
0 I( W7 D) O  G9 G' vdouble iPoint[2] = {0.,0.};8 f2 |8 R+ i, h
//下面创建圆圈
. b! m' K! O) P/ NCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
' w6 H7 c$ |4 t; ?8 y  ^- X, HCATI2DCurve_var spCurveOnLine(spLine);
+ t4 Y4 q: @* w% SspCurveOnLine->GetStartPoint();
. ?* \" D+ }7 V: _spCurveOnLine->GetEndPoint();
3 F; D& H8 o0 P% F% ?//然后退出草图:
5 F6 y, F. w( L/ rspSketch->CloseEdition();# v$ u: ?: K' @7 [! b! u& U
. u% H: C& g8 K/ O

, ?4 j/ t: |. m0 w, u创建约束
$ ]# B0 z* C, QCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
; {: z; k$ a* i) s& c//定义spLine1 的半径约束
+ Q( \. I7 U! Z5 V2 O' ^spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
" [) O; Z$ u1 V4 }NULL, Cst2DType_Radius, 0, 0 );1 ^; @/ t" Q" S
//定义spLine1 与坐标原点的同心约束( ~- [7 q; C% d) r: C5 f
CATI2DAxis_var spSupport = NULL_var;
" o2 S  o# d& S8 |  zspSketch->GetAbsolute2DAxis(spSupport);
0 e& ^  I  h8 ]7 G3 F' ^7 F
2 C3 L. G1 H6 i$ K  s2 ZspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
4 {& N, N: v& T- g0 V; P) G* ENULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
& K- D2 f3 c( G# T
4 \/ ]" W7 M0 P5 x( X. \9 _! e; k
创建凸台
  O# I$ W3 }% a// 从编辑框中获得援助的高度1 N% t) K( V! N5 j4 ]$ U" {
double firstLimit = _Editor004->GetFloatValue();. N2 u* x3 k6 d, d
double secondLimit = 0.;5 O* N5 Y. Y% f7 E. {! z6 X# I
//圆柱的轴向方向为Z 轴方向
, z; T4 C& y- C. a+ PCATMathDirection dirZ(0., 0., 1.);0 B0 ~* d  T! @/ I' V7 K
//初始化零件工厂4 `& ]1 J4 {8 C! `
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
6 U! C" N/ y: b" x# u' u/ t+ K: N" m//创建凸台" h, v5 u( Q9 J( w% O* j  z: v1 ^
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);; }7 I+ {! h$ ^
CATIPad_var spPadOnSpecObj(spSpecObj);$ m2 C* J! T7 c+ W  t, ~- w" ]
//设置拉伸方向6 S6 z* u0 }/ Q2 `3 n0 B" M
spPadOnSpecObj->ModifyDirection(dirZ);
; o3 s6 O1 T0 L5 o6 K2 J$ \9 V1 _//设置凸台第一限制类型
, e  d: @/ @3 ~- u! kspPadOnSpecObj->ModifyEndType(catOffsetLimit);6 L; h5 Q4 y4 ?5 x$ `: O0 ~1 Y
//设置凸台的高度( {+ k4 H& M, V, \: v' x
spPadOnSpecObj->ModifyEndOffset(firstLimit);7 u1 V/ s" c$ ?7 R. w
//设置凸台第二限制类型
3 P' Q* t2 b8 l( e) IspPadOnSpecObj->ModifyStartType(catOffsetLimit);9 F' E) e) S0 U
spPadOnSpecObj->ModifyStartOffset(secondLimit);
! I) d) m4 N0 r+ Z, U//将凸台添加在结构树中
4 D6 H  N% w( S) KspSpecObj->Update();. z9 @1 I8 b( d+ C/ H) ]1 x: l
CATIGSMProceduralView_var ispProcView = spSpecObj;, w2 e; n# p  _& D' Y* [  \2 d8 u
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
3 g* v7 P! W* S) B8 ]# ]
1 {9 x( c) y" i# K
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了