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

    基于Bezier曲線生成3D打印分層路徑

    2021-03-15 02:21:34尹海濤葉春生
    新技術(shù)新工藝 2021年2期
    關(guān)鍵詞:控制頂點(diǎn)切點(diǎn)原始數(shù)據(jù)

    尹海濤,葉春生

    (華中科技大學(xué) 材料成形與模具技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430074)

    3D打印起源于20世紀(jì)80年代,是為滿(mǎn)足模型制作以及快速成型的需求而推出,現(xiàn)已經(jīng)成為計(jì)算機(jī)輔助設(shè)計(jì)和快速制造的通用技術(shù)平臺(tái),3D打印可用于陶瓷、金屬和聚合物類(lèi)材料生產(chǎn),且可實(shí)現(xiàn)高效無(wú)模成形[1-5],因而在醫(yī)療、汽車(chē)、航空航天和建筑領(lǐng)域得到了廣泛的應(yīng)用。

    3D打印技術(shù)將三維模型切片成二維平面,對(duì)每一層二維平面進(jìn)行打印,逐層疊加形成三維模型。切片過(guò)程使用一系列在特定位置且相互平行的平面與三維模型相交,從而得到模型在這些高度上的切點(diǎn)并形成一條或多條閉合路徑,閉合路徑的精度影響著二維平面的打印精度,從而影響整個(gè)三維模型的精度。劉恒、朱心雄[6]提出了STL模型的分層鄰接排序快速切片算法,徐敬華、盛紅升[7]提出了基于鄰接拓?fù)涞牧餍尉W(wǎng)絡(luò)模型層切多連通域構(gòu)建方法,張琪、孟正大[8]提出了基于三角片分割的包圍盒樹(shù)構(gòu)造方法,使用上述方法可以快速生成有序的路徑切點(diǎn)序列,但是上述切片層路徑是直接將有序切點(diǎn)連接形成,會(huì)因三維模型數(shù)據(jù)文件的缺陷等原因,造成切面層路徑不夠光滑。Bezier曲線具備光滑連接特性,被廣泛應(yīng)用于自由曲線曲面造型中[9-10]。本文使用三次Bezier曲線來(lái)生成3D打印中切面層路徑。

    1 Bezier曲線的定義

    Pi(i=0,1,2,…,n)是曲線的n+1個(gè)控制點(diǎn),n次Bezier曲線函數(shù)的表達(dá)式為:

    (1)

    式中,控制點(diǎn)Pi決定Bezier曲線具體走向;Bi,n(u)則是n次Bernstein基函數(shù):

    (2)

    2 基于Bezier曲線的路徑規(guī)劃

    2.1 計(jì)算Bezier曲線的控制頂點(diǎn)

    在3D打印中,每一個(gè)切片層的分層路徑是與其他層路徑不相交的閉合曲線。為了光滑分層路徑,本文采用閉合曲線方程。首先通過(guò)切片算法得到路徑切點(diǎn),切點(diǎn)是分層路徑上的點(diǎn),而B(niǎo)ezier曲線的求解是通過(guò)確定控制頂點(diǎn)來(lái)完成的,所以需要先計(jì)算出Bezier曲線的控制頂點(diǎn)。

    根據(jù)每?jī)蓚€(gè)頂點(diǎn)作為一個(gè)Bezier曲線的端點(diǎn)(即起始點(diǎn)和終止點(diǎn)),并由這兩個(gè)頂點(diǎn)結(jié)合相鄰的其他兩個(gè)頂點(diǎn)求得和這兩個(gè)頂點(diǎn)對(duì)應(yīng)的Bezier曲線的控制點(diǎn),然后根據(jù)端點(diǎn)和控制點(diǎn)繪制一條過(guò)兩個(gè)頂點(diǎn)的Bezier曲線。

    如果把三階Bezier曲線(見(jiàn)圖1)中的P0和P3視為原始數(shù)據(jù),只要找到P1和P2兩個(gè)點(diǎn)(稱(chēng)其為控制點(diǎn)),就可以根據(jù)三階Bezier曲線公式計(jì)算出P0和P3之間平滑曲線上的任意點(diǎn)。

    圖1 三階Bezier曲線圖

    所以平滑問(wèn)題變成了如何計(jì)算2個(gè)原始數(shù)據(jù)點(diǎn)之間的控制點(diǎn)的問(wèn)題。步驟如下。

    1)第1步:粗直線連接圖2中相鄰的原始數(shù)據(jù)點(diǎn)P0、P1、P2、P3,計(jì)算出各線段的中點(diǎn)(Ai),細(xì)直線連接相鄰的中點(diǎn)。

    圖2 原始數(shù)據(jù)點(diǎn)線段中點(diǎn)圖

    需要計(jì)算P1(x1,y1)和P2(x2,y2)之間的控制點(diǎn),P0(x0,y0)是前一個(gè)需要經(jīng)過(guò)的點(diǎn),P3(x3,y3)是下一個(gè)需要經(jīng)過(guò)的點(diǎn),A0(xc1,yc1)、A1(xc2,yc2)、A2(xc3,yc3)表示點(diǎn)與點(diǎn)之間連線的中點(diǎn)。可用代碼表示為:

    double xc1 = (x0 + x1) / 2.0;double yc1 = (y0 + y1) / 2.0;

    double xc2 = (x1 + x2) / 2.0;double yc2 = (y1 + y2) / 2.0;

    double xc3 = (x2 + x3) / 2.0;double yc3 = (y2 + y3) / 2.0;

    2)第2步:根據(jù)圖3中相鄰2條粗直線長(zhǎng)度之比,也就是L1/L0=d1/d0這個(gè)比例,分割其中點(diǎn)之間細(xì)直線連線,標(biāo)記分割點(diǎn)。計(jì)算位于Ai連接線段上面的Bi。

    圖3 分割點(diǎn)標(biāo)記圖

    k1、k2表示線段比例,B1(xm1,ym1)、B2(xm2,ym2)表示中點(diǎn)連線上的比例分割點(diǎn)。代碼表示為:

    double len1 = sqrt((x1-x0) * (x1-x0) + (y1-y0) * (y1-y0));

    double len2 = sqrt((x2-x1) * (x2-x1) + (y2-y1) * (y2-y1));

    double len3 = sqrt((x3-x2) * (x3-x2) + (y3-y2) * (y3-y2));

    double k1 = len1 / (len1 + len2);double k2 = len2 / (len2 + len3);

    double xm1 = xc1 + (xc2 - xc1) * k1;double ym1 = yc1 + (yc2 - yc1) * k1;

    double xm2 = xc2 + (xc3 - xc2) * k2;double ym2 = yc2 + (yc3 - yc2) * k2;

    3)第3步:平移細(xì)直線連線,使其分割點(diǎn)B1、B2與相對(duì)的原始數(shù)據(jù)點(diǎn)P1、P2重合,得到中點(diǎn)連線平移圖(見(jiàn)圖4)。

    圖4 中點(diǎn)連線平移圖

    4)第4步:調(diào)整平移后細(xì)直線連線的端點(diǎn)與原始數(shù)據(jù)點(diǎn)的距離,通??s減40%~80%,本文縮減50%,效果如圖5所示。

    圖5 端點(diǎn)調(diào)整圖

    C1(ctrl1_x, ctrl1_y)、C2(ctrl2_x, ctrl2_y)表示最后得到的控制點(diǎn),smooth_value表示平滑值K,取值[0,1]。代碼表示為:

    ctrl1_x = xm1 + (xc2 - xm1) * smooth_value + x1 - xm1;

    ctrl1_y = ym1 + (yc2 - ym1) * smooth_value + y1 - ym1;

    ctrl2_x = xm2 + (xc2 - xm2) * smooth_value + x2 - xm2;

    ctrl2_y = ym2 + (yc2 - ym2) * smooth_value + y2 - ym2;

    使用上述方法,在切片過(guò)程中得到m+1個(gè)閉合數(shù)據(jù)點(diǎn)Pi(i=0,1,…,m)。本文平滑值K取為0.5,在經(jīng)過(guò)控制頂點(diǎn)計(jì)算之后得到2m+2個(gè)控制頂點(diǎn)Ci(i=0,1,…,2m+1)。

    2.2 求解Bezier曲線并光滑路徑

    經(jīng)典的n次Bernstein基函數(shù)是由n+1個(gè)n次多項(xiàng)式函數(shù)構(gòu)成的線性無(wú)關(guān)的函數(shù)組,用Bn,i(t)來(lái)表示其中的第i個(gè),則

    (3)

    式中,i=0,1,…,n;t∈[0,1]。

    每一個(gè)n次的Bernstein基函數(shù)都可以用2個(gè)相鄰的n+1次Bernstein基函數(shù)的線性組合來(lái)表示,即Bernstein基函數(shù)具有升階公式

    (4)

    式中,i=0,1,…n。

    有了Bernstein基函數(shù),并且給定了控制頂點(diǎn)以后,就可以用這兩者的線性組合來(lái)定義Bezier曲線。這里用Qi(i=0,1,…,n)來(lái)表示n次Bezier曲線的控制頂點(diǎn),用pn(t)表示n次Bezier曲線,則

    (5)

    由式5可知,Bezier曲線由控制頂點(diǎn)和Bernstein基函數(shù)共同確定,又由于曲線中所采用的Bernstein基函數(shù)的次數(shù)取決于控制頂點(diǎn)的數(shù)量,而一旦次數(shù)確定,Bernstein基函數(shù)便固定下來(lái),因此可以說(shuō),Bezier曲線的形狀是由控制頂點(diǎn)唯一確定的。

    本文在平面描述中采用有序插入點(diǎn)策略,設(shè)定特定的步長(zhǎng)決定曲線的疏密程度,從而表示一條在二維切面層的曲線。在Bezier曲線的每個(gè)分段上求解一定數(shù)目點(diǎn)的坐標(biāo),加入到路徑切點(diǎn)坐標(biāo)中的相應(yīng)位置中,然后順序連接切點(diǎn)生成路徑。

    3 試驗(yàn)與驗(yàn)證

    3.1 設(shè)備情況

    課題組自主開(kāi)發(fā)的微噴射3D打印設(shè)備如圖6所示。該設(shè)備主要由4部分組成,分別是鋪粉機(jī)構(gòu)、粘結(jié)劑噴射機(jī)構(gòu)、機(jī)械運(yùn)動(dòng)機(jī)構(gòu)和控制系統(tǒng)[11-12]??刂葡到y(tǒng)又分為硬件系統(tǒng)和軟件系統(tǒng)兩部分。

    圖6 3D打印設(shè)備

    3.2 試驗(yàn)所用材料

    試驗(yàn)打印的三維模型為一個(gè)齒輪,試驗(yàn)采用FZR-10型號(hào)的純氧化鋯陶瓷粉末,粉末的粒度控制在1 μm左右。

    3.3 結(jié)果分析

    使用連續(xù)打印模式,采用0.1 mm的層間距,每層打印3次。打印成形的樣品如圖7所示。

    圖7 齒輪樣品

    總的來(lái)說(shuō),成形樣品的表面輪廓清晰,成形精度較高,能夠看出輪廓曲線整體的光滑。但由于粘結(jié)劑黏度的不足,相對(duì)應(yīng)粘結(jié)區(qū)域黏度不夠造成部分脫落而導(dǎo)致極少數(shù)位置存在小缺口,而由于噴射裝置電動(dòng)機(jī)存在起驟停,產(chǎn)生抖動(dòng)造成極少量毛刺。

    4 結(jié)語(yǔ)

    本文針對(duì)微噴射3D打印中分層路徑粗糙問(wèn)題,提出使用三次Bezier曲線優(yōu)化路徑形成的方法,首先通過(guò)二維切面的有序切點(diǎn)求出Bezier曲線控制頂點(diǎn),然后根據(jù)所求得控制頂點(diǎn)確定Bezier曲線的基函數(shù)從而求得確定的Bezier曲線。采用有序插入點(diǎn)策略,設(shè)定特定的步長(zhǎng)決定曲線的疏密程度,在曲線所經(jīng)切點(diǎn)之間求解一定數(shù)目的頂點(diǎn),加入到路徑切點(diǎn)原始序列的相應(yīng)位置,順序連接從而表示一條在二維切面層的Bezier曲線。該方法能夠使原本粗糙的切面路徑變得光滑。

    猜你喜歡
    控制頂點(diǎn)切點(diǎn)原始數(shù)據(jù)
    帶互異權(quán)值的B樣條曲線的最小二乘漸進(jìn)迭代逼近
    GOLDEN OPPORTUNITY FOR CHINA-INDONESIA COOPERATION
    受特定變化趨勢(shì)限制的傳感器數(shù)據(jù)處理方法研究
    拋物線的切點(diǎn)弦方程的求法及性質(zhì)應(yīng)用
    一種偽內(nèi)切圓切點(diǎn)的刻畫(huà)辦法
    全新Mentor DRS360 平臺(tái)借助集中式原始數(shù)據(jù)融合及直接實(shí)時(shí)傳感技術(shù)實(shí)現(xiàn)5 級(jí)自動(dòng)駕駛
    橢圓的三類(lèi)切點(diǎn)弦的包絡(luò)
    有理二次Bézier形式共軛雙曲線段的幾何計(jì)算
    面向控制頂點(diǎn)優(yōu)化的自由曲線交互擬合技術(shù)
    世界經(jīng)濟(jì)趨勢(shì)
    芦山县| 南岸区| 双鸭山市| 富阳市| 安塞县| 通州区| 台北市| 区。| 库车县| 专栏| 布尔津县| 新竹市| 荣昌县| 镇雄县| 亚东县| 达孜县| 教育| 图木舒克市| 砚山县| 岳池县| 龙口市| 阿巴嘎旗| 明星| 都江堰市| 琼海市| 抚宁县| 龙陵县| 漳平市| 广灵县| 黄龙县| 德安县| 化州市| 木兰县| 庄浪县| 宁津县| 玉龙| 三明市| 宁南县| 潞城市| 沈丘县| 鲁甸县|