OpenSCAD 条件及循环控制

本页内容

和大多数编程一样一样OpenSCAD也支持if else for while等,基于这些我们可以创建国家复杂的模型。

三元表达式

示例

$fa = 1;
$fs = 0.4;
module simple_wheel(wheel_radius=10, wheel_width=6) {
    rotate([90,0,0])
        cylinder(h=wheel_width,r=wheel_radius,center=true);
}
$is_large = true;
$wheel_radius = $is_large ? 20 : 10;
simple_wheel(wheel_radius = $wheel_radius);

条件表达式

示例

$fa = 1;
$fs = 0.4;
module simple_wheel(wheel_radius=10, wheel_width=6) {
    rotate([90,0,0])
        cylinder(h=wheel_width,r=wheel_radius,center=true);
}

$is_large = true;
$wheel_width = $is_large ? 20 : 10;
simple_wheel(wheel_width = $wheel_width);


$is_large = false;

if($is_large == true){
    $wheel_width2 = 20;
} else{
        echo("---2---");

    $wheel_width2 = 5 ;
}


translate([20,20,20]){
    simple_wheel(wheel_width = $wheel_width2);
}

需要注意的是变量名称需要改变,因为OpenSCAD是全局的变量,再编译后一个变量改变会导致前一个变量也改变。

此页面最后编辑于2022年7月30日 (星期六) 09:31。