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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针* M8 G5 i6 B. J
// 获得文件指针
; w3 x! E% n# {) e. i* r3 N" [CATDocument * pDoc= NULL;/ b. x" B2 a# }) m  }  ]
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
$ m) l4 F7 g% k6 epDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针. H6 r7 i% U1 `( V% a/ L0 O. A
CATInit_var spInitOnDoc(pDoc);
' g! g6 M# u" ?/ Q4 P// 得到零件根容器5 I9 `/ H# r6 C6 Y' O$ |

& ~# T& \" W8 Y8 {4 N. XCATIPrtContainer * piPrtCont =- x; W/ |+ R4 O! x; J3 _( K7 _. F
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
; \5 }! e2 g+ D1 I: T' E// 得到零件指针! `; ]5 s9 [, r. M5 N* k! Q
CATIPrtPart_var spPart = piPrtCont->GetPart();
& n2 W7 N( f+ r  {# f: [4 W/ p, v! I! P' [- h0 U! L+ e
创建草图
* n4 m9 M( q, n' I4 J# w! F//初始化草图工厂
# e7 w" i) f5 y- M( v4 KCATISketchFactory_var spSketchFactory(piPrtCont);, n  i  e7 t0 c6 \4 a& J1 |8 V
//在XY plane 上创建草图6 c/ D$ A7 {  w$ ~
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));( Z! s8 h# E5 g+ }5 N) |  T. s5 M

/ D* @3 t( _1 {% g* X# X创建草图几何
5 k' o# U# \* v//首先声明编辑草图
. C$ j- _/ L/ X/ b; |2 [spSketch->OpenEdition();
. S- _9 S9 H: d( d! o" c* @# e1 BCATI2DWFFactory_var sp2DFactory(spSketch);
$ s7 a2 v. _8 n9 l: U0 o: a//这里表示圆心点+ }/ K$ r5 a3 F( d$ ]4 |) R! X
double iPoint[2] = {0.,0.};  ^, z; d" _! f' D8 [& k4 R6 I4 k
//下面创建圆圈) Q. l. q$ [' V) B
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());6 A0 `: Z/ U" a/ A
CATI2DCurve_var spCurveOnLine(spLine);
! R1 y' k4 S' tspCurveOnLine->GetStartPoint();
7 x( [) K; x( {7 nspCurveOnLine->GetEndPoint();7 e7 ]2 u! x) z% u7 M1 n# `* j0 n. \
//然后退出草图:8 d  B7 n  l. K2 ^* s
spSketch->CloseEdition();4 b4 ~4 Q' X5 q; @' J
% x( H9 a9 s: D  p
& {, |9 x3 u! H! x) Y. c' u' o6 h
创建约束
1 }/ g& E3 L* HCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);7 }  O0 Q( u: }# Q7 ~5 D
//定义spLine1 的半径约束
" M, R0 n) ?7 h5 uspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,. I: k7 i2 b9 N: D$ z7 o7 W2 Q8 }
NULL, Cst2DType_Radius, 0, 0 );
& N0 q4 l6 X' {5 p4 y//定义spLine1 与坐标原点的同心约束
* }8 o6 R' N5 `% O( a3 hCATI2DAxis_var spSupport = NULL_var;
* j  `4 |  b& ]- NspSketch->GetAbsolute2DAxis(spSupport);
( a" T4 _0 ?! z% {+ c
3 W' M/ G6 l0 y0 W! c' UspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),& i7 G- o+ [. W  b; R
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );: [3 T& [, a. z. |) ]* ~/ l
' s3 S3 s0 J( d1 D# Y7 B
8 y3 c- z, _8 A
创建凸台  N5 e; D; t2 M/ m  y
// 从编辑框中获得援助的高度6 ]5 X7 C" M: ~# p) w
double firstLimit = _Editor004->GetFloatValue();
" B+ s% }" u# E2 b, E/ `double secondLimit = 0.;
& x" p( `* k" C1 S. ~//圆柱的轴向方向为Z 轴方向
0 |+ L3 [0 [8 `3 [: Q7 ~, E% PCATMathDirection dirZ(0., 0., 1.);
# m* q/ P1 t0 [! M//初始化零件工厂# i, |3 c; W0 A, ^
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);" ~3 g! g3 x7 Q; J
//创建凸台
" B; x8 ~9 \5 F% X% TCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
! ~( l8 z! u& m& @% I( d& \CATIPad_var spPadOnSpecObj(spSpecObj);
) m3 ]5 g- d, o+ G//设置拉伸方向6 m% o' R+ G% @
spPadOnSpecObj->ModifyDirection(dirZ);
) Q6 [8 {; m9 ]7 ^4 |//设置凸台第一限制类型5 Z: r/ A5 Y+ b6 j1 o
spPadOnSpecObj->ModifyEndType(catOffsetLimit);
9 P! F6 I: l( K0 u% r7 v0 e2 L: E//设置凸台的高度
" Q4 @; Y' I! V" S3 {4 WspPadOnSpecObj->ModifyEndOffset(firstLimit);
- J+ k+ A# n* ^& P. c1 {//设置凸台第二限制类型  |9 ?, w7 Q- J  D* p4 E
spPadOnSpecObj->ModifyStartType(catOffsetLimit);: s: g8 P+ m. O  c/ p, Z& O
spPadOnSpecObj->ModifyStartOffset(secondLimit);; `2 ?; l( e- S; a6 H5 n, \
//将凸台添加在结构树中
3 \1 ^! ~) c5 B( m2 H9 m' aspSpecObj->Update();" t5 E  x# [( D+ r  j
CATIGSMProceduralView_var ispProcView = spSpecObj;
8 }5 e6 y0 Q6 S% \if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}0 ~6 C* g7 _" _6 H
2 k$ N6 m% A5 D) h
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了