要了解如何在OpenSCAD中工作,我们需要涵盖一些简单的代码基础。您的3D模型将基于诸如立方体,圆柱体和球体等主要形状构建。那些被称为对象。对象是用操作符修改的操作,包含变量和注释的操作。我们将在本教程的后一部分中介绍它们的确切例子。
操作用于创建对象或定义变量。要记住的一件非常重要的事情是,行动必须以分号结尾!
例子:
立方体(x,y,z);
气缸(h、r1、r2);
运营商用于修改代码中的卷曲括号内的对象(如大小或位置)。他们要记住卷曲括号是必不可少的,他们定义了运营商。
例子:
并集:将其花括号内的所有对象合并为单个对象
工会()
{Cube(x,center=true);
球面(x);
}
变量包含值:数字、字符串、向量和列表。注释用于向阅读代码的任何人提供额外信息。OpenSCAD不读取注释,它们对代码没有影响。OpenSCAD更高级的选项是向量、列表、模块和函数。
OpenSCAD为我们提供了所有命令的列表:
http://www.openscad.org/cheatsheet/index.html
现在我们将继续执行3D形状并让OpenSCAD转换它们。让我们开始使用主形状并创建一个多维数据集:
立方体([3,5,7]);
请注意,我们没有设置多维数据集的中心,看看我们添加'真实''或'false''时会发生什么
添加''center = false''没有改变任何东西。
立方体([3,5,7,Center = False]);
但是,将“中心”设置为“真”会在所有轴上将立方体的中点设置为0,0,0。
立方体([3,5,7,Center = True]);
我们将将多维数据集的中心设置为false并创建一个领域。
立方体([3,5,7,Center = False]);
球面([20]);
提示:因为我们没有在括号中指定球体的编号是半径还是直径,所以OpenSCAD假定它是半径。
请注意,球体并没有真正类似于球。这是由于多边形数量较少。我们可以用这段代码来解决这个代码:
立方体([3,5,7,Center = False]);
球体([20,$fn=20]);
它似乎仍然有点低,我们可以将数字设置得更高,但请记住检查所选3D打印方法的层厚度,因为为3D模型设置的数字过高可能会导致3D打印过程中出现问题。
立方体([3,5,7,Center = False]);
球体([20,$ fn = 100]);
如果您不熟悉编码,那么获得相当数量的练习是很好的。如果您想创建一个锥体,则需要使用设置为0的z值创建一个圆柱形。openscad将读取这样的代码:
立方体([3,5,7,Center = False]);
球体([20,$ fn = 100]);
气缸([10,3,0]);
将z值更改为3将导致比例圆柱。
立方体([3,5,7,Center = False]);
球体([20,$ fn = 100]);
气缸([10,3,3]);
如果您希望圆锥体或圆柱体更平滑,我们将应用与球体示例中相同的代码。
立方体([3,5,7,Center = False]);
球体([20,$ fn = 100]);
气缸([10,3,3,$ fn = 100]);
接下来我们将讨论移动对象。为此,我们使用Translate操作符。请记住,您必须在应用它的对象上方的代码行中应用它,并且它不会以分号结束。
立方体([3,5,7,Center = False]);
球体([20,$ fn = 100]);
翻译([10,0,0])
气缸([10,3,3,$ fn = 100]);
立方体([3,5,7,Center = False]);
球体([20,$ fn = 100]);
翻译([10,6,0])
气缸([10,3,3,$ fn = 100]);
立方体([3,5,7,Center = False]);
球体([20,$ fn = 100]);
翻译([10,6,5])
气缸([10,3,3,$ fn = 100]);
要在一个角度下放置一个物体,我们需要应用旋转操作员。
立方体([3,5,7,Center = False]);
球体([20,$ fn = 100]);
翻译([10,6,5])
旋转([0,-90,0])
气缸([10,3,3,$ fn = 100]);
现在我们将讨论一些在3D打印模型时非常方便的功能。我们将讨论四个最重要的操作符:并集、交集和差分。后者特别有用,因为它可以用于镂空3D模型,以降低3D打印的成本和材料浪费。
我们将创建一个立方体,所有12厘米长的墙都放置在所有轴的0点上。
立方体([12,Center = True]);
要修改立方体,我们将用半径为8的球体编码。
立方体([12,Center = True]);
球体([8]);
我们要经过的第一个接线员是工会。该操作符告诉OpenSCAD将两个对象合并。他们现在将作为一个整体行动。还记得花括号吗!
联盟()
{立方([12,Center = True]);
球面([8]);}
另一个操作符是差分。差分命令由OpenSCAD转换为从另一个对象中剪切出一个对象。此函数对于空心化对象特别有用。注意物品的顺序。在本例中,我们将从立方体中剪切出球体的形状。
区别 ()
{立方([12,Center = True]);
球面([8]);}
如果您想将多维数据集放出球体,则需要更改代码中对象的顺序。
区别 ()
{shpere([12,center = true]);
立方体([8]);}
最后但并非最不重要的是,您还可以将两个对象的公共部分与交叉命令组合起来。
交叉口()
{立方([12,Center = True]);
球面([8]);}