3D打印软件Cura的二次开发(GUI)--环境搭建
3D打印软件Cura的二次开发(GUI)--环境搭建
本文采用中国大陆版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)
随后就可以看到相应的错误信息,根据报错内容来进行处理。大家可以在留言里面说一下自己遇到的问题。
结束语
工作实在比较忙,希望大家理解,希望能够有时间写一下后续的内容。至于到底有没有后续呢?那就得看大家打赏的热情啦~(手动斜眼)
3D打印软件Cura的二次开发(GUI)--环境搭建相关推荐
- 1、RDA8910(4GCAT1)CSDK二次开发:环境搭建
https://blog.csdn.net/weixin_44570083/article/details/106210592 目录 点击这里查看所有博文 本系列博客所述资料均来自合宙官方,并不是 ...
- Revit二次开发01——环境搭建(附Revit 2018 + Visual Studio 2017下载地址)
目录 1.准备工作 1.1 安装Revit 2018 1.2 安装Revit 2018 SDK 1.3 安装Visual Studio 2017 2.配置Addin Manager 3.测试 3.1 ...
- KNIME二次开发之环境搭建
一.搭建前提 JDK8安装 Git 安装 Eclipse 下载地址 二. 环境搭建 1. 配置knime sdf 启动Eclipse 克隆该存储库(knime-sdk-setup)并导入Eclipse ...
- 3D打印切片软件--cura的二次开发
本来前段时间就要写的,只因为那会的收效比较小,有些东西还一窍不通,当然现在也还是有些不大明白,但是最起码刚刚跳出了cura主界面还是不枉这几天工作: 废话不多说了,就把最近我做过的东西,学到的东西以及 ...
- 3D打印切片软件--cura的二次开发(2)(界面分析与汉化)(修改版增加图片)
转载:https://blog.csdn.net/qq_29701359/article/details/75070507 在上次把CUR软件从github网站clone下来并在windows8系统, ...
- CAD二次开发——1.环境搭建
一.开发工具:CAD2016版.VisualStudio2019 二.环境配置:.net4.5框架 三.dell引用 解决方案资源管理器-引用(右击)-添加引用-浏览-(文件夹)CAD2016添加三个 ...
- Metabase在linux二次开发编译环境搭建(之一---下载文件)
一.下载JDK8(如果你已安装过jdk8,此步骤可以略过) http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downlo ...
- 中国3D打印软件市场现状分析及发展前景预测报告
3d打印软件的产品有很多,比如Ultimaker Cura就是一款3D打印软件.它可以与CAD软件集成,以简化工作流程,或输入自定义设置进行深入控制.Cura的核心是一个强大的开源切片引擎,帮助用户简 ...
- 3D格式转换工具HOOPS Exchange助力3D 打印软件实现质的飞跃
HOOPS SDK是用于3D工业软件开发的工具包,其中包括4款工具,分别是用于读取和写入30多种CAD文件格式的HOOPS Exchange.专注于Web端工程图形渲染的HOOPS Communica ...
最新文章
- 外部程序调用Activity的几种方法总结
- ISME:Micrarchaeota和Parvarchaeota古菌门的代谢多样性
- python3 str() repr() 区别
- 新计算机教师工作随笔反思,信息技术反思随笔 (2)
- FileInputStream和FileOutputStream实现任何文件类型的拷贝
- POJ1080 Human Gene Functions 动态规划 LCS的变形
- mysql插入反斜杠“\“丢失的解决方法
- 跟我一起考PMP---项目整合管理
- mysql置疑原因_SQL Server置疑数据库解决方法
- hub设备_五年内任何问题,直接换新,毕亚兹 USB3.0四口HUB分线器体验
- 【ubuntu工具】ubuntu下文件对比软件meld
- 昭通脱贫致富-农业大健康·林裕豪:从玉农业谋定“责任”
- python语言月份缩写_[宜配屋]听图阁
- 年月日时间和64位时间的使用及相互转换
- Python实例--遍历文件夹下所有的文件或文件夹
- R语言-rethinking包下载安装心得(windows)
- IOS8以上打开定位闪退的问题
- linux ps内存占用率,linux ps命令,查看某进程cpu和内存占用率情况, linux ps命令,查看进程cpu和内存占用率排序。 不指定...
- 'org.apache.ibatis.session.defaults.DefaultSqlSessionFactory' to requir
- AI也有偏见,我们该如何信任它们?