APP下载

异质零件模型设计可视化

2022-02-19杨继全施建平唐文来

机械设计与制造工程 2022年1期
关键词:顶点梯度彩色

杨继全,李 娜,施建平,唐文来,张 钢

(南京师范大学电气与自动化工程学院,江苏 南京 210023)

面向增材制造的异质零件模型可视化是其CAD模型表达及处理的重要手段。可视化交互便于设计和制造环节的材料映射和模型快速生成,使得模型设计更便捷高效。本文提出基于彩色四面体模型及色彩映射材料函数的模型[1-2]可视化方法。该方法既可用于彩色3D打印,也可用于多材料3D打印。可视化设计的第一步是对零件进行离散化处理,然后进行色彩与材料映射,最后构造出以色彩表示异质材料的CAD模型[3]。本文使用文献[4]和文献[5]给出的静态模型。

1 实体离散

可视化的第一步是把设计对象看作由体素单元构成,然后进行实体离散化。离散过程是设计和实现对象的材料实体分区可视化的基础。离散化方法包含以下3个关键步骤[6]。

1)异质零件按照线性一维梯度关系进行离散。

一维梯度关系离散即实体沿一维方向离散,以一维变化方向为轴得到实体分区并进行切片,经过该步骤,软件系统得到与实体相关的一系列切片轮廓,如图1(b)所示。

图1 异质零件离散化基本步骤

2)平面分区。

平面一维梯度关系离散即切片轮廓在平面内沿一维方向离散,经过这一步骤,软件系统得到一系列平行扫描线与切片轮廓的交点,切片及平面分区如图1(c)所示。

3)三维体绘制。

在以上两步的基础上采用某特定规则的体素根据需要填充实体表面和内部,如图2所示。

图2 三维体绘制实例

图3所示的是对一个三维模型进行离散,不同精度和体素(1 mm×1 mm×1 mm和 0.5 mm×0.5 mm×0.5 mm)下的非规则实体离散结果。

图3 三维模型在不同精度和体素下的实体离散结果

2 彩色文件格式

这里以3DP工艺为主要对象研究异质零件3D打印技术,3DP工艺往往采用印刷四分色(CMYK)格式的彩色文件作为打印对象。CMYK文件与计算机显示所用的三原色(RGB)文件可进行转换。用色彩代表材料做模型的时候,可以使用几种格式[7-9]。彩色图像在RGB色彩模式下是一个个像素点,当彩色图像由RGB色彩模式转换为CMYK 色彩模式后,RGB 色彩模式下的每一个像素点转变成对应 CMYK 色彩模式下打印喷头可识别的一个数据信息块,就是将一个像素点转换成为一个N×N的点阵,如图4所示。CMYK 色彩模式数据信息通过光栅图像处理器(RIP)技术转换成打印喷头可以识别的控制数据信号,根据接收到的信号,打印喷头喷出带有对应颜色的黏结剂,或者映射的不同材料。在一层二维截面黏结切割成形完毕后,打印喷头回到原点,工作平台沿z轴向下降设定距离,然后逐层喷射黏结成形,最终得到彩色三维制件。

图4 像素点转换成点阵的过程

目前应用于3D打印的彩色文件格式有CMYK、PLY、VRML97以及STL模型的改进格式等。在已有的彩色模型的基础上,切片过程也需要对应映射的彩色(材料)切片算法。

2.1 彩色PLY文件

图5所示为三维模型编辑显示软件MeshLab显示的一个PLY模型文件,该文件就是通过三维扫描得到的彩色三维人像。PLY格式文件的存储方式简单,适合彩色模型。

图5 MeshLab显示的一个PLY模型文件

PLY文件是一种用于存储多边立体模型的文件格式,主要提供了一个结构较为简单、程序容易实现,且可以广泛应用于多数常见模型的文件封装格式。该文件格式包含两种形式——ASCII和二进制形式,易于对数据进行改写、压缩存储,并可以实现快速的保存和加载。该格式可以在以图形为对象的程序之间进行转换,同时这种简单灵活的文件格式可以让使用者避免重复研究文件格式,节约开发的时间成本。

一个PLY文件包括对特定对象的描述,特定对象可以是设计的三维数字模型、建模数据、地形数据和辐射模型。对象属性包括颜色、表面、面向量、纹理坐标、透明度、确定的数据以及多边形正反面的不同属性。

PLY格式并不仅仅是一种普通的场景描述语言、着色语言或模型格式,它还包括变换矩阵、对象实例化、建模分层结构或对象的子部分。

2.1.1PLY彩色模型数据结构

一个典型的PLY对象文件定义在(x,y,z)三维空间中,由顶点的列表和顶点的索引描述构成的三角面片组成。大多数PLY文件包含的核心信息是顶点和面这两个“元素”,但在一个PLY文件中大部分数据内容都是元素的列表。在给定的PLY文件中的每个元素都有固定数目的指定“属性”。PLY文件中的两个核心元素主要描述的是在(x,y,z)三维空间中的顶点信息和每个面的顶点索引。在PLY文件中除了这两项信息之外,还可以创建新属性附加到其中一项信息后面。例如,颜色属性红色、绿色和蓝色可以与顶点元素相关联。新的属性被添加后,旧的文件数据不会发生变化。程序不能识别的属性会被忽略。在此之外,还可以创建新的元素类型并定义与该元素相关联的属性,这种新的元素可以是边缘、细胞(点到面的列表)或者材料(漫反射和镜面颜色与系数)。

一个典型的PLY文件的结构见表1。

表1 一个典型的PLY文件的结构

一个带颜色信息的PLY文件如下所示:

ply //文件说明

format ascii 1.0 //ascii,格式版本

comment author: anonymous //注释关键词说明,像其他行一样

comment object: a name //定义一个名字

element vertex 8 //定义为“vertex”(顶点)的元素,在文件中有8个

property float32 x //顶点包含浮点坐标“x”

property float32 y //y也是坐标

property float32 z //z也是坐标

property red uint8 //顶点颜色开始

property green uint8

property blue uint8

element face 7

property list uint8 int32 vertex index //每个面片的顶点数

element edge 5 //该模型里含有5条边

property int32 vertex1 //第一个顶点的索引

property int32 vertex2 //第二个顶点的索引

property uint8 red //从边的颜色开始

property uint8 green

property uint8 blue

end header //头文件结束

0 0 0 255 0 0 //顶点列表开始

1 1 0 0 0 255

3 0 1 2 //面片列表开始(从一个三角形开始)

4 3 7 4 0

0 1 255 255 255 //边列表开始(从白边开始)

3 0 255 255 255

2 0 0 0 0 //以一条黑线结束

2.1.2彩色映像变换

人的眼睛根据物体的反射光来判定颜色的差异,例如光源照在被观测物体上,光谱中的红光被反射进入人眼,因此人眼可以看到红色。而在喷墨打印中,必须使用减色法来定义颜色,也就是使用CMYK输出彩色值的多维表。将光源系统中的色彩(R、G、B)精确地转换为喷墨系统的色彩(C、M、Y、K)是影响喷墨品质的关键因素。以下为RGB三维色彩空间转化为CMYK四维色彩空间的程序:

C=255-R;

M=255-G;

Y=255-B;

K=C

K=K

C=C-K;

M=M-K;

Y=Y-K;

这个转化程序实现的颜色转变称为彩色映像变换。在不同的打印情况下,这种彩色映像变换会使用不同的参照值,例如在草稿打印模式中,部分普通色域的变换处理无法完成精确的数据转换,打印过程中会出现条带或颗粒的现象。这时就需要一个ICC文件对彩色映像变换构成的色彩颜色进行校对,根据喷射材质不同进行调整,得到RGB与CMYK色彩空间的比例转化。

2.2 彩色VRML97文件

2.2.1彩色VRML97格式

VRML(virtual reality modeling language)称为虚拟现实建模语言,于1994年被概念化,经历了1.0、1.0c、1.1和2.0几个版本后,最后于1997年1月由International Organization for Standard(ISO)对VRML2.0初稿规范书做了细微的修改后推出VRML97。它是一种基于文本的通用语言,可以用文字来描述可交互的三维世界和对象,还定义了3D应用中诸如光源、视点、动画、雾化、材质属性、纹理映射等大多数常见的概念。VRML的目标之一就是能够简单地将三维模型集成到虚拟环境中,通过几何、颜色和材质等信息将模型构造出来。所以VRML97是用来描述互动式三维物体与虚拟世界的界面语言,可用于网际网路与伺服端系统,另外,它也被大量应用于其他领域,如科学上或工业上的模型视觉化、多媒体娱乐效果、太空形体模拟等。由于VRML97可存储为ASCII/UTF-8码,其成为通用的交换编码格式。

2.2.2VRML97结构

VRML97是一种用文字描述虚拟世界的语言,每个文件都以“#VRML V2.0 utf8”开始,其中“VRML”说明是VRML文件;“V2.0”说明文件遵循VRML规范2.0版本;“utf8”表示文件使用的是支持多种语言的国际UTF-8字符集。在VRML97文件中,节点是最基本的语法单位,一个VRML97文件由许多个节点层层嵌套构成。每个节点包含对三维点、线、面及实体的几何和颜色等描述。不同的形状(shape)由一系列节点构成,这些节点构成一个节点组;而更复杂的形状则由数个节点组构成,所以VRML97文件采用一种树状结构来表达模型,如图6所示。

图6 VRML97 树状结构

在VRML97中,除了IndexedFaceSet方式,还可采用其他的一些方式来保存模型的几何信息。而IndexedFaceSet方式是最常用的方式,因为它能保存任何形状模型的信息,并已被广泛用于CAD软件中,如SolidWorks和UG等。

2.2.3储存颜色信息

在模型表达的过程中,颜色可以作为一种材质属性来增强表达的效果,一方面可突出模型的材质属性,另一方面还能增强模型的视觉效果。在现存的数据接口中,有几类数据接口可以实现既保存几何类数据,又保存颜色材质类数据。例如,STEP(standard for the exchange of product model data)数据接口是一种用于不同计算机描述的产品模型之间进行数据交换的国际标准,该接口既能保持产品模型的几何类数据,又能保存材质属性这类数据信息。但是这样的STEP文件往往太大。另外,由于文件结构方面的特点,从文件中提取几何及颜色数据相当困难,因此这种数据接口不能便捷地用于快速成形系统中。而VRML97因为数据结构简单,所以可以很好地被应用到快速成形系统中。VRML97通常采用RGB形式保存24位真彩色,也可用HSB模式,现已被广泛地应用于Web方面来表达三维物体。

在采用VRML97文件格式表达三维模型时,主要有3种定义和保存模型颜色的方式,分别为模型整体上色、模型表面上色和模型表面纹理贴图。下面介绍模型整体上色和模型表面上色。

1)模型整体上色。

这种方式采用Material节点为整个模型定义单一的颜色。该节点包括3个域值:EmissiveColor(散射光)、DiffuseColor(漫射光)、SpectualColor(环境光),以打光的方式来定义模型的颜色。域值使用正规化的RGB颜色表达,其值为0.0到1.0范围内的浮点数。图7所示为DiffuseColor=(0.75,0.0,0.0)时的模型示例。

图7 整体上色模型

2)模型表面上色。

在IndexedFaceSet节点中包含着一个Color子节点,在Color子节点中保存着多组RGB颜色数据,用来为实体模型的表面添加颜色。因为Material节点也能用于表达模型颜色,所以规定当存在两类节点同时表达模型颜色时,以Color节点优先。该方式表达模型颜色时存在两种显示方式,由IndexedFaceSet节点中的ColorPerVertex参数控制,当参数值为FALSE时,以面来定义颜色,无渐变效果,整个面为单一颜色,效果如图8(a)所示;当其值为TRUE时,以顶点来定义颜色,顶点与顶点之间利用内插法来达到颜色渐变的效果,如图8(b)所示。在IndexedFaceSet节点中,还存在一个ColorIndex子节点,节点域给出一系列的索引值,根据这些索引值,可以在Color子节点中找到各三角面片的颜色数据。

图8 表面上色模型

2.3 STL文件的色彩映射

STL文件格式简单,只能存储三维物体的几何信息,并不支持颜色信息。进行STL文件的色彩映射首先要采集图片的颜色信息,将图片颜色信息映射到三维模型上,然后生成相应的G代码,发送给下位机[10]。一般经过3个步骤:首先改进STL格式使其能够存储三角面片颜色信息;其次根据三维模型的不同颜色区域进行边界划分和区域颜色填充;最后将颜色信息存入改进的STL文件中。

STL文件并不存储颜色数据,为了将颜色信息映射到模型上,解决模型色彩显示的问题,需要采集图片的RGB颜色信息,RGB属于发光配色,是根据颜色发光的原理来设计的。在RGB模式中,R代表红(red)光、 G代表绿(green)光、B代表蓝(blue)光,每种光的亮度取值为0~255。对这3种色彩的亮度值进行调配组合,可产生新的像素颜色,从而形成更多颜色。

以Bitmap类型图形为例,首先使用Bitmap类方法绑定需要载入的图像格式文件(bmp)。

定义Bitmap后,分别获取图像的像素宽和像素高,以及像素点位置(x,y)的颜色信息。

然后,分析绑定载入的STL文件的顶点数据,对x坐标和z坐标数据进行比较,获得模型中x坐标值和z坐标值的最大值和最小值,从最大值和最小值的绝对差得到模型宽和模型高,存储计算出的对应像素点颜色数据,再用OpenGL库绘制三角面片,同时加入对应的颜色数据。图9所示为使用载入图像映射,经网格细化后的三维模型的彩色STL模型。图9(a)、(b)所示是在传统STL模型基础上直接进行色彩重构形成的彩色STL模型,图9(c)、(d)表示了单个STL面片内的色彩分布(即材料分布)。图9(c)、(d)所示的色彩分布要更为精细。

图9 彩色STL模型网格细化

3 材料设计可视化

3.1 材料与颜色的映射

对于细化后的异质实体模型的每个微四面体,可以把其颜色分布看作呈梯度变化的空间体,位于每个微四面体表面处的颜色分布由其所在的三角面片的3个顶点的颜色值通过三线性插值平均值法求得(图10(a));而微四面体内部的颜色分布则由其4个节点的颜色值通过式(1)所示的四线性插值平均值法求得(图10(b))。

图10 四面体颜色分布计算

(1)

3.2 梯度功能材料插值算法

3.2.1一维梯度功能材料属性

具有一维梯度功能材料属性的几何体主要是各类线(线段、曲线等,如图11所示)。由于本文采用的成形单元为微四面体,因此这里首先考虑线段的一维梯度功能材料属性。对于线段而言,其材料从起点到终点呈线性梯度变化,可以采用一维线性插值得到线段上任意一点处的材料属性[6]。某点P的材料插值算法为:

mp=k1m1+k2m2+…+knmn

(2)

式中:mi为i种原材料位置点;ki为插值点P和原材料位置点mi分布距离函数。

图11 线段的一维梯度功能材料属性

3.2.2二维梯度功能材料属性

具有二维梯度功能材料属性的几何体主要是各类平面,如图12所示。显而易见,它是由具有一维梯度功能材料特征的线段组成的。

图12 矩形的二维梯度功能材料属性

对于矩形而言,其材料从起始边到终止边呈线性梯度变化,可以采用双线性插值(内插)得到其内部任意一点处的材料属性。

对于梯度功能材料矩形区域,假设起始边为ab,对应的坐标为(xa,ya,za)和(xb,yb,zb),终止边为cd,对应的坐标为(xc,yc,zc)和(xd,yd,zd),渐变边ab上任意一点R1,对应的坐标为(x1,y1,z1),渐变边cd上任意一点R2对应的坐标为(x2,y2,z2),则矩形内部任意一点P(x,y,z)的梯度功能材料属性可以用下面的插值公式得到。

x方向上的一次线性插值:

R1=k1b+k2c

R2=k3a+k4d

(3)

y方向上的二次线性插值:

P=k5R1+k6R2

(4)

插值结果与插值顺序无关,不论先插值x方向还是后插值x方向,所得到的矩形内部任意一点的梯度功能材料属性是相同的。

3.2.3三维梯度功能材料属性

具有三维梯度功能材料属性的几何体主要是各类三维实体,这是梯度功能材料实体表示算法的关键,因为要想加工具有梯度功能材料属性的零件,首先要能够表示具有梯度功能材料属性的三维模型(实体)。

此处主要考虑长方体的三维梯度功能材料属性(图13)。显而易见,它是由具有二维梯度功能材料属性的矩形组成的,并且可以采用三线性插值的方法得到其内部任意一点处的梯度功能材料属性[12]。

图13 长方体的三维梯度功能材料属性

对于梯度功能材料长方体区域,假设下表面QaQbQcQd上任意一点P1对应的坐标为(x1,y1,z1),上表面上任意一点P2对应的坐标为(x2,y2,z2),则长方体内部任意一点S(x,y,z)的梯度功能材料属性可以用下面的插值公式得到:

s=k6P1+k7P2

(5)

三维梯度功能材料属性插值结果与插值顺序无关。

4 彩色STL模型材料映射可视化

彩色STL文件用于轮廓的材料赋值。对于内外材料一致的对象,可用文献[4]的方法直接得到内部材料。

4.1 STL 文件的材料赋值

为了得到平滑曲面,材料的过渡区需要采用具有更高精度的数据模型,所以对模型进行局部细化,既可以提高整体工作效率,又可以提高精度,减少颜色突变和表面的毛糙。

1)局部细化。

进一步对文献[4]细化模型进行局部细化,如图14所示。

图14 实体模型细化

2)建立彩色模型。

根据材料数量,选择颜色数量,按文献[4]介绍的方法进行彩色模型设计。以三原色为例,制作的模型如图15所示。

图15 单色及彩色STL实体模型

4.2 材料映射

通过建立与三维结构空间相对应的三维材料空间映射函数,即在结构特征的基础上,分别将材料特征赋予三角面片内的各顶点,三角面片内的微细材料分布按照该映射函数来确定,从而为确定异质零件材料CAD模型的外表面和实体内部的结构信息及材料信息奠定基础。该映射函数为:

(6)

式中:Pg是位于异质零件几何域Ωg中的任一空间几何点的坐标信息(Ωg为E3的子空间);Pm是位于异质零件材料域Ωm的材料信息(Ωm为Ek的子空间);参数αi表示该点处共k种材料中的第i种材料所占的材料分量(或称权重系数),αi=0表示该点不含该种材料,αi=1表示该点有且只有该种材料。

三角面片材料映射过程如图16所示,首先是三角面片的色彩与材料的映射,如图16(a)、(b)所示,然后是零件材料的确定,如图16(c)、(d)所示。

图16 外轮廓材料赋值及映射

5 结束语

本文介绍了一种实体非规则离散化方法,包括一维体离散、二维平面离散和三维体绘制,给出了PLY、VRML97格式和STL文件的色彩映射方法实现可视化,给出离散单元在多维材料梯度变化下的材料属性计算方法,可有效、合理地计算出不同离散单元本身的材料属性,对STL模型的材料映射可视化方法进行了详细的介绍,使用色彩信息映射材料,是异质零件设计的有效方法,同时也便于可视化。

猜你喜欢

顶点梯度彩色
带非线性梯度项的p-Laplacian抛物方程的临界指标
彩色的线
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
过非等腰锐角三角形顶点和垂心的圆的性质及应用(上)
有那样一抹彩色
一个具梯度项的p-Laplace 方程弱解的存在性
彩色的风
基于AMR的梯度磁传感器在磁异常检测中的研究
基于数字虚拟飞行的民机复飞爬升梯度评估
数学问答