2020年9月14日 星期一

3DP : Lenticular Card 雙變卡產生器

2020年9月14日 星期一

 小時候玩過一種卡片,拿在手上,角度改變,圖案也跟著改變,兩個圖案變來變去的,滿好玩的。後來兩個圖案設計成像動畫一般,例如:一隻奔馳的馬。有的卡片則是會讓圖案變成立體的。查了一下,原來這叫作「雙變卡」,甚至有「三變卡」,英文則是「3D Lenticular Card」。關鍵一是在圖案前的那片薄薄的透明「光柵」,其二則是不同圖案被拆成一條條後交替重組成新的圖案。「一條條」的圖案在卡片轉至某個角度經過光柵折射後,又重組成原來的圖案,讓我們看到;其它的圖形也因為折射角的關係,而無法在我們的眼睛呈現。

知道原理以後,可不可以自己來做一個雙變卡呢?用「homemade Lenticular Card」的關鍵字去搜尋,真的有耶!有人寫了程式,可以把兩張圖片「一條條」重組,並輸出圖檔。我們只要把圖檔列印以後,再動手摺一摺,就是一個「雙變圖」了。

看了前面手動摺紙的方法,激發了我寫支模型產生器,利用 3D printer 來印一個「雙變卡」的想法。


產生器主要的程序很簡單:

  • 將兩張圖片裁成一條條大小相同的圖案。
  • 產生正三角柱。
  • 將兩張圖片相同位置的部份,貼在三角柱的共邊的兩側
  • 重覆前兩部份,直到所有小圖片都貼完。

這種有重覆動作的工作,當然是利用程式來做最方便。這次選用的開發工具是:

LenticularCard 專案

完成的專案放在 GitHub 中:

使用方法

準備工作

  • 安裝 OpenSCAD
  • 下載 LenticularCard 專案檔案

裁切圖片

專案需使用到兩張不同的圖片,為了減少產生 3D 模型等候的時間,程式預設是用使 100*100 (長度單位:像素)。然後每一張圖片再每隔 10 像素,裁切成「一條」(10x100),單獨儲存十個檔案。

圖片縮小還好,只要處理二次,但是依位置裁切成十個檔案,如果手動來做,手可就酸了!哈哈哈~其實我也是做過這樣的傻事才深有所感。

手酸了才讓我想起以前在教電腦,為了做學生作品的網站,利用一個叫 ImageMagick 的工具,來批次轉換圖片大小:

它的好處是可以跨平臺使用,當初可是在 FreeBSD 的主機上執行的呢!

經過那麼多年的發展,它的功能似乎更強大了。不過這次是想拿它來將一張圖,裁切成「十條」,並另存檔案。

例如圖形的檔案名稱為 picture1.png ,原始大小為 100x100,要切成 10x100 的小檔案,可以利用magick 「convert」的「-crop」:


magick convert -crop 10x100+0+0 picture-1.png parts-1-0.png


-crop 後面的「10x100」是指定要裁成的大小, 緊接著的「 +0+0」則是指定由左(X)算起第 0 點,由上(Y)算起第 0 點當起點開始算。「parts-1-0.png」則是要輸出的檔案名稱。

所以前面的例子可以幫我們輸出「第一條」圖案。

那「第二條」呢?


magick convert -crop 10x100+10+0 picture-1.png parts-1-1.png


「第二條」的大小仍是 10x100 ,是由左 10,上 0 起算(+10+0)。

其它的就由此類推囉!

我是這樣一行行打指令的嗎?哈哈哈!這次當然沒這麼老實了。如果是在 Windows ,可以利用 DOS 的 FOR 來幫我們完成「改數字」的部份:


for /L %a in (0,10,90) do (magick convert -crop 10x100+%a+0 picture-1.png parts-1-%a.png )

for /L %a in (0,10,90) do (magick convert -crop 10x100+%a+0 picture-2.png parts-1-%a.png )


只要準備好兩張 100x100 的圖片,一張命名為 picture-1.png ,另一個命名為 picture-2.png ,然後執行上面的兩行指令即可一次搞定囉!(專案中加入了一個給 Windows 用的批次檔,請參考 2020.09.15 的更新記錄)

其實有了 ImageMagick  也可以順便縮小圖片尺寸、改變亮度與對比的,它的功能實在太多了,以後再另起新文介紹囉!


更新記錄

  • 2020.09.15
    * 修正圖片比例的臭蟲。
    * 加了一個檔名序號(filename_numbers)的自動產程序,將序號改成每一小張圖切割的位置,方便搭配批次切割的檔名。
    * 專案中加入一個 dos 的批次檔(magick_batch_crop.bat),可搭配 ImageMagick  使用,執行時只要在批次檔命令加上兩個圖檔的檔名,即可按預設值切出 X 座標每次增加 10 個點的檔案。需要自動縮放大小,則再加上第三個參數「resize」,需要依 Y 座標來切成橫條,則加上「Y」。
  • 2020.09.14 於 GitHub 建立新專案
  • 2020.09.07 發想完成初版

2020年9月2日 星期三

Inkscape : Hershey Text 單線字

2020年9月2日 星期三

記得之前在鉛筆上用雷射打字時有個困擾,想縮短時間,就要用向量圖形的方式,但是一般的字型轉成路徑時,會是字的輪廓線,也就是空心字,字大一點的時候還好,但是是要打在鉛筆上的字比較小,輪廓線疊在一起,不美就算了,甚至連字是什麼都看不出來。為了解決這個問題,勢必得找「單線」的字型。英文字體倒好解決,Inkscape 有個 Extension 叫 Hershey Text ,可以幫我們做成單線的字。


上圖中本來是使用「sans-serif 」的字型,當我們把要轉換為 Hershey Text 的部份選取好後,找主選單「擴充功能」→「文字」→「Hershey 文字」,開啟 Hershey 文字 的對話框,就可以開始在「圖形運算」的頁面中選取想要轉換的字體了。


上面是選取「Hershey 無襯線 1-筆畫」後的結果,英文字串「Happy Birthday」順利轉為單線的字了,但是中文的「生日快樂」卻變成空白一片。

是的,沒錯!目前這個擴充功能,並不支援中文字。如果是中文字,可以下載這個日本網站提供的字型「Chogokuboso Gothic」:


開啟網頁以後,只要找下載的關鍵字「ダウンロード」


找到網址是 chogokubosogothic.zip 的那個來下載。

解壓縮後,將字型安裝好,重新開啟 Inkscape 後,字型清單中,應該會多一個「Chogokuboso Gothic」的字型可以選用了。

有了這種單線的字型,以後雷雕小字時,也可以美美的了!



2020年8月30日 星期日

3DP : 雷射焦點測試 G-code 產生器

2020年8月30日 星期日

 在 2016年1月的這篇「雄 : 3DP : Prusa i3 變身為雷雕機」中提到弄了個測試雷射焦距的 G-Code 產生器。那時對 G-Code 的了解不多,G-Code 是先在 Inkscape 中畫好 4x4 個正方形,用工具轉好的 G-Code ,再把Z軸高度和一些控制參數以字串置換的方式產出測試碼的,哈哈哈~真的是有夠原始的方法。

這幾天因為玩雷射又需要重找焦距,順便把 G-Code 產生器大改一下,直接放 Blogger 中,方便更新,雷射焦點測試 G-code 產生器的網址如下:


更新以後加入了幾個自訂選項,可以調整需要的測試格數及大小


更新記錄

  • 2020.08.31 在正方形中央加上 Z 軸高度的 G-code。
  • 2020.08.30 更版發布

相關文章



2020年8月28日 星期五

3DP : 雷雕蠟燭

2020年8月28日 星期五

 自從把 3D printer 加裝雷射頭以後,玩過木板、木頭、冰棒棍、飛機木、紙、紙板、貼紙、鉛筆、泡棉......,前面這些材質,如果較薄的有機會切斷,不然的話,都是被雷射燒出凹痕。今天拿出蠟燭來雷射,猜猜看,蠟燭被雷射打過後,表面會是凹的,還是凸的?

第一張照片是利 Inkscape 的 Extensions  Raster 2 Laser GCode generator 將圖片以點陣圖的方式輸出 "HAPPY BIRTHDAY" 的 GCode ,再將雷射打在蠟燭的結果:


因為是點陣圖的方式轉的,所以打雷射時,字是實心字。

下面這張照片中的則是以 Inkscape 的 Extensions  J Tech Photonics Laser Tool 以向量圖來輸出 GCode,所以打雷射時,只會打出 "生日快樂" 的輪廓線條(空心字);


仔細看一下,無論是「實心字」還是「空心字」,被雷射燒到時,線條都是凸出蠟燭的表面。在想,應該是雷射的熱讓蠟燭表面融掉,液體澎脹後,溢出表面,冷卻後變成凸字的效果。

這次玩的蠟燭是小支的,大概只有 4~5mm 能打圖案,下次再拿大支一點的蠟燭來試試。

相關文章



2020年8月25日 星期二

iOS : iFiles Upload

2020年8月25日 星期二

 iPad 第一代好久沒拿出來用,想到裡面有 iFiles 可以讓小孩聽英文,趕緊把它充電。iFiles 內建 web service ,可以直接上載檔案,在當時沒有雲端硬碟,可是很好用的。不過沒想到它上載檔案居然是用 Flash 寫的,現今的瀏覽器不支援 Flash Player,這下該如何上載檔案?

沒關係,山不轉路轉,路不轉人轉!我的電腦中有安裝 curl 這個命令列的工具,可以扮演瀏覽器,來執行上載檔案的任務。

iFiles 如果沒有設密碼管制,要上載檔案,只要知道:

  • 網址
  • 表單欄位的名稱

來觀察一下 iFiles 的上載頁面的網頁原始碼:

用「type="file"」搜尋,可以找到表單的欄位名稱為「nameFileUpload1」。

假設:

  • 要上載目前資料夾中的檔案,檔名為「test.zip」
  •  iFiles 網頁的網址是: http://192.168.2.104:8080/
curl 上載的完整命令為:

curl -F nameFileUpload1=@test.zip  http://192.168.2.104:8080/

如果像我同時要上載 test1.zip、test2.zip、test3.zip、test4,zip 和 test5.zip ,在 Windows 中,還可以搭 for 的命令來批次上載,將上面的命令改為:


for /L %a in (1,1,5) do ( curl -F nameFileUpload1=@test%a.zip  http://192.168.2.104:8080/ )


哈~成功把小孩所有要聽的 mp3 檔一次上載了,已經買了快十年的 iPad 繼續上工!


2020年8月20日 星期四

DIY : 遙控器按鈕回春術之三

2020年8月20日 星期四

 上一次用焊錫來修遙控器按鈕( 雄:DIY : 遙控器按鈕回春術之二 ),被大家的「大力金剛指」多按幾次以後,折過的焊錫會斷掉。之後改用鋁箔+三秒膠,沒按幾次就會脫膠,只好再試別的方法了。

這一次改用熱熔膠來黏鋁箔,感覺好像黏得比較牢。

操作的步驟如下:

  1. 加熱過的熱熔膠沾一點在搖控器的矽膠鈕上。
  2. 剪一小塊鋁箔蓋在上面。
  3. 以打火機稍微烤一下鋁箔上方。
  4. 輕壓鋁箔。
因為矽膠稍微耐熱,步驟 3 和步驟 4 可以讓鋁箔黏得更牢些。



一次把不靈光的按鍵都修一修了。

其實之前買過一小支貴貴的銀漆,只是不知道它到它到底被藏到哪裡去了!

我打算修修修~修到遙控器的殼被我拆爛為止 XD



2020年8月12日 星期三

Brother 印表機墨水量偵測鬥法

2020年8月12日 星期三

 家裡有一臺 Brother DCP-J105 彩色噴墨印表機,洋紅和黃色墨水不足的訊息已經出現很久了,因為平常只有印灰階的文件,所以也不在意經常跳出來的警告訊息。這一次是跳出黑色墨水沒了,只好拆開當初買印表機時順便買的黑色墨水來安裝,沒想到把黑色墨水安裝完以後,它就一直卡在另兩色沒墨水的,需要更換的訊息。不更換的話,就完全不能進行列印工作。

而且將墨水匣拆下來,稍微傾斜,可以看到墨水匣中其實是還有一些墨水的,就這樣不繼續工作,真是浪費又不環保!


平常幾乎用不到彩色列印,於是開始研究機器是如何偵測墨水量的。將墨水匣轉動九十度以後,可以看到透明的墨水觀測口中有一片黑色的塑膠

如果轉動墨水匣,黑色塑膠是會轉動的。從顏色及動作來看,猜想墨水量的感測應該就是利用這個「浮標」去遮斷紅外線的光感應器。

要證明是不是如自己猜想的那樣很簡單,拿出黑色的電工膠帶,剪一小片,貼在透明的「感應窗」,再把墨水匣裝回印表機,就可以知道假設對不對了。


把兩個顏色的墨水匣都貼好黑色膠帶,結果出來了:

哈哈哈~通通滿格,又可以繼續列印囉!

不過這一招是否會造成進墨口堵塞?

哈~反正我是不打算印彩色的文件了,如果有人想試這個方法來和印表機鬥法,可能還是要考慮到會造成的風險。


 
© 2009. Design by Pocket