“OpenSCAD 第一个简单模型快速上手”的版本间差异

本页内容
Neo讨论 | 贡献
无编辑摘要
第41行: 第41行:
">
">
cube([20,30,50],center=true);
cube([20,30,50],center=true);
</sample>
[[文件:A centered cube with different side lengths.jpg]]
请注意,当括号内定义了多个参数时,它们需要用逗号分隔。
=== 添加更多对象和转换对象 ===
构造实体建模方法使用许多基本对象以及多种方法来转换和组合这些对象以创建更复杂的模型。您在前面的示例中使用的立方体就是这样一个基本对象。基本对象也称为原语,可直接在 OpenSCAD 脚本语言中使用。例如,汽车不是 OpenSCAD 原语,因为脚本语言中没有相应的关键字。这是绝对有意义的,因为 OpenSCAD 是一组建模工具,而不是预定义模型的库。使用可用的工具,您可以组合可用的原语来创建自己的汽车。为此,您需要知道如何将多个对象添加到模型中。
<sample desc="首先创建一个以原点为中心的边长分别为 60、20 和 10 的立方体。
">
cube([60,20,10],center=true);
</sample>
[[文件:A centered cube.jpg]]
<sample desc="为了在您的模型中添加第二个立方体,请在文本编辑器的下一行中键入相同的语句,但将边长更改为 30、20 和 10。">
cube([60,20,10],center=true);
cube([30,20,10],center=true);
</sample>
[[文件:A centered cube.jpg]]
<sample desc="您应该看不到模型中的任何变化,因为第二个立方体在任何方向上都不大于第一个立方体,并且当前完全被第一个立方体覆盖。通过按以下方式修改第二个语句,您可以翻转第二个立方体,使其部分位于第一个立方体顶部的上方。">
cube([60,20,10],center=true);
translate([0,0,5])
    cube([30,20,10],center=true);
</sample>
[[文件:Two cubes.jpg]]
您通过使用 translate 命令实现了这一点,该命令是可用的转换之一。translate 命令以及其他转换不会自行创建任何对象。它们更适用于现有对象以某种方式修改它们。translate 命令可用于将对象移动到空间中的任何点。translate 命令的输入参数是三个值的向量。每个值表示对象将沿 X、Y 和 Z 轴移动的单位数量。您应该注意到 translate 命令后没有分号。translate 命令后面是要转换的对象的定义。末尾加分号表示语句完成。
<sample desc="尝试更改 translate 命令的输入参数,使立方体沿 X 轴平移 5 个单位,沿 Z 轴平移 10 个单位。如果您想以不同的方式格式化此语句,请尝试添加一些空格。尝试在 translate 命令后添加分号。">
cube([60,20,10],center=true);
translate([0,0,10])
    cube([30,20,10],center=true);
</sample>
[[文件:Two cubes barely touching.jpg]]
在上面的示例中,第二个立方体正好位于第一个立方体的顶部。这是应该避免的,因为 OpenSCAD 不清楚这两个立方体是否一起形成了一个对象。这个问题可以通过始终保持相应对象之间大约 0.001 - 0.002 的小重叠来轻松解决。一种方法是将沿 Z 轴的平移量从 10 个单位减少到 9.999 个单位。
<sample desc="">
cube([60,20,10],center=true);
translate([0,0,9.999])
    cube([30,20,10],center=true);
</sample>
</sample>

2022年7月20日 (三) 20:17的版本

关于 OpenSCAD

OpenSCAD 是一个实体 3D 建模器,可以使用其脚本语言创建参数模型。模型是通过使用一种称为构造立体几何的技术创建的。根据这项技术,可以转换和组合简单的对象,以创建几乎任何复杂的模型。

教程入门

本教程是一个后续教程。当您按照示例进行操作时,您将被要求修改和扩展它们以及创建您自己的模型。要继续,请安装 OpenSCAD 并从空白模型开始。

关于 OpenSCAD 软件操作环境的一些基本信息

您应该注意到的第一件事是 OpenSCAD 的窗口分为两列。左栏是文本编辑器,您将在其中键入 OpenSCAD 脚本语言来创建模型。您将要创建的任何模型都将在此文本编辑器中“输入”。右列的顶部是模型将存在的“虚拟”3D 空间。您目前应该能够找到的唯一内容是带注释的参考轴 X、Y 和 Z。右列的底部是控制台,OpenSCAD 将在您构建模型时打印任何错误消息或其他信息。您应该注意的最后一件事是在文本编辑器上方存在一个操作栏,在参考轴下方存在一个操作栏。 1360px-OpenSCAD environment.png

创建你的第一个对象

示例

您的第一个对象将是一个边长为 10 的完美立方体。要创建它,您需要在文本编辑器中键入以下代码并点击参考轴下方操作栏上的预览(第一个)图标。

cube(10);

A small cube.jpg

关于 OpenSCAD 脚本语言,您应该从一开始就设置一些基本概念,尤其是在您没有编程背景的情况下。立方体一词是 OpenSCAD 脚本语言的一部分,用于命令 OpenSCAD 创建立方体。多维数据集命令后跟一对括号,其中参数大小定义为 10。命令可能需要的任何参数定义总是在命令字后面的一对匹配括号内完成。最后一个括号后面的分号表示该语句的结束,并帮助 OpenSCAD 解析您在文本编辑器中键入的脚本。因为分号用于指示每个语句的结尾,所以您可以通过插入空格来自由地以任何您喜欢的方式格式化您的代码。

创建一个不同的立方体

示例

立方体不一定是完美的。立方体可以有不同的边长。使用以下语句创建边长为 20、30 和 50 的立方体。

cube([20,30,50]);

A cube with different side lengths.jpg

您应该注意到的第一件事是,与前一个相比,这个立方体相当大。事实上,它足够大,以至于它不适合视口。为了解决这个问题,您可以将鼠标移到视口上并向外滚动,直到可以看到整个立方体。您始终可以通过将鼠标移动到视口上并使用滚轮来放大和缩小。或者,您可以使用视口下方操作栏上的放大(第四个)和缩小(第五个)图标。您可以使用同一操作栏中的查看全部(第三个)图标让 OpenSCAD 自动选择方便的缩放级别。

除了放大和缩小,您还可以移动和旋转模型的视图。为此,您需要将鼠标移动到视口上并在按住鼠标右键的同时拖动以移动或按住鼠标左键进行旋转。您可以使用视口下方操作栏上的重置视图(第六个)图标来重置视图。

Rotated viewing angle.jpg

您应该注意的第二件事是,为了创建具有不同边长的立方体,您需要在括号内定义一对括号,其中包含三个值。这对括号用于表示值的向量。向量的值需要用逗号分隔并对应于立方体沿 X、Y 和 Z 轴的边长。当 cube 命令使用三个值的向量作为其输入时,OpenSCAD 会创建一个对应于向量值的具有不同边长的立方体。请记住,您之前使用 cube 命令通过定义参数 size 的值来创建一个完美的立方体。大多数 OpenSCAD 命令可以与不同的参数一起使用,甚至可以使用更多、更少或没有参数来实现不同的结果。



示例

您应该注意到每个立方体都是在第一个八分点上创建的。您可以定义一个名为 center 的附加参数并将其设置为 true 以使立方体以原点为中心。完整的声明如下。

cube([20,30,50],center=true);

A centered cube with different side lengths.jpg

请注意,当括号内定义了多个参数时,它们需要用逗号分隔。

添加更多对象和转换对象

构造实体建模方法使用许多基本对象以及多种方法来转换和组合这些对象以创建更复杂的模型。您在前面的示例中使用的立方体就是这样一个基本对象。基本对象也称为原语,可直接在 OpenSCAD 脚本语言中使用。例如,汽车不是 OpenSCAD 原语,因为脚本语言中没有相应的关键字。这是绝对有意义的,因为 OpenSCAD 是一组建模工具,而不是预定义模型的库。使用可用的工具,您可以组合可用的原语来创建自己的汽车。为此,您需要知道如何将多个对象添加到模型中。


示例

首先创建一个以原点为中心的边长分别为 60、20 和 10 的立方体。

cube([60,20,10],center=true);

A centered cube.jpg


示例

为了在您的模型中添加第二个立方体,请在文本编辑器的下一行中键入相同的语句,但将边长更改为 30、20 和 10。

cube([60,20,10],center=true);
cube([30,20,10],center=true);

A centered cube.jpg



示例

您应该看不到模型中的任何变化,因为第二个立方体在任何方向上都不大于第一个立方体,并且当前完全被第一个立方体覆盖。通过按以下方式修改第二个语句,您可以翻转第二个立方体,使其部分位于第一个立方体顶部的上方。

cube([60,20,10],center=true);
translate([0,0,5])
    cube([30,20,10],center=true);

Two cubes.jpg

您通过使用 translate 命令实现了这一点,该命令是可用的转换之一。translate 命令以及其他转换不会自行创建任何对象。它们更适用于现有对象以某种方式修改它们。translate 命令可用于将对象移动到空间中的任何点。translate 命令的输入参数是三个值的向量。每个值表示对象将沿 X、Y 和 Z 轴移动的单位数量。您应该注意到 translate 命令后没有分号。translate 命令后面是要转换的对象的定义。末尾加分号表示语句完成。


示例

尝试更改 translate 命令的输入参数,使立方体沿 X 轴平移 5 个单位,沿 Z 轴平移 10 个单位。如果您想以不同的方式格式化此语句,请尝试添加一些空格。尝试在 translate 命令后添加分号。

cube([60,20,10],center=true);
translate([0,0,10])
    cube([30,20,10],center=true);

Two cubes barely touching.jpg

在上面的示例中,第二个立方体正好位于第一个立方体的顶部。这是应该避免的,因为 OpenSCAD 不清楚这两个立方体是否一起形成了一个对象。这个问题可以通过始终保持相应对象之间大约 0.001 - 0.002 的小重叠来轻松解决。一种方法是将沿 Z 轴的平移量从 10 个单位减少到 9.999 个单位。

示例

cube([60,20,10],center=true);
translate([0,0,9.999])
    cube([30,20,10],center=true);
此页面最后编辑于2022年7月20日 (星期三) 20:17。