“OpenSCAD 将2D形状挤压成3D对象”的版本间差异

本页内容
(创建页面,内容为“到目前为止,已经创建了大量模型并定制了您的汽车设计,同时参数化建模了解了 OpenSCAD 的不同功能。到目前为止创建的每个模型都只使用三个基本的元素:球体、立方体和圆柱体,通过将这些基本的元素与转换命令相结合,可以创建大量模型,但仍有一些模型无法单独使用这些原语来创建。比如下面的车轮。 文件:Rounded wheel.jpg 上面的轮子设计…”)
 
Neo讨论 | 贡献
无编辑摘要
第1行: 第1行:
== 从 2D 对象旋转挤出 3D 对象 ==
到目前为止,已经创建了大量模型并定制了您的汽车设计,同时参数化建模了解了 OpenSCAD 的不同功能。到目前为止创建的每个模型都只使用三个基本的元素:球体、立方体和圆柱体,通过将这些基本的元素与转换命令相结合,可以创建大量模型,但仍有一些模型无法单独使用这些原语来创建。比如下面的车轮。
到目前为止,已经创建了大量模型并定制了您的汽车设计,同时参数化建模了解了 OpenSCAD 的不同功能。到目前为止创建的每个模型都只使用三个基本的元素:球体、立方体和圆柱体,通过将这些基本的元素与转换命令相结合,可以创建大量模型,但仍有一些模型无法单独使用这些原语来创建。比如下面的车轮。


第23行: 第24行:


[[文件:Extruded donut 270 degrees.jpg]]
[[文件:Extruded donut 270 degrees.jpg]]
<sample title="rounded_wheel_horizontal.scad
" desc="通过定义缺少的圆柱体对象来完成新的车轮设计。圆柱体的高度应该等于一个wheel_width 变量的值,而圆柱体的半径应该等于wheel_radius - tyre_diameter/2。圆柱体应以原点为中心。
">
$fa = 1;
$fs = 0.4;
wheel_radius = 12;
wheel_width = 4;
tyre_diameter = 6;
rotate_extrude(angle=360) {
    translate([wheel_radius-tyre_diameter/2,0])
        circle(d=tyre_diameter);
}
cylinder(h=wheel_width, r=wheel_radius - tyre_diameter/2, center=true);
</sample>

2022年7月30日 (六) 10:05的版本

从 2D 对象旋转挤出 3D 对象

到目前为止,已经创建了大量模型并定制了您的汽车设计,同时参数化建模了解了 OpenSCAD 的不同功能。到目前为止创建的每个模型都只使用三个基本的元素:球体、立方体和圆柱体,通过将这些基本的元素与转换命令相结合,可以创建大量模型,但仍有一些模型无法单独使用这些原语来创建。比如下面的车轮。

Rounded wheel.jpg

上面的轮子设计需要创建一个看起来像甜甜圈的对象。

Donut shaped object.jpg

无法使用球体、立方体和圆柱体基元创建此甜甜圈形状的对象。相反,它需要使用 2D 图元和一个可以从 2D 轮廓创建 3D 形状的新命令。具体来说,可以通过首先使用圆形基元定义圆形 2D 轮廓,然后使用 rotate_extrude 命令旋转拉伸该轮廓来创建甜甜圈。


示例

$fa = 1;
$fs = 0.4;
wheel_radius = 12;
tyre_diameter = 6;
rotate_extrude(angle=360) {
    translate([wheel_radius - tyre_diameter/2, 0])
        circle(d=tyre_diameter);
}

Extruded donut.jpg rotate_extrude让对象围绕z轴旋转了360度,并且轨迹形成了相应的对象。当然我们可以让其旋转270度得到下面的效果。

Extruded donut 270 degrees.jpg


rounded_wheel_horizontal.scad

通过定义缺少的圆柱体对象来完成新的车轮设计。圆柱体的高度应该等于一个wheel_width 变量的值,而圆柱体的半径应该等于wheel_radius - tyre_diameter/2。圆柱体应以原点为中心。

$fa = 1;
$fs = 0.4;
wheel_radius = 12;
wheel_width = 4;
tyre_diameter = 6;
rotate_extrude(angle=360) {
    translate([wheel_radius-tyre_diameter/2,0])
        circle(d=tyre_diameter);
}
cylinder(h=wheel_width, r=wheel_radius - tyre_diameter/2, center=true);
此页面最后编辑于2022年7月30日 (星期六) 10:05。