Cura 是一款开源3D打印机的切片引擎。
切片程序的主要过程如下:
i. 导入3D模型(STL,OBJ等等)。
ii. 分析并修复3D模型(源码里面貌似木有这一步…)。
iii. 将3D模型切割成2D层。
iv. 用上一步得到的2D图层形成LayerParts(他们自己的叫法),因为一层里面,很有可能有很多个不同的多边形,比如桌子,他的四个角,切出来后是四个圆形,上一步中只是得到了四个圆形,而没有确定这四个圆形是属于同一层的。
v. 进一步确定LayerParts中,各个part间的关系,比如得到了两个圆,大圆套小圆,我们就需要确认,小圆是空心的,而大圆和小圆形成的圆环是实心的。
vi. 将需要实心打印的部分标记出来(100%填充)。
vii. 将需要空心打印的地方打印出来(部分填充)。
viii. 根据生成的LayerParts生成每一层的G-code。
上述的每一步都有更多的逻辑关系在里面,但这只是一个工作的大概流程。切割引擎所有的数据都存放在一个叫SliceDataStorage的类里面。记住,上述的每一步都是基于前一步的数据来进行的。这里严格按照上述的流程来处理3D模型生成G-code。另外,在代码里面,坐标是用64位整数的形式存在的,比如,你在代码中看到的1000,他实际代表了1mm。这样做是因为Clipper使用了64为整数来表示距离。
使用Cura快一年多了,之前一直使用的Cura14,前段时间用cura15切了几个模型,发现切片的质量有了非常大的提高,gcode的生成比从前的老版本合理多了。 重新捡起Cura来学习。这里记录自己这段时间的一些学习进度。 这里记录下关键的地方。 1. 新版的CuraEngine使用了C++11编程规范,想编译的话需要注意,用新一点的编译器(vs2013以上,mingw4.7以上) 2. 新版的C
初识Cura Cura是一款开源的3D打印软件,软件可以在其官网选择下载,安装文件下载地址为:http://wiki.ultimaker.com/Cura,由于该软件属于开源软件,可以在GitHub上面下载Cura的源码,下载地址为:https://github.com/daid/Cura/。 环境搭建 我的Cura开发环境为eclipe+pydev插件,该开发环境其实就是Python的开发环境。
3D打印开源切片软件Cura配置步骤 Cura ==== Read this, it's important! =========================== If you are reading this, then you are looking at the development version of Cura. If you just want to use Cura, take
问题内容: 我很好奇拆包切片并将其作为参数发送给可变参数函数。 假设我们有一个带有可变参数的函数: 如果我们不想传入一个接口,它就可以工作,那么我们是否拆包都没关系: 如果我们有一片片的话,那会很棘手。在这里,编译器不允许我们传递解压版本: 错误提示: 在解包参数中不能将sliceOfSlices(类型[] [] interface {})用作类型[] interface {} 我不知道为什么会这
我正在开发通过蓝牙与打印机连接并打印一些文本的应用程序。我可以通过蓝牙连接打印机,然后从BluetoothSocket获取输出流并写一些文本。但它不会用打印机打印任何东西...我仔细检查过,没有例外。请帮帮我我在代码中做错了什么???我使用佳能MX430打印机进行测试...这是我的代码
我已经开发了一个android应用程序来从蓝牙打印机打印账单,我的代码抛出的异常是“java.lang.NullPointerException:试图在空对象引用上调用虚拟方法'void java.io.OutputStream.write(byte[])”。 连接蓝牙打印机并发送数据进行打印的代码如下: //这将找到一个蓝牙打印机设备 //打印数据的代码
问题内容: 我有一些C方面的经验,对golang完全陌生。 现在在golang slice中是array的引用,其中包含指向slice的数组len和slice的上限的指针,但是该slice也将分配在内存中,我想打印该内存的地址。但是无法做到这一点。 问题答案: http://golang.org/pkg/fmt/ 将打印地址。
打印机打印bitmap的指令是 BITMAP x,y,width,height,mode,bitmap data, 那么将图片转为bitmap后, 如何使用呢
我们希望打印到连接在apache运行的POS打印机上。由于应用程序的设计和部署,打印应该从服务器上完成(它应该检测订单并发送到不同的打印机和不同格式的打印...账单,厨房订单,等等...)。出于这个原因和其他原因(例如,从iPad访问应用程序),我们放弃了像QZ-Print applet这样的选项,并需要直接在服务器端打印。 提前谢了。
如前所述,对象中的元素遵循基于零的索引。 有三种可用的索引方法类型: 字段访问,基本切片和高级索引。 基本切片是 Python 中基本切片概念到 n 维的扩展。 通过将start,stop和step参数提供给内置的slice函数来构造一个 Python slice对象。 此slice对象被传递给数组来提取数组的一部分。 输出如下: [2 4 6] 在上面的例子中,ndarray对象由arang
问题内容: package main 在上面提到的程序中,即使我们正在从is [2]到on病房访问元素,并且片中只有2个元素,也没有为is [2:]感到恐慌。为什么会这样呢? 问题答案: 切片表达式的go规范阐明了切片所用索引的要求: 如果0 <=低<=高<=最大<= cap(a),则索引在范围内,否则它们超出范围。 对于索引表达式,相关要求是: 如果0 <= x <len(a),则索引x处于范围