openscad初学者指南:编程3d打印模型

如果你不懂艺术,3D建模软件可能很难使用。OpenSCAD提供了一种专门为3D打印设计模型的方法,只使用代码。...

你一直想设计自己的3D模型吗?3D打印你设计的零件怎么样?有很多三维建模程序,但这些可能很难使用,如果你不是艺术(像我一样)。OpenSCAD提供了一种专门为3D打印设计模型的方法,只使用代码。如果您也不知道如何编写代码,请不要担心,今天我将指导您完成基础知识。

guide-openscad-3d-print

什么是openscad公司(openscad)?

OpenSCAD是一种免费的实体计算机辅助设计建模工具。它适用于Windows、Mac和Linux。与其他许多程序不同的是,您使用代码而不是鼠标设计部件。这使得很容易进行数学计算,在变量中存储尺寸,调整零件大小等等。

在三维打印模型时,需要考虑一些因素,但其中许多因素通常适用于三维打印CAD模型,而不仅仅是OpenSCAD设计。如果您想了解更多有关3D打印的信息,请查看我们的终极初学者指南。如果您正在寻找更具交互性的建模工具,请阅读《在Sketchup中创建对象的指南》。

设置

首先,进入下载页面,找到适合您操作系统的OpenSCAD版本。我使用的是MacOS,但这些OpenSCAD原则适用于所有系统。

安装后,请继续打开它。您将看到以下启动菜单:

OpenSCAD Starting Menu

这将向您显示上次打开的文件,并提供加载几个示例的选项。请随意看看一些例子,但是我发现在刚开始的时候这些会让事情变得更加混乱。对于本教程,请单击“新建”按钮创建一个新文件。

一旦打开,您将看到这个外观**的界面:

OpenSCAD Interface

这分为三个主要方面。左边是编辑器和菜单。你要在这里写你的文章代码。这个在创建新文件时,还没有任何代码。在顶部,有一些菜单按钮来执行基本任务,如加载、保存、撤消等。

OpenSCAD Editor

右下角是控制台。这将显示构建模型时的任何错误。

OpenSCAD C***ole

最后一部分是右上角的主界面。在这里您可以与您的模型交互,但是您不能在这里编辑它(您将编写代码来完成此操作)。

OpenSCAD Interface

在这个主界面的底部有几个按钮。这些主要允许您以不同的方式查看您的设计。

按编辑器菜单中的“保存”按钮或转到“文件”>“保存”,继续保存新文件。

基础知识

OpenSCAD大部分时间的工作方式是通过简单形状的加法和减法。你可以用这种方法建立非常复杂的模型,所以让我们开始吧。

这是第一个形状,一个简单的盒子:

OpenSCAD Simple Box

下面是代码:

cube(); // create a cube

要让代码执行并构建模型,您需要预览它。默认情况下,每次保存时OpenSCAD都会执行此操作,也可以按F5键强制刷新。按住鼠标左键或右键在三维空间中四处移动。

现在,这产生了一个很好的立方体,但是如果没有任何维度,它就没有多大用处。OpenSCAD在任何特定的测量系统中都不起作用,相反,单位都是相对的。您可以创建一个20 x 10的长方体,并由任何其他程序(如您的3D打印切片器)来解释这些,无论是公制还是英制。它实际上提供了很大的灵活性。

让我们为立方体添加一些维度。您可以通过向多维数据集方法传入参数来执行此操作:

cube(size = [10, 20, 30]); // rectangle

值10、20和30表示立方体在X、Y和Z轴上的大小。注意这是如何产生一个更大的矩形的:

OpenSCAD Rectangle

默认情况下,OpenSCAD从左下角绘制组件。您可以通过将“中心”参数设置为true来调整此设置。下面是对矩形执行此操作的代码:

cube(size = [10, 20, 30], center = true); // rectangle centered

下面是它的样子:

OpenSCAD Rectangle Centered

居中对象对于简单的形状很有效,但是对于非对称对象,居中对象会使事情变得复杂。你需要决定哪种方法最适合你。

转到更复杂的形状,这里是一个圆柱体:

OpenSCAD Cylinder

下面是创建它的代码:

cylinder(d = 10, h = 10, center = true); // cylinder

与立方体不同,圆柱体会自动在X轴和Y轴的中心绘制。d参数表示直径(如果愿意,可以通过半径)。h参数是高度。不过,这里出了点问题。这个气缸看起来很“块状”。您需要增加圆周上绘制的面数。这很容易做到——将以下参数添加到您的圆柱体代码中。

$fn = 100

因此圆柱体定义为:

cylinder(d = 10, h = 10, center = true, $fn = 100);

下面是它的样子:

OpenSCAD High Resolution Cylinder

这增加了做圆所需的面数——100是一个很好的起点。请记住,这将大大增加渲染时间,特别是在复杂的模型上,因此通常最好在完成设计之前忽略这一点。

在形状上应用变换很容易。在创建形状之前,需要调用特殊方法。下面是如何使用旋转方法旋转圆柱体:

rotate(a = [0, 90, 0]) cylinder(d = 10, h = 10, center = true); // rotated cylinder

传递给a参数的值表示X、Y和Z轴的旋转角度。结果如下:

OpenSCAD Rotation

另一个非常有用的函数是translate。这允许您在三维空间中移动对象。再一次,您需要传递每个轴的移动量。结果如下:

OpenSCAD Translate

代码如下:

translate(v = [0, 25, 0]) cylinder(d = 10, h = 10, center = true); // translated cylinder

理解翻译方法是你能做的最重要的事情之一。它是设计最复杂的设计所必需的。

最后,另一个有用的形状是球体:

OpenSCAD Sphere

代码如下:

sphere(d = 100);

就像圆柱体一样,您可以使用上面的$fn代码使其平滑。

高级编码

既然你知道了基本知识,让我们来看看一些更高级的技能。当设计零件时,有助于思考如何由较小的形状和对象构成零件。你不必这样做,你可以在你走的时候“弥补”事情,但有一个粗略的计划确实有帮助——即使只是在你的头脑里。

让我们创建一个高级形状:一个具有空心球体内部的立方体。创建一个立方体和一个中心设置为true的球体。使用差分法从另一个中减去一个:

difference() { // subtraction cube(size = [50, 50, 50], center = true); // outer cube sphere(d = 65, center = true); // inner sphere}

结果如下:

OpenSCAD Advanced Cube

用球的直径(d参数)进行实验,看看会发生什么。

在OpenSCAD中,通常有许多方法来完成相同的任务。如果你想在一个立方体上有一个凹槽,你可以从中减去另一个立方体,或者在上面再加两个。通常情况下,用哪种方式做事情并不重要,但根据零件的复杂程度,先做某些操作可能更容易。

下面介绍如何在多维数据集中创建通道。使用圆柱体将创建圆形通道,而不是使用另一个立方体。请注意如何再次使用差分方法,以及如何使用平移和旋转方法来操纵形状。使用rotate方法通常会使变换变得很棘手,因此在获得所需结果之前,请使用这些参数。代码如下:

difference() { // subtraction cube(size = [50, 150, 50]); // outer cube translate(v = [25, 150, 50]) rotate(a = [90, 0, 0]) cylinder(d = 40, h = 150); // cylinder channel}

下面是它的样子:

OpenSCAD Channel Cube

你可能想知道什么是绿色的东西。这是因为3D模型现在只是一个预览。若要修复此问题,请按F6键完全渲染模型。这可能需要一些时间,具体取决于复杂性。预览(F5)通常在工作时足够好。以下是最终渲染的效果(将$fn设置为100):

OpenSCAD High Resolution Channel Cube

下面是另一个高级示例。比如说你想用螺栓装东西。使用圆柱体创建孔非常简单,但是如果您希望埋头螺栓的螺栓头平齐安装,该怎么办?您可以简单地创建一个大圆柱体,让螺栓头坐在其中,但这看起来不是很好。解决方案是一个倒角,可以使用圆柱体方法创建。这里的技巧是指定两个直径——d1和d2。**这些不同的尺寸,剩下的由OpenSCAD来完成。

因为我是英国人,所以我会用公制尺寸来表示M5沉头螺栓。你可以很容易地调整,以适应任何固定你想使用。代码如下:

$fn = 100;// bolt settingsm5_clearance_diameter = 5.5;m5_head_clearance_diameter = 11;m5_head_depth = 5;difference() { // subtract cube(20, 20, 20); bolt_hole(10, 10, 20); bolt_bevel(10, 10, 15);}module bolt_hole(x, y, height) { /* M5 hole at 90 deg. */ translate(v = [x, y, 0]) cylinder(d = m5_clearance_diameter, h = height);}module bolt_bevel(x, y, z) { // M5 bevel translate(v = [x, y, z]) cylinder(d2 = m5_head_clearance_diameter, d1 = m5_clearance_diameter, h = m5_head_depth);}

注意螺栓尺寸是如何存储在变量中的吗?这使得编码和维护更加容易。一种你可能还没有遇到的方法是模块。这允许您定义一个代码块,以便随时执行。实际上,这是一个函数。对于任何复杂的形状,您都应该使用模块和变量,因为它们使内容更易于阅读,并且可以更快地进行任何更改。倒角如下:

OpenSCAD Chamfer

让我们看最后一个例子。假设你想在一个圆周围产生一系列的洞。您可以手动测量、平移和旋转所有这些,但即使使用模块,这也会很乏味。最终结果是,10个圆柱体均匀分布在一个圆上:

OpenSCAD Circle Distribution

代码如下:

$fn = 100;number_of_holes = 10;for(i = [1 : 360 / number_of_holes : 360]) { // number_of_holes defines number of times this code runs make_cylinder(i);}module make_cylinder(i) { // make cylinder and even distribute rotate([0, 0, i]) translate([10, 0, 0]) cylinder(h = 2, r = 2);}

此代码比您预期的简单。for循环用于调用make_u缸模块10次。由于圆中有360度,360/10=36,因此每个圆柱体需要以36度的增量旋转。这个循环的每次迭代都会使i变量增加36。这个循环调用make_u圆柱体模块,它只需绘制一个圆柱体,并根据循环传递给它的度数来定位它。可以通过修改\u孔变量的number_来绘制多个或更少的圆柱体,尽管如果要调整间距,则可能需要调整间距。下面是100个圆柱体的形状,它们稍微重叠:

OpenSCAD 100 Circle Distribution

导出

既然您知道如何在OpenScad中编码,那么在您可以3D打印模型之前,还需要最后一步。您需要将您的设计从OpenSCAD导出为大多数3D打印机使用的标准STL格式。幸运的是,有一个“导出到STL”按钮:“编辑器”菜单>右上角:

OpenSCAD Export STL

今天到此为止。您现在应该对OpenSCAD有了很好的了解——所有复杂的东西都建立在这些基础之上,许多复杂的形状实际上是许多简单形状的组合。

对于一个挑战,为什么不看看我们的一些3D打印项目,并尝试在OpenSCAD中重新创建部分:

  • 桌面幻想RPG 3D打印件
  • 自定义快捷键
  • 电子D20
  • 游戏,您可以3D打印

你今天学了什么新把戏吗?你最喜欢的OpenSCAD功能是什么?你会很快从另一个CAD工具切换吗?请在下面的评论中告诉我们!

  • 发表于 2021-03-15 10:55
  • 阅读 ( 570 )
  • 分类:IT

你可能感兴趣的文章

15个很棒的星球大战道具你可以3d打印

... 如果你喜欢的道具不可用,为什么不用OpenSCAD自己设计呢? ...

  • 发布于 2021-03-12 08:21
  • 阅读 ( 282 )

让万圣节你自己与这些石化的3d打印

...预算的人都有选择。如果你是新的三维打印,我们有一个初学者指南,这将教你一切你需要知道,使在本文中的项目。 ...

  • 发布于 2021-03-12 23:32
  • 阅读 ( 264 )

不涉及代码的程序员的10个爱好

...的规则——真正的旅程在于学习你可以运用的无数策略。初学者应该从一个像Go Free这样的应用开始,在学习这些资源的围棋策略的同时与AI对抗。 ...

  • 发布于 2021-03-13 06:43
  • 阅读 ( 318 )

如何做一个diy相机滑块低于35美元

...知道我是如何设计这些部件的,你可以阅读我们的OpenSCAD初学者指南。 ...

  • 发布于 2021-03-13 08:52
  • 阅读 ( 204 )

用unity编写游戏:初学者指南

...可以在Unity中使用的语言),那么请参阅我们的指南,为初学者提供六种最简单的编程语言。 ...

  • 发布于 2021-03-13 11:55
  • 阅读 ( 233 )

18个有趣的diy树莓皮案例创意

...护您的Pi使用一个案件。你可能有一个箱子和你的树莓皮初学者工具包。如果没有,你可以很容易地使自己几乎没有成本。 ...

  • 发布于 2021-03-13 15:17
  • 阅读 ( 306 )

最好的3d打印桌面幻想RPG

...的3D打印机上。虽然这个选项很方便,但它并不是唯一的初学者三维建模工具。 ...

  • 发布于 2021-03-15 14:09
  • 阅读 ( 196 )

适合初学者的11个最佳树莓圆周率项目

... 这些Raspberry Pi初学者项目是对Pi的硬件和软件功能的一个很好的介绍。从其中一个开始,你马上就可以开始跑步了! ...

  • 发布于 2021-03-19 13:42
  • 阅读 ( 266 )

如何三维打印的第一次和初学者

...任何三维建模软件包都可以生成打印模型。我们的OpenSCAD初学者指南是开始设计您自己的模型的好地方。绝大多数设计包都可以将您的设计保存为STL文件。 ...

  • 发布于 2021-03-20 06:09
  • 阅读 ( 181 )

为学生和初学者提供的5款最便宜的3d打印机

...机都这么贵。这些都是最好的廉价的三维打印机为学生或初学者提供现在。 ...

  • 发布于 2021-03-20 10:01
  • 阅读 ( 210 )