R rand
read
remove_control_point
return
round


rand [rand]

0 から 1 までの乱数を発生します。中身が入っていない () をつけて使います。指定した範囲内で乱数を発生したい場合は、

set min 10
set max 30
set ransu [expr ($max - $min)*rand() + $min]

のようにします。整数の乱数にしたい場合は、

set min 10
set max 30
set ransu [expr int(($max - $min + 1)*rand() + $min)]

のようにします。


2003.6.11(水) 16:34:10[編集]



read [read]

open コマンドで開いたファイルの内容を読み取ります。

set file_ID [open test.txt r]
set cnt [read $file_ID]
close $file_ID

とすると、変数 cnt にtest.txt ファイルの中身が記録されます。
gets コマンドだと、一行ずつ読み取りますが、read コマンドの場合は、一度にすべてを読み取ります。

read -nonewline $file_ID

と -nonewline オプションをつけると、最後の改行が取り除かれます。

2003.6.11(水) 16:29:35[編集]



remove_control_point [remove_control_point]

Shade のコマンドです。

コントロールポイントを削除します。

remove_control_point 2

のようにすると、2番目のポイント(0から数えて)を削除します。
2003.6.17(火) 12:43:10[編集]



return [return]

プロシージャから抜けます。

proc exm {} {
    message 1
    message 2
    return "proc終了"
    message 3
}
exm
を実行すると、message 3 を実行する前に、proc exm を終了します。return の後ろに書いた値を返します。この場合、

set a [exm]

とすると、a に proc終了 という文字列が代入されます。

プロシージャの外で return を使うと、その時点でスクリプトを終了します。
たとえば、線形状についてだけ操作するスクリプトを作る場合、スクリプトの最初に

if {$object_type != 4} {
    return "線形状を選んでから実行してください。"
}
と書いておけば、線形状を選んだときの処理を if 文の中に入れたり、
プロシージャの中に入れたりしなくてもいいので、楽です。

2003.6.11(水) 16:27:57[編集]



round [round]

実数を四捨五入して整数にします。

set a 56.23
set b 34.78
message [expr round($a)]
message [expr round($b)]

は、

56
35

と表示されます。

int だと、小数部分を切り捨てた整数になります。
2003.6.11(水) 16:26:41[編集]


Sakura Dictionary Ver. 1.09a
Scripted by UTANO Lime
(c)Pastel Carrot 1999-
All rights Reserved.