找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 261|回复: 0

基于注塑模CAD/CAE的自由曲面的裁剪(上)

[复制链接]
发表于 2010-9-12 08:59:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转磨削论坛

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

×

介绍一种基于离散曲面的裁剪算法,该算法适用于注塑模CAD/CAE或其它产品设计和有限元分析的领域,实践证明该算法自动化程度高、速度快、稳定可靠.

$ l% `1 }) ^8 F) C+ H" {( I

1、引 言

+ ^6 F: G$ D: R1 k' b) P8 W

  在注塑模CAD/CAE中,自由曲面的设计与描述始终占有十分重要的地位.塑料制品种类繁多、形状各异,而且注塑成形是一次成形,所以要求注塑模CAD/CAE软件的几何造型系统具有较强的曲面处理能力,能够快速、方便地生成塑料制品图和模具型腔图.在实际工程中有许多产品的某些外表面不能或不便于用一张曲面表示,而用多张曲面构造一个产品的曲面模型时,某些曲面又有多余部分.因此,利用曲面裁剪技术把单张曲面不需要的部分裁剪掉或将多张曲面拼接后的多余部分裁剪掉,便可以得到所需的曲面模型.曲面裁剪不仅是构造产品曲面模型的重要手段,也是采用缝合技术构造曲面实体模型必备的操作.
  由于注塑模CAE分析要求尽可能方便、高效地构造出产品的几何模型,并且对裁剪曲面或曲面裁剪后拼接成的曲面进行网格划分时,要求能够处理公共边界的信息,即2个曲面在拼接处具有相同的离散边界,便于注塑模CAE后续的流动、保压和翘曲等有限元模拟分析,而对于曲面的精度允许有一定的误差,因此本文介绍一种基于离散曲面的裁剪方法.所谓离散曲面,是一类采用组成曲面多边形网的点、线、面及其拓扑信息完整的描述曲面.
  根据作者的研究和实践,认为基于注塑模CAD/CAE的曲面裁剪主要涉及以下问题:(1)曲面分割;(2)曲面求交;(3)曲面片的裁剪;(4)生成裁剪曲面的自动搜索算法.

. [; f! h9 r: a

2、曲面分割和离散曲面

2 ^: L8 }9 ^4 j$ m$ `. K2 U

  曲面分割是将任意一自由曲面,按照某一给定的分割算法进行不断的分割加密而成,每一次分割均生成一个比原来的多边形网更加致密的多边形网,其极限曲面是一张光滑曲面.在本文中采用文献[1,2]的分割算法,其中提出了平面度的概念,以平面度作为控制精度,当分割的次数使得多边形网与极限曲面之离差小于控制精度后,就不再细分,这时的多边形网便是一张离散曲面.

4 n* C& u( M/ c. Q K O

3、离散曲面求交

0 w" T/ H' C$ b9 ~8 p

  离散曲面的求交实质可归于一些小的平面多边形求交,对于控制精度高的曲面,相应的离散网格便很致密,小的平面片就很多,因此提高求交效率对整个曲面裁剪的效率非常重要.

$ D( ]) W- P) C4 `+ M

3.1 曲面数据的存储

! e5 I) M- ^ r# Q$ P

  曲面的数据存储如图1所示,分别用3个链表形成的网状结构存储曲面(Surface)、网格平面片(Patch)和顶点(Vertex)的数据,这种结构便于数据的查找,并且存储冗余小.如图2所示,一张曲面由n个Patch组成,如果分别存储每一个Patch的顶点信息,则曲面中间的一个结点就会被存储4次,边界上的点也会被存储2次(除角点外).而采用图1所示的存储结构,Vertex链表的结点与图2所示的网格结点一一对应,即只存储一次,而每个Vertex表中的结点与Patch表中的结点则形成一对多的关系.

" Y+ _* g, K3 [, o8 h- ?

8 \( e( d8 A& A- [9 i4 h# b) P$ Q# J

" H9 k* w0 y4 A- X2 G+ d5 g) E" f- ^ ^* T+ y/ H$ c0 ~" |" L- y1 V3 s8 E# k7 C+ |/ H* W$ L1 M: }
, l; F( |# C0 x! ^2 d. `0 g3 g7 j: W5 p

t105-1.gif (2094 bytes)

9 w5 u# \- }% ^& w D2 v

图1 曲面的数据存储方式

/ I; A% v) U8 b3 b) A

    t105-2.gif (6780 bytes) - k0 ]6 \% ]$ J+ F3 w+ L) c

2 离散曲面

( o- S* R1 N9 ?2 `6 n


3.2 求交算法
. v4 X$ f9 d, u t0 r0 W" N

  步骤1. 遍历2个曲面的数据链,获取几何信息,如平面方程、直线方程等.记录每个曲面中Patch之间的相邻关系,供裁剪后自动搜索时用.
  步骤2. 由空间坐标信息排除根本不可能相交的Patch对,避免不必要的求交运算,求取有可能相交的Patch的交点.
  步骤3. 交点的有效性判断.如图3所示,交点必须同时在Patch1所表示的多边形区域内和 Patch2的一条边界所在的线段内.后者判断很简单,对前者处理本文采用射线法[3].

5 C" G- D- P& ?' q1 D

t105-3.gif (989 bytes)

& C* Z; {" D5 R" t' l2 L6 P

图3 两平面片相交

9 m- X0 S4 e5 V

  步骤4. 交点排序.前面的Patch对相交时,记录下相交线段,便可通过线段顶点比较法将每个Patch内随机求出的交线排序,如图4所示.

- t( R! d4 n* n+ O9 ~! B7 j; X

t105-4.gif (803 bytes)

v" z2 V( t2 S- s. D

图4 平面片求交后交点排序

0 t1 J% R/ L' j6 z$ z

  步骤5. 处理交线通过Patch的顶点或边的特殊情况.

' e6 R4 X1 ~% {( W# n

循环处理完2个曲面链表中的每个Patch.

5 f+ Z4 W7 g7 Z+ Q7 U5 n$ ~8 F

$ C9 @9 u/ }3 I. d' [

4、曲面裁剪

0 {' @# h2 ?$ }7 m" P' {4 B: a

  为了使曲面裁剪具有自动化的能力,即在求交结束后就能自动分为要保留和要裁剪掉的2个部分,然后由用户交互取舍,而且要满足注塑模CAE中网格划分对公共边界的要求,作者设计了一种及时分片法,算法如下:
  步骤1. 对裁剪曲面中每个Patch在求交完毕后随即将其分割成2个或多个Patch,不论是2个或多个Patch,必须按一定规则将其分为2类,一类保留,另一类裁剪掉,因而称为及时分片法.如图5所示,一般情况下一个Patch被一分为二,则这2个新生成的Patch自然分为上述2.但在某些情况下,也可能被分为多个Patch,如图6所示.用逐次二分法将其分解为多个Patch后,本文采用交线包容法,同样可将这多个Patch分为2类,如图7所示.所谓交线包容法是将包含原Patch内所有交线的多边形作为一类,如图7(a)所示,其它的作为另一类,如图7(b)所示.

$ ~5 X' L- Y4 {' p, U$ k# A0 P w1 {

t105-5.gif (1110 bytes) ; u" E& l1 q; Y# G8 F

图 5 1个平面片裁剪后生成2个平面片

- Q5 V# U. U% | J: P

t106-1.gif (2197 bytes) & k- ~- J4 Z$ {, x

图 6 逐次二分法分解平面片

) u( x2 z) ~1 t/ F) f/ m

t106-2.gif (1157 bytes)

; V4 ]" s3 x2 @7 {( m# U. ]% D) D

7 交线包容法分类

7 x/ c6 j3 J& t* w* q' D7 Z

  步骤2. 将新生成的Patch加入到Patch链表中,去掉原Patch.
  步骤3. 处理如图8所示的特殊情况.一个Patch中出现内环,无法用2个多边形来描述分割后的图形,对这种情况本文采取加密离散网格的方法,避免出现内环.

2 H& x1 @! O+ z1 _) j

t106-3.gif (756 bytes)

1 L% j5 `. f, A0 P7 a8 ^: T# E

8 平面片内环情况

: f0 |3 ~6 P. g3 C+ y
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

中国磨床技术论坛
论 坛 声 明 郑重声明:本论坛属技术交流,非盈利性论坛。本论坛言论纯属发表者个人意见,与“中国磨削技术论坛”立场无关。 涉及政治言论一律删除,请所有会员注意.论坛资源由会员从网上收集整理所得,版权属于原作者. 论坛所有资源是进行学习和科研测试之用,请在下载后24小时删除, 本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权, 请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

中国磨削网

QQ|Archiver|手机版|小黑屋|磨削技术网 ( 苏ICP备12056899号-1 )

GMT+8, 2026-3-13 10:42 , Processed in 0.165313 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表