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

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

[复制链接]

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

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

admin 楼主

2018-2-22 13:28:03

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

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

x
获得零件指针, |( F3 N  o6 E$ S3 }# w# G& j5 k- }
// 获得文件指针6 P5 _; f9 a; E" C1 k" Y
CATDocument * pDoc= NULL;7 H9 c$ D% ^" ~1 c" I/ O  i, C
CATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
  Z# @: @( x( U4 |pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
8 Q+ C5 ~& r5 C$ G. i3 ^+ a; ]CATInit_var spInitOnDoc(pDoc);+ q3 J# H3 W9 T# t, V. M
// 得到零件根容器
& k$ e5 Q& Q1 R" c, N7 I' W% R& O3 @. H0 F0 E
CATIPrtContainer * piPrtCont =$ y3 U) a, O8 c! ]
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
5 l, k# P5 o& C. b+ E$ c* U# l& O// 得到零件指针
) K2 z- D1 `" ?) u- K4 f8 Y1 OCATIPrtPart_var spPart = piPrtCont->GetPart();
& x4 M) b! y' A% z% b* ]- z2 ]$ [# `* Z7 L2 H" X. G9 p; e" Y
创建草图
7 [/ p+ O. r8 j- b% B: f//初始化草图工厂
( S4 V; J, _( ^$ BCATISketchFactory_var spSketchFactory(piPrtCont);
- H+ P1 O: l0 |6 ]//在XY plane 上创建草图+ v3 F( c/ i( r7 N+ `) h  n
CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));0 ^+ Y& ]' ]/ H9 r1 [7 Y& ]
4 S7 v% q/ t$ |1 w/ Q
创建草图几何; L. D. O1 v5 r1 N. n
//首先声明编辑草图
8 ~9 O6 a+ v5 ]* Q% jspSketch->OpenEdition();
( p8 L7 k* X5 p; lCATI2DWFFactory_var sp2DFactory(spSketch);
9 v8 Y6 M8 [& T$ i4 G6 e3 v: d//这里表示圆心点
' S7 r* a% L1 L+ F# @4 _; Gdouble iPoint[2] = {0.,0.};
; k5 a% o, L$ R# ^: Z& Z1 p4 F/ L//下面创建圆圈5 X/ u% T* h2 w8 H% L/ P  ^1 ^
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());* D' E/ k) i; w  C0 U
CATI2DCurve_var spCurveOnLine(spLine);
+ p" }, h$ U9 _  y1 p  Y$ J& tspCurveOnLine->GetStartPoint();; R  j5 H+ v/ z: ]5 [
spCurveOnLine->GetEndPoint();
. Z2 H4 ?- D1 k. s1 T2 L' N& r//然后退出草图:) ~6 W% Y- |2 c3 @5 {
spSketch->CloseEdition();- k) ~7 @! l& H$ M7 d  j( p( h
1 [2 y3 d# Q$ l
  A" K) f2 o5 }) B
创建约束
+ H. O9 \; Q, ^( ^) n7 WCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
+ t$ e5 V3 T$ k7 |, _) y//定义spLine1 的半径约束. Y/ u+ P7 b" J. M/ ^+ i
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,; ^* W$ R- ]% r* U( l* g7 k
NULL, Cst2DType_Radius, 0, 0 );" }$ Y/ A" Y' l% J7 W8 e: o
//定义spLine1 与坐标原点的同心约束
: Q. }6 Y' m7 r9 q) |CATI2DAxis_var spSupport = NULL_var;
2 d% H% s4 G5 G( o9 yspSketch->GetAbsolute2DAxis(spSupport);% V, r1 Y/ o/ K

- @  H$ ^/ B( w2 u4 M" B$ q% j( `spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),) Z# K5 }, t8 t& T- y5 d9 @
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
' o3 u) n; x! I
3 q. Q% M6 a, r' t  [$ S. Y/ e5 y; x! X, \1 g7 H! x5 W
创建凸台
5 M5 U, T% T2 r" _// 从编辑框中获得援助的高度* w# _$ A7 D8 N) j7 L
double firstLimit = _Editor004->GetFloatValue();
/ f9 V. ]0 x& t+ n9 F+ M& Fdouble secondLimit = 0.;
3 g; A1 ?; O7 N7 r3 Y: E//圆柱的轴向方向为Z 轴方向
$ [: D: _1 T# x/ p+ }) ACATMathDirection dirZ(0., 0., 1.);5 ]% A! t5 D; A/ B
//初始化零件工厂
: I) U8 m4 l* N( {% g) [CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
6 }9 {$ _% U) w( K; ?//创建凸台
, @% y! e* b( n0 r4 e9 yCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);( R# U3 N' X3 W5 p) @2 I1 [: u9 |
CATIPad_var spPadOnSpecObj(spSpecObj);
& {" Z$ A9 S  \6 k2 t* S//设置拉伸方向7 a. p( [! n- i: ~# K6 Z0 s. I
spPadOnSpecObj->ModifyDirection(dirZ);+ g$ j. M. q0 \- f0 n2 R
//设置凸台第一限制类型0 W. R1 z' s1 E0 c+ q8 |1 a8 ?
spPadOnSpecObj->ModifyEndType(catOffsetLimit);
" m9 |- x5 Q/ _+ s//设置凸台的高度
! a$ ~) L3 p5 Z) C" hspPadOnSpecObj->ModifyEndOffset(firstLimit);/ A6 Q5 I7 Z1 |  Y& I
//设置凸台第二限制类型
! ~2 Q# l% a' I1 ]) A- e  lspPadOnSpecObj->ModifyStartType(catOffsetLimit);
1 X  [  T6 l2 G8 ?spPadOnSpecObj->ModifyStartOffset(secondLimit);
8 O0 R9 q; R& V4 e//将凸台添加在结构树中
0 u6 Q/ C- u" ]0 gspSpecObj->Update();* q( K6 v: i  ~. G: C) j5 w
CATIGSMProceduralView_var ispProcView = spSpecObj;; U- F+ X0 `! s/ f3 U- N0 l
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
$ }$ A, c, ]9 i: F+ ~" I* N9 C' `  f/ G. E+ t! ]; U
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了