总结
最近我一直在研究OpenScad的库和教程,在此过程中,我对OpenScad能做什么、不能做什么有了更深入的了解。有时会发现一些自己之前从未注意到的亮点,那种顿悟的感觉真是让人忍不住要拍拍自己的脑袋,感叹"真是个天才啊!"
这段内容算是个小教程,教大家如何使用内置模块 'hull()' 给物体添加圆角效果。
由此我又联想到另一件事。虽然OpenScad标准版中已经附带了一个名为'boxes.scad'的模板文件,但这也说明,设计一个盒子模型绝非只有一种方法。
'hull()' 方法基本上是根据二维平面上的点来生成一个凸包。在矩形的情况下,基本上只需在矩形的四个角上放置圆形,然后使用 'hull()' 函数并结合 'linear_extrude()' 函数,就能生成一个圆角矩形了。
圆角矩形模块(尺寸、半径)
{
x = size[0];
y = size[1];
z = size[2];
』
就这么简单!
我喜欢这部分的原因在于它的灵活性。你不必局限于矩形。你可以随心所欲地排列任意数量的小圆圈,设置任意半径,而 hull() 方法会自动处理剩余部分,完成所需的拼接工作。
另一种实现方法是利用一个鲜为人知的数学工具——明科夫斯基和
模块 miniround(尺寸,半径)
{
$fn=50;
x = size[0] - 半径/2;
y = size[1] - 半径/2;
』
如果你将 $fn 设为 12,那么你就可以使用球体效果,并获得全方位的圆角效果。数值越高,圆角效果越明显,但渲染时间也会大大增加。
就我个人而言,我对使用Minkowski的局限性并不是特别清楚。显然,如果你尝试用这种方式来操作的话:
圆角多边形模块(多边形顶点、路径、高度、半径)
{
线性挤出(高度=高度,曲率=3)
船体(hull)
对于(pt = 多边形顶点数组)
{
翻译([pt[0],pt[1],0)
圆形(半径为 r);
}
}
你会收到一个与Minkowski相关的错误提示。
无论如何,使用 OpenScad 进行创作有多种方法。尽管现有许多可用的库,但不妨先探索一下其中的可能性,说不定你会发现一种更符合自身需求和实际情况的创作方式。
操作指南
1) 下载.scad文件
2) 玩一玩它
3)探索 OpenScad,发现新的创新成果
4)欢欣鼓舞吧!
タグ
モデルソース
