• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    面向3D打印機的彩色三維模型成型技術

    2017-08-08 10:52:31黃國勝江先志田芬芳
    關鍵詞:面片代碼成型

    黃國勝,徐 欣,江先志,滕 軍,田芬芳

    (1.浙江理工大學 機械與自動控制學院,浙江 杭州 310018;2.浙江騰騰電氣有限公司,浙江 溫州 325000)

    面向3D打印機的彩色三維模型成型技術

    黃國勝1,徐 欣1,江先志1,滕 軍2,田芬芳2

    (1.浙江理工大學 機械與自動控制學院,浙江 杭州 310018;2.浙江騰騰電氣有限公司,浙江 溫州 325000)

    針對3D打印技術打印速度慢、打印精度低、不能多色打印等缺陷,研究3D打印機的STL文件載入和讀取、基于OpenGL的模型顯示、彩色圖片像素采集以及基于RGB顏色空間的數(shù)據(jù)處理算法等技術,以便將數(shù)據(jù)轉化成相應的G代碼發(fā)送給下位機.

    圖像;三維模型;像素;RGB;STL;G代碼

    3D 打印,又稱三維打印,是一種快速成型技術,為用戶提供了新的設計、創(chuàng)作和制作方法.它是通過逐層打印的方式來成型的,形象地說,3D 打印就是 2D 打印沿著高度方向逐層疊加,創(chuàng)造一個立體的幾何圖形.在計算機中輸入數(shù)據(jù),設計3D 模型后,計算機自動將 3D 模型的數(shù)據(jù)進行分層,像人們檢查身體時做 CT 掃描一樣,形成多個單層圖像.3D 打印機根據(jù)這些分層圖像數(shù)據(jù),一層一層地將材料疊加上去,形成一個立體實物[1].

    3D打印技術從狹義上來說屬于增材成型技術.從成型工藝上看,3D打印機無論使用何種方法,其打印過程都基本相同.首先,通過計算機輔助設計軟件創(chuàng)建三維虛擬模型,并將模型的格式轉換成STL文件格式,然后通過上位機對STL文件進行后期處理,再連接3D打印機進行打印.

    2010 年以后,3D 打印技術已經(jīng)被應用于各個工業(yè)領域,如航空航天、生物醫(yī)療、個性化消費、注塑模具等[2].新興增材制造技術也已經(jīng)發(fā)展為更精確的技術領域,如金屬零件增材制造、微光固化成型、高精密數(shù)字化成型、數(shù)字化材料 3D 打印等[3].

    本研究的重點在于STL文件的后期處理,包括文件數(shù)據(jù)采集方法、基于圖像映射的彩色三維模型成型、切片分層和多頭G代碼的生成.

    1 三維模型格式文件載入

    STL文件格式是一種用三角面片表達實體表面數(shù)據(jù)的文件格式.它是若干空間小三角面片的集合,每個三角面片用三角形的3個頂點和指向模型外部的法向量表示[4].根據(jù)數(shù)據(jù)存儲方式的不同,STL 文件可分為ASCII碼和二進制碼兩種存儲方式[5].ASCII格式文件可以讀取,便于測試,故選用其作為可視化的研究對象.其格式如下:

    facet

    normalxyz(三角面片法向量的3個分量值)

    vertexxyz(三角面片第一個頂點坐標)

    vertexxyz(三角面片第二個頂點坐標)

    vertexxyz(三角面片第三個頂點坐標)

    endloop

    endfacet(完成一個三角面片定義)

    一個facet和下一個endfacet之間的數(shù)據(jù)塊為一個三角面片的幾何信息,normal后面的3個值表示當前三角面片的法向量,接下來的3行為三角面片的3個頂點坐標,都以vertex開頭[6].

    本研究以STL格式文件為數(shù)據(jù)源,利用Visual Studio 2013開發(fā)環(huán)境(圖1),基于C#系統(tǒng)庫函數(shù)的ReadLine()方法逐行讀取STL文件,通過字符串處理函數(shù)對3個法向量數(shù)據(jù)和3個頂點數(shù)據(jù)進行判斷和分析,并將結果儲存于數(shù)組中,同時以OpenGL(Open Graphics Library)作為三維圖形接口,利用其強大的圖形處理能力對三角面片進行逐個繪制,最后合并,形成完整的三維模型.

    圖1 開發(fā)環(huán)境截圖

    軟件讀取STL文件的步驟如下:①定義一個三角形T;②讀取上述數(shù)據(jù)結構中的normal段法向量數(shù)據(jù),存儲到glNormals[]數(shù)組中,讀取vertex段頂點數(shù)據(jù),存儲到glVertexs[]數(shù)組中;③循環(huán)判斷文件是否讀取完成;④讀取結束.

    STL文件格式簡單,只能存儲三維物體的幾何信息,并不支持顏色信息.因此,下一步要做的是采集圖片的顏色信息,將圖片信息映射到三維模型上,然后生成相應的G代碼,發(fā)送給下位機.

    2 圖像映射與彩色三維模型成型

    STL文件并不存儲顏色數(shù)據(jù),為了將顏色信息映射到模型上,解決模型彩色顯示的問題,需要采集圖片的RGB顏色信息.RGB被稱為三原色或顯示屏模式,它屬于發(fā)光配色,是根據(jù)顏色發(fā)光的原理來設計的[7].在 RGB 模式中,R 代表紅光(Red),G 代表綠光(Green),B 代表藍光(Blue),每種光的亮度取值為0~255.對這3種色彩的亮度值進行調(diào)配組合,可產(chǎn)生新的像素顏色,從而形成更多的色彩[8].

    首先,使用Bitmap類方法綁定需要載入的圖像格式文件bmp(圖2).其關鍵代碼為:

    Bitmap bmp = new Bitmap(pictureFilePath);//綁定圖像格式文件

    定義Bitmap后,使用bmp.Width和bmp.Height分別獲取圖像的像素寬和像素高,使用bmp.GetPixel(x,y)獲取像素點位置為(x,y)的顏色信息.

    圖2 載入的圖像

    然后,分析綁定載入的STL文件的頂點數(shù)據(jù)(即glVertexs[]數(shù)組數(shù)據(jù)),對x坐標和z坐標數(shù)據(jù)進行比較,獲得模型中x坐標值和z坐標值的最大值和最小值,從最大值和最小值的絕對差得到模型寬ModelWidth和模型高ModelHeight.其關鍵代碼為:

    ModelWidth = Math.Abs(ModelxMax - ModelxMin);//計算STL模型寬

    ModelHeight = Math.Abs(ModelzMax - ModelzMin);//計算STL模型高

    求得模型寬和模型高后,對比圖像像素寬bmp.Width和像素高bmp.Height,獲取比例值,進而求得glVertexs[]數(shù)組數(shù)據(jù)在圖像中相應的像素點位置(Position_Width,Position_Height),通過GetPixel函數(shù)獲取該點的像素顏色信息.其關鍵代碼為:

    Position_Width=(Position_x-ModelxMin) *WidthMax/ModelWidth+xmin;

    Position_Height=(zmax-(Position_z-ModelzMin)*HeightMax/ModelHeight;

    returnColorToRgba32(bmp.GetPixel(Position_Width,Position_Height));

    將計算出的對應像素點顏色數(shù)據(jù)存儲到glColors[]數(shù)組中,再用OpenGL庫繪制三角面片,同時加入對應的顏色數(shù)據(jù).

    圖3所示為使用載入圖像映射后三維模型成型的效果.

    圖3 三維模型成型的效果

    3 切片分層與G代碼生成

    在彩色三維模型成型后,調(diào)用Slic3r軟件(一款用于將STL文件轉化成G代碼的開源軟件),將模型分層切片.切片時發(fā)現(xiàn),在RGB模式下,三原色光每種均有256個亮度值,總共有256×256×256個,即16 777 216 個亮度值.然而,下位機中擠出頭數(shù)只有8個,只有8種顏色可選擇,限制了所用的顏色種類.本研究使用RGB顏色空間模型來處理顏色數(shù)據(jù)(圖4)[9].

    圖4 RGB顏色空間模型

    這里,使用的8個擠出頭分別對應藍、黑、綠、青、紅、洋紅、黃和白8種顏色.將模型的顏色與擠出頭的顏色進行對比,選擇顏色最接近的擠出頭.其關鍵代碼如下:

    sumRGB[0] = Math.Pow(RGB.R-0,2)+〗Math.Pow(RGB.G-0,2)

    + Math.Pow(RGB.B-255,2);

    for (inti= 0;i< 8;i++){

    if (sumRGB[i] <= temp){

    temp = sumRGB[i];

    num =i;

    }

    }

    在生成G代碼時,根據(jù)所選的sumRGB[i]數(shù)組的i的大小,用T0~T7表示擠出頭的選擇,來控制下位機的運動.

    圖5和圖6分別為切片分層及加入顏色后的顯示效果.圖7所示為軟件生成的G代碼.

    圖5 切片分層后的效果

    圖6 加入顏色后的分層效果

    4 結束語

    本研究分析并實現(xiàn)了3D模型的彩色化,將模型數(shù)據(jù)轉化為3D打印機可讀取的G代碼,并且實現(xiàn)了整個過程的可視化操作.但目前其功能還稍有局限,比如顏色只能通過圖片讀取,而不能直接在表面編輯,著色實現(xiàn)的過程仍待改進.

    [1] 王廣春,趙國群.快速成型與快速模具制造技術及其應用[M].北京:機械工業(yè)出版社,2013.

    [2] 王雪瑩.3D打印技術與產(chǎn)業(yè)的發(fā)展及前景分析[J].中國高新技術企業(yè),2012(26):3-5.

    [3] 張建梅,趙 立,黨驚知,等.快速成型技術的應用及發(fā)展方向[J].中北工學院學報,2002,23(4):301-305.

    [4] 楊 光,劉偉軍,王維田,等.STL格式文件拓撲重建及快速切片算法研究[J].現(xiàn)代制造工程,2009(10):32-35.

    [5] 張貞貞,陳定方.基于VC的STL文件讀取[J].湖北工業(yè)大學學報,2008,23(2):44-46,73.

    [6] 耿 鐵,任清海.基于OpenGL 的 STL 文件三維模型真實感圖形可視化研究[J].制造業(yè)自動化,2011,33(16):121-124.

    [7] 許寶卉.彩色CRT色彩特性及色彩空間轉換方法的研究[D].西安:西安理工大學,2005.

    [8] 鞏亞萍,高 軍.印刷品檢測過程中的色彩空間轉換研究[J].山東理工大學學報(自然科學版),2009,23(4):53-57.

    [9] 楊振亞,王 勇,楊振東,等.RGB顏色空間的矢量—角度距離色差公式[J].計算機工程與應用,2010,46(6):154-156.

    Colorful 3D Model Molding Technology for 3D Printer

    HUANG Guo-sheng1,XU Xin1, JIANG Xian-zhi1,TENG Jun2, TIAN Fen-fang2

    (1.School of Mechanical Engineering and Automation, Zhejiang Sci-Tech University,Hangzhou 310018, China; 2.Zhejiang Tengteng Electric Co.,Ltd, Wenzhou 325000,China)

    3D printing technology which makes objects by layer-by-layer printing based on a digital model file. There are also many weaknesses and limitations, such as slow print speed, low print accuracy and lack of multi-color printing. Therefore, this paper focuses on solving the problem of the host computer of the color 3D printer, including the loading and reading of the STL file, the OpenGL-based model display, the color picture pixel acquisition, the RGB color space data processing algorithm and so on. And finally send to the data into the corresponding G code the next crew.

    image; 3D model; pixel; RGB; STL; G code

    2016-12-20

    浙江省重大科技專項計劃資助項目(2014C11SA310003);浙江理工大學校企合作資助項目(14020089-J)

    黃國勝(1993-),男,浙江蒼南人,碩士研究生,研究方向為機器視覺.

    1006-3269(2017)02-0030-04

    TP391

    A

    10.3969/j.issn.1006-3269.2017.02.007

    猜你喜歡
    面片代碼成型
    成型液壓機技術改造
    初次來壓期間不同頂板對工作面片幫影響研究
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    三向接頭注射成型模具設計
    甜面片里的人生
    幸福家庭(2016年3期)2016-04-05 03:47:08
    快速成型技術在口腔修復中的應用
    微注射成型PP/ABS共混物相形態(tài)
    中國塑料(2015年5期)2015-10-14 00:59:40
    雷山县| 阿拉善左旗| 邵武市| 青铜峡市| 延庆县| 青川县| 白城市| 息烽县| 呼伦贝尔市| 延安市| 北宁市| 小金县| 永济市| 德州市| 儋州市| 吴桥县| 博爱县| 苍南县| 潜江市| 嘉黎县| 山东| 盘锦市| 丘北县| 本溪| 新源县| 东海县| 瑞昌市| 云梦县| 呈贡县| 平武县| 宜宾县| 巴青县| 宽城| 昌吉市| 元谋县| 合江县| 阆中市| 齐河县| 桦川县| 方正县| 彰化市|