总结
看完火星探测车之后:http://www.thingiverse.com/thing:10057这一刻,我突然灵光一现,决定在 OpenScad 中实现一个我渴望已久的创意项目。
这种方法是一种通过使用一些数组和‘递归’来展示和渲染你的模型的技术。
文中只介绍了几个基本步骤,但掌握了这些步骤,你基本上就能完成以下操作了:
组合语句(CSG)由两个部分组成:操作符(OP_UNION)和参数列表([ <en> The CSG (Combined Shape Group) consists of two parts: an operator (OP_UNION) and a parameter list
[PRIM_CYLINDER, [2,2, 8+15+3], zero(), zero()],
[PRIM_CYLINDER, [4,4, 3], zero(), zero()],
]);
或者,如果你只想做一个简单的部分;
place_prim([PRIM_CYLINDER, [2,2, 8+15+3],zero(), zero()]);
这并非什么惊天动地的大发现,不过它只是文本建模工具库中的又一利器。由于模型以及对各部分的操作都被简单地表示为数字数组,你可以使用函数来生成这些数组,或将它们拼接在一起。
比较有趣的是,这段代码看起来越来越像 LISP 语言或其他基于数组的编程语言了。
无论如何,这又是一种技巧。
文件openscad_vm.scad包含了实际的模型结构。还有一个名为'test_openscad_vm.scad'的文件,展示了所有例程的一些测试用例。文件'mars_rover_vm.scad'从令人启发的火星探测器项目中提取了一些有趣的部分,并将它们转换为适合在openscad虚拟机中使用的组件。最复杂的对象'camera'展示了如何嵌套组合形状操作
操作指南
1) 将 openscad_vm.scad 文件下载到你的工作环境中。
2)在你的代码中使用大量方括号来构建某个对象
3)欢欣鼓舞吧!
注意:由于此版本不支持多面体和2D基本图形,因此功能略显局限。不过,这些功能添加起来其实并不复杂。
一个非常有趣的副作用是,你可以把OpenScad_VM生成的对象表示形式当作一种传输机制来使用!!这个发现让我豁然开朗,简直让我的工作变得简单多了。
Tags
Modellquelle
