总结
离完美越来越近了。
这个东西是对 Revoloids 库的一次更新。
这一次,我成功地正确计算了法线,这样就能进行“外壳挤压”操作了。因此,现在在revoloids.scad文件中有了两种方法:linear_extrude_revoloid和shell_extrude_revoloid。
第一个物件会朝着旋转中心‘侵入’。这确实是个不错的解决办法,但物件的两端必须相对平整,否则情况可能会变得一团糟。
全新的 shell_extrude 命令能够根据曲线(圆形和三次曲线)上各点的法线方向,完成向内或向外的挤压操作。这在某些情况下非常实用,而且最终生成的模型厚度会保持均匀一致。
它还提供了不错的‘视觉调试’支持,这样你就能看到各种炫酷的颜色、线框、法线等效果(见附图)。没错,它确实能生成有效的.stl文件(见附件中的.stl文件)。
还能对此做些什么?嗯,我借此机会移除了贝塞尔曲面旋转的实现部分,因为它现在已经多余了。我想实现C0/C1连续性的分段曲线。这只需要把它们拼接起来就行,这样就能生成更复杂的形状了。除此之外,可能还需要做一些简化工作,以及支持任意轴的旋转。不过,或许这些功能可以留到2.0版本再实现。
方便使用的端盖部分还需要进一步优化设计
最终,我会将这段代码合并到 Renderer.scad 文件中。
警告:
你的发尾不应该完全垂直
埃尔米特曲线生成的结果还是不太准确。
更新:270611
我弄清楚了赫米特曲线的问题了。实际上,问题在于我计算圆的法线时所采用的方法不够高效。你们务必确保曲线是在 x-y 平面内生成的。未来或许可以考虑增加更自由的曲线生成功能,但就目前而言,曲线最好还是保持在 x-y 平面内,这样更易于处理。
操作指南
1) 下载所有.scad文件
2)使用 test_revoloids.scad 文件进行测试
3) 看看这些漂亮的图片吧
4)生成.stl文件
5)欢欣鼓舞吧!
태그
모델 소스
