关于曲面的理解
各位曲面爱好者, 你们好。我阐述的曲面概念是结合了PRO/E 和UG 后做的比较完整的阐述,篇
幅比较大希望大家能够耐心看完并且喜欢。
曲面是物体的的一个体素,大家都该知道6 度空间上的点能够连成线,线的集合能构成面, 面再
构成实体零件。因此我将从头到尾的阐述下曲面。并且对一些技巧做阐述。 在各种3D 软件中大都有过点做的曲线,控制点曲线和Bezier 样条曲线等,曲面就是这些曲线构
成的, 我们可以把曲面看成布, 布上面有经纬线。而曲面的里面也有很多经纬线构成这些经纬
线我们称为U ,V 方向的样条曲面的边界就是U ,V2 个方向的样条之一
我们通常把U 方向称为行,V 方向称为列, 曲面也因此可以看做U 方向为轨迹引导线对很多V 方
向的截面线做的一个扫描。我们可以通过网格显示来看曲面的UV 方向曲线的走向,体由U-V 栅格
图示化表示。栅格由直线组成,这些线创建了与体曲率一致的一个网。栅格只是提供体的可见表
示的一种显示特征。U-V 栅格的密度和体的数学精度没有关系。栅格的密度是用户定义的,并且
可以修改它以最好地表示体。要正确地显示一个复杂的体需要很多栅格线,而一个平面体则需要
很少。UV 方向的曲线走向,也就是包括了曲线的介次决定了曲面的外型和光滑度。曲面另一个影
响质量的因素是曲面的介次。阶次是一个数学概念-它实际上是指用于描述曲面的多项式的阶次。
PRO/E 和UG 使用类似的概念来定义片体。每个片体都有一个U 向阶次和一个V 向阶次。
片体的阶次(在任一方向)必须在1 和24 之间。然而, 我们建议在创建片体时使用三次的(阶
次为 3)。创建低阶次的片体可使随后的操作(如加工及显示)更快地执行。使用高阶次的片体
则减少了把数据传送到其它可能不支持它们的系统的机会。同样,通过很多点创建高阶次的片体
会导致不可预见的结果。
对于高阶片体,要使片体的形状发生可感知的改变,必须把极点移动很长的距离, 从这方面而言
,高阶片体“更硬”。低阶次的片体更柔软, 并且趋向于更紧密地跟随它们的极点。
极点与片体的自由度有一些关联。要增加片体的自由度, 可以: 增加每个补片的点数(即阶次
)或者增加片体的补片数
补片是片体的一部分。使用较多的补片来创建片体将使您可以对片体的曲率有更多的局部控制。
当创建片体时,最好是将用于定义片体的补片数降到最小。限制补片数可改善下游应用程序的性
能并可产生一个更光滑的片体。
通常情况下PRO/E 系统内设总是曲面或曲线介次
而UG 则有可调整性,更灵活。不过PRO/E 可以利用重新造型的功能做曲面介次的调整。当然这个
面必须是在重新造型的环境下完成的,重新造型通常认为是逆向处理小平面造型的专用模块,但
这个模块做正向构面也是相当不错的,有兴趣的可以去了解下。想做好曲面就需要做好线,这个
道理我想大家是很清楚的,曲线多种多样包括如直线,圆,圆弧,二次曲线(抛物线,双曲线,
一般二次曲线), 样条(过点样条, 控制点样条,等)。其中自由曲线是最重要也是最难掌握
的。自由曲线的生成原理比较复杂,我先从最简单的线—线段开始说。
在下图中,线段上的任意点P 可以用线段的两个端点来表示,用线段两点式表示如下。其中@是记
做符号。
x-x1/x2-x1=y-y1/y2-y1 =︱PP1 ︱/︱P2P 1︱@t
其中T 是线段的参数,其植域通常规定为0~1 ,上式也就称为参数表达式。可将上面的式子改为
以下表达式。
又可以简化成P=(1-t )P1+tP 显然P1 和P2 控制了P 的位置,因此P1 和P2 为控制点。T 和(1
-T )也影响了P 的位置,反映P1 和P2 对点P 的贡献量, 因此我们称t 和(1-t) 为权重。线段这
种参数变化表达式为一介Bezier. 而2 阶Bezier 如下图。
如图所示的3 个点P1,P2,P3 我们按照前面一介Bezier 样条曲线的构造方法则P11 和P12 的表
达式如下,P11=(1-t )P1+tP2 P12=(1-t)P2+tP3 进一步,如果将P11 和P12 作为直线的2 个端
点起上面的任意点Pt 表达式如Pt=(1-t)P11+Tp12 最后得到
Pt=(1-t)*(1-t)*p1+2t*(1-t)
*p2+t*tp3 这个就是二介Bezier 样条曲线的表达式,依次类推, 我们可以得到对于N+1 个控制
点的Pi(i=0,1,2„„.n) 然后进行类似的插植构造,最终得到n 阶Bezier 样条曲线的表达式如下
:
因此自由曲面的构造可以是看作自由曲线的构造方法的扩展。
接下来我我们说说曲面曲线的连续性,在曲面的造型过程中,经常需要关注曲线和曲面的连续性
问题。曲线的连续性通常是曲线之间的端点的连续问题,而曲面的连续性通常是曲面的边线之间
的连续问题, 曲线和曲面的连续性通常有位置连续,斜率连续,曲率连续和曲率变化的连续等4
种常用类型。
位置连续:曲线在端点处连接或者曲面在边线处连接,通常成为G0 连续 斜率连续:在PRO/E 里面叫做相切连续,对于曲线的斜率连续,要求曲线在端点处连接, 并且两
条曲线在连接的秒年处具有相同的切向并且切向夹角为0 度。对于曲面的斜率连续要求曲面在边
线出连接, 并且在连接线上的任何一点,两个曲面都具有相同的法向,斜率连续通常称为G1 连
续
曲率连续性:通常称为G2 连续,对于曲线的曲率连续,要求在G1 连续的基础上,还要求曲线在
接点处曲率具有相同的方向,以及曲率大小相同。对于曲面的曲率连接要求在G1 的基础上还要求
两个曲面与公共曲面的交线也具有G2 连续,曲率误差是一个相对误差,如果两条曲线的连接点处
分别具有曲率R 和r 并且R>r ,那么曲率误差的计算方式为
Error(G2)=2*(R-r)/(r+R) 曲率误差
植最大为2 或者百分比表示为200%
曲率的变化率的连续:通常称为G3 流连续,对于曲线的曲率变化率连续,要求在曲线具有G2 连
续, 并且曲率梳具有G1 连续。对于曲面的曲率变化率连续同样要求具有G2 连续并且两个曲面与
公共曲面的交线也具有G3 连续。
既然知道了什么叫连续性后我们讲讲曲面的一些要素。我们以边界混合这个常用的功能说下参数
对齐。在做曲面的时候很多情况下出现很多短线连起来的边界,做混合的时候会出现很多碎面,
做了约束后会局部扭曲以及曲面退化。这些就是线条在PRO/E 的环境下参数对齐错误造成的。用
PRO/E 的网格显示功能看曲面的UV 曲线列我们不难看到U 或者V 并没有按照我们的意愿做流动。
前面我已经介绍过对于补片体越少曲面就越光滑,这里的补片数其实是3 片,而且很明显U 行列
的引导线并不相连,直线距离相差太大,而V 列曲线走向也不均匀, 这个就是默认的情况下参数
对其错误造成的。PRO/E 在边界混合的控制点选择项里面有3 个选择是自然, 弧长和可延展。以
及2 个默认就是点至点和段至段。其实是5 个选择,但经常看见有人选择了自然以后还在使用点
到点的或者段到段的强迫连接。这个是不可取的。
关于边界混合控制点
使用边界混合控制点可以控制曲面的形状。对每个方向上的曲线, 可以指定彼此连接的点。有两
种点可选作控制点:
? 用于定义边界的基准曲线顶点或边顶点
? 曲线上的基准点
单击右键, 并在快捷菜单中单击“下一链”(Next Chain) ,以离开未定义曲线的控制点并跳到
下一曲线。Pro/ENGINEER 为混合控制点的每个集都指定一个顺序编号。
混合控制点允许创建具有最佳的边和曲面数量的曲面,因此会有助于更精确地实现设计意图。清
除不必要的小曲面和多余边,可得到较平滑的曲面形状,避免曲面不必要的扭曲和拉伸。
自然(Natural) 使用一般混合例程进行混合,并使用相同的例程来重置输入曲线参数, 以获得最
佳的曲面逼近效果
弧长(Arc Length) 对原始曲线进行最小调整。使用一般混合例程来混合曲线沿定义曲线将等参数
曲线将要通过的点以相等的圆弧长间隔隔开。使用每条曲线的整个长度,被分成相等的曲线段并
逐段混合的曲线除外。
点至点(Point to Point) 逐点混合。第一条曲线中的点1 连接到第二条曲线中的点 1,依此类推
。(仅具有相等数量插值点的样条,属于参数强迫连接UV 曲线)要对齐点, 可从每个剖面线串
选择点,每个剖面线串的起始位置点对齐在一起。没有必要选择这些点将它们对齐。
如果选定的剖面线串包含任何尖锐的拐角,则建议在尖锐的拐角处使用“根据点”对齐来保留它
们。系统创建分开的面,它们在由尖锐的拐角构成的边上连接。也可以为自由曲面特征到尖锐拐
角的精确拟合定义一个值为0.00 的拟合公差,这对于相似外形的剖面线串来说很方便( 如:矩
形剖面线串到矩形剖面线串)。否则,创建一个高曲率、有光顺拐点的体去逼近这些尖锐的拐点
。任何接下来在这些拐点或面上执行的特征操作(例如:圆角、抽壳或布尔运算)可能会因为曲
率而失败。
段至段(Piece to Piece) 逐段的混合。曲线链或复合曲线被连接。(具有相等数量图元或段的任
意曲线、曲线链或复合曲线。参数连接性质也属于强迫)
可延展(Developable) 如果选取了一个方向上的曲线,则可进行切换,以确定是否需要可延展选
项。(输入的是两条相切连续曲线)。
这些都是PRO/E 的一些在边界混合对控制点的选择。但有时候不够用,不够自己满意。很多情况
下我们会再某个方向上做U 或者V 方向控制线,用来影响曲面的UV 方向控制线的走向,这个办法
很普及,我暂时不讲,我还是继续说说用边界混合里面用控制点的概念来控制UV 方向曲线走向的
其他方法。我们可以根据以下定义利用基准概念强迫划分区域达到对其效果 参数
沿定义曲线将等参数曲线要通过的点以相等的参数间隔隔开。使用每条曲线的整个长度。对于直
线来说是根据等距离来划分连接点, 曲线是根据等角度来划分连接点的距离 在指定方向上将点沿每条曲线以相等的距离隔开。这样会得到所有在垂直于指定方向矢量的平面
内的等参数曲线。体的宽度取决于定义曲线:体继续直到它到达一些曲线的终点为止。指定等参
数曲线放置的方向。在内部,系统构建与每个定义曲线相交的平面以获取等参数曲线所需的点。
我们可以自己做辅助面得到交点来达到强迫点对齐的效果
以橘黄色直线为方向做些过此直线的并法向基准平面和曲线相交得到的交点来控制曲面,剩余曲
面可以再继续补面,最大限度上减少随面带来的扭曲。
角度
在指定轴线周围将点沿每条曲线以相等的角度隔开。这样得到所有在包含有轴线的平面内的等参
数曲线。体的宽度取决于定义曲线:体继续直到它到达一条定义曲线的终点为止。
有V 方向曲线角度一致。
曲面是个大家很喜欢的工具,为了达到良好的连续,通常我们用约束来达到曲面的顺畅,但是我
们却忽视了PRO/E 提供我们的良好的一些辅助工具,例如N 侧面,大家都觉得它不实用,连续性
不好。以及曲面补片的划分不另人满意。但忽视了它的价值,N 册面在外型上可以说是几乎是我
们需要的那种样子,为什么不利用N 侧面作为我们的辅助面,然后在上面做些线,利用这些线来
完成我们真正想要的面呢。以及其他高级功能被我们忽视如曲面间混合,近似混合,从剖面混合
到曲面等这些都是很好的过度面工具,但点击率不是很高。
在这里不做具体阐述,以后我们会详细讲解。
关于曲面的理解
各位曲面爱好者, 你们好。我阐述的曲面概念是结合了PRO/E 和UG 后做的比较完整的阐述,篇
幅比较大希望大家能够耐心看完并且喜欢。
曲面是物体的的一个体素,大家都该知道6 度空间上的点能够连成线,线的集合能构成面, 面再
构成实体零件。因此我将从头到尾的阐述下曲面。并且对一些技巧做阐述。 在各种3D 软件中大都有过点做的曲线,控制点曲线和Bezier 样条曲线等,曲面就是这些曲线构
成的, 我们可以把曲面看成布, 布上面有经纬线。而曲面的里面也有很多经纬线构成这些经纬
线我们称为U ,V 方向的样条曲面的边界就是U ,V2 个方向的样条之一
我们通常把U 方向称为行,V 方向称为列, 曲面也因此可以看做U 方向为轨迹引导线对很多V 方
向的截面线做的一个扫描。我们可以通过网格显示来看曲面的UV 方向曲线的走向,体由U-V 栅格
图示化表示。栅格由直线组成,这些线创建了与体曲率一致的一个网。栅格只是提供体的可见表
示的一种显示特征。U-V 栅格的密度和体的数学精度没有关系。栅格的密度是用户定义的,并且
可以修改它以最好地表示体。要正确地显示一个复杂的体需要很多栅格线,而一个平面体则需要
很少。UV 方向的曲线走向,也就是包括了曲线的介次决定了曲面的外型和光滑度。曲面另一个影
响质量的因素是曲面的介次。阶次是一个数学概念-它实际上是指用于描述曲面的多项式的阶次。
PRO/E 和UG 使用类似的概念来定义片体。每个片体都有一个U 向阶次和一个V 向阶次。
片体的阶次(在任一方向)必须在1 和24 之间。然而, 我们建议在创建片体时使用三次的(阶
次为 3)。创建低阶次的片体可使随后的操作(如加工及显示)更快地执行。使用高阶次的片体
则减少了把数据传送到其它可能不支持它们的系统的机会。同样,通过很多点创建高阶次的片体
会导致不可预见的结果。
对于高阶片体,要使片体的形状发生可感知的改变,必须把极点移动很长的距离, 从这方面而言
,高阶片体“更硬”。低阶次的片体更柔软, 并且趋向于更紧密地跟随它们的极点。
极点与片体的自由度有一些关联。要增加片体的自由度, 可以: 增加每个补片的点数(即阶次
)或者增加片体的补片数
补片是片体的一部分。使用较多的补片来创建片体将使您可以对片体的曲率有更多的局部控制。
当创建片体时,最好是将用于定义片体的补片数降到最小。限制补片数可改善下游应用程序的性
能并可产生一个更光滑的片体。
通常情况下PRO/E 系统内设总是曲面或曲线介次
而UG 则有可调整性,更灵活。不过PRO/E 可以利用重新造型的功能做曲面介次的调整。当然这个
面必须是在重新造型的环境下完成的,重新造型通常认为是逆向处理小平面造型的专用模块,但
这个模块做正向构面也是相当不错的,有兴趣的可以去了解下。想做好曲面就需要做好线,这个
道理我想大家是很清楚的,曲线多种多样包括如直线,圆,圆弧,二次曲线(抛物线,双曲线,
一般二次曲线), 样条(过点样条, 控制点样条,等)。其中自由曲线是最重要也是最难掌握
的。自由曲线的生成原理比较复杂,我先从最简单的线—线段开始说。
在下图中,线段上的任意点P 可以用线段的两个端点来表示,用线段两点式表示如下。其中@是记
做符号。
x-x1/x2-x1=y-y1/y2-y1 =︱PP1 ︱/︱P2P 1︱@t
其中T 是线段的参数,其植域通常规定为0~1 ,上式也就称为参数表达式。可将上面的式子改为
以下表达式。
又可以简化成P=(1-t )P1+tP 显然P1 和P2 控制了P 的位置,因此P1 和P2 为控制点。T 和(1
-T )也影响了P 的位置,反映P1 和P2 对点P 的贡献量, 因此我们称t 和(1-t) 为权重。线段这
种参数变化表达式为一介Bezier. 而2 阶Bezier 如下图。
如图所示的3 个点P1,P2,P3 我们按照前面一介Bezier 样条曲线的构造方法则P11 和P12 的表
达式如下,P11=(1-t )P1+tP2 P12=(1-t)P2+tP3 进一步,如果将P11 和P12 作为直线的2 个端
点起上面的任意点Pt 表达式如Pt=(1-t)P11+Tp12 最后得到
Pt=(1-t)*(1-t)*p1+2t*(1-t)
*p2+t*tp3 这个就是二介Bezier 样条曲线的表达式,依次类推, 我们可以得到对于N+1 个控制
点的Pi(i=0,1,2„„.n) 然后进行类似的插植构造,最终得到n 阶Bezier 样条曲线的表达式如下
:
因此自由曲面的构造可以是看作自由曲线的构造方法的扩展。
接下来我我们说说曲面曲线的连续性,在曲面的造型过程中,经常需要关注曲线和曲面的连续性
问题。曲线的连续性通常是曲线之间的端点的连续问题,而曲面的连续性通常是曲面的边线之间
的连续问题, 曲线和曲面的连续性通常有位置连续,斜率连续,曲率连续和曲率变化的连续等4
种常用类型。
位置连续:曲线在端点处连接或者曲面在边线处连接,通常成为G0 连续 斜率连续:在PRO/E 里面叫做相切连续,对于曲线的斜率连续,要求曲线在端点处连接, 并且两
条曲线在连接的秒年处具有相同的切向并且切向夹角为0 度。对于曲面的斜率连续要求曲面在边
线出连接, 并且在连接线上的任何一点,两个曲面都具有相同的法向,斜率连续通常称为G1 连
续
曲率连续性:通常称为G2 连续,对于曲线的曲率连续,要求在G1 连续的基础上,还要求曲线在
接点处曲率具有相同的方向,以及曲率大小相同。对于曲面的曲率连接要求在G1 的基础上还要求
两个曲面与公共曲面的交线也具有G2 连续,曲率误差是一个相对误差,如果两条曲线的连接点处
分别具有曲率R 和r 并且R>r ,那么曲率误差的计算方式为
Error(G2)=2*(R-r)/(r+R) 曲率误差
植最大为2 或者百分比表示为200%
曲率的变化率的连续:通常称为G3 流连续,对于曲线的曲率变化率连续,要求在曲线具有G2 连
续, 并且曲率梳具有G1 连续。对于曲面的曲率变化率连续同样要求具有G2 连续并且两个曲面与
公共曲面的交线也具有G3 连续。
既然知道了什么叫连续性后我们讲讲曲面的一些要素。我们以边界混合这个常用的功能说下参数
对齐。在做曲面的时候很多情况下出现很多短线连起来的边界,做混合的时候会出现很多碎面,
做了约束后会局部扭曲以及曲面退化。这些就是线条在PRO/E 的环境下参数对齐错误造成的。用
PRO/E 的网格显示功能看曲面的UV 曲线列我们不难看到U 或者V 并没有按照我们的意愿做流动。
前面我已经介绍过对于补片体越少曲面就越光滑,这里的补片数其实是3 片,而且很明显U 行列
的引导线并不相连,直线距离相差太大,而V 列曲线走向也不均匀, 这个就是默认的情况下参数
对其错误造成的。PRO/E 在边界混合的控制点选择项里面有3 个选择是自然, 弧长和可延展。以
及2 个默认就是点至点和段至段。其实是5 个选择,但经常看见有人选择了自然以后还在使用点
到点的或者段到段的强迫连接。这个是不可取的。
关于边界混合控制点
使用边界混合控制点可以控制曲面的形状。对每个方向上的曲线, 可以指定彼此连接的点。有两
种点可选作控制点:
? 用于定义边界的基准曲线顶点或边顶点
? 曲线上的基准点
单击右键, 并在快捷菜单中单击“下一链”(Next Chain) ,以离开未定义曲线的控制点并跳到
下一曲线。Pro/ENGINEER 为混合控制点的每个集都指定一个顺序编号。
混合控制点允许创建具有最佳的边和曲面数量的曲面,因此会有助于更精确地实现设计意图。清
除不必要的小曲面和多余边,可得到较平滑的曲面形状,避免曲面不必要的扭曲和拉伸。
自然(Natural) 使用一般混合例程进行混合,并使用相同的例程来重置输入曲线参数, 以获得最
佳的曲面逼近效果
弧长(Arc Length) 对原始曲线进行最小调整。使用一般混合例程来混合曲线沿定义曲线将等参数
曲线将要通过的点以相等的圆弧长间隔隔开。使用每条曲线的整个长度,被分成相等的曲线段并
逐段混合的曲线除外。
点至点(Point to Point) 逐点混合。第一条曲线中的点1 连接到第二条曲线中的点 1,依此类推
。(仅具有相等数量插值点的样条,属于参数强迫连接UV 曲线)要对齐点, 可从每个剖面线串
选择点,每个剖面线串的起始位置点对齐在一起。没有必要选择这些点将它们对齐。
如果选定的剖面线串包含任何尖锐的拐角,则建议在尖锐的拐角处使用“根据点”对齐来保留它
们。系统创建分开的面,它们在由尖锐的拐角构成的边上连接。也可以为自由曲面特征到尖锐拐
角的精确拟合定义一个值为0.00 的拟合公差,这对于相似外形的剖面线串来说很方便( 如:矩
形剖面线串到矩形剖面线串)。否则,创建一个高曲率、有光顺拐点的体去逼近这些尖锐的拐点
。任何接下来在这些拐点或面上执行的特征操作(例如:圆角、抽壳或布尔运算)可能会因为曲
率而失败。
段至段(Piece to Piece) 逐段的混合。曲线链或复合曲线被连接。(具有相等数量图元或段的任
意曲线、曲线链或复合曲线。参数连接性质也属于强迫)
可延展(Developable) 如果选取了一个方向上的曲线,则可进行切换,以确定是否需要可延展选
项。(输入的是两条相切连续曲线)。
这些都是PRO/E 的一些在边界混合对控制点的选择。但有时候不够用,不够自己满意。很多情况
下我们会再某个方向上做U 或者V 方向控制线,用来影响曲面的UV 方向控制线的走向,这个办法
很普及,我暂时不讲,我还是继续说说用边界混合里面用控制点的概念来控制UV 方向曲线走向的
其他方法。我们可以根据以下定义利用基准概念强迫划分区域达到对其效果 参数
沿定义曲线将等参数曲线要通过的点以相等的参数间隔隔开。使用每条曲线的整个长度。对于直
线来说是根据等距离来划分连接点, 曲线是根据等角度来划分连接点的距离 在指定方向上将点沿每条曲线以相等的距离隔开。这样会得到所有在垂直于指定方向矢量的平面
内的等参数曲线。体的宽度取决于定义曲线:体继续直到它到达一些曲线的终点为止。指定等参
数曲线放置的方向。在内部,系统构建与每个定义曲线相交的平面以获取等参数曲线所需的点。
我们可以自己做辅助面得到交点来达到强迫点对齐的效果
以橘黄色直线为方向做些过此直线的并法向基准平面和曲线相交得到的交点来控制曲面,剩余曲
面可以再继续补面,最大限度上减少随面带来的扭曲。
角度
在指定轴线周围将点沿每条曲线以相等的角度隔开。这样得到所有在包含有轴线的平面内的等参
数曲线。体的宽度取决于定义曲线:体继续直到它到达一条定义曲线的终点为止。
有V 方向曲线角度一致。
曲面是个大家很喜欢的工具,为了达到良好的连续,通常我们用约束来达到曲面的顺畅,但是我
们却忽视了PRO/E 提供我们的良好的一些辅助工具,例如N 侧面,大家都觉得它不实用,连续性
不好。以及曲面补片的划分不另人满意。但忽视了它的价值,N 册面在外型上可以说是几乎是我
们需要的那种样子,为什么不利用N 侧面作为我们的辅助面,然后在上面做些线,利用这些线来
完成我们真正想要的面呢。以及其他高级功能被我们忽视如曲面间混合,近似混合,从剖面混合
到曲面等这些都是很好的过度面工具,但点击率不是很高。
在这里不做具体阐述,以后我们会详细讲解。