2017年2月6日 星期一

Inkscape : SVG 頁面設定與圖形大小

2017年2月6日 星期一
年前找出在 Flash 中設計的頭像圖,實驗性的匯出成為 .AI 格式的向量圖,並以「UniConvertor」轉為 SVG 檔,最後才能在 Inscape 中編輯。有人可能要問我:「為什麼不直接以 Inscape 來開啟 .AI 檔案?它有支援啊!」哈!因為我是用 Flash 8 ,它太舊了,只能匯出舊版的 AI 格式,就那麼剛好,Inkscape 不支援太舊的 .AI 檔。

當時發現一個問題,同樣都可以處理向量圖形,Flash 匯出的圖在 Inkscape 中就是特別的小,當時在玩別的東西,也沒深究。這幾天在研究幾個 SVG 轉 G-code 的工具,發現這問題可是大問題了,如果用的是 GcodeTools、J Tech Photonics Laser Tool、Mr Beam、TurnkeyLaser Exporter ......,這些以 GcodeTools 為架構的 Extensions,因為 SVG 的設計,有些圖檔轉出的圖形大小實在差太多了。如果對 SVG 圖形的縮放有興趣,可以參考底下的文章,研究看看:


基本上是這樣的概念:點陣圖向來就是一個點、一個點畫在版面中,版面怎麼縮放,點就跟著縮放;但對於 SVG 的向量圖來說,「單位」很重要,放大、縮小版面,向量圖本體卻可能因「單位」是用 px、mm、in ...... 而有所差異,一定要弄清楚。

Inkscape 0.92 將預設的 DPI 由 90 改為 96,對一些和尺寸有關的 Extensions 應該會有所影響,因為這一改,比例、位置都可能會跑掉了。

  • v.0.91 的 90DPI : 1mm = 90/25.4 = 3.5433070660 px
  • v.0.92 的 96DPI : 1mm = 96/25.4 = 3.7795275591 px

如果以 Inkscape 0.92 來開啟舊版儲存的文件,將文件屬性中的「Display units」由「px」和「mm」之問切換,應該可以在「比例」中的「Scale x」中看到 3.xxxxx 的數字。

下面直接在 Inkscape 0.92 裡實驗,最後我們再來看看,操作 GcodeTools 一系列轉 G-code 的工具到底要先將 Inkscape 的頁面設定為什麼。


試驗過程

我的 Inkscape 0.92 打開來以後,它預設的「文件屬性」設定為:
  • Display units : mm
  • 頁面使用單位 : mm
  • 比例 : 1
我先將頁面大小改為 100mm x 100mm,其餘不變:

單位都使用 mm , 比例為 1


然後在繪圖區中畫了一個 100mm x 100mm 的螺旋,讓它填滿繪圖區。

100mm x 100mm 的圖

100mm x 100mm 的圖可以填滿 100mm x 100mm 的繪圖區,看來很合理。照說,圖的最右邊應該是 100mm 的位置,不過,當我利用「J Tech Photonics Laser Tool」將螺旋轉為 G-code 以後,它居然遠小於 100mm x 100mm。我們可以由轉換工具遺留在畫面的「Orientation points (方向點)」看出它「以為」的 0 和  100 的位置在哪裡。

比例不對,轉換失敗

很明顯的,轉換工具用的 100 ,單位可能不是我們用的 mm ,所以 Orientation points 往更右邊去了。

還原轉換失敗的前一個動作以後,打開 Inkscape「文件屬性」的設定畫面,將右上方的「Display units」換為「px」看看:

mm 換成 px 以後 Scale x 變為 0.26458 

「Display units」換成「px」以後,因為單位不同,「比例」中的「Scale x」變成 0.26458,而不是原來的 1 了。

我們將「Scale x」修改為 1,並重新回到繪圖區。

Display units : px ; Scale x : 1


原來的螺旋因為選用的單位不同,改變比例以後,變很小一個:

螺旋的大小和位置都變了
在新的文件設定下,重新調整螺旋的大小至填滿繪圖區。並再度使用「J Tech Photonics Laser Tool」,將螺旋轉為 G-code 以後的畫面如下:

正確轉換的結果

這次「Orientation points (方向點)」100 對到的地方在圖的右側邊緣(繪圖區的右緣)。


結論

哈!本次記錄,最重要的來了!

如果是要使用類似 GcodeTools 的工具來轉 Gcode ,畫圖前要先將 Inkscape 的「文件屬性」設定為:
  • Display units : px
  • 比例 Scale x : 1

對!沒錯!這兩項就是關鍵!再看一次前面貼過的圖裡最重要的一張:

畫圖之前,文件的最佳設定

為什麼要在畫圖前改設定呢?哈!畫好才改設定,繪圖區中已畫好的得一個個重新調整比例,我想,這樣應該很累人的,俗話說得好:「預防重於治療」,要聽啊!

其實,另一個 Gcode 轉換工具「TurnkeyLaser Exporter」在使用時會檢查並提醒使用者注意圖檔文件的單位:

Please change your inkscape project units to be in pixels, not inches or mm. In Inkscape press ctrl+shift+d and change 'units' on the page tab to px. The option 'default units' can be set to mm or inch, these are the units displayed on your rulers.

這種做法也滿貼心的,其它類似的工具可以參考參考。






4 則留言:

  1. 請問在Inkscape裡畫圓並轉成路徑再用J Tech Photonics Laser Tool轉成gcode檔,但轉出來的圓不是圓是多邊形的感覺,請問是哪邊需要設定嗎??謝謝

    回覆刪除
  2. 您好:
    不知您所謂的多邊形是已經以機器執行完 gcodes 的結果嗎?還是只有在畫面預覽而已?個人沒有遇過您說的情形,以機器執行完gcodes的圖形和電腦畫的圖是一致的。

    回覆刪除
  3. 對不熟的使用者來說,這篇是很重要的入門

    回覆刪除

 
雄::gsyan © 2009. Design by Pocket