|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
创建实体特征
% R! X# f/ z) w- Q) Q: ?* i, ]
实体特征主要包括凸台、槽、旋转体、孔、盒体、倒圆、倒角和厚曲面等特征,创建实体特征采用CATIPrtFactory 工厂中的方法,1 U0 c/ @; b3 e- o+ k& S7 {
, U* h q k( E: Z创建实体特征的方法
1 a9 y3 t/ ?: n! b凸台 CreatePad4 C3 G) ?2 S# d. ~' C
槽 CreatePocket8 A) Y% a8 b7 D) N- i! `
旋转体 CreateRotate
3 F4 P" H6 l8 D" V孔 CreateHole
& Q7 v" Y0 ~- b0 o盒体 CreateShell1 ^/ u# A, F. V' @2 r3 J& ?
倒圆 CreateFillet
7 W& c4 W4 j0 |9 d, q* E) Z倒角 CreateChamfer
9 b$ b2 }/ r0 T a9 w. N& V厚曲面 CreateThickness' v! P) d$ t$ B5 Z
* z1 J# r6 S' d& y* M0 k$ B
4 @3 f: S. V- E. s9 L; U现举创建孔的例子如下:
* i) X ^$ z( k" m3 c1.常用的创建孔的方法包括三种,依次如下。
" _- B0 e3 z2 A( S1 G6 Ppublic virtual CATISpecObject_var CreateHole( const CATISpecObject_var ihSurface,! X" G2 }( n$ E7 S& B
const CATISpecObject_var ihDirection) = 0; r1 \5 W1 O8 Z y' S0 X1 I; N
参数介绍:ihSurface 指支持孔的平面或曲面;ihDirection 指孔的特征方向,特征方向可用: r. i C& B6 ^
CATIGSMFactory 中的CreateDirection 创建,孔方向若为NULL_var,则按照曲面的法向创建孔。
" b# Q/ z8 ?- X" q+ ?7 E2 Dpublic virtual CATISpecObject_var CreateHole( const CATISpecObject_var ihPoint,
, p) w; U0 ^1 O5 R! M$ ]const CATISpecObject_var ihSurface,. q5 ^& g M. w4 [
const CATISpecObject_var ihDirection,
8 I$ X3 w/ y' qconst int IsPointOnSurface) = 0
# D0 ]5 _! e {/ A参数介绍:ihPoint 指在支持面上的特征点;ihSurface 指支持孔的平面或曲面;ihDirection
* c0 l c, |! W4 G. z: m( I指孔的特征方向,孔方向若为NULL_var,则按照曲面的法向创建孔;IsPointOnSurface 的值如7 b6 G! z8 ^7 \3 ]9 U: S) L
果为0,说明ihPoint 不在ihSurface 上,若为0,则说明ihPoint 在ihSurface 上。 x q5 b9 |0 \$ ~2 H+ m% d- m) C
public virtual CATISpecObject_var CreateHole( const CATMathPoint iMathPoint,
% l: d- y; |+ _3 E5 qconst CATISpecObject_var ihSurface,
/ F. V, V# O5 J, {8 m8 ~const CATISpecObject_var ihDirection,
) H& \( C) W& i) y) v- Uconst int IsPointOnSurface) = 02 K$ d* ]' D, n! W3 u
参数介绍:iMathPoin 指在支持面上的数学点;ihSurface 指支持孔的平面或曲面;ihDirection3 [' I1 v5 j8 T h& A* r& N% g% v
指孔的方向,孔方向若为NULL_var,则按照曲面的法向创建孔;IsPointOnSurface 的值如果为! n2 t: x- ]. T; T
0,说明ihPoint 不在ihSurface 上,若为0,则说明ihPoint 在ihSurface 上。& k+ k* y' i) e) M4 v
2.设置孔的参数
$ I/ K7 l) x, Y7 [# YCATISpecObject_var spHole = spPrtFactory-> CreateHole();
* W* H4 ^! m/ b8 pCATINewHole_var spNewHole= spHole;
: C2 r3 B0 d/ Y, _: r: SspNewHole-> SetHoleType(1);//设置孔类型为简单孔
7 l _/ D6 U2 U9 sspNewHole->SetBottomType(1) ;//设置孔底面类型为平底6 Q% Z8 V# k) q' h* S0 E
spNewHole->SetDiameter(5)//设置直径6 f# F' D. m/ n! b
spNewHole->SetLimit(1)//设置为盲孔' F+ E5 s6 k6 s; T3 o* \- a& W
CATIHoleLimit_var spHoleLimit = spHole;8 ~7 x5 k; `9 j' @4 Q. J
spHoleLimit ->SetOffset(5);//设置孔的深度: D: p- L; u+ P5 d! n! J6 h
3.将孔添加在结构树中/ n$ A- M9 y% U2 m; A% M
$ ?0 Z% _0 {& tspHole ->Update();
, G3 L$ m4 i& V; KCATIGSMProceduralView_var ispProcView = spHole;
! Z9 M% r' D* A4 Yif (NULL_var != ispProcView ) {HResult rc = ispProcView ->InsertInProceduralView();}9 t& Q6 x2 _9 e: c4 z# N
$ g3 R$ R: R0 g: A* H0 I; Z |
|