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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针; Q0 y! Z" Y* d  y: D( v" J6 V
// 获得文件指针
5 ~' J5 T- M) HCATDocument * pDoc= NULL;
' u8 ]- c/ H+ V/ `CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();, Q6 Z* P' b7 q6 p& g
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
/ }3 J6 c7 f  K/ wCATInit_var spInitOnDoc(pDoc);# I: a5 V& T& y! b
// 得到零件根容器* n! y4 t2 U+ D+ A

! F, i6 _$ b+ b  k/ u2 MCATIPrtContainer * piPrtCont =  u  W. W+ ^# E5 [$ m% j* |7 i
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");. [; ?$ c5 \3 n8 K- f2 l
// 得到零件指针
6 U- z* [/ o4 i8 M; ECATIPrtPart_var spPart = piPrtCont->GetPart();7 \! V& K" e9 ?1 S: v: p
* M' i5 o, v  E& l6 g
创建草图
- O  E1 T  s6 _  J! y//初始化草图工厂
, B3 F* E9 ]3 |CATISketchFactory_var spSketchFactory(piPrtCont);/ H1 ?1 y8 N- V& n. {+ ~
//在XY plane 上创建草图& L! H" a5 v& q4 S, F
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
0 E4 B$ D0 `- B
$ f9 R* l6 e; @1 b1 g( e. D5 {# I创建草图几何  E" ]* R. X4 y
//首先声明编辑草图
8 M1 H0 j/ Q: A5 {' |% dspSketch->OpenEdition();
  g  C7 Y( t: _/ kCATI2DWFFactory_var sp2DFactory(spSketch);4 I7 G5 |) e# L: K, W# [* ]
//这里表示圆心点+ c' s4 K" I) B1 B, g$ M  k$ _
double iPoint[2] = {0.,0.};
6 @4 N1 Y1 R# R//下面创建圆圈, K) M. S8 n- J$ V
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
* Q6 z8 U& F  MCATI2DCurve_var spCurveOnLine(spLine);
. Z8 }. d, _* G  g; l+ K. hspCurveOnLine->GetStartPoint();
  X' u  `4 ^* bspCurveOnLine->GetEndPoint();
1 ]% |0 [1 k9 @//然后退出草图:
2 D' s1 m; K1 |  yspSketch->CloseEdition();
, c3 W" e) `+ o  W8 Y) ]- r$ p7 c* u+ S' z1 `- Y+ F3 v
% ]  R, ?' W9 _  Y
创建约束
( y% }8 O' P4 D4 F9 y% mCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
$ t' L2 R% L" @6 e  q//定义spLine1 的半径约束* T0 |) w( i0 r$ J7 K
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,$ R6 o- _. L1 n
NULL, Cst2DType_Radius, 0, 0 );, C( U( }$ p" N
//定义spLine1 与坐标原点的同心约束: Q  Z) Y+ J5 N6 J
CATI2DAxis_var spSupport = NULL_var;
0 s! }7 \8 q  }0 D# d8 V' P! |spSketch->GetAbsolute2DAxis(spSupport);
* f. s- |; d, O: d1 a+ ]- F' v& _  a4 y" \# y% `) W0 _; ^4 W$ J1 F
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
; ?% |* e' b) t8 _9 h. M  P( u9 nNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
  c5 G6 h/ Y0 Y0 V& j. S# c# @. b2 t

8 u$ F" e3 [' h创建凸台
/ j6 y) x8 e/ q1 b3 Z  g" A2 k// 从编辑框中获得援助的高度' A" n& ~! m& q; y4 m4 _: C1 V
double firstLimit = _Editor004->GetFloatValue();/ m( P& l3 w8 S+ E! O4 _+ e
double secondLimit = 0.;
" S+ l) R# e& @//圆柱的轴向方向为Z 轴方向
$ v3 ?& A8 X6 E2 s2 Y/ GCATMathDirection dirZ(0., 0., 1.);
2 Q9 ]4 n- g# d0 G# K$ Y//初始化零件工厂
  H/ G2 W1 P( Z$ |+ b, K# h7 fCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);5 ]* j7 [4 C/ Z$ @  u1 B0 O; j5 |
//创建凸台
2 [6 ^& m  k) u: f% A' x8 w5 mCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
4 J6 W8 R( p2 @7 r  D% vCATIPad_var spPadOnSpecObj(spSpecObj);
9 n7 l7 o: c6 L3 F7 v$ f4 e$ b5 v//设置拉伸方向5 a+ `6 j' G' y0 w+ F
spPadOnSpecObj->ModifyDirection(dirZ);7 {8 C; ]: C  q. }; [+ K
//设置凸台第一限制类型
, G4 A! v$ B  H* E/ `3 J) vspPadOnSpecObj->ModifyEndType(catOffsetLimit);# V7 N8 x& o' \0 n( y' W9 b
//设置凸台的高度
# E6 V8 ^$ i, ospPadOnSpecObj->ModifyEndOffset(firstLimit);
5 {! T4 J% t6 q$ ?0 z//设置凸台第二限制类型
! c- p% y9 @6 |. C, BspPadOnSpecObj->ModifyStartType(catOffsetLimit);
. J+ w' U$ `( e9 w6 E$ f  BspPadOnSpecObj->ModifyStartOffset(secondLimit);
- p$ Z& j$ i' u- D0 U/ ~( Z//将凸台添加在结构树中
! g: P3 w* ^; x) n; @9 z7 ]0 bspSpecObj->Update();
- U- P4 G* B1 s+ h" t( yCATIGSMProceduralView_var ispProcView = spSpecObj;
1 y( D: W; ]+ `& G: q7 y1 Iif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
* v/ g7 x% t  h
$ o6 }! X% u5 _& _
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了