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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
4 Y/ E) |5 }' B. `5 G// 获得文件指针
% p/ U+ ?/ ~, s; E# [CATDocument * pDoc= NULL;5 ]4 B/ B/ N9 F: G" W
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();* i1 i9 \9 u2 ]# s7 y+ K% c
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
- X- S' `7 X5 j8 Q1 ~. W4 dCATInit_var spInitOnDoc(pDoc);% Q4 U7 M4 S3 a1 S0 F& b( g4 @
// 得到零件根容器
/ _" k6 T- {, j1 O4 L+ G# m& I
+ \' ]# u9 j4 N: \" BCATIPrtContainer * piPrtCont =
. x7 ~' x/ a+ d(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
0 f  X  S) H; M/ W// 得到零件指针1 ^% M. Y  @1 Q# r
CATIPrtPart_var spPart = piPrtCont->GetPart();
0 r4 H5 T+ V# o: Z9 b7 M( J6 e, T4 g* U0 a; e& t
创建草图
, [; G+ I. S# K, f& m4 |//初始化草图工厂0 v  t4 q. W' C/ G/ J8 P# C( x
CATISketchFactory_var spSketchFactory(piPrtCont);
0 r& Z+ T9 h5 {  N& F/ J//在XY plane 上创建草图: a. \$ x3 b' b) A/ n6 G( |
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
- q4 A) U7 G: a& x! b6 N/ g1 J, @+ r1 t
* M0 a' n7 |" H0 b% h+ D+ ?创建草图几何# u* M! O; Z1 o# R
//首先声明编辑草图
) i: S* r3 M1 Q4 @" [spSketch->OpenEdition();: I* O& f2 \; a" l! }5 s" [
CATI2DWFFactory_var sp2DFactory(spSketch);4 j7 [. J: x& H+ c9 s- a- t
//这里表示圆心点
' f, n2 d( h5 ydouble iPoint[2] = {0.,0.};
9 Z& B9 s5 S4 m6 o/ h; k* C//下面创建圆圈
3 q! M, D+ s' L# ]. k& J$ }CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
2 ?1 K( g0 O1 v! ?) eCATI2DCurve_var spCurveOnLine(spLine);& {3 v! L6 B: b0 p! h2 r% {, V
spCurveOnLine->GetStartPoint();: e$ @* o; i3 e7 P0 X, b
spCurveOnLine->GetEndPoint();
4 a" d2 i% g8 S3 I3 C- H//然后退出草图:
* X! j4 K/ p6 W" i5 BspSketch->CloseEdition();: f0 |+ ~; P: n: w

2 m. Z+ v. G/ \/ \0 O' [, [  r, e2 y1 J- g$ c9 _: S
创建约束
1 j6 A9 |, U; n. G6 ~# N5 a- MCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);9 w! l# u' _1 G/ z' Y+ ]
//定义spLine1 的半径约束. A+ w, a9 I1 p
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
) X0 m4 t. Q( e( D! qNULL, Cst2DType_Radius, 0, 0 );" D4 c! o4 V' A% _; b7 f# _# ~- j: O
//定义spLine1 与坐标原点的同心约束$ Z+ i# Q  v, T; X) E
CATI2DAxis_var spSupport = NULL_var;
' R0 w0 ]* A  Z+ K& e$ @spSketch->GetAbsolute2DAxis(spSupport);
4 q/ Y* U  G+ w% P/ }
" H7 u2 R" N- R: t( y+ jspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
# N  R) I* Y6 T/ g7 bNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
; j" j+ \  `1 H
3 x. k9 l/ m4 X" `! ]" t
. R+ a/ w/ l: f. g9 B7 _创建凸台
, F& a. k; Y0 p$ H& J  Z// 从编辑框中获得援助的高度
8 q7 V% O2 F% s; M" G' K  pdouble firstLimit = _Editor004->GetFloatValue();
5 N  J# |3 N% \6 ^, d  m; q1 o- hdouble secondLimit = 0.;: o( L$ l4 {' g6 D' b7 H: Y
//圆柱的轴向方向为Z 轴方向
0 r0 b1 W/ E) t# Z' {CATMathDirection dirZ(0., 0., 1.);
$ x( k2 }( S( Z& P! B9 u* T4 w//初始化零件工厂
% P& w0 H5 e5 |" v3 w* x' HCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);3 d6 J4 M1 Z, k* |5 H# H
//创建凸台
5 b1 `, v2 C* `, j4 Z: ]8 cCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);3 Z6 K  ~1 d: ~$ g
CATIPad_var spPadOnSpecObj(spSpecObj);
3 b0 z0 f3 O1 M" [# G1 D//设置拉伸方向0 G" P! s8 F* q8 U2 Y7 }* n5 Q7 j
spPadOnSpecObj->ModifyDirection(dirZ);
* k& ]5 q* Q( |- ~+ m( `$ ^. [6 B//设置凸台第一限制类型
7 R, D. U  R5 k( \spPadOnSpecObj->ModifyEndType(catOffsetLimit);
6 G# y. F2 s' K% k2 M/ V- @7 F9 \//设置凸台的高度
: m* S5 W0 O8 F8 T1 `spPadOnSpecObj->ModifyEndOffset(firstLimit);3 J: X9 h( }/ o. _: I- \& l( N5 m& _
//设置凸台第二限制类型" C& r. s1 \- S4 _! ]. t4 |0 t
spPadOnSpecObj->ModifyStartType(catOffsetLimit);
! D+ x& B$ b0 O- f, c7 }7 S; dspPadOnSpecObj->ModifyStartOffset(secondLimit);
9 I7 j( N4 Z9 q1 E+ g8 P3 c//将凸台添加在结构树中
( t) w+ b% p- {5 x( ospSpecObj->Update();- i# Q! ~" F) B/ _, W# B
CATIGSMProceduralView_var ispProcView = spSpecObj;9 E+ m" ?- c. b0 M9 I7 B1 D! m
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
. U8 x( o" e; b: U7 }: D2 M) s; [$ \/ Q& b2 ?6 U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了