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

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

[复制链接]

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

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

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

x
获得零件指针8 @4 T  Y- A" K4 |& x0 ^6 j* g
// 获得文件指针7 ^9 o: W" z* S# I5 n
CATDocument * pDoc= NULL;
$ L7 A4 ~0 h( Q! L4 Q0 ^, mCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();
/ t5 R7 Z; A3 D1 h+ ?pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针
! b0 A4 s) H' `; `CATInit_var spInitOnDoc(pDoc);" o( H* X/ D- H
// 得到零件根容器
3 y9 D; I( r9 a2 m& S- g1 o) e. q: o! Q$ b$ }) E1 |
CATIPrtContainer * piPrtCont =
1 m( w( l( ~# [. J(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");: V/ q. X4 I; Y# G3 C' b1 \2 s" F
// 得到零件指针
# [/ ~6 a' e$ a4 e) b& E6 s" N) `CATIPrtPart_var spPart = piPrtCont->GetPart();
$ y! E- j7 J# ?, N# ~
0 ?: G/ {* _  H& T. x  W3 U$ p' ^7 k创建草图
% m/ b& c" X! Y//初始化草图工厂# I0 q+ W; |) d4 M1 b
CATISketchFactory_var spSketchFactory(piPrtCont);" p; ?. f& x! ]% ~' k* N  r
//在XY plane 上创建草图
# B% S$ r# \! MCATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));3 z3 v: X/ [1 E% {$ W; Y( X$ l" N
; x/ O2 g( s& L# y+ c# {- D& P
创建草图几何: |& ~4 h6 Z' [& o
//首先声明编辑草图
4 d% R$ G. K# C3 C5 yspSketch->OpenEdition();$ P9 ~% _  L! J- Z8 E, q
CATI2DWFFactory_var sp2DFactory(spSketch);
' C4 j9 W' l# Q( p6 v$ V& E) B//这里表示圆心点
7 T' N# _5 B8 F) M4 b5 v* ]double iPoint[2] = {0.,0.};+ j' ~4 i$ W0 J, Y) E4 X1 J, U# @9 F" B
//下面创建圆圈
' x) _5 Y: R$ RCATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
( [9 x- F/ O! _$ p) l; G: B3 GCATI2DCurve_var spCurveOnLine(spLine);" `9 U2 ~7 C9 `" v. f4 N
spCurveOnLine->GetStartPoint();
4 w1 Z8 C! P3 l/ Y6 v- g4 m9 YspCurveOnLine->GetEndPoint();
9 O7 i/ c* O) f, E- R//然后退出草图:
3 R* ~) k4 m5 {  ~/ Z6 A1 o; U$ F' ispSketch->CloseEdition();
2 a/ r1 e% n5 D7 ?
/ p: f  W. ^: w3 z! g0 w% }1 Y0 P- @7 B' o# X, l, r
创建约束* p  M9 I% W& O: @' e' s2 V
CATI2DConstraintFactory_var spConstraint2DFactory(spSketch);
' C, r+ d! I" K/ z, g$ E/ d. X//定义spLine1 的半径约束3 a3 H( h! t' A$ c# ^
spConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,0 B, t% B, }" Z% u2 Q! J
NULL, Cst2DType_Radius, 0, 0 );
; q+ Q/ d. o( r! T2 H$ H9 H//定义spLine1 与坐标原点的同心约束# Y# ?; C7 S3 L9 t, t
CATI2DAxis_var spSupport = NULL_var;
" b5 v+ R# Y' C' }spSketch->GetAbsolute2DAxis(spSupport);1 `2 i" E, t$ N

- }0 M4 [/ m6 d7 Y! o: AspConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),, X7 d# f8 T0 M% |6 f
NULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );* r# I* v+ R4 g5 Y

% _  R; {: w* `! n. i/ Z0 @# G. ?6 M3 a2 x! x
创建凸台* q! Y: O4 i, b+ q% Y
// 从编辑框中获得援助的高度5 w' r1 |1 m8 j; d4 g1 N' [( \# i
double firstLimit = _Editor004->GetFloatValue();8 A% s% O* Q- ~1 N" S
double secondLimit = 0.;
# q* n" J4 I2 L& z0 D; v//圆柱的轴向方向为Z 轴方向
8 K6 g5 ^& z7 K1 Y0 dCATMathDirection dirZ(0., 0., 1.);$ B$ Q/ L, v! X2 P
//初始化零件工厂
5 G7 F: Z4 k# iCATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
  ?, g0 T& X* C7 F5 @//创建凸台
' G( b/ R0 c( y4 U# k- hCATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);
& J: }, G2 R- t. ]( UCATIPad_var spPadOnSpecObj(spSpecObj);
& n& W% T; I. S7 m7 O//设置拉伸方向" `8 N: Z3 y2 s6 k8 i
spPadOnSpecObj->ModifyDirection(dirZ);
& X% P8 W9 {: }" O1 P  O+ K/ G* n//设置凸台第一限制类型; p% w( e$ ~% a+ M  F* Y
spPadOnSpecObj->ModifyEndType(catOffsetLimit);) l( i/ h3 f6 Z# Z, |; {  R
//设置凸台的高度
5 y6 V, N2 \+ L- l9 [spPadOnSpecObj->ModifyEndOffset(firstLimit);
% Z9 a9 I; _: y0 I; F$ z//设置凸台第二限制类型; O+ z) S: H% \" F4 }" D# N0 f
spPadOnSpecObj->ModifyStartType(catOffsetLimit);; @3 u  X, T* o6 z7 y
spPadOnSpecObj->ModifyStartOffset(secondLimit);5 Y% q" n) G, o8 h/ `
//将凸台添加在结构树中5 g0 U3 c+ z% W6 O7 ]% v
spSpecObj->Update();8 \' H8 x8 B" x
CATIGSMProceduralView_var ispProcView = spSpecObj;
# p5 u/ \4 O4 X) |  W7 Sif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
+ ~  Y4 D* G2 \1 K/ i
  E. b$ W! Y3 U) d. C0 P
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了