为了理解如何在OpenSCAD中工作,我们需要介绍一些简单的代码基础知识。您的3D模型将基于立方体、圆柱体和球体等基本形状构建。这些被称为对象。对象用动作编码,用操作符修改,用变量和注释。我们将在教程的后半部分介绍它们的具体示例。
操作用于创建对象或定义变量。需要记住的一件非常重要的事情是Actions必须以分号结束!
例子:
多维数据集(x, y, z);
气缸(h, r1, r2);
操作符用于修改代码中花括号内的对象(如大小或位置)。记住花括号是很重要的,它们定义了操作符。
例子:
Union:将其花括号内的所有对象组合成一个Object
联盟()
{立方体(x,中心= true);
球(x);
}
变量包含值:数字、字符串、向量和列表。注释用于向任何阅读代码的人提供额外的信息。OpenSCAD不读取注释,它们对代码没有影响。OpenSCAD更高级的选项是矢量、列表、模块和函数。
OpenSCAD为我们提供了一个所有命令的列表:
http://www.openscad.org/cheatsheet/index.html
现在,我们将继续实际编码3D形状,并让OpenSCAD翻译它们。让我们从基本形状开始,并创建一个立方体:
多维数据集((3、5、7));
注意我们没有设置立方体的中心,看看当我们添加" true "或" false "时会发生什么
添加" center= false "并没有改变任何东西。
多维数据集([3、5、7,中心= false));
然而,将中心设置为true会将立方体的中点在所有轴上设置为0,0,0。
多维数据集([3、5、7,中心= true));
我们将立方体的中心设置为false,并创建一个球体。
多维数据集([3、5、7,中心= false));
球([20]);
提示:因为我们没有指定括号中的Sphere数字是半径还是直径,所以OpenSCAD假定它是半径。
注意这个球体并不像一个球。这是因为多边形数量少。我们可以用下面这段代码来解决这个问题:
多维数据集([3、5、7,中心= false));
球((20,fn = 20美元));
看起来还是有点低,我们可以调高一些,但是记得要检查你选择的3D打印方法的层厚,因为你的3D模型设置的层厚太高可能会导致3D打印过程中出现问题。
多维数据集([3、5、7,中心= false));
球((20,fn = 100美元));
如果您不熟悉编码,那么进行大量的练习是有好处的。如果你想创建一个圆锥体,你需要创建一个Z值设为0的圆柱体。OpenSCAD会像这样读取代码:
多维数据集([3、5、7,中心= false));
球((20,fn = 100美元));
气缸([10 3 0]);
将Z值更改为3将产生一个比例圆柱体。
多维数据集([3、5、7,中心= false));
球((20,fn = 100美元));
气缸([10 3 3]);
如果你想让圆锥体或圆柱体更光滑,我们可以应用与球面例子相同的代码。
多维数据集([3、5、7,中心= false));
球((20,fn = 100美元));
气缸([10 3 3 fn = 100美元));
接下来我们将讨论移动物体。为此,我们使用翻译操作符。记住,你必须在它所应用的对象上面的代码行中应用它,并且它不能以分号结束。
多维数据集([3、5、7,中心= false));
球((20,fn = 100美元));
翻译([10 0 0])
气缸([10 3 3 fn = 100美元));
多维数据集([3、5、7,中心= false));
球((20,fn = 100美元));
翻译([10 6 0])
气缸([10 3 3 fn = 100美元));
多维数据集([3、5、7,中心= false));
球((20,fn = 100美元));
翻译([10 6 5])
气缸([10 3 3 fn = 100美元));
要将一个对象放置在一个角度下,我们需要应用旋转操作符。
多维数据集([3、5、7,中心= false));
球((20,fn = 100美元));
翻译([10 6 5])
旋转([0 -90 0])
气缸([10 3 3 fn = 100美元));
现在,我们将讨论一些函数,当它涉及到3D打印您的模型时,将非常方便。我们将学习四个最重要的运算符:并、交和差。后者是特别有用的,因为它可以用来掏空你的3D模型,以降低成本和材料浪费的3D打印。
我们将创建一个立方体,所有12厘米长的墙壁放置在所有轴的0点。
多维数据集((12日中心= true));
为了修改立方体,我们将编写一个半径为8的球体。
多维数据集((12日中心= true));
球([8]);
我们要接通的第一个接线员是Union。这个操作符告诉OpenSCAD合并两个对象。他们现在将合而为一。记住花括号!
联盟()
{立方体((12日中心= true));
球([8]);}
另一个算子是差分。Difference命令由OpenSCAD翻译,以从另一个对象中剪切出一个对象。这个函数在掏空对象时特别有用。注意对象的顺序。在这个例子中,我们将从立方体中剪出球体的形状。
差()
{立方体((12日中心= true));
球([8]);}
如果想要将立方体置于球体之外,则需要更改代码中Objects的顺序。
差()
{shpere((12日中心= true));
多维数据集([8]);}
最后但并非最不重要的是,您还可以使用Intersection命令组合两个对象的公共部分。
十字路口()
{立方体((12日中心= true));
球([8]);}