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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针. [  T1 c3 e0 _9 d0 h) I
// 获得文件指针0 _& j$ `( \( Q9 m. }! n
CATDocument * pDoc= NULL;( R% u7 m& ]5 m! M9 X  U
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();. a+ r4 \# v; `8 a
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针# ^) Z2 q; x) }0 Q1 X9 `* g/ `1 q
CATInit_var spInitOnDoc(pDoc);% r5 i/ _! c$ ^% J) s
// 得到零件根容器# l1 E0 f8 L8 O' l8 v9 K

: O& m' j. c% ?  h, LCATIPrtContainer * piPrtCont =5 V- @8 L- {# I1 g# V. ?3 v* X
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");; f" w+ w5 C% o6 w
// 得到零件指针5 D+ K( w( }* ?
CATIPrtPart_var spPart = piPrtCont->GetPart();/ U3 a/ H1 {) x/ I1 S7 x/ C

& x* f7 V7 B: F创建草图
( Y3 S% Q$ W% |  I//初始化草图工厂
( n  n1 G* C8 K2 `CATISketchFactory_var spSketchFactory(piPrtCont);3 @" _, q6 z8 c; d; T
//在XY plane 上创建草图
( M$ L( B8 V$ C/ E( J% YCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));. |! q2 s3 E4 X2 D) m
# L  G% [, I3 j$ r% u- ?
创建草图几何
, J/ h, Z$ e# S/ d+ e//首先声明编辑草图
, z, |* p8 d2 Y& \! QspSketch->OpenEdition();
+ W* S( x* {+ H- S6 QCATI2DWFFactory_var sp2DFactory(spSketch);+ L' c- q4 p2 e( K$ j' a5 E
//这里表示圆心点
" W0 n2 H* V3 N1 \7 L; Pdouble iPoint[2] = {0.,0.};
/ ~5 {- S8 M3 k" f/ D& i//下面创建圆圈2 q% U/ T0 \" @; U
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
7 [" n1 r0 M2 z+ `+ V& eCATI2DCurve_var spCurveOnLine(spLine);0 P$ s; M3 X2 Y- Y+ ?
spCurveOnLine->GetStartPoint();3 h' J; A1 L( }5 K0 P
spCurveOnLine->GetEndPoint();0 U3 N1 z9 e3 l; K/ q1 z
//然后退出草图:
0 k2 w( A. K: P$ z2 z; SspSketch->CloseEdition();/ L$ T* G2 c* m

7 l3 G, _3 c3 j" H1 U  `, X
6 ]& R& h$ {! l/ n4 @创建约束
3 N! P$ C% m, l# K( V8 B$ ^, e! w: tCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
7 ^  U, ^. m) W8 v, o8 D, q0 l//定义spLine1 的半径约束0 _4 G1 G3 R% ]; @+ P# B# ?
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
8 _* F! g/ c+ E9 \" o- R! MNULL, Cst2DType_Radius, 0, 0 );( [, C5 ?. U4 a7 X$ i3 z$ u) Q1 V
//定义spLine1 与坐标原点的同心约束
: u# v  R' A2 T5 b* cCATI2DAxis_var spSupport = NULL_var;, I( J+ x) @6 z3 p/ F% H) Z7 f
spSketch->GetAbsolute2DAxis(spSupport);
6 I* h9 K3 d6 w. D2 K; v7 B! |& O7 M; M! R, ?
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
) m; U+ G9 s* r  ^9 zNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );- E+ s0 q; v* V

. h# K" K! V8 @5 E6 h  l/ @# Y/ I' n5 r2 ^
创建凸台
6 d; U4 ]4 g- }5 R1 L' D// 从编辑框中获得援助的高度
. v4 ?3 Z  V# ^& d  q9 l* Ldouble firstLimit = _Editor004->GetFloatValue();+ Y& @) s4 v! g0 B: w
double secondLimit = 0.;
1 ?: R- ?: z0 X! l0 G9 g; U6 e: x3 U//圆柱的轴向方向为Z 轴方向
; _) [3 S/ l& ^( P. iCATMathDirection dirZ(0., 0., 1.);# E% V% _4 A$ O- U$ @- `, |( |
//初始化零件工厂1 ^* {) [7 j; v' K( |6 D& A
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);# e8 b7 L0 W0 y; [9 m
//创建凸台- k1 Q6 Q! j+ x0 w+ |
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);# u+ U/ K5 n" L
CATIPad_var spPadOnSpecObj(spSpecObj);! o+ E  ?1 @' }* ~! q
//设置拉伸方向
% o& j  e- H' V2 LspPadOnSpecObj->ModifyDirection(dirZ);
# D2 `6 l, f4 X! c( Y//设置凸台第一限制类型
) x# p2 M- v/ F: U. n3 o& `5 W) `spPadOnSpecObj->ModifyEndType(catOffsetLimit);1 n# |% i8 ]1 ?4 `" O
//设置凸台的高度  m, s5 D! O: V2 S( C/ G# E" w! _
spPadOnSpecObj->ModifyEndOffset(firstLimit);0 O1 p; _1 _2 ^( e
//设置凸台第二限制类型
! L% C4 v6 r7 t( J4 J( @spPadOnSpecObj->ModifyStartType(catOffsetLimit);) I( s9 F) A; z0 @, K: Y6 ?: I: [0 M
spPadOnSpecObj->ModifyStartOffset(secondLimit);* N) f( Z/ ]# Y( _4 C3 f$ Q  W
//将凸台添加在结构树中
- [9 V! ~. V* K. D3 ?spSpecObj->Update();' L9 d' X2 G2 m% L7 c
CATIGSMProceduralView_var ispProcView = spSpecObj;
0 n9 p$ N) q9 b: O, Eif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}' B; p6 Y) w# n* E) N: H& ^6 G2 Q. F, \; Q

0 d8 e7 y9 s6 I2 c  w4 {' Y! r
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了