本文采用中國大陸版CC協議發布
作者保留以下權利:
- 署名(Attribution):必須提到原作者。
- 非商業用途(Noncommercial):不得用于盈利性目的。
- 禁止演繹(No Derivative Works):不得修改原作品, 不得再創作。
新浪微博 @軟體動物小Ai
15年的時候在自己的博客上面發布了一篇Cura二次開發環境配置的文章,之后一直不斷有朋友咨詢相關問題,由于工作比較忙沒能一一回復。同時我之前承諾的后續文章也沒有兌現,在此和大家說聲抱歉。
當前版本的Cura較之前已經有了很大的改變,因此我覺得有必要更新一下了,同時由于當時在寫作時只是作為自學筆記并不是很了解相關的原理,其中可能有一些錯誤,也會在本文中進行更正。
一、約定
本文使用的系統為64位的Windows 10操作系統,安裝了32位的Python 2.7 ,所有操作均在bash中完成
二、準備工作(配置Python和虛擬環境)
- 安裝Git Bash
首先去官網下載對應版本的 git for windows,然后一路默認安裝。 - 安裝Python
直接去官網下載2.7版本的Python并安裝(位數無所謂,我安裝的是32位),安裝完成后,在bash中運行winpty python
,測試一下是否能夠進入python解釋器。 - 安裝pip
下載pip-get.py,然后python pip-get.py
運行就可以完成安裝 - 安裝virtualenv
pip install virtualenv
三、下載Cura源碼
-
首先你需要在GitHub上面fork一下cura源碼
fork -
查看fork后的代碼倉庫URL
查看url 克隆代碼到本地任意位置
git clone https://github.com/hanxiaomax/Cura.git
四、安裝Cura的依賴庫
- 首先,創建虛擬環境并切換
- 進入cura目錄,運行bash
- 執行
virtualenv env
創建一個名為env的虛擬環境 -
source env/Scripts/activate
切換到虛擬環境中
以下操作均在虛擬環境env中進行
- 安裝依賴庫
在cura文件夾可以看到一個requirements.txt
文件,可以嘗試使用pip install -r requirements.txt
直接安裝,但是很可能會失敗。
PyOpenGL>=3.0.2
numpy>=1.6.2
pyserial>=2.6
power>=1.2
setuptools>=0.6.34
文件內容如上,我們可以先安裝除numpy以外的包
pip install PyOpenGL
pip install pyserial
pip install power
pip install setuptools
然后我們安裝numpy。對于Windows用戶,最好去這里下載.wh1文件。
如果你是32位Python就下載箭頭所指的包,64位就下載下面一個。下載完成后把它拷貝到cura目錄下面,然后執行
pip install <filename>
,其中<filename>就是你下載下來文件的名字。
五、安裝wxPython
wxPython是cura的GUI框架, 不能直接從pip安裝,首先我們去官網下載,注意這里版本一定要下對,32/64位取決于Python位數而不是操作系統的位數。如果下載錯誤,則運行時會提示:
**DLL load failed: 1% 不是有效的win32 應用程序**
安裝完成后,wxPython被安裝到了系統的Python庫中,我們在虛擬環境里面是無法使用的,所以我們需要到C:\Python27\Lib\site-packages中把 wx-3.0-msw,wx.pth,wxversion.py這三個拷貝到虛擬環境下面的 Lib/site-packages中。
在bash中運行python
或winpty python
來啟動解釋器,然后嘗試import wx
,如果可以導入,說明安裝成功。
六、運行Cura
這里我們啟動Cura的GUI程序,由于沒有包括引擎部分,所以是無法實現切片的,只能夠允許你去定制Cura的界面。
之前的文章里面我提到:
0.修改app.py
我們并不希望,每次修改代碼后,都要對Cura重新打包然后運行查看效果,而是希望有更加方便的預覽辦法。其實非常簡單,只需要把Cura當做一個模塊運行即可。
~\Cura\gui\app.py 中我們需要添加幾行代碼,使其可以作為模塊單獨運行
if name == 'main': app=CuraApp("1.txt")#隨便指定一個文件即可 app.MainLoop()#開啟wx的主循環
1.啟動
在cura根目錄下 python -m Cura.gui.app
會出現splash畫面,如果沒有進一步啟動程序,說明有一些腳本無法載入,一般是因為導入不了某些庫。此時我們需要檢查一下是否所有的依賴都已經安裝。。正常情況應該是在稍許延時后完成啟動。
我發現現在已經無法使用該方法了,其實當時有點舍近求遠了。
最簡單的啟動辦法是:
在Cura根目錄執行python -m Cura.cura
,隨后即可看到歡迎界面,程序成功啟動。
WTF!沒有正常啟動?而且沒有報錯?請看下面的錯誤排查環節!
6.錯誤排查
Cura在啟動時已經把所有的輸出都做了重定向,所以在控制臺里面是無法看到報錯信息和print輸出的信息的。
- 一種方法是:查找output.txt文件,通常會在根目錄下,如果不在就搜索一下系統。
- 另一種方法:修改gui/app.py中代碼
class CuraApp(wx.App):
def __init__(self, files):
if platform.system() == "Windows" and not 'PYCHARM_HOSTED' in os.environ:
#super(CuraApp, self).__init__(redirect=True, filename="output.txt")
#修改為:
#super(CuraApp, self).__init__(redirect=True, filename=False)
else:
super(CuraApp, self).__init__(redirect=False)
隨后就可以看到相應的錯誤信息,根據報錯內容來進行處理。大家可以在留言里面說一下自己遇到的問題。
結束語
工作實在比較忙,希望大家理解,希望能夠有時間寫一下后續的內容。至于到底有沒有后續呢?那就得看大家打賞的熱情啦~(手動斜眼)