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

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

[复制链接]

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

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

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

x
获得零件指针; R& U- ^" S3 @5 g6 U. Y& L$ \
// 获得文件指针  W' W. L* A, y$ O: |% D) Q; l! |4 _
CATDocument * pDoc= NULL;
# m5 s: r+ |& H- J3 g4 ~5 X7 OCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
9 y2 w7 o% v* @pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针& R  d, _7 |& J3 z% f# N4 o) k
CATInit_var spInitOnDoc(pDoc);
) @6 Y. ~5 v% N$ e' v5 s' O4 M6 M// 得到零件根容器- A) E, ?" M* u4 T' q- K" f
7 ^* }- g- w+ _; ?( O2 |
CATIPrtContainer * piPrtCont =1 ?5 a" C6 \8 Q5 {2 r2 i0 l- r+ F/ K
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
6 k* K. x3 c0 a# [! s0 i" n// 得到零件指针
7 c; q  q, ?' a5 g" x. G; gCATIPrtPart_var spPart = piPrtCont->GetPart();3 U8 ]* J: Z# @: g( o' d1 u0 p
! T  [6 M( _; _+ S' s; K. T( R9 h: S
创建草图
9 t' q, h& G, a8 H" n7 U0 ^4 n//初始化草图工厂
& J+ v9 W7 b" ?% G8 ACATISketchFactory_var spSketchFactory(piPrtCont);$ L6 Z/ [7 o/ Z3 @
//在XY plane 上创建草图* C# _1 K/ y  r- \1 Q! R
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));# Q9 c6 B$ X* A0 g: a5 T9 m- A: U

$ G2 [2 c. j: j3 f创建草图几何
+ Q: g5 @8 T! L+ m//首先声明编辑草图
) Y2 r! O/ i3 h; o9 j) |" Q- m" TspSketch->OpenEdition();
* o* Z( v8 X" g# v$ e1 b# S% bCATI2DWFFactory_var sp2DFactory(spSketch);! k1 r; m* S. q0 ]$ \# m
//这里表示圆心点
. v* U. j# F3 m+ N5 F% ?. Ydouble iPoint[2] = {0.,0.};( x" p% R; V5 F
//下面创建圆圈4 n: T0 e" t0 H# m0 {
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
6 k8 _  D# G& xCATI2DCurve_var spCurveOnLine(spLine);
, U  m/ l& I  ^& V) e5 V, F# ]spCurveOnLine->GetStartPoint();
. i0 D- e* z2 Y; zspCurveOnLine->GetEndPoint();
, J5 o4 }! O7 r; t8 F$ m$ m( B//然后退出草图:
5 y. A: v6 }0 N. x4 c( S& H' yspSketch->CloseEdition();
- P: ~/ H- v# Z9 F" `. L( m1 E1 ~. T2 \8 j. W7 d, l
) F& H9 P; o& k2 w: A8 y7 b- \, ^
创建约束% Y- f8 _/ {8 d, d; U8 m
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
! T8 Z( p" \' e% Z' \7 F  ]//定义spLine1 的半径约束
4 o5 U9 g2 v7 W3 m4 `spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,5 V+ Z% o+ m$ |" P
NULL, Cst2DType_Radius, 0, 0 );
( j/ M- b! U9 a# b# Y7 w//定义spLine1 与坐标原点的同心约束: }. E+ K5 }! J  N+ ]+ j
CATI2DAxis_var spSupport = NULL_var;
: T0 t* j, f! E$ n- D! lspSketch->GetAbsolute2DAxis(spSupport);; K: b% a+ q" m2 Q3 P/ X
" \! e2 Z/ r2 \" |
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),1 g! u  l0 J6 E6 n
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );3 n9 J# p, l9 D$ E; O4 J9 r- Y+ P0 n
0 ^4 |( y! O0 r' K% \* F* Z
5 U& b  G6 [" y
创建凸台* ]! O4 G, e5 |- x. f: ~
// 从编辑框中获得援助的高度4 j- ^+ u/ @. o  y
double firstLimit = _Editor004->GetFloatValue();
6 n% }- ^; y5 _/ o" G4 `$ ldouble secondLimit = 0.;
4 I- @% d- y9 L  K//圆柱的轴向方向为Z 轴方向) c3 o/ `3 S) \% G8 h3 a: p% z
CATMathDirection dirZ(0., 0., 1.);0 i" [( J+ ]$ X5 F
//初始化零件工厂
! w9 V0 G* P' b1 [/ N3 n, h4 qCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
5 Q" t' P1 c. P' L# y//创建凸台
# }9 ~8 i1 F9 ?3 X1 G' f# C5 e6 NCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);4 O- B! A4 k. E+ O" A8 H
CATIPad_var spPadOnSpecObj(spSpecObj);
7 g4 r5 H( R7 g1 {3 N//设置拉伸方向
2 u# i) U8 F3 {0 K7 PspPadOnSpecObj->ModifyDirection(dirZ);
% S9 v9 k% K7 e- g& Z, R//设置凸台第一限制类型
+ }* y3 X. p3 O" G! `  s' W; T* XspPadOnSpecObj->ModifyEndType(catOffsetLimit);
! n9 |8 i9 g8 L5 u4 l+ N4 ?& z//设置凸台的高度7 F; n6 ]7 k/ ?
spPadOnSpecObj->ModifyEndOffset(firstLimit);
, e: n+ B% Q/ ~6 m3 j//设置凸台第二限制类型
" N4 K$ M$ [- ]. {( JspPadOnSpecObj->ModifyStartType(catOffsetLimit);
* k0 J5 d8 @: G9 zspPadOnSpecObj->ModifyStartOffset(secondLimit);& ]; I+ F2 L( }) e% {! ]: N
//将凸台添加在结构树中/ G/ q- \) I' c! @% d
spSpecObj->Update();
* h. ^" G$ j6 N" r% P9 eCATIGSMProceduralView_var ispProcView = spSpecObj;
9 @  ?5 Y2 G  v+ uif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
  e0 A, J( {  {4 B; e) ~6 {; X' y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了