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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针/ a+ ~8 n0 C2 @' z
// 获得文件指针8 e& _" r+ L5 D+ E+ A) ]) B. ?' W
CATDocument * pDoc= NULL;4 ]( `8 w' H: s+ M5 h7 W
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
: Y- n  r/ z' n/ J! YpDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针8 r4 H- ?* I) ?" q* Y
CATInit_var spInitOnDoc(pDoc);
5 b$ U) H( P6 U0 u" U; X# Y// 得到零件根容器3 K' ]: d& ^; |! B

$ d1 D" n( W" v' e' lCATIPrtContainer * piPrtCont =
2 U- _" ~+ L/ Q7 k(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
! T1 D! K9 o- A& a8 R; w2 A// 得到零件指针
2 r9 E2 C- [1 s: vCATIPrtPart_var spPart = piPrtCont->GetPart();
5 q. y# y6 d* S0 m0 G
; e! P0 s: X0 R6 Z0 v4 M# z5 r创建草图
* L' y/ Q- @% T3 z/ g- C//初始化草图工厂+ }5 }" q. {. e1 q9 a# f! u2 r
CATISketchFactory_var spSketchFactory(piPrtCont);
+ @" @; w( z; w: z) V% W4 E8 R//在XY plane 上创建草图6 B1 o. z4 K9 [3 S% a/ o
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));$ ~4 P- ^1 L2 M8 _6 J) d' r* L
7 e6 Q8 [! ^* I$ o* V0 s4 f
创建草图几何" @8 T& a! z/ d; t6 B  F  u
//首先声明编辑草图! s! [2 w# z# {/ [) h
spSketch->OpenEdition();2 v$ Q3 J2 v2 F' \! Y& @
CATI2DWFFactory_var sp2DFactory(spSketch);5 i; g% z- Z% k
//这里表示圆心点( a  r+ d4 d3 w. U
double iPoint[2] = {0.,0.};
4 Z! }- m% t! o3 e+ k5 O//下面创建圆圈
+ ]. v4 e" S. z) @: nCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());) w, ]6 j" j: F3 r! |' j/ d  L
CATI2DCurve_var spCurveOnLine(spLine);
% }& Q( ?. a- z3 P8 ~2 S) DspCurveOnLine->GetStartPoint();
1 M: s% L. y6 ^+ EspCurveOnLine->GetEndPoint();2 N" o3 ]5 o$ g% W( n4 m
//然后退出草图:3 u) j5 L: D0 W' K8 a
spSketch->CloseEdition();
) |( N- z. c1 u3 R! @$ Y  P1 b0 s

  m; L! r/ i) A; o+ {# Q6 O( M# ?创建约束
5 Y) e8 M1 e& }7 W( \$ }CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
; [9 R. c8 X+ ?7 S8 s//定义spLine1 的半径约束/ m' V, U8 v) M) @  s- e
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
  C5 I0 I/ I5 c0 \# d$ kNULL, Cst2DType_Radius, 0, 0 );
5 I4 f4 l- M9 @) T1 _//定义spLine1 与坐标原点的同心约束) U" _3 ?' c4 ^8 Z" f
CATI2DAxis_var spSupport = NULL_var;. a' A9 n! K) O2 J
spSketch->GetAbsolute2DAxis(spSupport);2 P4 R" l) U+ L
# X. S5 A: }1 l0 |
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),+ s4 y- l# z3 `9 j# h
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
: S; z% E6 D8 n& x
# v* u4 ^- Z3 X2 j" w
4 E2 Z, E4 {$ `创建凸台/ y0 d) \- E4 l0 G  t% }
// 从编辑框中获得援助的高度
+ |' [, s7 k& ^6 l8 r4 ydouble firstLimit = _Editor004->GetFloatValue();
0 {( E1 h9 o$ \# N. y; O( s' ]2 Mdouble secondLimit = 0.;
( j$ v  E: f! k, B: e* F//圆柱的轴向方向为Z 轴方向
+ |4 z$ u4 z. W" [8 `1 aCATMathDirection dirZ(0., 0., 1.);
6 V4 C0 ?' P- y4 B7 v' R: Q//初始化零件工厂
9 L) u+ g9 B% ^CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);# R3 f6 H  Q4 d+ `: P- U, A
//创建凸台
* P+ r/ Z. r: j! P9 d' I5 X: o( YCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
; ]9 Z4 |: r8 x3 [& Q: _CATIPad_var spPadOnSpecObj(spSpecObj);3 O; m5 T1 K( t, z* `8 X
//设置拉伸方向: [& a* J0 L  s1 \
spPadOnSpecObj->ModifyDirection(dirZ);
7 v' ~/ W# F' x7 {//设置凸台第一限制类型
0 n4 O6 ]8 @2 J' a# ]8 BspPadOnSpecObj->ModifyEndType(catOffsetLimit);+ n- a& B0 Z. x" A1 F$ h
//设置凸台的高度1 U4 P2 G( h6 R9 f
spPadOnSpecObj->ModifyEndOffset(firstLimit);+ k+ c& N) A1 j6 {9 U4 R
//设置凸台第二限制类型
5 L  X& u) p& H  I. E) \4 }8 J) PspPadOnSpecObj->ModifyStartType(catOffsetLimit);
. o& q  F6 o, N8 p8 J) I" UspPadOnSpecObj->ModifyStartOffset(secondLimit);
- W7 a% }+ \5 H//将凸台添加在结构树中
* k0 X* T3 ]2 A' J! ]2 ?spSpecObj->Update();# T; g3 z: |( v6 @
CATIGSMProceduralView_var ispProcView = spSpecObj;
- g5 ^" k; k$ l7 ]; J7 Yif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}6 @, k5 G5 F  {  o6 k/ [7 G

2 ]4 j' R. D' r) ]0 N* c& |
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了