如何使用Matlab制造GrabCAD 體素打印切片

2018.01.18/文

想必大家對Stratasys 最近推出的Voxel Print解決方案已經并不感到陌生了,但你是否已經知道如何使用Matlab制造GrabCAD 體素打印切片了呢?今天小編就為大家雙手奉上這滿滿一籃子的干貨。

本教程面向已熟悉Matlab及J750 操作的用戶。


第一步:體素(Voxel)是什么?


就像2D數字圖像是由像素組成的,你可以把三維數字形狀看作是由“體素(voxels)”組成。

 

它們是常規的矩形結構,包含3D打印點的顏色或材料數據。

 

有了3D打印切片,思考二維世界發生的事情會形成更好的頭腦畫面,而不是在3D空間描繪體素。切片被柵格化,而不是形狀被體素化。你可以看到,為了表示二維世界中的一個字母,我們必須做出很多決定:網格中的哪個正方形是暗色填充,淺色填充,還是完全沒有填充? 

因為為每個切片做出成千上萬的決策會產生一個巨大的價值矩陣,這就是使用Matlab的一個原因,Matlab有許多工具可以處理大型矩陣。

 

第二步:一般的切片準則

 

很容易想象,如果你擁有1000多個逐行切片,體素打印的每一層都看起來這樣:

 


你可以在J750把它們堆在一起,然后得到像這樣的打印:

 

但是有一些規則要遵循。

 

 

第三步:規則一:所有的切片必須有相同的尺寸。


體素印刷中的每個切片必須具有相同的像素尺寸(寬度和高度)。例如,在我們下面的球體里,每個PNG切片都是矩形,高度9像素 * 寬度1424像素(即使切片在球體頂部和底部附近,也不會發生太多的事情)。


這些尺寸是創建切片的工程師所選擇的。他可以選擇任何尺寸,只要每一片都是一樣的。

 

我們將使用Matlab循環命令確保每個切片的大小相同。

 

 

第四步:匹配打印機。


規則二:切片間的Z形缺口應匹配打印機的圖層設置。


你應該制定計劃,將你所需的最終形狀按照J750的匹配圖層高度進行切片。

 

例如,在下面的球體里,假設每個PNG切片之間的間距為0.027毫米來做出最終形狀。


J750圖層高度供參考:

 


(注:如果您的切片厚度與打印機圖層厚度不匹配,打印機將嘗試彌補差額。例如,如果生成0.0135毫米的片厚,并且您的打印模式是高混合,打印機將打印每個圖像兩次,以達到期望的厚度0.027毫米。最佳做法就是創建您的切片,以匹配您將要打印的模式。)

 

 

第五步:


規則三:所有的切片都應該使用相同的前綴來按順序命名。

 

體素打印工具不知道切片的“正確”順序。它只是通過文件名排序。

查找并為所有標有前綴的PNG文件排序。

在這個例子中,前綴是“slice_”。

序列號是遞增的。

當切片生成時,我們將使用Matlab循環,將我們的切片按順序編號。

 


 

第六步:


規則四:在所有切片中只使用6種 RGB顏色

 

J750只保留6種材料+支持。

體素打印工具將通過RGB值區分每個切片的材料使用。

因此,在指定的打印機中,在所有的組合切片中,你只能使用6 種RGB值。

以下常見J750材料的RGB值供參考。

 


從這里開始,我們將進入Matlab命令。

 

 

第七步:將RGB圖像存儲在Matlab中


以下展示了Matlab示例圖片“辣椒”PNG。

 


要將該圖像加載到Matlab變量中,請使用命令:

 

運行該命令后,Matlab顯示,RGB樣本按照384 x 512 x 3矩陣定義:

 

欲看辣椒.png的像素,使用命令:

 

結果:

 

 

 

第八步:最簡單的體素打印(一塊紅磚)


現在我們將嘗試制作一種最簡單的體素印刷品,一塊均勻的紅磚:

 


要做到這一點,我們將使用Matlab來定義,并為所需切片編號(不是所有展示的切片)。

 

命令開始:

 


應該生成一個300×600×3的整數矩陣:

 

填滿0:

現在,讓矩陣的第一層=161,第二層=35,第三層=99。對應于RGB(161,35,99),這應該是VeroMagenta。

 

>>brickslice(:,:,1) =161;

 

>>brickslice(:,:,2) =35;

 

>>brickslice(:,:,3) =99;

 

然后我們使用圖像顯示('imshow”)命令測試東西:

 

>>imshow(brickslice)

 

應該會導致:

 


 

第九步:


A循環,為數字編號,為 941個切片命名。

Matlab循環的一般結構:

 

我們的循環:

 


 

第十步:對第一個“循環”結果的思考


如果你將此循環保存在Matlab的“m”文件中的,并運行它,你可能會注意到一些事情:

 

為什么我們要指定941個切片呢?

 

如果你還記得,我們想要一塊1英寸高的磚頭:

 


如果我們的J750設置為高混合模式,切片為0.027毫米。25.4 / 0.027 = 940.7,所以我們需要941個切片。

 

2. 為什么所有產生的PNG還能有錯的尺寸?

 

如果你在我們剛剛創建的PNG上點擊,并看”屬性,“你會發現他們都不是我們想要的300x600像素:

 

這是因為Matlab 'imshow'命令按照默認的解決方案顯示圖像,我們現在必須改變。我們將展示如何在下一步中做到這一點。

 

 

第十一步:控制輸出像素尺寸為循環

 

修改后的循環:

 


 

第十二步:Matlab切片結果


在與Matlab ‘.m’文件相同的文件夾中,您現在應該有941個獨立的PNG切片文件,所有的都被序列編號,并擁有相同的前綴。

 


(我改變了我的磚頭切片去匹配.m文件的名字,你可以在循環里面設置任何前綴)

 

它們都應該有正確的像素尺寸。

 

現在,我們已經準備進入GrabCAD打印。

 

從這里開始,我們將使用GrabCAD打印和體素工具。

 

 

第十三步:


體素打印工具可以在InsightApp 等“應用程序”下找到。

 


 

第十四步:


體素打印工具將打開這個窗口。

 


 

第十五步:使用體素打印工具。


 

 

第十六步:點擊“下一步”后,運行工具。

 


屏幕也可以顯示錯誤。如果你得到“顏色太多”錯誤,請參閱本演示后面部分的故障排除指南。

 

 

第十七步:將RGB值 映射到J750材料。


打印工具告訴我們,在我們的切片中發現了哪些RGB值(高達6)。

 

我們必須指定一些J750材料的每一個值。

 

但是看到什么問題了嗎?

 

 

第十八步:故障排除:“顏色太多”錯誤

 

請記住,我們的切片只能有6個RGB值。但是我們只在MATLAB中指定了1個,那給什么呢?答案來自于從matlab中PNG輸出縮放:

 

雖然切片預覽起來可能看起來不錯:

 

甚至當你打開一個切片,也看起來不錯:

 


如果你放大一個角落,你就會看到問題:抖動。

 


這似乎是對MATLAB輸出圖像的默認,它試圖使純色的邊緣平滑化。

 

成熟的Matlab使用者可能知道關閉命令,但現在要知道,如果你在切片矩陣里指定了6種顏色,體素打印工具會把邊緣作為額外的顏色,并出現一個錯誤,因為它們是新的RGB值。

 

照片編輯軟件是檢查這的好方法。

 

1.打開你的顏色選擇器。

 

2.在你的切片在抖動區域點擊。

 

3、看看RGB值是否正在改變或則不同于預期值。

 


如果是這樣,這些額外的RGB值可能是造成您“太多顏色”錯誤的原因!

 

其他選項:

 

A.你沒有把正確的顏色指定為“背景”。

 

B. 在不同顏色的alpha通道分別作為不同的RGB值,所以我們只能擁有RGBA中的6個值。

 

 

第十九步:將RGB值 映射到J750材料。


因為我們現在不能修復MATLAB抖動問題,我們要為每個可找到的RGB值指定一種材料。(抖動區我選擇了黃色,希望不會影響太多。):

 


 

第二十步:

點擊“完成”和應該被創建的GCVF文件。

 


 

第二十一步:

在添加GCVF文件到紙盒之前

 

你必須打開這兩個屬性,導入GCVF到GrabCAD打印:

 


然后導入GCVF文件到紙盒。

 

 

第二十二步:我們最后擁有紅色立方體。


 

 

第二十三步:J 750的X、Y方向有不同的分辨率。


回到體素工具,你可能已經注意到窗口中有這兩個不可編輯的字段。

 


由于PolyJet技術的本質,像素堆疊X方向比堆積在Y方向要密集兩倍。

 

第二十四步:


這就是為什么我們得到了一個1*1英寸的立方體。

 

我們如何知道這是一個1*1英寸的立方體?

 

因為,如果你在每英寸每厘米都添加一個擁有切口的CAD部分(你應該),你可以看到立方體非常適合位于兩個“英寸”切口之間。

 


(這就是為什么始尺寸我選擇300×600,因為這會發生。)

 

 

第二十五步:結論


在這個過程中你可能注意到了一些事情:預覽沒有顯示顏色。

 


這個小立方體有941個切片。嘗試顯示上千的像素,因為這941個切片中的每一個都會使大多數顯卡崩潰。這就是為什么它對于任何.gcvf 文件都是一個簡單的灰色預覽。

 

2. 我們試圖創建一塊紅磚。結果卻是紅色立方體。

 


沒有“VeroRed.”。在體素打印里,你需要把J750材料顏色RGB體素緊靠彼此以從遠處得到某種顏色效果,就像電視一樣。

 

此外,設定尺寸時,要注意300 DPI與600 DPI。

 

3. 每個單獨的切片都是一樣的。

 


在這個例子中,我們使用Matlab的“循環”來計算我們的切片,每個循環使用相同的矩陣。但要實現體素打印的真正力量,通過體素的形狀、材料和排列改變了每一個圖層,你顯然希望每一個切片都是獨一無二的。

技術支持:上海網站建設
地 址: 上海市靜安區滬太路1895弄51號諾誠1895創意園2號樓102室電 話: +86-21-66316866,13817649775傳 真: +86-21-66316808郵 箱: [email protected]版權所有 ? 上海金鴻數碼科技有限公司 滬ICP備09001744號
海王捕鱼巨奖怎么得 山东时时11选5走势图 秒速时时技巧个人经验 体彩四川金七乐开奖 吉林快3开奖结果查询 福建福彩快3综合走势图 北京快3助手官方下载 上海时时乐开奖时间表 大乐透能查到中奖地区吗 手机版鬼泣 下载彩票软件