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

一種3D打印模型輕量化結(jié)構(gòu)自動(dòng)生成方案

2022-12-21 11:56:58黃至柔郭帥傅琳孫永國(guó)閆旭于廣濱
機(jī)械工程師 2022年12期
關(guān)鍵詞:結(jié)構(gòu)模型

黃至柔,郭帥,傅琳,孫永國(guó),閆旭,于廣濱,

(1.長(zhǎng)春理工大學(xué) 機(jī)電工程學(xué)院,長(zhǎng)春 130000;2.中國(guó)船舶重工集團(tuán) 第七○三研究所,哈爾濱 150078;3.哈爾濱理工大學(xué) 機(jī)械動(dòng)力工程學(xué)院,哈爾濱 150080)

0 引言

3D打印技術(shù)的出現(xiàn)使得一些復(fù)雜結(jié)構(gòu)的制造成為了可能,然而高昂的材料成本制約了3D打印技術(shù)的發(fā)展。為了節(jié)省打印耗材,降低打印成本,人們對(duì)3D打印模型的輕量化做了不少研究。

Chen等[1]提出一種將設(shè)計(jì)的不同種類(lèi)晶格單元結(jié)構(gòu)在模型內(nèi)部陣列的輕量化方法,并且目前已經(jīng)廣泛應(yīng)用到Magics等專(zhuān)業(yè)3D打印軟件中,然而這種方法需要進(jìn)行大量的布爾運(yùn)算,對(duì)于復(fù)雜模型的處理能力不足。北京工業(yè)大學(xué)的毛羽忻[2]針對(duì)3D打印切片的特點(diǎn),提出一種基于骨骼肌仿真的3D打印模型支撐結(jié)構(gòu),首先使用圖像處理的方法提取骨骼肌紋路,然后將模型分成無(wú)數(shù)切片。令每一層切片與提取的骨骼肌紋路做布爾運(yùn)行,然后再將運(yùn)算后的切片進(jìn)行三維重建。同樣是把三維問(wèn)題轉(zhuǎn)換到二維,浙江大學(xué)的趙斌濤[3]提出一種基于LDNIs的桁架結(jié)構(gòu)生成算法,提高了桁架結(jié)構(gòu)的生成效率。同樣是基于桁架結(jié)構(gòu)的輕量化方法,武漢理工大小的石丹[4]基于STL文件的數(shù)據(jù)結(jié)構(gòu),利于Matlab計(jì)算桁架的節(jié)點(diǎn),并將節(jié)點(diǎn)導(dǎo)入Grasshopper中生成桁架結(jié)構(gòu)。不同于使用桁架結(jié)構(gòu),大連理工大學(xué)的馮紫鑫[5]使用三周期極小曲面結(jié)構(gòu)在模型內(nèi)部陣列,并根據(jù)模型力學(xué)仿真結(jié)果改變極小曲面的參數(shù)以實(shí)現(xiàn)結(jié)構(gòu)力學(xué)性能的改變。本文結(jié)合武漢理工大學(xué)石丹與大連理工大學(xué)馮紫鑫等的研究,提出一種基于桁架結(jié)構(gòu)的模型輕量化方案,并根據(jù)力學(xué)仿真結(jié)果,通過(guò)對(duì)受力較大部位填充的方式實(shí)現(xiàn)結(jié)構(gòu)強(qiáng)度的優(yōu)化。

1 基礎(chǔ)結(jié)構(gòu)生成

為了生成輕量化模型的基礎(chǔ)結(jié)構(gòu),首先借助專(zhuān)業(yè)3D打印軟件Magics的外殼和內(nèi)核功能,將初始模型分為外殼、內(nèi)殼與內(nèi)核3個(gè)部分,接著讀取獲得的內(nèi)殼與內(nèi)核兩部分的模型文件數(shù)據(jù)作為桁架結(jié)構(gòu)的節(jié)點(diǎn),再將節(jié)點(diǎn)導(dǎo)入Grasshopper并連接各個(gè)節(jié)點(diǎn),分別獲得內(nèi)殼桁架與內(nèi)核桁架,將內(nèi)殼桁架與內(nèi)核桁架相連即為輕量化模型的內(nèi)部桁架,最終將內(nèi)部桁架與模型外殼做布爾運(yùn)算即生成了輕量化模型的基礎(chǔ)結(jié)構(gòu)。

1.1 模型的外殼、內(nèi)殼與內(nèi)核

為了使模型原來(lái)的外表得以保留,需要對(duì)待輕量化的模型進(jìn)行抽殼。本文使用Materialize公司旗下專(zhuān)業(yè)3D打印軟件Magics將模型分為外殼和內(nèi)核(殼厚為a),其中將獲得的外殼作為模型外表,內(nèi)核作為計(jì)算輕量化模型內(nèi)部第一層桁架的基礎(chǔ)。然后,為了提高輕量化模型的強(qiáng)度,避免模型內(nèi)部孔隙過(guò)大,將前一次分離的模型內(nèi)核再進(jìn)行一次分離,成為新的模型內(nèi)殼與模型內(nèi)核(殼厚為b),內(nèi)核作為計(jì)算輕量化模型第二層桁架的基礎(chǔ)。

至此,使用Magics將原本的模型分離成了外殼、內(nèi)殼與內(nèi)核3個(gè)部分,如圖1所示,方便后續(xù)的一系列處理。

圖1 模型抽殼示意

圖2 示例模型三部分

1.2 內(nèi)部桁架結(jié)構(gòu)的生成

內(nèi)部桁架結(jié)構(gòu)是對(duì)模型鏤空部位起支撐的作用,在3D打印領(lǐng)域中,桁架結(jié)構(gòu)也是常見(jiàn)結(jié)構(gòu)之一。目前,國(guó)內(nèi)外對(duì)于桁架結(jié)構(gòu)的研究主要集中于其設(shè)計(jì),而對(duì)于其生成方面的研究則相對(duì)較少。在本文所提出的輕量化方案之中,內(nèi)部桁架結(jié)構(gòu)分為內(nèi)殼桁架與內(nèi)核桁架兩部分,這兩部分桁架的生成根據(jù)1.1節(jié)中所獲得的內(nèi)殼模型與內(nèi)核模型計(jì)算而出。具體步驟如下:

1)分別讀取內(nèi)殼和內(nèi)核兩部分的STL模型文件數(shù)據(jù);

2)將1)中讀取的數(shù)據(jù)作為節(jié)點(diǎn)導(dǎo)入Grasshopper并連接生成內(nèi)殼初始層桁架與內(nèi)核初始層桁架;

3)根據(jù)1)中讀取的數(shù)據(jù)計(jì)算新的節(jié)點(diǎn)并導(dǎo)入Grasshopper,連接生成內(nèi)殼偏置層桁架與內(nèi)核偏置層桁架;

4)將內(nèi)殼桁架與內(nèi)核桁架相連最終形成輕量化模型的內(nèi)部桁架結(jié)構(gòu)。

1.2.1 STL模型文件的讀取

STL文件格式[6]是由美國(guó)3Dsystem公司推出的3D打印領(lǐng)域通用的模型文件格式,STL格式的模型是用一系列三角形來(lái)描述模型的表面,每一個(gè)三角面片都包括3個(gè)頂點(diǎn)的坐標(biāo)數(shù)據(jù)和法向量信息,通常用戶(hù)需要先將設(shè)計(jì)好的三維模型轉(zhuǎn)換成STL模型,再導(dǎo)入切片軟件進(jìn)行切片以獲取每一層切片的輪廓。STL文件又分為二進(jìn)制格式與ASCII碼格式,本文所使用的STL文件格式為二進(jìn)制,其數(shù)據(jù)存儲(chǔ)格式如表1所示。

表1 二進(jìn)制STL文件數(shù)據(jù)存儲(chǔ)格式

由于STL文件是用三角形來(lái)描述模型表面,故以一個(gè)三角面片為單位存儲(chǔ)模型文件數(shù)據(jù)。首先定義一個(gè)三角面片的類(lèi)Facet,用來(lái)存儲(chǔ)每一個(gè)三角面片,其成員包括3個(gè)頂點(diǎn)vertex子類(lèi)成員以及一個(gè)法向量成員,每一個(gè)vertex子類(lèi)則包括3個(gè)double類(lèi)型的成員變量x、y、z。即:

再使用fopen_s函數(shù)打開(kāi)文件后將數(shù)據(jù)存入分配的內(nèi)存,接著根據(jù)二進(jìn)制格式對(duì)所有的Facet對(duì)象進(jìn)行初始化,最后將初始化后的所有對(duì)象即所有三角面片存入vector中便于后續(xù)步驟的處理。至此完成模型文件數(shù)據(jù)的讀取。

1.2.2 初始層桁架

完成存儲(chǔ)內(nèi)殼模型與內(nèi)核模型的三角面片之后,將每個(gè)面片的3個(gè)頂點(diǎn)的坐標(biāo)數(shù)據(jù)以.txt文本文件輸出:定義輸出文件名與格式,使用迭代器以訪問(wèn)存儲(chǔ)容器中的每一個(gè)元素,再用文件流操作將數(shù)據(jù)寫(xiě)入指定文本文件。即:

然后在Grasshopper中分別讀取寫(xiě)入節(jié)點(diǎn)坐標(biāo)X、Y、Z數(shù)據(jù)的文本文件,建立好節(jié)點(diǎn)并用line電池將節(jié)點(diǎn)按設(shè)定好的規(guī)則相連(如圖3),至此獲得內(nèi)部桁架結(jié)構(gòu)的初始層桁架(如圖4)。

圖3 Grasshopper桁架生成程序設(shè)計(jì)

圖4 初始層桁架結(jié)構(gòu)

1.2.3 偏置層桁架

為了進(jìn)一步提高桁架結(jié)構(gòu)的強(qiáng)度,武漢理工大學(xué)的石丹等將每一個(gè)三角面片的形心向法矢方向偏置,使偏置后的形心作為下一層桁架的節(jié)點(diǎn),然后根據(jù)原有三角面片的拓?fù)潢P(guān)系將偏置后的形心劃分為新的三角面片,然后重復(fù)偏置新的三角面片的形心,以此迭代的方式不斷生成新的偏置層桁架。這種方法的問(wèn)題在于:

1)在將形心朝法矢方向偏置的過(guò)程中會(huì)出現(xiàn)偏置點(diǎn)跑到模型外面的情況,形成干涉點(diǎn)導(dǎo)致建模錯(cuò)誤,如圖5所示。

圖5 偏置點(diǎn)偏置錯(cuò)誤

2)在將形心朝法矢方向偏置完成,將偏置點(diǎn)相連形成桁架結(jié)構(gòu)的過(guò)程中,會(huì)出現(xiàn)桿與桿之間交叉干涉的情況。

3)一般的3D打印模型的面片數(shù)在幾千甚至幾百萬(wàn)不等,在將偏置形心劃分為新的三角面片后,新的三角面片數(shù)量會(huì)遠(yuǎn)大于上一層三角面片,而該方法必須計(jì)算每一層的所有三角面片的偏置形心、法向量,與定義新的拓?fù)潢P(guān)系,故迭代兩次之后產(chǎn)生的新的三角面片會(huì)極大降低算法的時(shí)間、空間效率。

針對(duì)問(wèn)題1),本文提供的輕量化方案的內(nèi)部桁架結(jié)構(gòu)是在1.1節(jié)中所獲得模型內(nèi)殼與模型內(nèi)核基礎(chǔ)上直接計(jì)算而得,避免了從最外層桁架一層層向內(nèi)偏置迭代,故不會(huì)產(chǎn)生偏置點(diǎn)跑到模型外部的情況。

針對(duì)問(wèn)題2),桿與桿交叉干涉一般出現(xiàn)在模型曲率較大的部位,該部位附近的三角面片距離相對(duì)較短,法向量夾角相對(duì)較小,當(dāng)兩個(gè)距離較短且法向量夾角較小的三角面片的形心的偏置距離大于兩個(gè)面片的相對(duì)距離時(shí),就會(huì)出現(xiàn)交叉干涉。由于內(nèi)殼與內(nèi)核處于初始模型內(nèi)部,對(duì)其外表形貌不做要求,且這兩部分模型表面的精細(xì)程度不需要太高,通過(guò)對(duì)內(nèi)核與內(nèi)殼進(jìn)行三角面片簡(jiǎn)化的操作,降低內(nèi)殼、內(nèi)核的模型精度及模型表面的曲率,從而使后續(xù)桁架的結(jié)構(gòu)更加簡(jiǎn)潔,避免了交叉干涉的情況。

圖6 偏置輪廓相交

針對(duì)問(wèn)題3),如同問(wèn)題1)解決方案中提到的一樣,本文所提供的輕量化方案不使用層層迭代的方式,故避免了龐大的三角面片計(jì)算量,且通過(guò)內(nèi)殼與內(nèi)核并行計(jì)算生成結(jié)構(gòu)的方法相比于串行迭代的方式更具有時(shí)間效率。

綜上3點(diǎn),本文使用內(nèi)殼向內(nèi)偏置一次,內(nèi)核向外偏置一次的方式:計(jì)算內(nèi)殼上所有三角面片的形心,朝法向量偏置一定距離D(D應(yīng)小于在1.1節(jié)中對(duì)模型進(jìn)行內(nèi)殼與內(nèi)核分離時(shí)設(shè)置的兩者之間的距離b的1/2),得到內(nèi)殼偏置形心,將每一個(gè)內(nèi)殼偏置形心與其對(duì)應(yīng)的三角面片的3個(gè)頂點(diǎn)相連,形成內(nèi)殼偏置層桁架(圖7中白色部分);同理,對(duì)內(nèi)核上所有三角面片進(jìn)行同樣的計(jì)算與操作之后,將形成的內(nèi)核偏置層桁架與內(nèi)殼偏置層桁架以最近距離的方式匹配相連,最終形成了輕量化模型的內(nèi)部桁架結(jié)構(gòu)。

圖7 輕量化模型內(nèi)部桁架生成流程

2 輕量化模型結(jié)構(gòu)強(qiáng)度優(yōu)化

由于模型在不同受力條件下各個(gè)部位的應(yīng)力分布不同,通常情況下只用一種結(jié)構(gòu)無(wú)法滿(mǎn)足所有情況下結(jié)構(gòu)的強(qiáng)度要求。為了使模型在不同受力條件下都具有足夠的強(qiáng)度,本文提出一種對(duì)模型應(yīng)力集中部位填充的方法:首先對(duì)模型進(jìn)行有限元分析,將分析結(jié)果以單元節(jié)點(diǎn)為單位輸出,接著對(duì)其進(jìn)行篩選,并以篩選后滿(mǎn)足條件的目標(biāo)節(jié)點(diǎn)的坐標(biāo)為基礎(chǔ),使用OpenSCAD建立實(shí)體,最后將實(shí)體與初始模型做布爾運(yùn)算以實(shí)現(xiàn)對(duì)模型的填充。

圖8 輕量化模型結(jié)構(gòu)強(qiáng)度優(yōu)化流程

2.1 模型的有限元分析

有限元分析的目的是為了模擬模型在實(shí)際工況下整體結(jié)構(gòu)所受到的影響。有限元分析的結(jié)果為后續(xù)本文所提供的優(yōu)化方案提供了目標(biāo)與依據(jù)。本文使用ANSYS Workbench 19.0平臺(tái)對(duì)1.1節(jié)中的示例模型進(jìn)行壓縮實(shí)驗(yàn)?zāi)M:材料使用默認(rèn)的結(jié)構(gòu)鋼,材料密度為7850 kg/m3, 抗壓屈服強(qiáng)度為250 MPa,在模型底面施加約束,并在頂端施加一個(gè)80 MPa的垂直方向載荷,計(jì)算得到模型的等效應(yīng)力結(jié)果如圖9所示。

圖9 示例模型的應(yīng)力云圖

通過(guò)分析結(jié)果可知,該示例模型的應(yīng)力較大部位分別在模型尾巴根部、尾巴與頭部連接處,以及腳底受約束部位。在Workbench中將分析結(jié)果以單元節(jié)點(diǎn)為單位輸出到文本文件中,即可獲得每個(gè)單元節(jié)點(diǎn)的x、y、z坐標(biāo)與其對(duì)應(yīng)的應(yīng)力值大小,再對(duì)記錄這些節(jié)點(diǎn)的文本文件進(jìn)行讀取,以大于給定閾值(例如抗壓屈服強(qiáng)度)為條件篩選并導(dǎo)入到Grasshopper中進(jìn)行觀察,得到滿(mǎn)足條件的節(jié)點(diǎn)如圖10所示。

圖10 目標(biāo)節(jié)點(diǎn)集

2.2 目標(biāo)節(jié)點(diǎn)的填充實(shí)體建模

在獲得了模型應(yīng)力較大部位的節(jié)點(diǎn)坐標(biāo)數(shù)據(jù)之后,本文使用OpenSCAD在每一個(gè)目標(biāo)節(jié)點(diǎn)的位置建立一個(gè)小的實(shí)體,再與初始模型進(jìn)行布爾運(yùn)算以滿(mǎn)足模型的幾何約束,從而獲得輕量化模型的填充實(shí)體模型。

OpenSCAD[7]是一款開(kāi)源免費(fèi)的建模軟件,并且能實(shí)現(xiàn)對(duì)STL文件的輸入與輸出。OpenSCAD使用的是編程腳本進(jìn)行建模,通過(guò)其自帶的庫(kù)函數(shù)實(shí)現(xiàn)常見(jiàn)3D幾何模型的建立與基本建模操作。本文所使用的OpenSCAD 中編程語(yǔ)言函數(shù)如表2所示。

表2 OpenSCAD語(yǔ)言函數(shù)

在2.1 節(jié)中經(jīng)過(guò)篩選后滿(mǎn)足條件的目標(biāo)節(jié)點(diǎn)共有144個(gè),如果要在每一個(gè)目標(biāo)節(jié)點(diǎn)的位置上建立一個(gè)實(shí)體(根據(jù)示例模型的幾何尺寸,本文選用3 mm球形實(shí)體:sphere(3)),則需要調(diào)用144次sphere函數(shù),這種情況下通常采用循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)函數(shù)的復(fù)數(shù)次使用,但是OpenSCAD本身不具備分支、循環(huán)等常用編程邏輯功能。故需先使用C++中的for循環(huán)功能實(shí)現(xiàn)OpenSCAD腳本的生成(圖11右上),然后將腳本導(dǎo)入OpenSCAD中,過(guò)程如圖11所示。

圖11 目標(biāo)節(jié)點(diǎn)位置實(shí)體建模流程

在OpenSCAD中完成建模之后,為避免部分實(shí)體超出初始模型的表面,需要將這些實(shí)體與初始模型進(jìn)行布爾交運(yùn)算,如圖12所示。

圖12 布爾運(yùn)算獲得填充結(jié)構(gòu)

3 輕量化模型的生成

將本文在第1節(jié)獲得的輕量化模型的基礎(chǔ)結(jié)構(gòu)與第2節(jié)獲得的用以提高結(jié)構(gòu)強(qiáng)度的填充結(jié)構(gòu)相結(jié)合,即為本文所設(shè)計(jì)的3D打印模型輕量化方案的最終結(jié)構(gòu),如圖13所示。

圖13 最終輕量化模型生成

模型輕量化前體積為6970 mm3,輕量化后模型體積為3144 mm3。

圖14及表3所示是本文輕量化方案生成一些其他案例,為了方便展示桁架結(jié)果隱藏了模型外殼。

圖14 本輕量化方案其他算例

表3 算例結(jié)果

4 結(jié)論

本文提出一種3D打印模型輕量化的方案,方案基于3D打印模型專(zhuān)用STL文件,使用部分商業(yè)以及開(kāi)源軟件的功能,再結(jié)合所設(shè)計(jì)的算法實(shí)現(xiàn)降低打印模型的質(zhì)量以及體積,并且根據(jù)力學(xué)仿真結(jié)果優(yōu)化輕量化模型的結(jié)構(gòu)強(qiáng)度。

猜你喜歡
結(jié)構(gòu)模型
一半模型
《形而上學(xué)》△卷的結(jié)構(gòu)和位置
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
論結(jié)構(gòu)
新型平衡塊結(jié)構(gòu)的應(yīng)用
模具制造(2019年3期)2019-06-06 02:10:54
論《日出》的結(jié)構(gòu)
3D打印中的模型分割與打包
FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長(zhǎng)
主站蜘蛛池模板: 91精品国产麻豆国产自产在线| 国产精品性| 综合亚洲网| 九色在线观看视频| 女人爽到高潮免费视频大全| 日韩成人高清无码| 国产成人亚洲精品蜜芽影院| 在线无码九区| 中文字幕第1页在线播| 国产呦精品一区二区三区下载 | 日韩精品高清自在线| 日韩免费毛片| 波多野结衣AV无码久久一区| 日韩中文精品亚洲第三区| 99视频在线免费观看| 国产乱人免费视频| 久久网欧美| 色妞永久免费视频| 久久99热这里只有精品免费看| 国产成人综合在线观看| 久久精品无码一区二区国产区| 五月婷婷亚洲综合| 全午夜免费一级毛片| 啪啪国产视频| 嫩草影院在线观看精品视频| 日韩欧美色综合| 亚洲精品大秀视频| 成人毛片免费在线观看| 亚洲天堂网在线视频| 91成人免费观看| 曰韩免费无码AV一区二区| 少妇极品熟妇人妻专区视频| 日韩毛片在线播放| 99久久国产精品无码| 亚洲欧美另类中文字幕| 在线国产91| 婷婷伊人久久| 在线欧美国产| 成人午夜精品一级毛片| 伊人久久精品无码麻豆精品 | 又粗又大又爽又紧免费视频| 蜜桃臀无码内射一区二区三区| 国产黄色片在线看| 成人av专区精品无码国产| 99久久国产综合精品2020| 久久久久亚洲精品成人网| 久久精品日日躁夜夜躁欧美| 国产流白浆视频| 成人自拍视频在线观看| 国产精品护士| 亚洲第一成年网| 97青青青国产在线播放| 国产黄色爱视频| 欧美成人精品欧美一级乱黄| 欧美一级在线播放| 国产乱人伦偷精品视频AAA| 天天综合网色| 免费人成在线观看成人片| 午夜少妇精品视频小电影| 黄色网在线免费观看| 无码一区中文字幕| 四虎永久免费地址在线网站| 夜夜爽免费视频| 国产成人高清在线精品| 漂亮人妻被中出中文字幕久久| 亚洲Av综合日韩精品久久久| 免费福利视频网站| 国产精品一区在线麻豆| 亚洲精品无码抽插日韩| 欧美人在线一区二区三区| 久久青草免费91线频观看不卡| 亚洲成a∧人片在线观看无码| 54pao国产成人免费视频| 婷婷亚洲视频| 无码综合天天久久综合网| 国产福利在线免费| 国产高清无码麻豆精品| 中文字幕亚洲另类天堂| 亚洲中文字幕日产无码2021| 亚洲人成网7777777国产| 小说 亚洲 无码 精品| 国产成人亚洲综合a∨婷婷|