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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针5 v1 O5 ]# J% z0 F
// 获得文件指针, e7 k" d. k# M7 [
CATDocument * pDoc= NULL;  c5 t) f7 a2 ~5 {0 a
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();! G& v7 ~3 v5 C  u% W& |+ K: L6 d. q
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针4 p, c3 [' M2 a  O7 c9 x
CATInit_var spInitOnDoc(pDoc);
; h2 i! A5 C7 }6 D7 x// 得到零件根容器
8 w) D: q" E- N$ M' g2 p' x& Y: M2 v
CATIPrtContainer * piPrtCont =9 k: b- M8 H# E$ W. b- E
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
5 v$ u9 I. s: A" w( L, y- k// 得到零件指针
  l& C+ G& n4 vCATIPrtPart_var spPart = piPrtCont->GetPart();
" e  N) N" P4 W# l3 D3 x, B, x9 a+ }% y% |
创建草图; K# L9 T3 N4 P6 N) F1 F
//初始化草图工厂
1 Q, b7 l' P) |4 s  I5 |3 t4 O- k2 |CATISketchFactory_var spSketchFactory(piPrtCont);
$ ?1 s2 M* S* _" Y: S$ ^//在XY plane 上创建草图
6 C/ n. N7 V; @& s/ U5 ECATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));; W* j  f3 k( a2 d. V  S2 n
" j, |+ c0 z: O8 F( ]
创建草图几何6 w/ a. R4 i8 {! b
//首先声明编辑草图
" h& K$ P! M; O6 ?" q& BspSketch->OpenEdition();/ B1 ~( |' L' i+ `9 l& z
CATI2DWFFactory_var sp2DFactory(spSketch);- {8 o4 |! T3 A% [' W3 F
//这里表示圆心点% t! d/ v' L3 P+ k
double iPoint[2] = {0.,0.};( A3 o- g1 h: z: c
//下面创建圆圈
( {4 n. v2 Y: n1 ZCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());8 F7 A3 A. i8 y4 `; h+ O
CATI2DCurve_var spCurveOnLine(spLine);" y0 I! d% U% \1 h4 g4 d. w  w# W
spCurveOnLine->GetStartPoint();0 I5 q* `& M! q0 V- s
spCurveOnLine->GetEndPoint();
) U% p0 G( T& M: H5 D& E, j& k//然后退出草图:8 R! S3 w5 a! m7 o
spSketch->CloseEdition();8 v5 a9 F1 S, K( i9 P

( n' H2 f8 Y% R, q4 u; B" k
( _8 @$ y, c, B  z5 l/ n7 m1 J8 w创建约束5 y# z! x! @  m, M5 Q6 F; w1 O
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
  c* o' @6 u* u0 N% U! T' H$ N//定义spLine1 的半径约束- u9 X" {$ F: c, P( Y3 O7 A
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,1 Z' O7 c1 |* G7 X/ ]
NULL, Cst2DType_Radius, 0, 0 );
0 X' Y) J' W3 \7 y* _+ a" ~9 I7 Y//定义spLine1 与坐标原点的同心约束- W5 k7 F: s1 ?4 {! l, E% H
CATI2DAxis_var spSupport = NULL_var;# z7 N/ {2 v. E, u8 Z( n5 D3 Y" G
spSketch->GetAbsolute2DAxis(spSupport);
. ~- p0 o& ]; n+ P
" y- f% B/ N- t- nspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),1 S6 ?+ ~3 K' k6 n) D6 J+ w1 k: X* n
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
5 i2 ]& h: B  h  E  \
! K( d7 g4 e! j) [. X. v0 X+ C5 U* Y7 g2 P7 K
创建凸台
$ c9 M2 D3 B4 T% z// 从编辑框中获得援助的高度
. }4 y! r; e0 Q: {% l9 a; adouble firstLimit = _Editor004->GetFloatValue();& \7 }+ s( V3 p. i  k/ Y) [
double secondLimit = 0.;) a# Z: h% W: j
//圆柱的轴向方向为Z 轴方向
9 {$ e+ e6 P/ {CATMathDirection dirZ(0., 0., 1.);" Z- G' H- C, g
//初始化零件工厂
# `/ L! C2 T5 U2 G' `# _; TCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);$ P! M: {8 {0 Q# D2 _
//创建凸台
( V' e4 h9 e. cCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);0 {" P) i1 X: g. O, {0 H7 e) u
CATIPad_var spPadOnSpecObj(spSpecObj);6 J: n+ j  k- w
//设置拉伸方向! M$ h7 J+ B& c* I. F
spPadOnSpecObj->ModifyDirection(dirZ);% \% x7 f. `- F  g8 E2 T7 q5 C7 I
//设置凸台第一限制类型
8 o/ W8 i; x4 e+ `) Q7 fspPadOnSpecObj->ModifyEndType(catOffsetLimit);
1 R0 Y2 C  A' s4 N# B2 ?% c//设置凸台的高度
5 C* d7 \% o# L( q, H" UspPadOnSpecObj->ModifyEndOffset(firstLimit);- F$ M3 g; @" t# j
//设置凸台第二限制类型
4 R) x3 d) D  j" J/ G2 f5 uspPadOnSpecObj->ModifyStartType(catOffsetLimit);
& E. {' s" W: M) ~1 R$ U# hspPadOnSpecObj->ModifyStartOffset(secondLimit);% X; s  W  H0 j8 D, P
//将凸台添加在结构树中: s0 _" l: G, k2 w8 M* y3 m- e
spSpecObj->Update();! l+ S6 L; ^# f0 m, m4 f! O0 L
CATIGSMProceduralView_var ispProcView = spSpecObj;" F  _4 ?9 c4 g  u7 G! \- D% z
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
3 q( W; R4 A( s% g: X  g( v$ d  N4 \& D
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了