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

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

[复制链接]

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

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

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

x
获得零件指针7 \' b3 f) @6 o$ D6 J7 Y% c
// 获得文件指针: V8 L2 A/ h3 x2 R
CATDocument * pDoc= NULL;
# q% R9 b, [, |/ j. O! yCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();& Y( c5 q# X1 D
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
1 y; ^. e" Z. `  b1 `) OCATInit_var spInitOnDoc(pDoc);
  M! K) J; `% ^" }( e// 得到零件根容器
- S! R( o" Z- a9 L
% e' w( S& ]" B9 t( r6 p3 F  [CATIPrtContainer * piPrtCont =/ Z& C: a- ^1 S7 w0 P; Y- q
(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
' B/ ?4 Z* Z* \; A// 得到零件指针
  r# o8 T: n: ]; A' I: }: VCATIPrtPart_var spPart = piPrtCont->GetPart();$ e/ a$ {0 n6 `3 P
1 D) j9 _) J. F3 \0 N6 A
创建草图
6 ~5 Q$ g0 l# D5 @5 y//初始化草图工厂- b6 H* R' u+ b8 ^
CATISketchFactory_var spSketchFactory(piPrtCont);3 S1 W  h* R3 u- a
//在XY plane 上创建草图
2 l* d5 R+ C) N4 CCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));# `2 \6 Q' U  N- [8 a5 m
4 b2 e; J' n1 R" ~
创建草图几何  Y+ Q1 r' [- P) k" l3 q
//首先声明编辑草图
5 w2 Z) ^2 G0 w# bspSketch->OpenEdition();5 B/ i4 V5 H; F  H9 C# {6 ~% d# }
CATI2DWFFactory_var sp2DFactory(spSketch);1 I/ T& d! K; v. w0 g
//这里表示圆心点
) O' q5 E3 ]1 a' I5 }! G+ k8 }double iPoint[2] = {0.,0.};9 D/ K: S  [; c4 `) e
//下面创建圆圈' d" t4 V' @  q5 }
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
, k+ {, s! K) n; MCATI2DCurve_var spCurveOnLine(spLine);
7 f3 R/ u" f" q  V9 g% I$ WspCurveOnLine->GetStartPoint();
) U) b: @- g( X6 v  j+ V2 _( ZspCurveOnLine->GetEndPoint();
4 C" W- Q' C( _0 T//然后退出草图:- E/ k! s4 n  a1 p8 y0 @, a4 J! L2 [
spSketch->CloseEdition();
) Y1 G' v9 n) [$ Z. N, {* j* O+ J% B& d0 p( p# r1 s

1 I4 ]" q) Q" M0 N4 J创建约束
2 d7 r, M5 l# n. LCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
9 S/ \0 e0 d& {9 W+ U$ k8 j//定义spLine1 的半径约束& P) S: h( g+ v9 ], S0 E
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,) B8 j" s$ N: g/ a& w
NULL, Cst2DType_Radius, 0, 0 );3 u' A5 W% d. e+ N
//定义spLine1 与坐标原点的同心约束
$ M. K+ h. S: Q4 CCATI2DAxis_var spSupport = NULL_var;
; E, W  j( p  ]) LspSketch->GetAbsolute2DAxis(spSupport);" O8 G: m6 a7 w& U' p  x& x8 T7 L
9 _8 m* n1 y( F7 }, t6 ^9 J
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
+ H1 @! \# [7 r2 Y$ k% \NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
$ m, R* B4 z6 L6 a8 [8 w+ b) Y5 x" o, p
# n, X1 a. @* j; Y
创建凸台
2 Y, i! f3 {  H' @0 b2 F// 从编辑框中获得援助的高度3 `1 R" D% i6 q! [( f
double firstLimit = _Editor004->GetFloatValue();7 J' F7 d& U) R
double secondLimit = 0.;5 J$ q1 f4 g8 D. {9 p& @; {
//圆柱的轴向方向为Z 轴方向& G1 y% [2 V9 n
CATMathDirection dirZ(0., 0., 1.);
5 ?1 r, M+ p* `//初始化零件工厂
1 V* j; q4 Y& k! ]) ^CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);, H$ t6 w( _; e* u" {( N
//创建凸台
/ M) x' i9 d6 r0 E2 d: xCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);- a3 j) p+ t5 ?# R2 o/ C& u
CATIPad_var spPadOnSpecObj(spSpecObj);
+ U/ m! O$ t3 x) G3 H//设置拉伸方向
; O8 y7 O+ @- ~! l2 CspPadOnSpecObj->ModifyDirection(dirZ);
' c  X5 g- K* H3 i//设置凸台第一限制类型
" c% n5 G, b1 K/ X1 |spPadOnSpecObj->ModifyEndType(catOffsetLimit);
; J9 H) d8 A8 S, k5 F; j//设置凸台的高度
, i* [2 d5 f/ G' Q& z0 Z6 vspPadOnSpecObj->ModifyEndOffset(firstLimit);
% n1 N2 V* J* V//设置凸台第二限制类型2 Y4 L. _/ {! f& H& b# H# k
spPadOnSpecObj->ModifyStartType(catOffsetLimit);1 i0 F- O& S# g
spPadOnSpecObj->ModifyStartOffset(secondLimit);3 k7 L6 }$ ^* v5 ?5 q
//将凸台添加在结构树中! T. u6 i% ?  r7 g1 S& i
spSpecObj->Update();  l" f7 u; [5 k% s9 q0 V
CATIGSMProceduralView_var ispProcView = spSpecObj;- T3 v- d0 s9 w0 }( v- J0 X
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}) d' s6 ?5 n$ J( C+ ^& T
8 F* v8 l* O2 H4 W4 y0 A3 T
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了