亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        多平臺快速成型軟件設計

        2014-04-24 07:26:02馮清秀阿占文
        制造技術與機床 2014年4期
        關鍵詞:掃描線面片端點

        馮清秀 阿占文

        (華中科技大學機械科學與工程學院,湖北 武漢 430074)

        快速成型技術是目前制造領域的熱點問題,該技術的特點是對計算機軟件有高度依賴性。目前國內有部分快速成型設備生產企業(yè)擁有自主研發(fā)的軟件,但大部分仍依賴國外軟件,快速成型軟件設計成為限制其發(fā)展的重要因素,在國內已有的快速成型產品成本中,軟件部分占了很大比例。在該項技術快速發(fā)展的將來,為了提高產品競爭力,降低成本,自主設計研發(fā)成型軟件是一個趨勢,而如何提高穩(wěn)定性以及算法效率、軟件優(yōu)化是最關鍵的問題[1-2]。

        1 軟件總體設計

        1.1 人機界面及軟件功能設計

        1.1.1 人機界面設計

        對快速成型設備來說,人機交互界面是人與設備之間的橋梁,一個穩(wěn)定、友好、高效的人機交互界面可以極大地增強產品的用戶體驗。本文設計的軟件人機主界面由6 個區(qū)域組成,分別是:標題欄、文字菜單、快捷菜單、主視圖區(qū)、整體信息顯示區(qū)、概要信息顯示區(qū)。如圖1、圖2 所示。標題欄可以顯示所打開文件的路徑和文件名,快捷菜單可供用戶快速找到常用操作按鈕,主視圖區(qū)是基于OpenGL 的模型顯示窗口,可以進行縮放、平移、旋轉操作,還可以根據用戶選擇進行主視圖、俯視圖、右視圖等的視圖切換,或者根據用戶選擇進行STL、輪廓、填充路徑等模型切換。

        此外還有一個用于分層顯示的子界面,在這個子界面中可以查看整個模型的某一層的具體信息,如:輪廓形狀、填充路徑、面積、填充間距、偏置次數等,還可以進行加工仿真和動畫播放,直觀地觀察各層加工路徑和動畫仿真,檢查分層及路徑生成中的錯誤。

        1.1.2 軟件功能設計

        本文所設計的軟件可以運行在主流的Windows、Linux 和Mac 三個系統(tǒng)平臺,可以實現以下功能:

        (1)STL 模型的縮放、平移、旋轉顯示;

        (2)按用戶指定厚度、范圍和方向進行分層;

        (3)按用戶指定填充間距和輪廓偏置次數,進行分區(qū)復合填充。判別內外環(huán),輪廓分組以及路徑優(yōu)化;

        (4)輸入/出CLI 文件和支撐添加;

        (5)加工路徑仿真和分層顯示。

        各個功能如圖3 所示。

        1.2 面向對象的數據結構設計

        快速成型軟件需要管理的數據有模型的三角面片頂點、輪廓交點、填充線段等,數據量非常大(一般零件都具有上千個三角面片)。一個合理的數據結構不僅可以提高算法效率,還會使程序清晰明了,提高可讀性,降低軟件開發(fā)難度。本文運用面向對象的編程方式,設計了7 個類來管理這些數據,分別是頂點類(QVertex)、三角形類(QTriangle)、模型類(QBody)、層類(QLayer)、輪廓類(QContour)、掃描線類(QScan-Path)和填充線類(QFillPath)。數據結構如圖4 所示。圖4 中箭頭方向表示了類之間的包含關系,如三角面片類包含了頂點類,模型類包含了層類和三角面片類,層類包含了輪廓類,輪廓類包含了掃描線類,掃描線包含了填充線類,這也完全符合人的思維:將一個模型劃分為幾個具體模塊,這是數據結構的定義依據。

        因為在讀取模型文件之前不知道有多少個三角面片,同樣在分層之前也無法得知會分為多少層,而在確定對象的值之前需要提前分配內存,如果用數組則需要二次或者多次分配。為解決此問題,運用了C++語言中的Vector 類模板,它可以動態(tài)分配內存,存取極其方便。本軟件中頂點對象(vector)、三角面片對象(triangle)、層對象(layer)、輪廓對象(contour)、掃描線對象(scanpath)、填充線對象(fillpath)都定義為Vector 類型。在面向對象編程中,類的屬性(變量)代表了這個類所包含的變量,是各個類之間溝通的橋梁,也稱類的接口。類的方法(函數)代表了這個類能進行的操作,即類的功能函數。方法和屬性構成了一個類[3],本軟件中幾個核心類的方法和屬性如圖5 所示。

        2 軟件關鍵功能的實現方法

        2.1 讀入STL 文件及顯示和分層

        STL 文件中每個頂點坐標之前都有一個vertex 關鍵詞,根據該特點可以逐行檢測STL 數據,取vertex 關鍵詞之后的3 個數為一個頂點,構成QVertex 對象,每3 個QVertex 對象構成一個QTriangle 對象,直至文件結束。此時QTriangle 對象存在了QVertex 對象中,而QVertex 對象又存在了QBody 對象中,層層關聯,在模型顯示時則做相反的操作,以body->triangle_all[triangle_count]->vertex[vertex_count]的方法取得所有頂點坐標。顯示部分是利用Qt 支持的OpenGL 圖形庫設計的,投影模式設置為正射投影,原點在屏幕中央。

        分層過程是將一個三維模型轉化為二維平面圖形的過程,關鍵在于求出每個分層面與三角面片的交點,從而由這些交點組成輪廓。如圖6 所示,以z 向分層為例,按用戶設定的厚度,從起點到終點確定出每個分層面的z 值,只有三角形三個頂點的z 值的最大、最小值滿足條件:Zmin<z <Zmax時,才會有交點,利用這個特點,首先找出所有本層符合該條件的三角面片再求交點可以提高效率,利用式(1)求出交點的坐標值[1]。

        式中xp,yp,zp(zp=zvalue)為所求交點坐標,z1即上文提到的Zmin,z2為Zmax,x、y 與z 類似。為保證所求交點都是按相鄰順序存儲在輪廓對象中,每求一個交點就要尋找與之相鄰三角面片。根據STL 數據中的共頂點規(guī)則[4],查找具有相同頂點的面片,并根據找到的面片的3 個頂點的z 值替換Zmin和Zmax,代入式(1),直至所有符合條件的面片都遍歷一遍。有些模型不止一個輪廓,此時求出一個完整輪廓后發(fā)現還有面片沒有求交,需要繼續(xù)以上過程。分層過程總結如下:

        (1)按指定厚度和范圍確定每層的zvalue;

        (2)建立一個新輪廓,取一個面片,找出各個坐標最值,利用式(1)求出一個交點;

        (3)找相鄰面片,重新找到各個坐標最值,利用式(1)求出一個交點,直至相鄰面片遍歷完畢;

        (4)若符合條件的面片遍歷完畢,但還有其它面片未求交,轉(2);

        (5)若所有面片遍歷完畢,結束分層。

        2.2 輪廓分區(qū)復合填充

        輪廓填充是快速成型的核心算法之一,其方法有:平行填充、環(huán)形填充、光柵填充等。輪廓的分區(qū)復合填充是一種結合了前兩者的方法,有效地減小了應力造成的零件變形,同時因為避免了環(huán)形填充帶來的輪廓偏置產生的自相交等問題所以算法簡單,易于實現。具體思路是:將所有輪廓劃分成許多個單連通區(qū)域,在此區(qū)域內將所有內外輪廓偏置4~6 次,然后再進行平行填充,為避免頻繁跨越內腔,再將填充線分區(qū),如圖7 所示。其中粗實線表示內外輪廓,細實線表示填充線,內外輪廓均偏置3 次(第三次偏置只做求交運算以確定平行填充線端點),然后分成上、中左、中右、下4 個區(qū)填充。這就涉及到了內外環(huán)的判別及分組算法、輪廓偏置算法以及最后分區(qū)之后的路徑優(yōu)化算法。下面是這幾個算法的說明。

        2.2.1 輪廓分組

        在許多個輪廓中劃分出單連通區(qū)域是分區(qū)復合填充的基礎,算法步驟如下:

        (1)計算每個輪廓被其他輪廓包含的次數;

        (2)根據被包含奇數次為內輪廓,偶數次為外輪廓的原理,判別每個輪廓是內輪廓還是外輪廓;

        (3)一個輪廓組只有一個外環(huán),所以對于一個外輪廓,如果其被包含次數為N 次,而一個內輪廓的被包含次數為N-1 次,那么這兩個輪廓為一組;

        (4)按步(3)繼續(xù)找出本外環(huán)下所有內輪廓,成為一個完整的輪廓組。

        文獻[5]給出了上述算法,但沒有給出該算法的基礎:輪廓包含關系判斷方法。因為輪廓與輪廓之間不會有交點,所以取輪廓上一點判斷是否在另一個外輪廓內即可判定輪廓包含關系。利用射線法可以判斷一點是否在多邊形內,即做射線與多邊形輪廓求交,統(tǒng)計交點個數,如果是偶數則在多邊形外,奇數則在多邊形內。關于頂點法的實現代碼很多,效率也有很大差異。本文中用的代碼如下:

        2.2.2 輪廓偏置及填充線分區(qū)

        輪廓偏置算法是數控加工領域常用的而又復雜的基本算法,因為涉及到復雜凹多邊形以及輪廓偏置以后的自相交去除問題,很多文獻提出的算法不適用于一般情況。本文首先用求取偏置法向量的方法得到偏置輪廓,其次根據文獻[6]提出的算法去除自相交環(huán)。如圖8 所示,先約定在y 軸向上的坐標系中,多邊形輪廓如果是外環(huán)就按逆時針存儲,內環(huán)相反。是原輪廓內環(huán),是偏置以后的輪廓,向量en是偏置法向量,其正方向按右手定則約定:按逆時針旋轉90°與en重合,那么en即為正向。依此法向量的正向,沿輪廓邊向量方向行走時,輪廓區(qū)域總是在法向量的正向,可知其滿足不等式(2)。設直線方程由式(3)給出,則en的方程由(4)給出,并且有式(5)成立。

        以P1(x1,y1),P2(x2,y2)代入式(3),結合式(2)、(4)可以求出a 和b。此時的直線方程由式(6)給出,其中,dist 為偏置距離。同理可求出'的方程,如式(7)。直線'的交點即為P2 的偏置點P2',其坐標由式(8)給出,其中l(wèi)1=

        對每一個輪廓邊由式(8)求出所有偏置線段,只要外環(huán)是按逆時針存儲,那么必然向內偏置,內環(huán)如果是按順時針存儲,必然是向外偏置。但在偏置后不可避免地產生自相交輪廓,此時必須去除無效環(huán)。文獻[6]給出了一種有效的方法。

        得到偏置輪廓后,按填充間距求出均勻分布在外輪廓內的掃描線,然后對所有掃描線段進行分組,如圖7 中分為4 組填充,軟件中不同的區(qū)域填充線顯示不同的顏色,以便區(qū)分。文獻[7]提出了基于交點掃描線與輪廓交點數目的分組方法,總結如下:

        (1)求所有掃描線與輪廓交點;

        (2)由上往下(或由下往上)依次檢測每個掃描線的交點數目,假設第N 條掃描線有m 個交點,第N +1條掃描線也有m 個交點,那么屬于同組,第N+2 條掃描線有n(n≠m)個交點,那么重新建立一個組,依次類推。如圖7 中由上到下分3 組;

        (3)對一組有m(m >4)個交點的掃描線,第1、2個交點為一組填充線,第3、4 個為另外一組填充線,直至第m-1 和m 個最后一組填充線。

        2.2.3 基于距離判定法的路徑優(yōu)化

        填充線分組后要進行路徑優(yōu)化,在上文圖7 中,平行填充時分了4 個區(qū),實際加工時必須先確定這4 個區(qū)的填充順序,稱為路徑優(yōu)化問題。文獻[8]提出了一種基于距離判定的路徑優(yōu)化方法,思路如下:

        (1)確定每個填充區(qū)域的首末填充線段的4 個端點,如圖7 中標號A 到P 共16 個點放入集合NotUsed;

        (2)開始填充時先取一個端點,將其放入集合Used,同時從NotUsed 刪除;

        (3)填充到一組填充線最后一點,取當前所在點(必在NotUsed 中),求其與NotUsed 集合中剩余所有點的距離,最短者為下一填充區(qū)起點;

        (4)每走過一個端點就將其放入集合Used,同時從NotUsed 刪除;

        (5)若NotUsed 集合變成空集時表明所有區(qū)域填充完畢,否則轉(3)。

        實際在軟件中實現時還要解決每個填充區(qū)域4 個端點如何連接的問題,如在圖7 中,先按A-B -C -D的順序填充了最上面一個區(qū)的4 個點,那么下一個要填充的區(qū)的最近點為J,此時要按J -I -K -L 的順序填充。為解決此問題,給每個區(qū)域的4 個端點從左到右,從上到下建立如圖9 所示4 個對象。在最極端的情況下,如果某個組只有一條填充線,也就是說只有兩個端點無法建立4 個對象。為解決此種情形,預先假設有4 個端點,但其isused 屬性預置為真(true),然后分別求端點,再將isused 屬性置為假(false),這樣使得只有兩個端點的填充組雖然有4 個對象,但不參與填充??偨Y起來可分為4 種情況:

        (1)若以FirstPoint 為起點,則往下填充,奇數行時調換首末兩個端點。

        (2)若以SecondPoint 為起點,則往下填充,偶數行時調換首末兩個端點。

        (3)若以ThirdPoint 為起點,則往上填充,奇數行時調換首末兩個端點。

        (4)若以FourthPoint 為起點,則往上填充,偶數行時調換首末兩個端點。

        3 結語

        本文所設計的軟件讀取一個具有1620 個面片的齒輪泵箱體零件的模型,其尺寸為長× 寬× 高:100 mm×110 mm×90 mm,按0.8 mm 的厚度分為113 層,在2G CPU 和2G 內存條件的計算機上用時6 s。填充時輪廓偏置3 次,間距為0.3 mm,并進行路徑優(yōu)化,在同一計算機上用時4 s。執(zhí)行效率比較高,可以滿足快速成型的要求。再分層查看界面,可進行仿真,實際觀察加工軌跡,如圖10 所示,本層面積為3096.4 mm2,共分24 組填充,路徑規(guī)劃完全符合距離最短原則。

        添加支撐體也是快速成型的關鍵問題。本文取“BOX”型支撐方式,此種支撐算法簡單但是材料利用率低下。文獻[10 -11]提出了一種基于特征的向下添加支撐的方法,但實現起來比較復雜,文獻[12 -13]提出了自動生成支撐的思想。如果按零件的形狀,采用不同的填充方式,而非固定的一種,會極大地提高成型質量。采用環(huán)形填充葉,為了避免算法過于復雜,可借助已經成熟的第三方的算法庫來實現,也不失為一種有效的解決途徑。

        [1]劉偉軍.快速成型技術及應用[M].北京:機械工業(yè)出版社,2005:39 -43.

        [2]朱林泉,白培康,朱江淼.快速成型與快速制造技術[M].北京:國防工業(yè)出版社,2003:59 -66.

        [3]錢能.C++程序設計教程[M].北京:清華大學出版社,2004:232-257.

        [4]趙吉賓,劉偉軍,王越超,等?;赟TL 文件的實體分割算法研究[J].機械科學與技術,2005,24(2):131 -134.

        [5]蔡道生,史玉升,黃樹槐,等.快速成形技術中輪廓環(huán)的分組算法及其應用[J].華中科技大學學報:自然科學版,2004,32(1):7 -9.

        [6]Xiaorui Chen,Sara McMains.Polygon Offsetting by Computing Winding Numbers[C].//2005 ASME International Design Engineering Technical Conferences &Computers and Information in Engineering Conference (IDETC/CIE2005),vol.1.2005:6009 -6019

        [7]史玉升,鐘慶,陳學彬,等.選擇性激光燒結新型掃描方式的研究及實現[J].機械工程學報,2002,38(2):35 -39.

        [8]李偉.熔絲沉積成形填充路徑優(yōu)化及其軟件研究[D].武漢:華中科技大學,2005.

        [9]程艷階.選擇性激光燒結激光掃描路徑的研究與開發(fā)[D].武漢:華中科技大學,2004.

        [10]洪軍,李滌塵,唐一平,等.快速成型中的支撐結構設計策略研究[J]。西安交通大學學報,2000,34(9):58 -61,76.

        [11]董未名,嚴冬明,周登文,等.基于CAD 模型的直接快速成型軟件[J].計算機輔助設計與圖形學學報,2004,16(3):360 -367.

        [12]史曉楠.CLI 文件正確性檢驗與支撐設計系統(tǒng)研究[D].西安:西安科技大學,2006.

        [13]紀良波,周天瑞,溍海鵬,等.熔融沉積快速成型軟件系統(tǒng)的開發(fā)[J].塑性工程學報,2009,16(3):192 -197.

        猜你喜歡
        掃描線面片端點
        基于場景的掃描線非均勻性校正算法
        非特征端點條件下PM函數的迭代根
        初次來壓期間不同頂板對工作面片幫影響研究
        不等式求解過程中端點的確定
        基于掃描線模型的機載激光點云濾波算法
        參數型Marcinkiewicz積分算子及其交換子的加權端點估計
        掃描線點云數據的曲面重構技術研究
        甜面片里的人生
        幸福家庭(2016年3期)2016-04-05 03:47:08
        基丁能雖匹配延拓法LMD端點效應處理
        青海尕面片
        飲食科學(2014年10期)2014-10-29 16:58:38
        成年免费a级毛片免费看无码| 国产精品亚洲综合久久系列| 亚洲精品一区二区三区在线观| 精品人妻69一区二区三区蜜桃| 日韩少妇人妻中文字幕| 少妇高潮太爽了在线视频| 亚洲一线二线三线写真| 婷婷亚洲综合五月天小说| 亚洲AV无码国产永久播放蜜芽| 老熟妻内射精品一区| 亚洲一区爱区精品无码| 国产精品久久中文字幕第一页 | 一区二区在线视频大片| 国成成人av一区二区三区| 精品国产自在现线看久久| 日韩av无码社区一区二区三区| 少妇愉情理伦片| 午夜成人无码福利免费视频 | 国产精品情侣露脸av在线播放| 免费看黄片视频在线观看| 国产一区二区三区不卡在线观看| 脱了老师内裤猛烈进入| 国内精品视频在线播放不卡| 牛鞭伸入女人下身的真视频| 国产成人精选在线不卡| 人妻少妇精品视中文字幕国语| 色婷婷av一区二区三区不卡| 久久中文字幕一区二区| 妺妺窝人体色www看美女| 狠狠色综合网站久久久久久久| 久久亚洲国产中v天仙www| 欧洲一级无码AV毛片免费| 人妻秘书被社长浓厚接吻| 人妻激情偷乱视频一区二区三区| 久久国产精品二国产精品| 9久久精品视香蕉蕉| 岛国av一区二区三区| 国产av熟女一区二区三区密桃| 亚洲 日韩 激情 无码 中出| 国产内射在线激情一区| 亚洲AV综合A∨一区二区|