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

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

作者: 软体动物Ai | 来源:发表于2016-07-06 12:36 被阅读3668次

本文采用中国大陆版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)

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


结束语

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

欧耶

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/usjkjttx.html