technote
タイトル MAXスクリプトによるファイル読み込みのテンプレートソースコード
報告内容 3Dデータが定義されたテキストファイルをMAXで読み取り3D化したいというケースは、結構発生すると思います。
それをC++のプラグインでいちいち作るのも手間ですので、MAXスクリプトで行うのがよいでしょう。

ここにそのためのテンプレート(骨格)となるようなサンプルコードを提供します。
これをもとに各自、読み込みプラグインを作ってみてください。

ちなみに、ここに上げるコードは、モニターで再現できる色空間を3Dで表した座標列を読み取って、ワイヤーモデルを作るものです。

読み取るデータの形式は、

_________________________________________________________________
L* a* b*

0 0 0
0.34 2.37 -6.46
0.94 6.62 -17.34
1.93 13.55 -28.19
3.34 23.39 -37.66
5.23 32.43 -45.83
7.63 38.71 -52.74
10.33 43.18 -58.8
12.98 47.51 -64.7



______________________________________________
このように、X,Y,Zに対応する座標値が単純に並んでいるものです。

■カラーデータ読み込みサンプルコード
______________________________________________
utility ReadColorSpace "カラーデータの読み込み"
(
 --Ver1
 --<2001/7/31>
 --・ファーストリリース

 --ファイルの読み込み
 function ReadFile sFilename =
 (
  --ファイルのオープン
  fp=openFile sFilename

  --2行分読み飛ばす
  LineStr = readline fp
  LineStr = readline fp

  --スプラインシェイプを作る
  sp = splineshape()

  --スプラインを作る(このスプラインセグメントに対して頂点を追加していく
  addNewSpline sp

  while not eof fp do
  (
   --一行読み込み、名前に変換
   LineStr = readline fp
   Str=filterString LineStr " "
   --format "Str=%\n"Str
   --format "Str.count=%\n" Str.count
   if Str.count<3 then
   continue

   x = Str[1] as float
   y = Str[2] as float
   z = Str[3] as float

   --format "x=% y=% z=%\n" x y z

   addknot sp 1 #corner #line [x,y,z]
  )
  --シェイプをアップデート
  updateshape sp

  close fp

  return true
 )

 --インターフェース定義
 button LoadFile "読み込み" toolTip:"カラースペースの3D定義ファイルを読み込みます"
 label label04 "---------------------------"
 label label05 "by Hiromitsu Kohsaka"

 --パネルの初期化
 on ReadColorSpace open do
 (
 )

 --ファイル読み込み
 on LoadFile pressed do
 (
  --レンダリングファイル名の入力
  sFileName = getOpenFileName caption:"カラースペースの3D定義ファイルの読み込み" \
  types:"カラースペース定義ファイル(*txt)|*.txt"

  if sFileName != undefined then
  (
   ReadFile sFilename
  )
 )
)
______________________________________________

名前 上坂浩光
日時 2001/8/3
データ machine name:NU
os(version):Windows2000(SP1)
application:3DStudioMAX
other: