Title: 2.13. Statements 2.13. Statements
Course: Library of Things >> Part 1: OpenSCAD Basics Library of Things >> Teil 1: Basiskurs in OpenSCAD > Section: 2. First steps 2. Erste Schritte

- Statements are tests, that checks on a condition, whether or not to execute an action in a sub scope.
- The if() statement has following default syntax:

if(test) scope1

if(test) {scope1}

if(test) scope1 else scope2

if(test) {scope1} else {scope2}

- Parameters of if() are:

test >> Usually a boolean expression, but can be any value or variable (do not confuse = with ==)

scope1 >> One or more actions to take when test is true

scope2 >> One or more actions to take when test is false

- Conditional ? is a function that uses a test to determine which of 2 values to return
- The Syntax of conditional ? is: a = test ? TrueValue : FalseValue ;
- The parameters of ? are:

test >> Usually a boolean expression, but can be something different though

TrueValue >> The value to return when test is true

FalseValue >> The value to return when test is false (values can be numbers, strings, a vector)

or the Undefined value (undef)

STATEMENTS:

if() statements used for execute certain actions dedicated by a number

a=0;

b=0;

c=1;

x=0;

y=0;

z=0;

if (b==c) color("Red") cube([40, 10, 30]);

if (b<a) {color("Green") cube([20, 20, 10], center=true);

color("Yellow") cylinder(60, 10);}

if (a>b) translate([0, 50, 0]) color("SeaGreen") text("a is greater than b");

else if(a<b) color("Khaki") translate([0, 60, 0]) text("b is greater than a");

else color("Peru") translate([0, 40, 0]) text("b is equal to a");

if (a==4) echo("a is 4");

if (x&&y) {color("White") cube([10, 40, 5]); color("Black") cylinder(h=7, d=30);}

if (x!=y) {color("Orange") cube([20, 40, 5],center=true); color("Blue") cylinder(h=20, d=10, center=true);};

if (z) {color("SkyBlue") cylinder(40, 20, 10);} else {echo("z is 0");}

if ((b<5)&&(c>8)) {color("HotPink") cylinder(h=70, d=10, $fn=40);}

Go through each line and check on the result, while changing the values of a,b,x,y,z. Execute with F5!

Not for course, but more examples

Here some examples of conditional ?

a=1; b=2; c= a==b ? "a==b" : "a!=b" ;

TrueValue = true; FalseValue = false;

a=5; test = a==1;

echo( test ? TrueValue : FalseValue );

L = 75; R = 2; test = (L/R)>25;

TrueValue = [test,L,R,L/R,cos(30)];

FalseValue = [test,L,R,sin(15)];

a1 = test ? TrueValue : FalseValue ;

"a!=b"

false

[true, 75, 2, 37.5, 0.866025]

- Sind Tests, die anhand einer Bedingung prüfen, ob eine Aktion in einem Unterbereich ausgeführt werden soll oder nicht.
- Die if()-Anweisung hat die folgende Standard-Syntax:

if(test) scope1

if(test) {scope1}

if(test) scope1 else scope2

if(test) {scope1} else {scope2}

- Parameter von if() sind:

test >> Normalerweise ein boolescher Ausdruck, kann aber ein beliebiger Wert oder eine beliebige Variable sein (nicht verwechseln = mit ==)

scope1 >> Eine oder mehrere Aktionen, die ausgeführt werden sollen, wenn der Test wahr ist

scope2 >> Eine oder mehrere Aktionen, die ausgeführt werden sollen, wenn der Test falsch ist

- Es gibt weitere Aussagen, auf die wir nicht weiter eingehen: Bedingt ? und lass(). Dies ist jedoch für den Kurs nicht notwendig!
- Bedingt ? ist eine Funktion, die einen Test verwendet, um zu bestimmen, welcher von 2 Werten zurückgegeben werden soll
- Die Syntax lautet: a = test ? TrueValue : FalseValue ;

- Die Parameter von ? sind:

test >> Normalerweise ein boolescher Ausdruck, kann aber auch etwas anderes sein

TrueValue >> Der zurückzugebende Wert, wenn test wahr ist

FalseValue >> Der zurückzugebende Wert, wenn test false ist >> Die Werte können Zahlen, Strings, ein Vektor sein

oder der undefinierte Wert (undef)

STATEMENTS:

if()-Statements, die zum Ausführen bestimmter Aktionen verwendet werden, die einer Zahl zugeordnet sind

a=0;

b=0;

c=1;

x=0;

y=0;

z=0;

if (b==c) color("Red") cube([40, 10, 30]);

if (b<a) {color("Green") cube([20, 20, 10], center=true);

color("Yellow") cylinder(60, 10);}

if (a>b) translate([0, 50, 0]) color("SeaGreen") text("a is greater than b");

else if(a<b) color("Khaki") translate([0, 60, 0]) text("b is greater than a");

else color("Peru") translate([0, 40, 0]) text("b is equal to a");

if (a==4) echo("a is 4");

if (x&&y) {color("White") cube([10, 40, 5]); color("Black") cylinder(h=7, d=30);}

if (x!=y) {color("Orange") cube([20, 40, 5],center=true); color("Blue") cylinder(h=20, d=10, center=true);};

if (z) {color("SkyBlue") cylinder(40, 20, 10);} else {echo("z is 0");}

if ((b<5)&&(c>8)) {color("HotPink") cylinder(h=70, d=10, $fn=40);}

Gehe jede Zeile durch und überprüfe das Ergebnis, während du die Werte von a,b,x,y,z änderst. Ausführen mit F5!

Nicht für den Kurs

Hier einige Beispiele für bedingte ?

a=1; b=2; c= a==b ? "a==b" : "a!=b" ;

TrueValue = true; FalseValue = false;

a=5; test = a==1;

echo( test ? TrueValue : FalseValue );

L = 75; R = 2; test = (L/R)>25;

TrueValue = [test,L,R,L/R,cos(30)];

FalseValue = [test,L,R,sin(15)];

a1 = test ? TrueValue : FalseValue ;

"a!=b"

false

[true, 75, 2, 37.5, 0.866025]