999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于STL模型的解析處理和幾何特征精度評價研究

2019-07-26 09:25:32徐思遠楊偉群
制造業自動化 2019年7期
關鍵詞:面片公差頂點

徐思遠,楊偉群

(北京航空航天大學 機械工程及自動化學院,北京 100191)

0 引言

3D打印技術(3D Printing),也被稱為增材制造技術(Addtive Manfacturing,AM)。美國材料與試驗協會(ASTM)于2009年成立了3D打印技術委員會(F42委員會),該委員會隨后給出了3D打印技術的明確定義:3D打印技術是一種與傳統的材料加工方法截然相反,基于三維CAD模型數據,通過增加材料逐層制造的方式。

由于STL模型文件是多數快速原型系統所應用的標準文件類型,在不同平臺轉換時通用性更高,故對該類型文件的研究顯得尤為重要。STL文件格式簡單,具有高可重用性,高性能,高移植性,跨平臺的優點。但同時也正因為格式簡單造成了存儲的信息不夠,其中的拓撲結構信息、尺寸信息、特征信息都需要利用反向工程求解。本文基于STL模型文件,重建模型拓撲結構、進行模型缺陷檢測、提取擬合模型特征并進行公差的計算,并提出一種可以應用于3D打印技術的質量表征技術。

1 重建STL模型拓撲結構

1.1 STL文件介紹

STL(Stereolithography)是由3D Systems公司開發一種文件格式,最早出現在該公司開發的光固化成型技術的CAD軟件中。STL格式將零件的表面分解為無數的小三角面片,每個三角面片有三個頂點和一個法向量組成,法向量垂直于三角面片指向零件外側。如圖1所示,圖1(a)是三角面片的數據結構:法向量和頂點都是由笛卡爾坐標系中x、y、z三個坐標組成,在三角面片的內部存儲中第一個是法向量,隨后是三個頂點,頂點的排列順序沒有規定。圖1(b)是三角面片的示意圖。

圖1 STL文件中的三角面片

1.2 重建拓撲結構

由于三角化算法的局限性,導致STL數據模型有以下不足:用小三角形面片近似實體表面降低了精度;因STL模型中各三角形面片間沒有拓撲信息,三角形面片間的公用結點需要多次存儲;沒有表示STL數據模型三角形面片之間的鄰接關系;為提高精度多個三角形面片進行近似時,很可能出現某個頂點的分離。

為了在缺陷檢車和特征擬合階段可以高效的訪問到模型的面片拓撲信息,必須重新建立模型的拓撲結構,保存點、線、面的鄰接關系、所屬關系。圖2是點、線、面的數據結構。

圖2 點、線、面的存儲數據結構

從數據結構中可以看出,在點、線、面的數據中各自存儲了所屬的上級特征和所包含的下級特征,建立了點-邊關系、點-面關系和邊-面關系,得到了模型數據的拓撲關系,為分析算法提供了數據結構基礎。

由于一個三角面片中含有三個頂點,每一個頂點又可以存在于不同的若干個三角面片中,因此有頂點的重復存儲,從STL文件中讀出的三角面片頂點數據是冗余的,這樣會浪費存儲空間,也有可能造成數據的不一致錯誤,因此在建立拓撲結構的過程中,完成了冗余點的剔除,使得算法更加簡潔高效。

2 模型缺陷檢查

為了保證擬合程序的順利進行,必須確保STL模型的正確性。所以對模型的缺陷檢查尤為重要,本章闡述了STL模型文件的常見缺陷及檢測算法。

2.1 STL模型缺陷描述

STL模型是通過對三維實體模型進行表面三角面片離散得到的,只能在一定精度上實現與理論模型的配準。在CAD造型中,文件常常需要在多個CAD軟件之間進行轉換。由于軟件之間實現方式的差異以及二進制文件中由于數據精度造成的四舍五入偏差,STL文件往往會出現各種各樣的缺陷及異常。這會在文件處理和打印處理時造成異常,甚至直接反映在打印成品上,造成質量缺陷。

STL模型需要遵循以下規范:1)共定點規則,三角面片需要與鄰近面片有重合的兩個頂點;2)取向規則,面片的法向量必須遵循右手定則,并且不可以指向實體內部;3)充滿規則,三角面片必須連續充滿實體表面。

在此規范基礎上,STL模型常見的缺陷有空洞、法向量反向、縫隙與重疊、錯位、多余、不共頂點等。圖3為常見缺陷示意圖。

圖3 常見缺陷示意圖

2.2 STL模型缺陷檢測

1)法向量反向:由于三角面片中頂點記錄順序混亂,有可能造成法向量的錯誤,以至于實際的法向量與已經記錄的三角面片的法向量不一致的情況出現,因此有必要設計算法檢測法向量反向的錯誤。

由于法向量嚴格遵守右手定則,故可以根據三頂點確定的符合右手定則的向量與文件中的法向量比較,方向一致則為正確的法向量。首先由三個頂點得到兩個向量,計算兩個向量的叉積可得到復合右手定則的法向量。將得到的法向量與原法向量進行點積計算,若結果大于零則可確定該處法向量沒有發生反向錯誤。依次計算每個三角面片的法向量。

2)懸邊和懸面檢測:懸邊是由于數據誤差或面片丟失導致所屬面只有一個的邊。懸面是由于三角面片丟失造成連接面少于三個的面片。由于拓撲關系的建立,這兩個缺陷的檢測相對容易。只需要將邊結構中的e_faceId.size()和面結構中的neighborFaceId.size()取出來判斷即可。

3)面間裂縫和空洞檢測:這類缺陷是由于計算誤差或面片丟失造成的。對于裂縫和空洞,首先他們的邊都是懸邊。根據前文可以從懸邊缺陷中得到,其中,空洞是首尾相連構成的一個環。用模型中所有的懸邊構造一個無向圖,通過無向圖的廣度優先遍歷,可以得到頂點序列,然后再找出屬于空洞的邊,懸邊數組中去除空洞邊就是裂縫邊了。

3 擬合幾何特征

3.1 幾何特征數據點的提取

提取屬于某個特征的數據點的總體思路是:先獲得一個屬于該幾何特征的三角面片,然后遍歷這個三角面片的相鄰三角面片,從中找到同樣屬于該幾何特征的三角面片,依次遞歸尋找該三角面片的相鄰三角面片中屬于當前幾何特征的三角面片,直到找到所有的三角面片。然后從找到的所有三角面片提取出不重復的所有數據點。即是所有屬于當前幾何特征的數據點。

1)棱邊要素數據點的提取。如圖4是STL模型中兩個平面相交形成的棱邊,圖4(a)是STL模型渲染圖,圖4(b)是STL模型示意圖,圖4(c)是理想平面要素。本文以圖4(b)中所示的一組相鄰的三角面片作為棱邊要素,棱邊要素的數據點是這些三角面片所包含的不重復的點。圖4(c)中要提取的數據點屬于平面F1、F2相交形成棱邊,、分別是這兩個平面的法向量,朝向幾何體外側。要提取的三角面片需要滿足以下兩個條件:

(2)三角面片在棱邊法向量上的投影在棱邊的起點終點之間。

圖4 STL模型中的棱邊

2)平面要素數據點的提取。按照前面介紹的思路,第一步先從紅黑樹中提取一個屬于平面要素的數據點。找第一個數據點的方法是先在理論模型中取理想平面上一點,再在STL模型中找與之距離最近的三角面片。之所以找最近的三角面片,不直接找最近的點是因為在STL模型中三角片的數量遠遠少于頂點的數量。在理想模型中取點時一般取平面中心的點,這樣可以保證在STL模型中與之最近的點同樣屬于該平面。下一步是從面紅黑樹中讀取三角面片的相鄰三角面片,并判斷相鄰三角面片是否屬于該平面。相鄰三角面片滿足以下條件的可以認為屬于該平面:

(1)把理想平面邊界和三角面片投影到坐標面內,該三角面片在該平面內的投影在平面邊界投影的范圍內;

(2)該三角面的法向量與理想平面的法向量成小角度。

如圖4所示,t1和t2是兩個三角面片,t1'和t2'分別是它們在坐標平面的投影,一個在平面邊界投影范圍內,另一個在平面邊界投影的范圍外,應用條件一可知t1屬于該理想平面,t2不屬于該理想平面。在選擇投影坐標平面時,遵循使平面投影的面積最大原則。平面法向量那個方向的分量絕對值最大,說明垂直該分量的坐標面即為所選坐標面。

圖5 平面在坐標面內的投影

3)圓柱面要素數據點的提取。提取圓柱面要素的數據點同樣是先提取屬于當前圓面要素的三角面片,然后從中找出所有不重復的點。凡是屬于圓柱面的三角面片需要滿足以下三個條件:

(1)三角面片到理想圓柱面軸線的距離近似為理想圓柱面的半徑;

(2)三角面片的法向量與理想圓柱軸線夾角近似等于90°;

(3)三角面片應當位于理想圓柱面上下底面之間。

3.2 幾何特征的擬合

擬合幾何特征的過程可以看做是求解方程組的過程:加入某個幾何特征上的點都滿足f(p,x)=0,其中x是未知變量,x=(x1,x2,…,xn)T∈Rn,p是測量點,p=(px,py,pz)T∈R3。代入m個測量點后得到一系列方程組:

在用最小二乘法擬合特征時,該方程組是非線性方程組,解非線性方程組的方法有牛頓法[44]、高斯牛頓法、Levenberg-Marquardt(L-M)法,其中應用最廣的還是L-M法。L-M法,中文名稱列文伯格-馬夸爾特法,是對高斯牛頓法的一種修正,加快了收斂速度[45]。使用LM法進行最小二乘尋優,關鍵是適當目標函數和合適的初始值。

1)空間直線的擬合。空間直線的點向式方程如下,其中點P0(x0,y0,z0)是直線上任意一點,向量(m,n,p)是直線的單位法向量:

那么點(x,y,z)到該直線的距離為:

給定一組N個數據點{(xi,yi,zi),i=1,2,…,N},優化目標函數為:

變量共有5個:x0、y0、z0、m、n,式中p用代替。擬合結果獲得直線上一點的坐標和直線單位法向量。

2)平面擬合。用平面上一點P0(x0,y0,z0)和平面的單位法向量(m,n,p)來表示任意平面,若P(x,y,z)是平面上任意點,那么垂直:

那么點P(x,y,z)到該平面的距離為:

給定一組N個數據點{(xi,yi,zi),i=1,2,…,N},優化目標函數為:

變量共有5個:x0、y0、z0、m、n。擬合結果獲得平面上一點的坐標和平面的單位法向量。

給定一組N個數據點{(xi,yi,zi),i=1,2,…,N},優化目標函數為:

變量共有6個:x0、y0、z0、m、n、R,式中p用代替。擬合結果獲得圓柱中心軸線上一點的坐標和軸線的單位法向量。

3.3 公差的計算

在計算多幾何要素公差的某些公差項目,比如線性尺寸公差的定義是兩個提取平面的局部尺寸,在計算局部尺寸時需用到擬合導出中心平面,而擬合導出中心平面按照定義是兩個平行的擬合組成平面的中心平面,雖然這兩個平面的理想平面是平行的,但實際上兩個組成平面的擬合平面不一定平行,我們還是用平面上一點和平面的單位法向量來描述一個平面,那么在兩個擬合提取平面上各取一點,它們的中點在擬合導出中心平面上,法向量為兩個擬合提取平面法向量的角平分線方向的向量。圖6是計算擬合導出平面的過程。平面F1、F2是兩個提取組成平面,F3是要求的擬合導出中心面。點p1、p1分別是擬合組成平面F1、F2上一點,向量、分別是F1、F2的法向量。點p3是點p1、p1中點,向量是、的角平分線。擬合導出中心面F3由點p3、單位向量來描述。

圖6 擬合導出平面

在計算含有基準的公差項目時,基準的位置應當是幾何要素的理想位置,但是由測量得到數據點無法知道理想位置,因此用擬合得到的幾何要素作為理想幾何要素。

在計算公差時需要大量計算空間直線與三角面片集合(或者點云)的交點,比如求點到提取平面的距離,求兩平面間距離時的局部尺寸等等。計算直線與三角面片集合(點云)的方法有很多種,本文采取的方法如圖7所示,已知擬合平面F,空間直線L,交點為P,在平面的點云數據中搜索找到離點P最近的三個點p1、p2、p3,這三個點可以組成一個三角面片,三角面片的中點是p',p'即是直線L與平面的實際交點。

圖7 直線與平面交點

求點p的過程如下,已知平面F上一個點P1(P1x,P1y,P1z),法向量為(n1x,n1y,n1z),直線上一點P2(P2x,P2y,P2z),法向量(n2x,n2y,n2z)。直線的參數方程為:

平面的點法式方程為:

解上面三個方程得到:

把t代入直線方程得到交點坐標。

4 STL模型可視化

STL數據模型可視化的實現是在線服務以及加工中的一個重要環節。模型可視化功能的實現有助于對STL文件進行診斷,良好的模型顯示效果對客戶的直觀感受及正確的選擇實體的切片方向有積極的效果。本次設計充分利用Three.js卓越的渲染能力和交互使場景處理能力,在WEB前端實現STL數據模型的可視化。如圖8是加載完成的STL模型。

圖8 加載完成的STL模型文件

Three.js為用于3D場景渲染的Java Script開源庫,并且由于其具有極強兼容性,支持加載多種式的文件,所以以Three.js引擎作為工具對STL模型進行加載和渲染。Three.js庫中包含許多個工具文件,每一個文件中都封裝著完成特定功能的方法。Three.js文件是Three.js引擎中使用頻率最高的工具文件,其中封裝了調整場景、攝像機和材質的相關方法,可以方便快捷地對渲染場景進行初始化。Three.js引擎發展至今已經有了多種加載器,可以支持JSON、OBJ、STL、CTM等多種格式。

圖9 引入JavaScript文件

使用Three.js引擎對STL模型進行讀取之前,首先要引入必要的JavaScript文件,如圖9所示,STLLoader.js是STL文件對應的加載器文件,文件中封裝了讀取STL二進制文件和STL文本文件數據并初始化網格體的方法;TrackballControls.js是控制模型視角變換的函數庫文件;AsciiEffect.js是添加ASCII動畫效果的js文件。

如圖10所示,依次通過初始化渲染場景(設置相機位置、光源位置及屬性等)、加載STL文件、渲染計算等步驟實現STL模型的可視化。其中scene是一個場景容器,用來跟蹤并保存所有需要渲染的物體。

圖10 初始化流程

5 結果與探討

本例所用的機器采用先臨三維科技公司自主研發的Shining3D-Scanner系列三維掃描儀。使用激光掃描儀掃描打印好的組件得到STL模型,本例中命名為model.stl。使用STL模型解析算法和錯誤檢測算法對模型進行分析,得到的模型信息結果和錯誤信息結果如圖11所示。其中的反向面片、殼體和島孔錯誤使用Magics軟件處理,由于微小面片對本例分析不會造成影響,故不考慮該問題。

圖11 模型信息和錯誤信息

本例選取了尺寸公差、平行度公差、平面度公差作為特征擬合的檢測項目。如圖12所示為幾何精度參數檢測界面和檢測結果。使用PMI標注功能,將檢測結果直接標注在三維零件上。其中綠色標注代表符合公差要求,紅色標注代表超出公差要求范圍。

圖12 幾何精度參數檢測結果

6 結論

近年來3D打印技術受到了廣泛的關注,但是在3D打印技術缺乏有效的數字化質量表征技術,嚴重阻礙了3D打印技術的推廣應用。本文針對該問題系統研究了基于STL模型的數字化模型數據分析、質量表征參數,從幾何精度、表面質量和其他質量參數三個方面進行了深入研究,為產品質量數字化檢測提供了新的思路。

猜你喜歡
面片公差頂點
過非等腰銳角三角形頂點和垂心的圓的性質及應用(下)
中等數學(2021年9期)2021-11-22 08:06:58
初次來壓期間不同頂板對工作面片幫影響研究
關于頂點染色的一個猜想
山東科學(2018年6期)2018-12-20 11:08:58
帶有中心值的百分數的公差表示方式
公差里的“五朵金花”
甜面片里的人生
幸福家庭(2016年3期)2016-04-05 03:47:08
帶有中心值的百分數的公差表示方式
青海尕面片
飲食科學(2014年10期)2014-10-29 16:58:38
老伴逼我搟面片
公差原則的分析和形位公差的計算
主站蜘蛛池模板: 四虎永久在线| 亚洲午夜国产片在线观看| 爽爽影院十八禁在线观看| 免费a级毛片18以上观看精品| 2020国产免费久久精品99| 色天天综合| 在线观看免费黄色网址| www.99精品视频在线播放| 69精品在线观看| 国产精品久久久久鬼色| 久久大香伊蕉在人线观看热2| 国产精品福利在线观看无码卡| 久久久久夜色精品波多野结衣| 国产美女在线免费观看| 国产一二三区在线| 91精品人妻互换| 国语少妇高潮| 高潮毛片无遮挡高清视频播放| 国产剧情国内精品原创| 奇米精品一区二区三区在线观看| 在线另类稀缺国产呦| 亚洲一区第一页| 亚洲人视频在线观看| 波多野衣结在线精品二区| 熟女日韩精品2区| 亚洲黄色高清| 成人a免费α片在线视频网站| 狠狠色婷婷丁香综合久久韩国| 中国国产一级毛片| 国产美女免费| 一本一道波多野结衣一区二区 | 国产精品亚洲一区二区三区z| 国产高清在线精品一区二区三区| 国产成人免费观看在线视频| 久久无码av一区二区三区| 亚洲av无码人妻| 暴力调教一区二区三区| 韩国福利一区| 美女被躁出白浆视频播放| 99热6这里只有精品| 国产精品思思热在线| 国产精品永久在线| 九九热精品在线视频| 久草网视频在线| 国产在线视频福利资源站| 欧亚日韩Av| 国产剧情一区二区| 欧美高清国产| 国产精品xxx| 国产丝袜精品| 亚洲91精品视频| 国产91精品调教在线播放| 国产性爱网站| 免费观看男人免费桶女人视频| 国产成人a毛片在线| 综合色婷婷| 毛片在线区| 一本综合久久| 亚洲欧美h| 99国产精品免费观看视频| 亚洲毛片在线看| WWW丫丫国产成人精品| 97人人做人人爽香蕉精品| 久久一级电影| 国产91色| 精品综合久久久久久97超人该| 日韩黄色精品| 国产黄色免费看| 久久无码免费束人妻| 国产成人精品一区二区| 视频二区中文无码| 日韩天堂视频| 中文字幕1区2区| 老司机午夜精品视频你懂的| 丝袜无码一区二区三区| 黄色污网站在线观看| 亚洲婷婷六月| 日本成人一区| 老司国产精品视频91| 99热这里只有精品久久免费 | 在线欧美日韩国产| 免费国产不卡午夜福在线观看|