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

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

[复制链接]

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

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

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

x
获得零件指针0 x: x; f0 _9 ?$ k
// 获得文件指针
% {2 I" F' N/ w" O, Z1 u! rCATDocument * pDoc= NULL;
8 |# V$ [# U0 l1 vCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
& K* j3 N! \- X0 I2 r. NpDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
! ^/ i. J8 D5 n9 c, e+ ZCATInit_var spInitOnDoc(pDoc);
( q2 |7 M8 l( u/ f5 V# q0 [// 得到零件根容器& M9 A' a# Y3 ?8 p$ q6 D6 V

  }0 _, V8 e& R" lCATIPrtContainer * piPrtCont =* o0 z" u1 v, E+ b3 i
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");8 Z! q9 }/ [* [4 U  ]
// 得到零件指针5 @2 S6 c1 w7 O2 G
CATIPrtPart_var spPart = piPrtCont->GetPart();+ |# H- T, o4 a* U- n: h0 u

1 }" }& R5 m7 b, D; M创建草图2 j" j5 d% k5 r
//初始化草图工厂. m5 p3 p1 t. ^# N, u
CATISketchFactory_var spSketchFactory(piPrtCont);
2 \) e2 Y( {& d/ @9 R* {//在XY plane 上创建草图$ v/ H9 \: O* h
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));3 v% U+ A" T/ i

6 B2 u5 R" a/ B2 `创建草图几何
3 l7 w' V! f! K$ V- K5 E//首先声明编辑草图. K0 t6 y% P  ^( m1 F
spSketch->OpenEdition();$ C1 ]: y2 c% e1 O; e* ?4 B4 w7 _
CATI2DWFFactory_var sp2DFactory(spSketch);
2 d0 o7 h" c$ T- t//这里表示圆心点
+ |* y/ y0 v& o/ x3 odouble iPoint[2] = {0.,0.};
4 w! I, c' y: U! e/ ~//下面创建圆圈* H, t" I, a: t, J& }+ [
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
) D4 N1 ^$ \3 l, C# q8 W  |CATI2DCurve_var spCurveOnLine(spLine);2 |9 O# i  d. b0 S' @
spCurveOnLine->GetStartPoint();! W" a9 F) S+ Q
spCurveOnLine->GetEndPoint();
0 Y& X) v! M2 K* a  h' ^//然后退出草图:
! @: r4 a! o% a. s% _spSketch->CloseEdition();' ?* x/ m/ F, a% J9 E4 Q: G
" `7 E1 `5 E0 l0 C

: L+ s- t# J3 J' `" y$ q" P  O0 M创建约束% |' }9 n$ E; d  _3 h! z& K! B
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
4 ~! g7 h6 F! H. L6 O& J8 y/ ?//定义spLine1 的半径约束$ |$ W# S, m! q* b- l9 @, n/ i
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
* w& W( b3 M9 }% E. Y& c7 PNULL, Cst2DType_Radius, 0, 0 );0 A0 z- h1 h8 X! {. y) ~
//定义spLine1 与坐标原点的同心约束) D  ]) [$ _* T/ E. X0 H. u3 M
CATI2DAxis_var spSupport = NULL_var;
8 z$ l" k3 |- U# @& P" y& p+ T7 }spSketch->GetAbsolute2DAxis(spSupport);
- e$ S6 m1 i6 ^: P; ]& T7 x+ V) q
* O7 g5 u- O/ O6 dspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
, O1 n$ @- \& ^. VNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
9 B& i: B; a# V' [2 D. R3 c8 r# N

4 ^5 t; [- f9 |+ Z创建凸台
3 a% \* n( }9 R// 从编辑框中获得援助的高度
  C  k+ ?) `0 h# |% w3 c) Q0 Cdouble firstLimit = _Editor004->GetFloatValue();
, Y+ [3 A0 T5 x# x5 |double secondLimit = 0.;
& z9 N# r, T7 l4 ]5 W//圆柱的轴向方向为Z 轴方向
1 F0 {4 n. x% h$ ~" S4 [  ^CATMathDirection dirZ(0., 0., 1.);
$ s* ?8 q7 q; B5 N$ b( h' O, w* z//初始化零件工厂
4 B' f" g! {0 C3 L* `1 Q1 A& i; ~0 RCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);) ~" r- u- ]3 T0 _4 n9 U  T. b; F
//创建凸台
) c. N+ L4 Q+ u4 E/ K  s; \CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);! j1 c+ L8 C% q$ Z
CATIPad_var spPadOnSpecObj(spSpecObj);( I2 m9 z3 g  M$ a- t3 G  z
//设置拉伸方向
9 M) A4 F+ F$ B* ispPadOnSpecObj->ModifyDirection(dirZ);( v; p# x9 i, S' E) K
//设置凸台第一限制类型( O6 w  X/ q% q& X; [, l
spPadOnSpecObj->ModifyEndType(catOffsetLimit);. A; [2 _8 s' q) X( i2 i
//设置凸台的高度5 Q3 f$ G  A. [: r3 f' d( F9 g
spPadOnSpecObj->ModifyEndOffset(firstLimit);7 q8 t# Y8 v6 e% {1 _, C
//设置凸台第二限制类型
1 o- y; T, ]' {( M  n- I6 k/ z9 MspPadOnSpecObj->ModifyStartType(catOffsetLimit);
% P4 P4 U" `, E' m/ }spPadOnSpecObj->ModifyStartOffset(secondLimit);* w1 k9 f( n% L1 L* H
//将凸台添加在结构树中) K. G' k3 Q! j% Q/ V5 J
spSpecObj->Update();
, g3 v7 }& C: S& oCATIGSMProceduralView_var ispProcView = spSpecObj;6 Z' R: v$ R5 G4 c# Z
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
! N  q5 j# j  H/ F( ]3 F6 z: q' K+ s+ a4 j9 q/ T
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了