3D打印软件Cura的二次开发(GUI)--环境搭建


本文采用中国大陆版CC协议发布
作者保留以下权利:

  1. 署名(Attribution):必须提到原作者。
  2. 非商业用途(Noncommercial):不得用于盈利性目的。
  3. 禁止演绎(No Derivative Works):不得修改原作品, 不得再创作。
    新浪微博 @软体动物小Ai

15年的时候在自己的博客上面发布了一篇Cura二次开发环境配置的文章,之后一直不断有朋友咨询相关问题,由于工作比较忙没能一一回复。同时我之前承诺的后续文章也没有兑现,在此和大家说声抱歉。

当前版本的Cura较之前已经有了很大的改变,因此我觉得有必要更新一下了,同时由于当时在写作时只是作为自学笔记并不是很了解相关的原理,其中可能有一些错误,也会在本文中进行更正。

一、约定

本文使用的系统为64位的Windows 10操作系统,安装了32位的Python 2.7 ,所有操作均在bash中完成

二、准备工作(配置Python和虚拟环境)

  1. 安装Git Bash
    首先去官网下载对应版本的 git for windows,然后一路默认安装。
  2. 安装Python
    直接去官网下载2.7版本的Python并安装(位数无所谓,我安装的是32位),安装完成后,在bash中运行winpty python,测试一下是否能够进入python解释器。
  3. 安装pip
    下载pip-get.py,然后python pip-get.py运行就可以完成安装
  4. 安装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-mswwx.pth,wxversion.py这三个拷贝到虚拟环境下面的 Lib/site-packages中。

在bash中运行pythonwinpty 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)

随后就可以看到相应的错误信息,根据报错内容来进行处理。大家可以在留言里面说一下自己遇到的问题。


结束语

工作实在比较忙,希望大家理解,希望能够有时间写一下后续的内容。至于到底有没有后续呢?那就得看大家打赏的热情啦~(手动斜眼)

欧耶
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272

推荐阅读更多精彩内容