顯示具有 Inkscape 標籤的文章。 顯示所有文章
顯示具有 Inkscape 標籤的文章。 顯示所有文章

2021年4月12日 星期一

Inkscape : 路徑無法進行操作

2021年4月12日 星期一

在 Inkscape 中,明明已經將文字物件轉為路徑了,卻仍然無法和其它圖形進行路徑的「交集」,其實這個問題也發生在圖形和圖形之間。

之前一直以為把兩個圖形選取以後,就可以進行路徑的「相加」、「減去」、「交集」、「排除」......等操作,試了半天,圖形一點變化也沒有。


能不能執行路徑的功能操作,關鍵就在選取的物件中是否含有「雜質」。什麼是「雜質」呢?

如果被選取的物件只是單純用 Inkscape 工具繪製完的圖形(文字工具除外),而且沒有「群組」過或設定成「剪裁」、「遮罩」的,應該可以順利的執行路徑中的功能。反之,如果選取的範圍中有文字物件或圖形有設定「群組」、「剪裁」、「遮罩」的,路徑中的功能可能無法作用。

以上圖中為例,如果只選取了紅色的矩形跟藍色的圓形,它們因為都是單純的圖形,可以執行路徑的功能;但如果又加選了黑色的文字物件,就聞風不動了!

如何讓文字物件可以執行路徑的功能呢?

文字物件要先依序進行兩個操作:

  1. 物件轉為路徑。
  2. 解散群組。
選取文字物件後,再點選主選單裡「路徑」中的「物件轉為路徑」


由於文字物件轉為物件以後,整個文字物件不管裡面有多少字,它們都被設定了群組。前面提過,設定群組的物件無法執行路徑的功能。所以要先解散群組:



同樣的道理,如果其它圖形有被設定群組了,要執行路徑的功能之前,也是要先解散群組。



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年7月25日 星期六

Inkscape : Raster 2 Laser GCode generator 更新

2020年7月25日 星期六
前幾天有人留言提到 Raster 2 Laser GCode generator 已經無法在 Inkscape 1.0 上使用後,又燒起研究程式的火。試了幾天,對這個 extension 更了解了,也一一把和 Inkscape 1.0 不相容的地方找出來並解決。

本來還在想,如果要弄新舊兩個版本,不就累死了。今天試用 Inkscape 1.0 增加參數的 attribute 「arg_parser」來當依據,用 Python 的 hasattr 來判斷是否有「arg_parser」,如果為 True,表示為 Inkscape 1.0 以後的版本,就改用新的語法,反之前使用舊的版本。哈~這樣子瞎搞一番以後,Raster 2 Laser GCode generator 就可以新舊通吃了!

改過的版本可以在下面 GitHub 專案中下載:

不過為了考慮向下相容 Inkscape 0.92 ,不能在 raster2laser_gcode.inx 中使用「type="path"  mode="folder"」讓使用者用視窗介面的檔案對話框來指定輸出的資料夾。

Inkscape 1.0 用 type="path" 可以用點選的方式選資料夾或檔案

可惜了這個在 Inkscape 1.0 中很方便的新功能。



Inkscape : 1.0 版的Y座標原點

用了幾天的 Inkscape 1.0 才發現它的座標原點換到左上角了


哈~還真有一點不習慣,這種感覺就像剛用 Inkscape 時,它和別的軟體中以左上角為原點不相同,得去慢慢適應一樣。

不過現在如果不習慣,在 Inkscape 「偏好設定」中的「介面」有一個選項可以將座標原點改到左下角:


把那個「原點位在較低於左下角且較高於y軸點」的勾勾取消,並重新啟動 Inkscape ,就可以恢復以前座標原點在左下角的樣子了。


哈~「介面」中的那個「原點位在較低於左下角且較高於y軸點」,我特別換成英文語系,找出它的原文是「Origin at upper left with y-axis pointing down」,讓 Google 翻譯了一下是:

原點在左上角,y軸指向下方

好像比較容易理解了!

把座標原點換到左下角有個好處,這樣才會和 3D printer 的座標一樣,哈哈哈~不然頭腦不好的我,轉換時會昏頭的。



Inkscape : Raster 2 Laser GCode generator 除蟲

如果有在玩雷雕的話,Inkscape 的 extension Raster 2 Laser GCode generator 是很好用的工具。它可以先幫我們把 Inkscape 工作區中的圖形在背景下匯出成 PNG 格式的圖檔,然後再依使用者的設定,把每一個點的顏色(RGB)轉換為灰階(每一個點均用一個 0~255 的值來表示),最後再將灰階圖中的每一個點顏色轉換成 GCode 中雷射的強度。



之前在測試 RGB 轉換為灰階的七個模式,其中的第一個名為「0.21R + 0.71G + 0.07B」,我一直覺得它哪裡怪怪的。假設別的模式花不到二十分鐘打雷射的圖形,它卻要花近兩個小時,看雷射移動的軌跡,它連不需要打雷射的地方(圖片中白色的部份)也打雷射,由輸出的 GCode 可以看到它第一個開啟雷射(M106   S3.0)的位置是在左下角的原點 (G00 X0.0 Y0.0 F1200),這很明顯和我設計的圖形是不同的。



2020年7月22日 星期三

Inkscape : Extensions : 升級至 1.0 後的災情

2020年7月22日 星期三
Inkscape 1.0 版已經發布,不過個人還沒有升級體驗,已經有網友留言提醒 Raster 2 Laser GCode generator 的 extension 不能用了。試了一下,果然卡住:


查了一下資料,Inkscape 1.0 extensions 的設定有異動,而且無法向下相容;此外,Inkscape 1.0 已經改採用 Python 3.x 了,這使得原來使用 Python 2.x 開發的小工具也得修改才能正常工作。

相關的升級資訊可以參考 Inkscape 的 wiki :

2017年7月27日 星期四

Inkscape : 工具列的設定數值無法顯示

2017年7月27日 星期四

使用 Inkscape 一直有個困擾,用了某一個繪圖工具或設定過某些值以後,工具列中的數值輸入區數字就會空白一片;這種情形也會發生在擴充功能的頁面切換以後。

之前遇到這種情形,只好先儲存檔案並關閉 Inkscape,再重新開啟圖檔來改設定值,可是 Inkscape 啟動很慢,每每都讓人搥心肝啊!

剛剛看到這一篇 Inkscape 臭蟲回報的討論串:
照著 #6 六樓的作法,在 Windows 先加入「LANG」的環境變數,並將值設為「en」的方法,重新啟動的 Inkscape 不再「偷藏數字」了耶!

2017年2月8日 星期三

Inkscape : J Tech Photonics Laser Tool 換解析度

2017年2月8日 星期三
Inkscape 0.92 預設使用 96 DPI,這讓以前針對 90 DPI 設計的 Extensions 會有非預期的結果。當然啦!文件設定不好也有會有類似的情形發生。所以如果想使用 GcodeTools 一系列的 Gcode 轉換工具,在 Inkscape 0.92 版中,開始畫圖之前,記得先在「文件屬性」裡,將「Display units」設為使用「px」當單位,並將「比例」中的 X scale 設為「1」。此部份可以參考我的另一篇記錄:

可是光這樣還不夠,像  J Tech Photonics Laser Tool 這個 Extension,當初它是針對 90DIP 來寫的,匯出的 Gcode 輸出的圖形尺寸會不對。GcodeTools 的另一個「後代」Mr Beam gcode generators 比較跟得上時代,它就提供了換 DPI 的選項。

花了一點時間,將 Mr Beam 有關設置 Orientation 的程式片段,轉移到 J Tech Photonics Laser Tool  中,讓它也可能根據 Inkscape 的版本來設定 DPI。

另外也順便把 J Tech Photonics Laser Tool 中的一些些臭蟲給除了。修改過的檔案可以在下面的網址中下載:

備註:
修改的 J Tech Photonics Laser Tool 源自於「J Tech Photonics, Inc.」網站所分享的,最原始的程式可以由該單位的網站中下載:
https://jtechphotonics.com/

相關文章




2017年2月7日 星期二

Inkscape : 更新 Python 的 PIL

2017年2月7日 星期二
Inkscape 的 Extensions 使用到 Python,因此它在安裝時已自帶 Python。我們可以在 Inkscape 的安裝目錄中找找,應該會看到一個名稱為「Python」的資料夾。但是不同版本的 Inkscape 可能內建不同版本的 Python;像 v.0.91 用的是 Python 2.6,而 v.0.92 用的確是較新的 Python 2.7。

除此之外,Python 內所擁有的程式庫當然也有所不同。最近在研究一個 Inkscape 的 Extension,它使用到一支 image2gcode.py ,而裡面又使用到 PIL 的 Image,無論在 Inkscape 0.92 或是 0.91 它都會出現這樣的訊息:

...... in __getattr__raise ImportError("The _imaging C module is not installed")
ImportError: The _imaging C module is not installed

由訊息看起來,應該是 PIL 少了類似 _imaging.pyd _imaging.dll ...... 這種檔名為 _imaging.xxx 的模組檔案。不過,查了一下 Inkscape\python\Lib\site-packages\PIL 目錄,裡面確定有 imaging.pyd 這個檔案啊!在 Inkscape 的 PIL 目錄中看到有一個檔案叫「PIL-1.1.6-py2.5.egg-info」,1.1.6 應該是 PIL 的版本序號,而 py2.5 是給 Python 1.5.2 以後的版本用的。

冤有頭,債有主,既然是 PIL 的問題,就試著把它換掉看看。

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 的頁面設定為什麼。

2017年2月3日 星期五

用 StippleGen 2 將照片轉為「點點畫」

2017年2月3日 星期五

用關鍵字「halftone cnc」,想找有沒有可以將照片轉為適合雷射的工具,看到底下的網頁在介紹「StippleGen2」:

深深地被它強大的功能吸引到,它利用大小不同的空心圓或是連續的線條來取代原圖中各點的顏色,轉好的 Halftone 效果完全符合我的需求。果然玩 CNC 的人比雷射多得多,資源亦較豐富。

StippleGen2 可以在底下的網頁內下載:

StippleGen2

在 StippleGen2 中將照片圖檔載入以後,它依使用者設定的「Stipples (點點數量)」、「Min. DOT SIZE (點點的最小尺寸)」、「DOT SIZE RANGE (點點的尺寸範圍)」、「WHITE CUT OFF (去掉較白的點)」......。

前面的這幾個選項,都可以利用拉桿來調整,至於什麼選項是做什麼用,拉拉看、調整一下大小,「等一會兒」,沒錯!就是要等一會兒,程式就會一次又一次的將「路徑」及圖像最佳化。

那些選項到底要怎麼搭配?這可能要看個人口味的輕重了。我要的是「點點分明」,所以會依照相的大小去調整 MIN. DOT SIZE,解析度不高的調小一點,反之,解析度高的就調大一點,總之,讓畫面中的點和點之間能有一些些留白,這樣子,不致於會因為重疊而讓雷射完的畫面焦黑一片。

至於點點的數量要設多少,「Stipples」設愈高,解析度當然愈高,不過,放到 Inkscape 去處理,或是轉 G-code 的時候會很耗系統資源和時間的。基本上,「Stipples」預設的 2000 ,對 30mm x 30mm 的相片來說,是品質與處理時間都可以接受的。不過,為了不浪費「Stipples」數量的限制,預先將相片「去背」應該會較好。

如果覺得畫面中的結果滿意了,我們可以按左下方的「SAVE STIPPLE FILE」或是「SAVE "TSP" PATH」將點點畫或是用線條來畫的 "TSP" PATH,儲存為 SVG 格式的向量圖檔。

如何在 Inkscape 中將 StippleGen2 製作的 stipple SVG 檔案轉為 G-code 呢?

首先,我們先開啟前面儲存好的「STIPPLE FILE」(*.svg),如果 Inkscape 是 0.91 以上的版本,因為 StippleGen2 儲存的格式是舊版的格式,Inkscape 會有對話框提示進一步要如何處理舊版格式所產生的問題,沒關係,按「Scale elements」就好。

按「Scale elements」自動調比例

進到 Inkscape 的編輯畫面,調整點點畫及頁面的尺寸大小:

  1. 先點選轉好的「點點畫」,更改它的寬度和高度為想要的大小
  2. 開啟設定「文件屬性」的對話框(按「檔案」→「文件屬性」)
  3. 按一下「將頁面調整成內容大小」的「加號」展開設定選項
  4. 按一下「將頁面調整成圖畫或選擇範圍的大小」。
  5. 關閉「文件屬性」的對話框,即完成尺寸的調整。
按「將頁面調整成內容大小」展開選單
按「將頁面調整成圖畫或選擇範圍的大小」

在 Inkscape 裡面將圖輸出 G-code 的工具(Extensions)有好幾個,像「Raster 2 Laser GCode generator」、「J Tech Photonics Laser Tool」、「Gcodetools」.....。

如果是用「Raster 2 Laser GCode generator」來轉 G-code,因為它都會將繪圖區中的畫面輸出為 PNG 的點陣圖,所以直接執行這個 Extension 轉換的程序即可。為了盡量保持圖的原始效果,我會選用以下的選項:

  • Resolution :「10 pixel/mm」
  • B/W conversion : 「B/W fixed threshold」

如果要體會一下 StippleGen2 幫我們計算好的「最佳路徑」,當然是要利用能轉向量圖的,所以我使用習慣用的「J Tech Photonics Laser Tool」來轉 G-code。

先將物件轉為「路徑」:

  1. 點選要轉 G-code 的「點點畫」或「"TSP" PATH」。
  2. 點選主選單「路徑」→「物件轉成路徑」。
將物件轉成路徑

將物件轉好路徑,我們就可以開始用「J Tech Photonics Laser Tool」來轉 G-code 了。

用「J Tech Photonics Laser Tool」以向量圖來轉好的處是在打雷射時較細膩,速度也滿快的,不過它轉檔的速度在我老舊的電腦上工作,實在是令人等得捶心肝啊!如果圖較大,而 stipples 多時,自己評估吧!


Inkscape : Extensions : 以線條填滿路徑

雷切時使用 「J Tech Photonics Laser Tool」 這個 Inkscape  extension 可以幫我們將向量圖形的框線變成雷射的「刀路」。不過它只能抓到框線而已,中間填滿的部份卻無法直接轉 G -code。之前找不到什麼替代的轉換工具,這兩天運氣不錯,試出了兩個工具可以幫我們將填色的部份用線條填滿。

GitHub evil-mad/EggBot 中的 Hatch fill :
GitHub KnoxMakers/KM-Laser 中的 Hatch fill :
GitHub cnc-club/gcodetools (Inkscape 已內建) 中的 Gcodetools_area (銑面) :

這三個 Inkscape extensions 都可以幫我將已轉為「路徑(path)」的圖形內,以線條來填滿。想看到填滿效果,

  1. 先將圖形轉為路徑,再使用工具。
  2. 將 Inkscape 的「檢視」→「顯示模式」改為「輪廓」。

Hatch fill

KM-Laser 的 Hatch fill 其實是源自於 EggBot ,所以它們的 Hatch fill 界面與操作是一樣的。
  • 將圖形轉為路徑 (path) : 先選取要處理的圖形以後,點選主選單「路徑 (Path)」中的「將物件轉為路徑 (Object to Path)」
  • 由 「擴充功能 (Extensions)」 的 「EggBot」或是「KM Laser」中點選「Hatch fill」。
  • 設定參數:有關參數的用途可以點選「More Info」的頁面參考,其中最重要的是「Hatch spacing」,它決定了填線條的密度,數字愈小,填得愈密。
  • 設定好參數,選取要填線條的圖,按一下「套用(Apply)」即可查看成果。

Gcodetools Area

Gcodetools 功能強大,而且 Inkscape 已內建,但是它操作起來比較繁鎖,光看到它一堆 CNC的專有名詞,就令人早早打了退堂鼓。我是在看了底下這個解說影片才又勾起研究的興趣的:

雖然 Gcodetools 的 Area 使用起來較繁鎖一點,不過它和前面兩個用直線填滿的演算法是不同的,也滿值得玩一玩的:
  • 將圖形轉為路徑 (path) : 先選取要處理的圖形以後,點選主選單「路徑 (Path)」中的「將物件轉為路徑 (Object to Path)」
  • 由 「擴充功能 (Extensions)」 的 「Gcodetools」 中選取「方向點 (Orientation points)」,加入「2-points mode」的「方向點」。
  • 由 「擴充功能 (Extensions)」 的 「Gcodetools」 選取「刀具庫 (Tools library)」,加入「電漿刀」(Tools type : plasma)。
  • 找到「電漿刀 (Plasma cutter)」的設定區塊後,選取 Inkscape 的文字工具來修改設定。最重要的設定是刀具的直徑「diameter」,也就是雷射光的粗細,它決定了用來填滿的線條粗細,可以先試試 0.1 。
  • 由 「擴充功能 (Extensions)」 的 「Gcodetools」 中選取「面銑 (Area)」,點選「面銑 (Area)」的頁面;設定「面銑刀具重疊 (Area tool overlap)」值為 0。另外兩個選項,「Area width」設為 1 ,而「Maximum area cutting curves」先用預設值,有時間可以慢慢玩玩,看不同設定值,效果有何差異。
  • 點選編輯區中要填滿的圖形以後,按「套用 (Apply)」,即可查看成果。


FAQ

  • Q: 使用 Gcodetools 時,加入了「電漿刀」,為什麼找不到 Plasma cutter 的設定區塊?
    A: 將版面的檢視比例縮小一點看看,它預設會放到很上面,如果放大檢視就看不到了。
  • Q: 如何利用 Gcodetools 來輸出 G-code ?
    A: 先將所有圖形都轉為「路徑」並選取好。
    在「Plasma cutter」中設定「feed」、「penetration feed」、「gcode before path」、「gcode after path」;
    然後進入「路徑轉為 Gcode」的 extensiion,設定
    「路徑轉為 Gcode」頁面中的「最大分割深 (Maximum splitting depth)」為 0,
    並勾選「排序路徑以減少高速距離 (Sort paths to reduse rapid distance)」;
    再設定「選項」頁面中的
    「沿著Z軸縮放 (Scale along Z axis)」(這個翻譯怪怪的,應該是沿著Z軸每次降低多少才對) 設為 0,
    「沿著Z軸偏移 (Offset along Z axis)」為起始的 Z 軸高度;
    最後回到「路徑轉為 Gcode」頁面,並按下「套用(Apply)」。




2016年1月10日 星期日

Inkscape : Extensions : J Tech Photonics Laser Tool

2016年1月10日 星期日
如果想將 Inkscape 的向量圖轉為 G-code,然後用雷切機將圖形切下來,可以試試這個「J Tech Photonics Laser Tool」的 extension。由程式碼看來,它也是源自於 GcodeTools。對於土砲型的雷切機來說,最大的好處是可以自訂副合個人需求的雷射電源開關 G-code。而且它還能讓同一路徑跑多次,每次自動下降 Z 軸高度,這樣一來,功率不大的小雷射一次切不開,讓它多切幾次就好了。

程式下載及原文說明的網址如下:
如同其它 Inkscape 的 extensions 一樣,將下載回來的壓縮檔解壓縮,並放至 Inkscape 安裝目錄中的「share\extensions」資料夾中即完成安裝的動作。如果 Inkscape 已執行中,記得重新啟動 Inkscape。

安裝完 J Tech Photonics Laser Tool,應該可以在「擴充功能」的選單中找到:



Inkscape : Extensions : Raster 2 Laser GCode generator

Raster 2 Laser GCode generator 是 305engineering 以 Python 寫的 Inkscape extesnions,可以幫我們先將在 Inkscpae 的圖先轉為 PNG 點陣圖圖檔,然後再輸出成 G-code。我覺得作者滿有趣的,底下是引用自版權聲明中的小一段:

As long as you retain this notice you can do whatever you want with this stuff (except sell). If we meet some day, and you think this stuff is worth it, you can buy me a beer in return.

哈!如果真能有幸遇到作者,我一定請他喝啤酒。

這個小工具是用分析點陣圖的方式產出 G-code,只要是和設定中的鏤空顏色值(白色或黑色)一樣的點,都不會雷射。這個方式的好處是直接用顏色來控制要打雷射,而不是走圖形的外框而已,無論陰刻、陽雕都適合。當然囉!如果是要做的是雷切,就建議使用別的工具。

 Raster 2 Laser GCode generator 提供了多種圖形輸出的演算模式:

  • B/W fixed threshold
  • B/W random threshold
  • Halftone
  • Halftone row
  • Halftone column
  • Grayscale

前兩種是直接以黑/白來描點,接下來有三種較省時間的半色調描點方式,最後則是採用灰階的方式來描點。除此之外,我們還能自訂解析度......等,可自訂的選項還不少。



個人覺得 Raster 2 Laser GCode generator 很適合用來處理照片或是刻印章。

照片利用半色調處理,在不同材質的效果
雷雕泡棉印章

 
雄::gsyan © 2009. Design by Pocket