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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82172
QQ
发表于 2018-2-22 13:28:03 | 显示全部楼层 |阅读模式

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

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

x
获得零件指针
. _8 N0 a1 q0 w5 x3 x! m// 获得文件指针8 _* i* ~/ u$ t1 m" y
CATDocument * pDoc= NULL;4 c; M  m- F+ A" m* ]2 ]  L# x8 J( O4 c
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
1 {1 D5 c6 k3 v: S9 N1 i+ @pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针  ]( T8 l- N6 @- L4 I& Q
CATInit_var spInitOnDoc(pDoc);
- S. u! ?& n0 R1 P1 h// 得到零件根容器$ l) j# t  b2 c. m+ {( j
! e2 G7 P& t( G0 m1 o% j0 W5 i2 j; g
CATIPrtContainer * piPrtCont =9 X. X# w4 C( ?
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");" b1 n5 L& {1 j1 z
// 得到零件指针
$ @( t* {2 E" _$ a% M. n7 LCATIPrtPart_var spPart = piPrtCont->GetPart();
( Z, A% B2 s$ j# G; f' K2 S! D. i+ [/ ~7 Q
创建草图9 I% g% ~% l  r# w  n
//初始化草图工厂2 g$ \, F: _" H8 d' O5 P2 \. _8 r
CATISketchFactory_var spSketchFactory(piPrtCont);$ R" a8 I4 l; D+ `
//在XY plane 上创建草图
! l) s- i" O! o  o7 tCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));8 g4 i7 S1 K4 }; H! G
5 j. U& u3 w  Z& y6 L/ Y0 v) {& O5 C: q
创建草图几何6 Y9 y- g/ L4 u* ]# X# z4 c* \
//首先声明编辑草图
5 [% M/ l" D4 r% z/ ]spSketch->OpenEdition();! ~/ r' }" A2 s; P4 V* Q4 s
CATI2DWFFactory_var sp2DFactory(spSketch);9 w# N7 h0 M7 h7 Q# I
//这里表示圆心点0 T$ C4 w  D! m* b: n+ g' g
double iPoint[2] = {0.,0.};
2 E; G9 D! f( @//下面创建圆圈9 k( A7 I0 J8 `# U! N
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());# t$ K% D0 w5 d
CATI2DCurve_var spCurveOnLine(spLine);
, r7 u' |' T) W/ f  M) wspCurveOnLine->GetStartPoint();( l7 F/ A1 c) W# K' |, J
spCurveOnLine->GetEndPoint();$ `) }) w# \6 I! b5 A
//然后退出草图:' p" o0 h. `# l
spSketch->CloseEdition();
+ x% _2 _& B  l! Z* ~$ M
" Q( e' ]- @9 [9 f- }- r2 e1 a  B* t0 a, M5 {/ k- x" @& m
创建约束
. W% L; E' a6 y5 c4 H' y0 YCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);2 z# Z6 K5 t5 a) J9 R
//定义spLine1 的半径约束% W' ^' v3 O8 P# T
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,$ b0 {8 Z( m% [; j4 X3 L7 D
NULL, Cst2DType_Radius, 0, 0 );
1 F1 y+ K! f" d7 @& |  S5 f- q) T8 Y//定义spLine1 与坐标原点的同心约束
. z2 C' ?6 _) Y3 X$ f8 H3 H# C3 oCATI2DAxis_var spSupport = NULL_var;% L5 b/ z/ y6 I" ^& ?2 U; H
spSketch->GetAbsolute2DAxis(spSupport);
2 ?. t. N( m, m. C7 \. R" ~7 ~3 l5 Y3 N
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
* O' P  y8 h. k* u, M/ h! m. W( LNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );  I$ N' }0 L% F/ B+ t+ {

; `! E- l+ ]2 e' J  j. W5 a- S* N% n2 a6 |( j1 B, G: z# X" ^! s
创建凸台5 f6 H/ n; ]& \9 p
// 从编辑框中获得援助的高度/ X" V- I& \7 p
double firstLimit = _Editor004->GetFloatValue();
/ _$ i% Z/ n% Y. adouble secondLimit = 0.;
- Q/ h, S4 e- s- [) I4 C1 r/ }//圆柱的轴向方向为Z 轴方向% M0 z, _$ x1 U9 ?" e0 c
CATMathDirection dirZ(0., 0., 1.);
( z1 @3 K2 `) _. ~# J3 b//初始化零件工厂
6 M: x% @( k" r- ^9 ]1 z4 @CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);9 y$ A# u1 \. T& u0 l2 `
//创建凸台
$ r2 N. f" _" Y& \. L  Q2 H/ JCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);2 d' }6 G; \5 L0 ]: e
CATIPad_var spPadOnSpecObj(spSpecObj);
6 u+ ]6 P" H+ ^0 M. q& N7 ^; j//设置拉伸方向
3 U- Y" v0 d2 h$ |9 J4 TspPadOnSpecObj->ModifyDirection(dirZ);% \+ k# G1 D% q* M  u4 y- |
//设置凸台第一限制类型
! t1 X5 s$ y" l+ C" d: i! Q( u2 XspPadOnSpecObj->ModifyEndType(catOffsetLimit);+ z- k) M+ Q3 Q: W2 a* O1 t
//设置凸台的高度
, E) [& h  E" {  C6 v) e7 m$ F1 L8 @spPadOnSpecObj->ModifyEndOffset(firstLimit);
+ H- Z8 T0 l2 o+ F: L/ [6 b2 v//设置凸台第二限制类型4 E7 Z9 O6 C  N' R+ R
spPadOnSpecObj->ModifyStartType(catOffsetLimit);
% ]* L6 \2 S5 W, a! J  sspPadOnSpecObj->ModifyStartOffset(secondLimit);
- L3 f( x% R3 ~) b5 o4 v# h//将凸台添加在结构树中
- _6 k* A0 Y+ `! v! vspSpecObj->Update();
: f4 F7 q4 J4 x& h4 ECATIGSMProceduralView_var ispProcView = spSpecObj;' j% }& o! ~- R$ i3 ~
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
6 q7 V: V: ]3 K- r; J  ], n0 l
' y9 ]) W& N! ?, Q3 T* ?: I! \
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了