參考資訊:
https://openhome.cc/zh-tw/openscad/
https://en.wikibooks.org/wiki/OpenSCAD_User_Manual
註解(comments)
單行註解使用//
多行註解則是/**/
// comment myvar = 10; /* comment */
變數(variables)
直接指定數值即可,不需要宣告
myvar = 10; myvar = 9.9;
P.S. 如多次宣告,則以最後宣告的為主,上例的myvar數值是9.9
布林值(boolean)
myvar1 = true; myvar2 = false;
預設值(default)
如直接使用未宣告的數值,預設的值是undef
echo("val:", a);
如上範例將印出ECHO: "val:", undef
向量(vector)
向量宣告必須使用[]符號
myvar = [10, 11, 12];
Index是從0開始:
myvar[0] = 10
myvar[1] = 11
myvar[2] = 12
矩陣(matrix)
多維向量的意思
myvar = [[10, 11], 12];
myvar[0][0] = 10
myvar[0][1] = 11
myvar[1] = 12
字串(string)
字串宣告必須使用""符號
myvar = "testing"
迴圈:向量(vector)
for (x = [0, 10]) { echo("val: ", x); }
上例結果:
ECHO: "val: ", 0
ECHO: "val: ", 10
需注意,迴圈只會解讀一層,因此可以使用上面的例子與下例比較:
for (x = [[0, 6], [1, 8]]) { echo("val: ", x); }
上例結果:
ECHO: "val: ", [0, 6]
ECHO: "val: ", [1, 8]
迴圈:範圍(range)
預設的間距是1
for (x = [0 : 3]) { echo("val:", x); }
上例結果:
ECHO: "val: ", 0
ECHO: "val: ", 1
ECHO: "val: ", 2
ECHO: "val: ", 3
使用者也可指定間距
for (x = [0 : 0.2 : 1]) { echo("val:", x); }
上例結果:
ECHO: "val: ", 0
ECHO: "val: ", 0.2
ECHO: "val: ", 0.4
ECHO: "val: ", 0.6
ECHO: "val: ", 0.8
ECHO: "val: ", 1
迴圈:巢狀(nest)
for (x = [0 : 2], y = [0 : 1]) { echo("val:", x, y); }
上例結果:
ECHO: "val: ", 0, 0
ECHO: "val: ", 0, 1
ECHO: "val: ", 1, 0
ECHO: "val: ", 1, 1
ECHO: "val: ", 2, 0
ECHO: "val: ", 2, 1
條件判斷(if)
a = 1; b = 2; if (a == b) { echo("a = b"); } else if ( a > b) { echo("a > b"); } else { echo("other"); }
上例結果:
ECHO: "other"
數學運算(scalar arithmetical operators)
+ | 加法 |
- | 減法 |
* | 乘法 |
/ | 除法 |
% | 餘數 |
關係運算(relational operators)
< | 小於 |
<= | 小於等於 |
> | 大於 |
>= | 大於等於 |
== | 等於 |
!= | 不等於 |
邏輯運算(logical operators)
&& | AND |
|| | OR |
! | NOT |
條件運算(conditional operators)
a = 0; b = 1; c = a == b ? 3 : 4
可以解譯成如下:
a = 0; b = 1; if ( a == b) { c = 3; } else { c = 4; }
由於使用者無法在if判斷式中宣告變數,因此,可以透過條件運算達到這個需求