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

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

[复制链接]

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

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

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

x
获得零件指针
4 ?. m2 x. f0 R// 获得文件指针
3 F' Y) }  s* X, J' `4 h& BCATDocument * pDoc= NULL;+ x$ F- }% x1 i1 D
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
$ \/ ~! T% W7 A3 _: q  |* {" NpDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针6 e+ J+ o' n' k# J- D( R4 z
CATInit_var spInitOnDoc(pDoc);
6 f7 P5 n6 o' Q3 O// 得到零件根容器
  e8 @8 _# o" H9 y* Z/ E+ r' ^' f7 t
& E* u% J. Q2 z) m- A* I4 f. pCATIPrtContainer * piPrtCont =
* G9 p& Y) R) v/ p6 F. L: ]  V(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");: U- D) g+ u6 V) d5 V% Y  Z: v: l
// 得到零件指针5 l  ~& w2 X6 B9 J
CATIPrtPart_var spPart = piPrtCont->GetPart();( J- G: L/ Y+ g1 [& ?+ \

1 i. X+ u' @1 r5 U: h- C创建草图/ Z$ @2 z6 e9 d' e: j
//初始化草图工厂
0 r$ N7 j7 E5 `( t% D$ pCATISketchFactory_var spSketchFactory(piPrtCont);5 S! m& p  R/ g- a
//在XY plane 上创建草图
" S* k/ {1 y- rCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
2 e/ f+ X/ F' h! f- ?7 c" O* G2 d6 [* _# Y7 G
创建草图几何7 s: x! ^1 \, P4 S  p* |4 z" H1 x
//首先声明编辑草图" _1 j0 E! j, F
spSketch->OpenEdition();; }1 e8 b& r5 V
CATI2DWFFactory_var sp2DFactory(spSketch);6 v0 S8 Q0 y* U) |
//这里表示圆心点
- X% c, u& N% u4 Z6 x# Ldouble iPoint[2] = {0.,0.};
- z0 F. A* T) ?2 M4 |: p6 _//下面创建圆圈
' S6 h* o: X, S* I! i0 s1 N. nCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
. g4 U- p( T6 x& V) E7 ^CATI2DCurve_var spCurveOnLine(spLine);; k/ r% k# l5 U) T* y3 U
spCurveOnLine->GetStartPoint();! N( L2 e7 \) C) T  C4 c0 _- R
spCurveOnLine->GetEndPoint();
: `6 K3 n2 n% B4 ^//然后退出草图:
4 Z7 I2 H5 K4 a; jspSketch->CloseEdition();
6 R5 h2 T8 r" A/ G, m3 C& H  E0 ?4 o

5 j# ^4 x8 F3 L# M  w+ t( j9 I创建约束# @6 G* g: r+ K4 b' f/ N9 B1 V
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);6 K) ~! `, f7 S0 `* K2 a
//定义spLine1 的半径约束
* W* w6 w8 V! W2 @( B- vspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,% \8 B- x5 s: v- S! k8 \6 Z$ [
NULL, Cst2DType_Radius, 0, 0 );2 P  W4 {' u& v, G2 m
//定义spLine1 与坐标原点的同心约束
( Q9 \- {6 F) U+ n9 U8 C, V5 ^CATI2DAxis_var spSupport = NULL_var;1 s( P, B3 p3 }- J* T+ l
spSketch->GetAbsolute2DAxis(spSupport);" [# q. \- P2 l' V7 k0 I

) l" g0 A* i2 a! N4 B$ D2 ]3 t9 @spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),( M! H$ J+ \' j3 a
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );! Q4 w) F4 j6 R6 f2 D" y1 D" [

$ v. [7 V# j) k6 b
; j1 `3 c' j7 C. f8 Q; `创建凸台' _1 _. l( x6 t1 `
// 从编辑框中获得援助的高度6 c; `6 I/ n' a( ]9 z
double firstLimit = _Editor004->GetFloatValue();3 I% X; g& {! I  J
double secondLimit = 0.;
" e2 v0 q, U* H' t0 S  O' H//圆柱的轴向方向为Z 轴方向
3 p2 G5 \+ z5 J, A+ \3 B6 ACATMathDirection dirZ(0., 0., 1.);
4 A% @5 s' k1 _//初始化零件工厂
' @! c& ?5 ^8 A% MCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
! P! z  J% R. n) m& U. c4 J! h, j: ^//创建凸台
, [6 A* f. M( T" n4 r. c  v1 n% iCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
+ A. R6 D& ~$ v6 y/ b- a) b5 yCATIPad_var spPadOnSpecObj(spSpecObj);, G1 l$ t4 {$ w
//设置拉伸方向
, z/ j+ c+ m: e. \' v+ wspPadOnSpecObj->ModifyDirection(dirZ);$ u8 ^  W8 H, }6 C5 C4 O( @
//设置凸台第一限制类型9 K  D- _4 |9 n, J
spPadOnSpecObj->ModifyEndType(catOffsetLimit);
) \& x" l- F  t& S//设置凸台的高度9 h; I) o: ?, F
spPadOnSpecObj->ModifyEndOffset(firstLimit);
0 T& e# ~& i$ @$ h! u//设置凸台第二限制类型
4 B& b$ P* E+ Y& g. _1 gspPadOnSpecObj->ModifyStartType(catOffsetLimit);
/ i6 E0 K# [4 P( VspPadOnSpecObj->ModifyStartOffset(secondLimit);
1 Y1 q$ l! y0 c. E3 O# K) N//将凸台添加在结构树中; |/ o9 h4 s& w9 I5 E" j/ R
spSpecObj->Update();) D# u& X) A# M8 C8 ^( N
CATIGSMProceduralView_var ispProcView = spSpecObj;( I! H  b7 I1 y
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
$ B3 f4 F- h) [+ ]5 L) B4 A/ E' J7 Y; b# j
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了