|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
创建实体特征
* }, S# _. J# A' q9 q) d$ Z
7 z# @2 I9 v. @* z+ y8 J3 J( b& E实体特征主要包括凸台、槽、旋转体、孔、盒体、倒圆、倒角和厚曲面等特征,创建实体特征采用CATIPrtFactory 工厂中的方法,$ p3 _& A9 [# P _9 ]5 F, Y
- A- ]* C, n+ x4 S创建实体特征的方法/ z3 e4 ?% U" I& K
凸台 CreatePad
' {! I* b2 p3 s5 q槽 CreatePocket+ [6 X4 s# k$ u
旋转体 CreateRotate
n8 h6 z. X" C% f4 f孔 CreateHole7 B- r! k9 k" f. x/ C) U* ]
盒体 CreateShell; y6 g- R5 m0 p4 ~) A
倒圆 CreateFillet" _2 E8 b3 y- a& O9 d) s
倒角 CreateChamfer2 [9 T. q# _# u4 O1 u- Q
厚曲面 CreateThickness0 F( U1 v* Y5 R
3 S3 z6 `# c2 a4 h; e: Z5 x4 \/ I
现举创建孔的例子如下:
' t& l8 B& D% m- P- A7 h$ K: g: D. ^1.常用的创建孔的方法包括三种,依次如下。
+ n$ g; @- @9 w: Z- P. Opublic virtual CATISpecObject_var CreateHole( const CATISpecObject_var ihSurface,# y) p3 Z( h. l/ M) i+ j5 F) `5 u
const CATISpecObject_var ihDirection) = 0
O6 _) ~& L: w3 `( A% T参数介绍:ihSurface 指支持孔的平面或曲面;ihDirection 指孔的特征方向,特征方向可用0 A1 R; R* ]- B% L: j& \
CATIGSMFactory 中的CreateDirection 创建,孔方向若为NULL_var,则按照曲面的法向创建孔。
7 _/ K! R% q3 K5 r* Qpublic virtual CATISpecObject_var CreateHole( const CATISpecObject_var ihPoint,
; J. n3 V: m; H$ g) h; V6 `const CATISpecObject_var ihSurface,, O& c8 e' s6 `9 T) t
const CATISpecObject_var ihDirection,1 s1 T& ]# B* l* Y8 W4 C
const int IsPointOnSurface) = 0
) r3 q/ D0 I9 e- F参数介绍:ihPoint 指在支持面上的特征点;ihSurface 指支持孔的平面或曲面;ihDirection
) P6 D0 M8 ?% w指孔的特征方向,孔方向若为NULL_var,则按照曲面的法向创建孔;IsPointOnSurface 的值如8 D& l* F$ P3 q }" w) i
果为0,说明ihPoint 不在ihSurface 上,若为0,则说明ihPoint 在ihSurface 上。
7 O* ~ }! U% S* R( ppublic virtual CATISpecObject_var CreateHole( const CATMathPoint iMathPoint,1 K1 u; i1 s6 W. M9 u+ F& V7 m
const CATISpecObject_var ihSurface,
1 K0 i- A; @2 {8 Fconst CATISpecObject_var ihDirection,
- ~, e; j+ `$ L4 k* e& N6 u' pconst int IsPointOnSurface) = 0
$ V) N# \6 e( X参数介绍:iMathPoin 指在支持面上的数学点;ihSurface 指支持孔的平面或曲面;ihDirection5 `( N: ?8 F. M5 J. s8 x
指孔的方向,孔方向若为NULL_var,则按照曲面的法向创建孔;IsPointOnSurface 的值如果为
~6 n( Z: d; }* T1 Y& Z1 a/ b0,说明ihPoint 不在ihSurface 上,若为0,则说明ihPoint 在ihSurface 上。
3 r! A: i4 ^: J' N& d/ z% s2.设置孔的参数
( _/ C1 D" G) K: O- NCATISpecObject_var spHole = spPrtFactory-> CreateHole();- l0 H1 ?9 Y5 Z. J( W& \6 L
CATINewHole_var spNewHole= spHole;: E, o; a0 j2 c9 O
spNewHole-> SetHoleType(1);//设置孔类型为简单孔: ~' M8 o, |/ ~
spNewHole->SetBottomType(1) ;//设置孔底面类型为平底" u s5 @, ]& f2 E+ x5 P% ~
spNewHole->SetDiameter(5)//设置直径
0 @! g7 y9 \8 t H) o; YspNewHole->SetLimit(1)//设置为盲孔9 P. s% a5 T! P' K
CATIHoleLimit_var spHoleLimit = spHole;2 e7 m0 \$ e/ L6 [6 Z2 ], S
spHoleLimit ->SetOffset(5);//设置孔的深度
8 o) X% Y" p5 {+ {3.将孔添加在结构树中 J) U! D2 ]) @0 Z1 A1 F
( _4 P) q' ?1 mspHole ->Update();
* S" S6 U( s0 fCATIGSMProceduralView_var ispProcView = spHole;; s# R+ V% S6 x( M' Y \" F% Q
if (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}
$ x) _( I5 ? ]% }' o: s. f
?3 r& |: d. _( [' Z. u C |
|