FUNCTION
定义您自己的函数:由其实参计算出的值,或由实参生成的几何图形,或两者兼有。
语法
FUNCTION NAME(parameter,parameter,…) = expression
FUNCTION NAME(parameter,parameter,…) BEGIN … RETURN expression … END
| 参数 | 含义 |
|---|---|
| NAME | 函数名:一个名称,不能是语言的关键字(SIN、LINE……)。与内置函数同名(TRIANGULATE……)的函数会代替内置函数使用。 |
| parameter | 调用时传入的实参在函数内部使用的名称(无参数时:FUNCTION NAME())。 |
| expression | 函数的值:由其形参(以及图纸的变量)组成的表达式。 |
示例
FUNCTION HYPOT(A, B) = SQRT(A * A + B * B)
DIAGONAL = HYPOT(L, W)

DIAGONAL 随 L 和 W 的变化而跟随盒子变化。
FUNCTION FACTORIAL(N) BEGIN
IF N <= 1 THEN BEGIN RETURN 1 END
RETURN N * FACTORIAL(N - 1)
END
PRINT FACTORIAL(6)
FUNCTION SLOT(C, LENGTH, R) BEGIN
P1 = C + [-LENGTH / 2, -R] ; P2 = C + [LENGTH / 2, -R]
P3 = C + [LENGTH / 2, R] ; P4 = C + [-LENGTH / 2, R]
P5 = C + [LENGTH / 2, 0] ; P6 = C + [-LENGTH / 2, 0]
LINE P1, P2
ARC P2, P5, P3, TRUE
LINE P3, P4
ARC P4, P6, P1, TRUE
END
FOR I = 1 TO 3 BEGIN
CALL SLOT([I * 120, 200], 60, 10)
END
由 CALL 生成的三个槽。
说明
在任何可以使用表达式的地方,都可以通过函数名加括号内的实参来调用函数:HYPOT(3, 4)。函数的值就是它 RETURN 的值。生成几何图形的函数用 CALL 绘制。
函数类似于零件:它有自己的变量和点。其形参以及它设置的变量和点都属于它自己:上面 SLOT 中的 P1 不是图纸的 P1。其点从位于其原点 [0,0] 的 P0 开始。它能看到调用时图纸变量(L、W……)的值,以及其他函数。
函数可以调用自身,最多嵌套 100 层。函数在被调用时才查找,因此可以在定义之前使用。用相同名称再次定义函数会替换原函数。
函数保存在图纸文件的开头。
函数也可以用 JavaScript 编写:请参阅 JavaScript 函数。
另请参阅:块与控制流、CALL、 JavaScript 函数。