本来前段时间就要写的,只因为那会的收效比较小,有些东西还一窍不通,当然现在也还是有些不大明白,但是最起码刚刚跳出了cura主界面还是不枉这几天工作;
废话不多说了,就把最近我做过的东西,学到的东西以及走了的弯路放到这里和大家一起分享一下,避免后面的小伙伴们跟我一样犯低级错误。
首先介绍一下个人情况,这个很有必要;因为有些知识你是必须去学习的,即使不是深入的学习也应该是有些了解的。在老师分配给我这个任务时,我对这个项目一窍不通,也不知道它是什么语言写的,更不用说是什么开源协议的了,所以当时有些懵逼;老师只是说你先了解一下当下的一些开源协议,然后看看cura是属于哪个协议(话说回来,老师这个思路是从正规的思路出发,直到现在我也没有熟练记住五个开源协议的具体协议,不过这里可以明确地告诉大家cura软件是完全开源的,好像是GPL或是MIT协议,这两个协议都是可以用来盈利的还有自由修改自由分发,所以大家可以放心大胆的去做开发),其实说这么多也没啥用处,简单来说吧cura软件界面是python语言写的,所以我就是想说我是python小白,所以有些python基础的或者是跟我一样没有python基础的同学大家都一起来吧!
然后我来再介绍一下cura吧(其实在网上有很多关于cura开发介绍的,我这里也就是按照别人的说法结合自己的理解来讲),cura开发有两个工作要做,一个是界面的开发一个是curaenginee的开发;因为cura界面的开发,也就是我目前工作的重点是用python wx 框架来写的,说白了就是python语言,如果对python wx陌生的同学不要慌,看看这本书,相信对你有帮助。curaengine是用C++写的,这个其实是cura这款软件的内在工作机制,据说非常强大,目前还未研究;
说了这么多我们开始进入主题,开始cura软件的代码拷贝及环境配置最后运行进入cura主界面。
这里说明一下我的开发环境是在WIN8 64位系统;python 2.7版本 32位,这就要求你之后在安装python其他依赖项、组件什么的都得32位;这里说明一下电脑系统对软件开发的效果来说问题应该不大,最主要的还是你的python版本要对应上。
准备工作的话,我这里就不多说了,在网上就可以找得到,我这里把链接地址附上,一般的话大家照着这位作者的方法一步一步就可以调的通,点击这里跳到页面。我这里就是按照他的步骤一步一步来操作的,如果你已经按照那位作者的方法全都完成下来以后,那么接下来我们再做其他的工作,这时候要保证你完成了几件事:
第一、cura源码拷贝下来了;
第二、gitbash安装成功;
第三、python安装成功包括cura运行所必需的python依赖项;
第四、pip安装成功;
第五、wxPython安装成功;
如果完成了这五个步骤的话,其实按正常情况你已经能够在gitbash命令行中按照那位作者的方法调出了cura软件的启动界面,(关于这个界面我说一下,其实就是一张图片,cura启动时它就是把这张图片给调了出来,这张图片就是你拷贝下的CURA文件夹下的resources文件下的images的splash.png)。但是我为什么会说是正常情况下呢?因为这里有可能出现很多问题,大部分是因为python依赖项缺失导致的,再后来如果你发现你的代码止步于只能弹出cura启动界面,不能进入cura主界面的话,一般情况下是因为你的opengl安装的不对,我在这里就遇到了这样的问题:
Traceback (most recent call last):
File "E:\Cura\env\lib\site-packages\wx-3.0-msw\wx\_core.py", line 16766, in
lambda event: event.callable(*event.args, **event.kw) )
File "Cura\gui\splashScreen.py", line 15, in DoCallback
self.callback()
File "Cura\gui\app.py", line 99, in afterSplashCallback
from Cura.gui import mainWindow
File "Cura\gui\mainWindow.py", line 17, in
from Cura.gui import sceneView
File "Cura\gui\sceneView.py", line 28, in
from Cura.gui.util import previewTools
File "Cura\gui\util\previewTools.py", line 12, in
from Cura.gui.util import openglHelpers
File "Cura\gui\util\openglHelpers.py", line 17, in
glutInit() #Hack; required before glut can be called. Not required for all OS.
File "E:\Cura\env\lib\site-packages\OpenGL\GLUT\special.py", line 333, in glutInit
_base_glutInit( ctypes.byref(count), holder )
File "E:\Cura\env\lib\site-packages\OpenGL\platform\baseplatform.py", line 407, in __call__
self.__name__, self.__name__,
OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) before calling
最主要是看最后一句,这里就是OpenGL的问题,在试过各种办法以后发现只要把pyopengl版本装成3.1.0的就可以了;具体下载地址点击这里;
还有一个要讲的是如果对gitbash不是很熟悉的同学可以用DOS命令行的python pip命令来安装python依赖项,利用py charm来调试程序,这里就不贴pycharm的下载地址了,因为我的pycharm不是破解版的;
如果你在开发过程中还遇到什么问题,欢迎留言指正,我们一起交流一起进步!