PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
/ E' `" ~' ^1 y// 获得文件指针0 a3 N! S2 a1 ]3 e8 f
CATDocument * pDoc= NULL;2 ?# e) L% O; v. O
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();5 P  u' l6 Y7 }# O: i9 ]* e
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针$ c2 s1 E2 _$ L
CATInit_var spInitOnDoc(pDoc);
3 s3 r* D8 V, y; |# l// 得到零件根容器4 `1 R* o2 z6 Z, d# l

, S9 e+ Z) Y3 YCATIPrtContainer * piPrtCont =  p5 L' s7 k  e- e) T' x
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
' R& o+ Y( j* E. ?8 S0 T9 v3 N// 得到零件指针+ e3 ?  S6 e1 R6 R5 i$ b1 d
CATIPrtPart_var spPart = piPrtCont->GetPart();
# x4 v3 f  t: t- T( s7 `2 \. s1 a
/ N+ a5 a6 h! o0 p1 L7 K" X' k创建草图  v- Y# v: w( S
//初始化草图工厂
- H6 R. n$ X& DCATISketchFactory_var spSketchFactory(piPrtCont);
3 }- K& Z& d, y8 q( V( B4 k//在XY plane 上创建草图
# R; t% G* ~6 z0 m) ^CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));% j5 t4 A/ R/ M3 {; v) _

* P- @/ ]6 w% N% z8 `创建草图几何
/ l5 M8 Q- w# J! g1 X+ A//首先声明编辑草图
% J5 A+ p; A  o- |  @& E$ B# h. yspSketch->OpenEdition();, q4 W. B9 I5 I& ?* w% v* `
CATI2DWFFactory_var sp2DFactory(spSketch);& N$ ~. r& n0 W" Z' k6 H# w+ a5 l
//这里表示圆心点( R6 t; o% k( j! N) q
double iPoint[2] = {0.,0.};
# ~9 O  L( G" Z: N5 v' W" t7 r. G//下面创建圆圈* Y; l) j/ K' b3 A5 V' t
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());. W; H# F% M5 m" y) a8 q7 P
CATI2DCurve_var spCurveOnLine(spLine);
% C6 }6 ]& \. \- T6 d, VspCurveOnLine->GetStartPoint();
" @, L* ^" C5 w1 `spCurveOnLine->GetEndPoint();& J) x# N! |* \
//然后退出草图:
: x# I4 R! Q. b( M( mspSketch->CloseEdition();
) {/ v: }5 k* w+ t8 H* a& Q
' E. }; U# j* {# r" p
+ z; K; h7 h& m1 ~: K& u创建约束8 q2 e' D+ x: m$ Z; `
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);: |' y! x, W; D5 A
//定义spLine1 的半径约束
8 _& ^- v& }" N. K" E  T: N0 u! I4 hspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,# I7 |, V# Z; L4 L/ w0 J7 x
NULL, Cst2DType_Radius, 0, 0 );, G# p& _2 |: ?0 ]" \" O
//定义spLine1 与坐标原点的同心约束
! r: E/ m. c  T3 U$ DCATI2DAxis_var spSupport = NULL_var;! C' f5 K* D; E% p
spSketch->GetAbsolute2DAxis(spSupport);+ E0 X$ p' X- ~6 R; ~: S( l

# t/ S8 J0 W5 [% M: kspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),7 E! A% Y1 V. z' F$ t
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );; {0 P/ v, _4 V) [: }

% p+ R6 ?- X4 y% p# {+ x7 Q8 n8 A" Q1 k* @" f  ]- w
创建凸台9 v; h1 Z+ t4 g- ~# n9 Z; ?
// 从编辑框中获得援助的高度& D8 E* ~, N# i7 e
double firstLimit = _Editor004->GetFloatValue();
# O/ G4 V9 D. v: _double secondLimit = 0.;
: s$ E2 K4 V0 |, ]3 n. L, R//圆柱的轴向方向为Z 轴方向3 V; D) M* Q: ~0 _! \3 e" E' t
CATMathDirection dirZ(0., 0., 1.);1 m2 u  I6 q4 h  q) G3 M
//初始化零件工厂- m; z. M$ T7 ~; e; ~5 `4 ~
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
  V0 h6 }. m; }; m//创建凸台2 r; J% `" x2 {& x( r  h7 p
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
/ ~' Z3 y7 x  |: Y: bCATIPad_var spPadOnSpecObj(spSpecObj);
# O( Y  }& V: Q6 b+ j//设置拉伸方向+ V4 n$ Y4 K; j, k
spPadOnSpecObj->ModifyDirection(dirZ);
3 p! B. Q" `0 }" Z- o* u: h//设置凸台第一限制类型
; K3 `  y' x* `! A- \spPadOnSpecObj->ModifyEndType(catOffsetLimit);6 ], Q; N& s5 o7 t7 k- h) k
//设置凸台的高度
5 e. [4 m% n* ~' N7 u1 dspPadOnSpecObj->ModifyEndOffset(firstLimit);! r; P" J: X. s, s/ ~/ q# k7 ]" K
//设置凸台第二限制类型
) j) `7 _- Y" f! K. }6 R! OspPadOnSpecObj->ModifyStartType(catOffsetLimit);
% }. T6 k( \% {0 k3 FspPadOnSpecObj->ModifyStartOffset(secondLimit);
+ B" h& c* ^; c( a//将凸台添加在结构树中9 \1 e: r7 F. N  i
spSpecObj->Update();
' b9 \* o3 ]; U, l, b' B# QCATIGSMProceduralView_var ispProcView = spSpecObj;
5 p( b  P7 p9 Q. L7 ?. Dif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}0 z. u6 r: N9 O- r% l' k; I2 V
3 h" H4 u0 E+ `" R' h3 R. y) }7 b
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了