Luaスクリプトプラグインで動作するスクリプトのサンプルを紹介します。
付箋の新規作成
データファイルから行ごとに読込、新規の付箋を作成する例です。 例えばデータファイルとして次のようなファイルがあったとして
C:\Users\taro\Documents\data.txt
山田 太郎さん 注文確認の電話
鈴木 花子さん 商品を届ける
田中 次郎さん 問い合わせの回答
次のようにするとファイルの行数分付箋を新規作成し 各付箋にファイルの内容を登録します。
x = 'ファイルからデータを読み込んで新規の付箋を作成する'
exec = exec or false -- 一度だけ実行させるフラグ
function proc()
new = f_GetMe()
file = io.open("C:\\Users\\taro\\Documents\\data.txt", "r")
for line in file:lines() do
new = new:NewFusen(1) -- 1は雛形番号
new.txt = line
end
file:close()
end
if exec == false then
proc()
exec = true
end
付箋の作成をスクリプトで行う場合の注意点としては スクリプトの実行はCFusenの起動、移動、サイズ変更、付箋の保存などを 行った都度にされますので、何度もスクリプトが実行される 事を考慮しておく必要がある事です。
コッホ曲線
図形を描画するにはグラフィックオブジェクトと GDIオブジェクトを取得して使います。
x = "コッホ曲線"
f_SetTitle("Luaスクリプト:コッホ曲線")
gra = f_Graphics()
gdi = gdi or f_Gdi()
maxLevel = 4
p = p or gdi:Pen(gdi:Color(0,255,0))
deg60 = 60 * math.pi / 180
function rotate(theta, x, y)
local sin, cos = math.sin(theta), math.cos(theta)
return cos * x - sin * y, sin * x + cos * y
end
function KochCurve(x1, y1, x2, y2, level)
if level == maxLevel then
gra:DrawLine(p, x1, y1, x2, y2)
else
local vx, vy = (x2 - x1) / 3, (y2 - y1) / 3
local ax, ay = x1 + vx, y1 + vy
local v1x, v1y = rotate(deg60, vx, vy)
local bx, by = ax + v1x, ay + v1y
local v2x,v2y = rotate(-deg60, vx, vy)
local cx, cy = bx + v2x, by + v2y
KochCurve(x1, y1, ax, ay, level + 1)
KochCurve(ax, ay, bx, by, level + 1)
KochCurve(bx, by, cx, cy, level + 1)
KochCurve(cx, cy, x2, y2, level + 1)
end
end
w = f_GetClientWidth()
h = f_GetClientHeight()
f_SetBackColor(gdi:Color(50, 15, 35))
d = w / 6
x1, y1 = w / 2, 20
x2, y2 = d, h - 2 * d + 20
x3, y3 = w - d, h - 2 * d + 20
KochCurve(x1, y1, x2, y2, 0)
KochCurve(x2, y2, x3, y3, 0)
KochCurve(x3, y3, x1, y1, 0)
図形描画での注意点は重い処理は行わない事です、 Luaスクリプトは速くありません。
その他のサンプル
その他のサンプルはリンク先を参照してください。
comments powered by Disqus