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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针
4 S3 S# q+ [7 I0 k6 g4 v5 A5 s: o3 p% _// 获得文件指针
, ^% P, E/ k( w4 u: \, yCATDocument * pDoc= NULL;
8 m7 {: a! U# p5 J( p+ Q0 kCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
9 c" ?0 g# q  k0 S8 B3 xpDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
4 h, S) h* K' P3 HCATInit_var spInitOnDoc(pDoc);2 m, }- v  i; ]! [
// 得到零件根容器& I0 R6 x9 E* A0 I) `; R' \
$ T; R2 K0 r4 o; S  p
CATIPrtContainer * piPrtCont =" M: M, t2 z: `8 X
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");/ P% f2 W6 l! W6 v2 j* y% P
// 得到零件指针) X2 l! z) Q# }! p% N$ l( j+ _
CATIPrtPart_var spPart = piPrtCont->GetPart();+ t0 g- h  F% [9 F/ q( k5 O: v

( k9 W: m# k- {  R1 Q1 v创建草图
! k) m9 o. S5 \! ^0 T//初始化草图工厂
/ F" O# b3 R) kCATISketchFactory_var spSketchFactory(piPrtCont);
. L/ w5 D6 r; |4 n: [0 t//在XY plane 上创建草图
( |5 C1 J& M. N% A  R7 HCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));
, ?' L! L& ?; H/ L/ Y+ O) U, u: c. s0 Q; `7 P7 e! q. ^
创建草图几何
1 k; ?+ c7 S' l//首先声明编辑草图7 A0 e8 M+ N$ \5 X0 }5 O' g% q
spSketch->OpenEdition();- h' v/ S1 F/ v) y
CATI2DWFFactory_var sp2DFactory(spSketch);3 ^% \3 N  y+ _8 y% m
//这里表示圆心点6 C; B9 W% u4 O' W' g+ E, A
double iPoint[2] = {0.,0.};
; a7 |8 u2 u8 y//下面创建圆圈
/ u& I% g- o2 K( q6 @3 cCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
  {& w2 m0 r& |CATI2DCurve_var spCurveOnLine(spLine);0 V* c! y* X# t
spCurveOnLine->GetStartPoint();
6 W3 D* s4 ]9 C8 T! `spCurveOnLine->GetEndPoint();5 v; A8 r( q8 Z5 L3 s" V
//然后退出草图:
# e2 ^9 v1 a2 d( ]! sspSketch->CloseEdition();! u/ y4 b; `. `2 W8 E( F( k

9 }0 A( l5 ~6 v5 w! O; _
) E9 y1 s3 k3 u/ {创建约束
7 h1 T) y, b4 T% b) e" y7 |CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
2 C! D, v& v6 {2 G& U7 o//定义spLine1 的半径约束
/ N4 W  E: V0 U4 P* fspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
7 f7 I& o( t1 @" c) K. y1 RNULL, Cst2DType_Radius, 0, 0 );
0 a1 B8 z+ t# w9 a//定义spLine1 与坐标原点的同心约束( z' D: x% g# ~; s9 v* b* ~2 z
CATI2DAxis_var spSupport = NULL_var;
) @$ a6 B* ^/ x& Z) QspSketch->GetAbsolute2DAxis(spSupport);- F& S6 g1 G& \& Z, o

' e2 g: M- W' ~spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),6 j2 _0 S- q0 Z; o! j* T: Z
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
! H# X' J0 @0 d- }/ s# o0 F2 a# ?$ Y+ E4 j( ~  w8 m

# |% P) j" _" g9 n* h* p创建凸台& n, P* g  O, p( \: e! G
// 从编辑框中获得援助的高度) K& F! ?3 q3 H) }! K5 {: L
double firstLimit = _Editor004->GetFloatValue();
+ U$ f  ~' I8 r2 g/ ^3 A/ Y1 v0 Wdouble secondLimit = 0.;( b) V# Y5 S. E5 {. X& r
//圆柱的轴向方向为Z 轴方向/ ~9 R2 ^. W/ a4 C) F
CATMathDirection dirZ(0., 0., 1.);
0 U; B4 ~) C! R+ L7 w: y$ q//初始化零件工厂
* `9 O/ f; I8 {CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);+ b9 }, E! C6 M3 i1 v- K3 K" J- u
//创建凸台+ ~/ u& j" p+ c+ g, o. b5 o2 E
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
0 l1 E3 Q7 c; t" lCATIPad_var spPadOnSpecObj(spSpecObj);
" K( I1 i. E: O% Q//设置拉伸方向* W7 q: b/ _, L  V0 X% \
spPadOnSpecObj->ModifyDirection(dirZ);9 B' K& q( a% l2 J( k* m0 P- @+ u5 M. P/ j
//设置凸台第一限制类型1 G1 o3 w" u9 ~& S; Y/ i! U
spPadOnSpecObj->ModifyEndType(catOffsetLimit);
0 ?$ v8 W! W; i5 s0 q2 L5 F! c0 G//设置凸台的高度
) V8 c% E0 r. {, I9 @* ospPadOnSpecObj->ModifyEndOffset(firstLimit);
) K2 s- b5 u; {! k/ P//设置凸台第二限制类型8 ~, k7 j" P$ h
spPadOnSpecObj->ModifyStartType(catOffsetLimit);
- h' f$ T1 `- Z; \spPadOnSpecObj->ModifyStartOffset(secondLimit);
5 i, L) |3 s) y6 Q( b//将凸台添加在结构树中" F; r0 H7 K5 C8 E7 p0 x
spSpecObj->Update();
6 Z, V" d9 O/ f4 V6 KCATIGSMProceduralView_var ispProcView = spSpecObj;
! v& h) X5 V, eif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}' ?- P& a: I6 _$ E& d# v

) S7 {4 R* U2 }+ Y6 B: y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了