オブジェクト位置ファイル出力改良型
選択したオブジェクトの名前と位置をテキストファイルに出力する、ユーティリティスクリプトです。
オブジェクト名で使用された空白を除去する機能の追加と、Startup へ登録するように改良しました。
3DS MAX がインストールされているディレクトリ下の、Scripts\Startup へ登録してください。
-- *****************************************************************
-- オブジェクト位置を出力する(一部改良型)
--
-- Coded By Yoshiaki Tanaka
-- 2001/10/02
-- *****************************************************************
utility Iconsahedron "オブジェクト位置出力"
(
--
-- ユーザーインターフェース定義
--
label lb1 "倍率"
spinner keisuspin range:[0.001,20000,1] align:#left
label lb2 "出力ファイル"
edittext outfile text:"C:\TESTFILE.POS" enabled:on align:#left
button do_listup "出力" width:180
--
-- アクション定義
--
on do_listup pressed do
(
Local ostr
if selection.count < 1 then
(
messagebox "オブジェクトを選択してください。" Title:"Operation Error"
)
else
(
ostr = createFile( outfile.text )
if ostr != undefined then
(
for i in selection do
(
tpos = i.pos * keisuspin.value
eang = i.rotation as eulerAngles
-- オブジェクト名の空白文字をアンダーバーに強制変換
nm = i.name
do
(
rep = false;
idx = findString nm " "
if idx != undefined then
(
rep = true;
-- messagebox (idx as string) Title:"Attention"
nm = replace nm idx 1 "_"
)
) while rep
-- 情報出力
format "NAME=%\n" nm to:ostr
format "X=%\n" tpos.x to:ostr
format "Y=%\n" tpos.y to:ostr
format "Z=%\n" tpos.z to:ostr
format "RX=%\n" eang.x to:ostr
format "RY=%\n" eang.y to:ostr
format "RZ=%\n" eang.z to:ostr
format "END=\n" to:ostr
)
close ostr
messagebox "出力しました" Title:"Attention"
)
else
(
messagebox "ファイルがオープンできません。" Title:"File Error"
)
)
)
)