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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
( y9 p6 n, E" F( q0 d& z// 获得文件指针
8 M: x$ n. [8 A+ w" \1 OCATDocument * pDoc= NULL;
9 j+ {) f4 o; U3 t, T5 RCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();+ ]" _: X/ h5 `5 B
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
% d  Y" o% [) b! i2 }3 yCATInit_var spInitOnDoc(pDoc);' k$ u, X) o3 p9 w: r* k: Q$ J
// 得到零件根容器
! ^: Q. |4 b" |' g+ K2 E5 d+ Y* p! N) T
CATIPrtContainer * piPrtCont =/ }- e; S: j. Z
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");# B% o. a, Z0 t9 D4 t
// 得到零件指针: X1 v% J$ P. O* |+ b
CATIPrtPart_var spPart = piPrtCont->GetPart();
* [, r& ]' ~& E/ v
' R+ l& B) u, |/ S创建草图" k; `( e( l2 g, K$ P/ X) q
//初始化草图工厂
. Z$ _9 P- J+ n6 X* MCATISketchFactory_var spSketchFactory(piPrtCont);7 q. s  P5 s+ y
//在XY plane 上创建草图: K& v, ?$ x1 ?- }2 M/ R
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));* ?( `$ k/ c& \1 \
% _# P$ D1 G5 E7 m
创建草图几何+ v' J: n; I1 H
//首先声明编辑草图) a$ R1 V% ~, T
spSketch->OpenEdition();
) E1 J8 \5 L8 X5 y/ R& uCATI2DWFFactory_var sp2DFactory(spSketch);2 z' z( b  A1 Y
//这里表示圆心点
3 H; u) ^' q9 e/ A6 udouble iPoint[2] = {0.,0.};3 j( ^- _+ M: N+ H5 m$ H* r
//下面创建圆圈3 A& P+ @) [- ?# a- }% }/ i
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());4 @! I: I! Z$ Q- N6 o
CATI2DCurve_var spCurveOnLine(spLine);5 N$ }$ k% W" f+ p2 b
spCurveOnLine->GetStartPoint();
& y- r/ Z, V. R+ i% M8 cspCurveOnLine->GetEndPoint();8 i5 U( v$ R3 u; x2 Z: s
//然后退出草图:6 {2 e4 ^: b) P, [6 Z
spSketch->CloseEdition();
! L6 K- {3 [0 @' a/ @5 V$ f" p; M" O# w2 }2 J8 Q  D

3 X. @; X  s$ m, m3 m" c) X+ _创建约束
* o# t& n) b) oCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);& G, T2 B- M% s9 G0 x2 j
//定义spLine1 的半径约束# s7 K( S  n! Y2 H- O: x
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,7 {6 ^/ i/ p. V3 Y* x1 k
NULL, Cst2DType_Radius, 0, 0 );" |& A  }8 v* W% w; K* ]
//定义spLine1 与坐标原点的同心约束
1 ^+ M  S2 l) c0 }9 ZCATI2DAxis_var spSupport = NULL_var;, b, @9 J' s  T" r6 ^
spSketch->GetAbsolute2DAxis(spSupport);
: K. z( n/ W% @: w& E" B# K: _$ Y6 u6 r( E+ x7 P
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
, c# \. s7 S/ A9 b, @NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
4 R: m2 c7 e; d4 k; g
( ~; |9 _6 V2 I1 J7 `9 g! Y& l
# ^1 a" z" H  }  k+ q& u4 \  G创建凸台* B7 p; u0 c5 C( z) a8 k
// 从编辑框中获得援助的高度
7 ~: u: v3 @" xdouble firstLimit = _Editor004->GetFloatValue();
8 |5 e1 V5 u, L  a& Q; l/ G' g: Kdouble secondLimit = 0.;
6 |- ?( y3 `3 w) t//圆柱的轴向方向为Z 轴方向
& T. C- E8 o" _, `CATMathDirection dirZ(0., 0., 1.);
' l0 l4 C: w4 G/ ^//初始化零件工厂
. ^" p1 ?" i( G: G! dCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);- C6 S& r* ~6 f: N" ^' ?& ?" B
//创建凸台
; j# ~. y/ n0 C5 g) X$ `* x) {) {CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
1 B- t, j0 V- J' WCATIPad_var spPadOnSpecObj(spSpecObj);+ X" w, i" \7 H' ]; R6 R) r
//设置拉伸方向( {  K- u) k! s, ^! I( i! O
spPadOnSpecObj->ModifyDirection(dirZ);2 ?/ |- `2 h4 ]3 m1 I# J) {3 Q9 x0 {
//设置凸台第一限制类型
: n4 Q4 b0 [2 H* a, X2 pspPadOnSpecObj->ModifyEndType(catOffsetLimit);
9 [9 g1 V7 T+ h" r3 ]' I% {//设置凸台的高度
# g1 L- Z& o, w- P; FspPadOnSpecObj->ModifyEndOffset(firstLimit);
$ M8 z1 t0 c' k//设置凸台第二限制类型
, ]" ^* y0 ?$ y# espPadOnSpecObj->ModifyStartType(catOffsetLimit);" |- n! r! J2 s# B! h8 Q- P! o
spPadOnSpecObj->ModifyStartOffset(secondLimit);" i# z! l- O4 }% U, O, x
//将凸台添加在结构树中5 d; g. g; T! X" I' Z
spSpecObj->Update();
4 [) P' l, ^# ~+ eCATIGSMProceduralView_var ispProcView = spSpecObj;
0 N1 b; M9 ^. D4 [$ `! U5 Wif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
) V0 X6 y- u# n+ ~& f2 t+ _  _0 @6 }
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了