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

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

[复制链接]

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

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

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

x
获得零件指针; @% L0 U3 N8 w6 e' Y. ^# }. Q2 u( V
// 获得文件指针' r+ T# \$ p; C0 ^: W
CATDocument * pDoc= NULL;
- w3 k* n1 f" g! L5 ~; I6 {9 XCATFrmEditor * _pEditor = CATFrmEditor::GeTCurrentEditor();  v) H4 s1 ^% B) U1 c0 x7 @' k
pDoc = _pEditor->GetDocument();//这里得到了PART 环境下的文档指针% Y$ {8 F  z1 Z' C9 ]
CATInit_var spInitOnDoc(pDoc);0 s9 Y: P/ a0 x3 w8 W
// 得到零件根容器; D( D1 v( k) S) g: U8 v
$ _" y+ R& I& ?/ i0 W
CATIPrtContainer * piPrtCont =
7 I( _- f, C+ G6 G(CATIPrtContainer*) spInitOnDoc->GetRootContainer("CATIPrtContainer");
3 u. m+ X* c+ `4 v// 得到零件指针" K" Z0 p; u$ y( d: V6 q' {2 i' a" @
CATIPrtPart_var spPart = piPrtCont->GetPart();
' }! ]) _2 l! q2 q
0 Y1 |' K* x: U1 d! l% a创建草图
. C4 r7 R. g* N//初始化草图工厂( V% t% i! ?% `6 J/ V/ _7 \
CATISketchFactory_var spSketchFactory(piPrtCont);
! Z, a$ f4 d9 S' a0 Q//在XY plane 上创建草图
) V5 q+ g1 [* Y3 n6 ~CATISketch_var spSketch = spSketchFactory->CreateSketch(spRefPlanes[1]));) r/ }1 x" [  E) ?4 W8 G) i

8 X) |0 {- ?* k- n, b创建草图几何, Z8 E/ Y6 N6 s. K' w9 T8 i
//首先声明编辑草图
2 T+ [5 s+ q) B6 s/ _+ V7 vspSketch->OpenEdition();7 c$ f0 J( }. a* ^0 ]
CATI2DWFFactory_var sp2DFactory(spSketch);9 |. s, w0 S7 y' R8 a
//这里表示圆心点
% t* d5 ]0 T6 Z7 [- e2 kdouble iPoint[2] = {0.,0.};9 Y# T3 A: y4 T# D; y6 V% f. \2 T4 V
//下面创建圆圈! m+ m* ]  @# e! h! `( v  ?% T
CATISpecObject_var spLine = spSketch ->CreateCircle(iPoint,_Editor003->GetFloatValue());
& ~( F7 Z% ?" {7 A# l" W7 J! KCATI2DCurve_var spCurveOnLine(spLine);
- D* @: Q, j, O6 t0 {/ JspCurveOnLine->GetStartPoint();& n* C* b: l: P' y( d
spCurveOnLine->GetEndPoint();
3 [$ R- E2 M! B% W; q& f7 o. S" J# r//然后退出草图:
, W: ?8 X+ S& i  fspSketch->CloseEdition();
1 d) o1 ?) Z$ e; T% B) @: b" j9 B$ Y' |$ f# F

' m5 F( s/ y* z6 V7 I: i创建约束
7 L: c+ R- d* Z+ R: \) I& DCATI2DConstraintFactory_var spConstraint2DFactory(spSketch);1 c$ A' u6 e% [7 b( P
//定义spLine1 的半径约束
. L, N1 b; M! m( tspConstraint2DFactory->CreateConstraint(spLine, NULL, NULL, NULL, NULL, NULL,
0 S1 ~. j# A  A) j# A+ U$ D. xNULL, Cst2DType_Radius, 0, 0 );$ [  H# d  Z' @. `( G, g
//定义spLine1 与坐标原点的同心约束4 D2 o9 l% B3 L: T: I) ~4 s
CATI2DAxis_var spSupport = NULL_var;* F" M5 @  G( V8 I3 O
spSketch->GetAbsolute2DAxis(spSupport);# Z0 d7 v% y7 g7 \
& R' Q1 B2 \, V0 y( u9 ~9 Y
spConstraint2DFactory->CreateConstraint(spLine, NULL, spSupport->GetOriginPoint(),
6 d" U( x2 d* V2 ~+ K7 TNULL, NULL, NULL, NULL, Cst2DType_Concentric, 0, 0 );
( S/ @" u9 \) G  n: i7 x# @( c: d7 H3 z' X2 `' W, R
) ^0 W' Z* ~  R4 w) s$ X6 X  E
创建凸台$ g( K/ b6 B% w2 f3 W7 p5 n
// 从编辑框中获得援助的高度
! S; p2 F3 j" S; Vdouble firstLimit = _Editor004->GetFloatValue();5 H4 v# F1 e6 u- R5 K1 Y& P
double secondLimit = 0.;6 k# w) _- R' E0 K7 ^; u
//圆柱的轴向方向为Z 轴方向
4 L2 Y$ N' O: I: W' V0 K" L; W/ sCATMathDirection dirZ(0., 0., 1.);
2 G, l4 e$ P6 w7 F+ {7 T( W//初始化零件工厂/ F4 v9 h. O) A
CATIPrtFactory_var spPrtFactOnPrtCont(piPrtCont);
6 R) P8 i/ p* f3 T//创建凸台6 {7 i5 L, S: u3 O: F2 j0 @. e9 c) g
CATISpecObject_var spSpecObj = spPrtFactOnPrtCont->CreatePad(spSketch);* y, g( J- P4 Q0 E, o. q# H
CATIPad_var spPadOnSpecObj(spSpecObj);
; z1 p5 T8 X; J5 |4 T! o: ]. X//设置拉伸方向- O/ h% z: v+ u* |5 {- |7 N
spPadOnSpecObj->ModifyDirection(dirZ);! m) @% B" A& |- H
//设置凸台第一限制类型% J& a4 P: d: @  b# f% Z& z
spPadOnSpecObj->ModifyEndType(catOffsetLimit);
1 V# ~; I  K" I! v4 @//设置凸台的高度
/ {2 @* `' ], G$ y4 cspPadOnSpecObj->ModifyEndOffset(firstLimit);& d$ [2 ?. S$ q/ F/ i; g4 h1 t, u
//设置凸台第二限制类型$ N4 `8 G1 Z& E9 U/ {7 o
spPadOnSpecObj->ModifyStartType(catOffsetLimit);) M8 j5 f& b) }) ]
spPadOnSpecObj->ModifyStartOffset(secondLimit);
' g: `5 Z7 L5 o  C7 C* L4 M/ x//将凸台添加在结构树中$ p( j- x7 ^# \
spSpecObj->Update();% G# M4 R6 f0 ?
CATIGSMProceduralView_var ispProcView = spSpecObj;* b7 m, p9 g9 e
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}2 r$ {. V: ?& k, j$ E* D; |6 d+ R1 N

1 p3 u7 l4 ~6 j
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了