分享

3D打印切片软件二次开发

 容斋承筐 2017-09-20



本来前段时间就要写的,只因为那会的收效比较小,有些东西还一窍不通,当然现在也还是有些不大明白,但是最起码刚刚跳出了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>
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 <module>
from Cura.gui import sceneView
File "Cura\gui\sceneView.py", line 28, in <module>
from Cura.gui.util import previewTools
File "Cura\gui\util\previewTools.py", line 12, in <module>
from Cura.gui.util import openglHelpers
File "Cura\gui\util\openglHelpers.py", line 17, in <module>
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不是破解版的;


              如果你在开发过程中还遇到什么问题,欢迎留言指正,我们一起交流一起进步!


          

             


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多