马上注册,结交更多好友,享用更多功能,让你轻松玩转磨削论坛
您需要 登录 才可以下载或查看,没有账号?注册会员
×
5、生成裁剪曲面的自动搜索算法
1 {; d+ r5 Z+ }8 A6 v) T) n 图9为求交后的结果,被裁剪曲面中有一部分Patch是将原Patch裁剪生成的,称为新Patch,如Patch1,2,3,而有一部分是没被裁剪到的,称为原Patch,如Patch4,5,下面分别讨论这2种Patch的搜索算法.
2 z# w3 E0 F. W8 v; k* o1 a
1 M! t8 f9 x t图 9 曲面求交后的搜索
2 R- ?) |8 D0 y' q5 a5.1 新Patch的搜索算法 4 x5 H; ~3 c! x/ u! `4 j
步骤1. 由一个新Patch找到与之具有相邻公共边的新Patch,如图9中由Patch3可找到Patch1,2. 步骤2. 排除不同类的Patch.这里的分类仍按照是裁剪部分或是保留部分来区分,如图9中Patch1和Patch3是由同一个原Patch裁剪后得到的,显然它们是不同类.从步骤1搜索结果中排除Patch1,即由Patch3搜索到Patch2,这样可保证搜索到的Patch为同类,即同为需保留或同为需裁剪掉的部分. 步骤3. 遍历Patch链表中新生成的Patch就能找出全部的同类新Patch. 步骤4. 处理特殊情况. 如图10所示交线经过Patch1,2,3,4的公共顶点,由Patch3按相邻边关系不能直接找到Patch5,对于这种情况,本文在求交过程记录Patch1,4为新Patch,则可用步骤1中统一的相邻边搜索算法,由Patch3→Patch4→Patch5.对交线经过Patch某一边的特殊情况也可作类似处理.
$ P! ?, [) ?7 F/ V
. i" A& Z( e. ]4 J; @图10 交线通过公共顶点
# Q% w0 t9 d' H" b' B5.2 原Patch的搜索
( i G, D. `+ s* \; d0 K0 D# Q) U 由5.1节中已找到的一个新Patch搜索与其有相邻边的原Patch,然后由该Patch的相邻关系即可高效地搜索出所有同类的原Patch,如图9中由Patch3→Patch4→Patch5→….相邻关系在求交过程中获得,由相邻关系搜索避免了循环遍历整个Patch链表,大大提高了搜索效率. 将以上2个搜索过程的结果合并就得到了一类裁剪曲面,相应的另一类裁剪曲面则由剩余的Patch构成,裁剪过程完毕.以上算法对封闭交线仍然适用,如图11所示.
/ T) @$ ~. _. J0 e; d* h! I# R; D
- E; F4 n, K' q9 h图 11 交线封闭情况的裁剪结果
[! \* v& O% k3 m2 Q6、算法评价和图形实例
2 [: r* _2 k, E9 N4 O3 s 本算法是以离散曲面为基础,针对两串离散网格链表进行的,因此对于任何曲面,只要经过曲面分割得到离散曲面就可以用本算法进行裁剪.裁剪的准确度依赖于曲面分割的精度和密度.考虑到曲面裁剪的自动性要求,本算法适合于两曲面仅有一条交线的情况,如果交线多于一条,可先把曲面分为几块后再裁剪,如球面开通孔即为这种情况. 该算法应用于注塑模CAD/CAE中的一个显著的优点是便于后续的有限元分析,裁剪后的拼合曲面直接满足公共边界处理的要求,可生成连通的有限元网格,该算法同样也适合于其它产品设计和应用有限元分析的领域.如图12所示的鼠标模型为两曲面经几次裁剪后拼接而成的曲面,图13为鼠标模型的网格划分结果,图14为鼠标模型的流动分析结果(流动前沿的等值线图).
& R) ]- \# e& @* B2 {# _& c# u7 Y9 S' n( ]+ Y C
. n: ]" h2 E. ^, g) y5 a6 z7 v
- V/ J/ @, p- z4 Y* T2 i5 Q* J0 w* e6 U3 S! b' F* ?* V) S# b. Q/ j$ G; s: q7 A" U8 E1 z3 I8 |- y! ?( `- J2 I) p7 p- ?
* l5 e4 r3 t: S9 ^6 F ; w* P; r P9 ~* O+ Z( T3 `" r
图 12 曲面裁剪后的鼠标造型 |
" D; i8 g+ {: l8 X " Q! \5 y0 q. o2 E. M i0 ?( p' _" |
图 13 鼠标模型的网格划分结果 |
( X9 w/ h0 e5 \8 i8 Z c7 c
4 T& A( R# b+ R" K3 ~图 14 鼠标模型的流动模拟结果
% ]' x! n+ F( Q" R1 T$ l 应用上述算法作者开发出的软件已应用于本实验室的注塑模具CAD/CAM/CAE集成系统中,实践证明该算法自动化程度高、速度快,并且稳定可靠。
* a- [) k' a4 t1 ~ |