Chapter 01. 雛形を作ろう
このチュートリアルは、以降のチュートリアルを進めるに当たっての、プログラムの雛形を作ることを目的とします。順々に説明しますので、安心してお読み下さい。 もし分からないことや、上手く行かないことがございましたら、sata@chiyolab.net までメールにてご連絡下さい。宜しくお願い致します。
さて、早速始めましょう。
1. Excel ファイルを開こう。

このチュートリアルで使うサンプルファイルを、ダウンロードして下さい。
「マクロを含んでいます」という警告が出た場合は、「マクロを有効にする」を選択して下さい。もし、間違えて「マクロを無効にする」を選択してしまった場合は、一旦 Microsoft Excel を終了し、
もう一度ファイルを開いてください。
中央に、SGLX と書かれた小さなウィンドウが開くはずです。このウィンドウは消すことが出来ません。ウィンドウの中央に「日付:メッセージ」と書かれています。
この部分に、Chapter 02以降のチュートリアルで紹介する通信のログ(履歴)が表示されます。ご活用下さい。
2. 準備運動
「課題に回答」するボタンを押してください。以下のようなウィンドウが開きます。
A. セーブボタン - コードを保存します
B. コンパイルボタン - コードを保存し、コンパイルを実行します
C. 実行ボタン - プログラムを実行します
コードを書く部分に、以下のように入力しましょう。コードを保存するセルは、デフォルトで「B5」に指定されています。
#include "sfcglx.h" #includeint main(void) { printf("Hello World."); return 0; }
プログラムを実行する手順は、A -> B -> C の順番です。順に押してみましょう。実行すると、コンソール画面(真っ黒の画面) に、「Hello World.」と表示されているはずです。
3. 雛形を作ろう
まず、必要なヘッダーファイルをインクルードしましょう。
#include "sfcglx.h"
.h というファイルは「ヘッダーファイル」と言います。sfcglx.h は SGLX を使うために必要です。
sfcglx.h 内部で、sfcgl.h を既にインクルードしています。
次に、main 関数を作ります。
int main(int argc, char** argv) { SGInit(argc, argv); // SGL の初期化 // SGLX の初期化 SGLXInit("C:\\Users\\Akito\\Documents\\MediaDesign3D\\1"); SGOpenWindow(0,0,500,500); // 500x500のウィンドウ SGSetDisplay(display); // 描画 SGCallBack(); // コールバック関数を登録 return 0; }
SGLXInit() 関数の引数には、SGLXReadXV3() 関数で読み込む XV3 モデル (.xv3) へのパスを指定します。 今回のチュートリアルでは、SGLXReadXV3() 関数を使った読み込みは解説しませんが、 こちらにありますので、いずれご参照下さい。多くの場合、実行ファイル (.exe) が置かれているディレクトリの パスを指定すれば上手くいきます。先に進みます。
さらに、display 関数を追加します。"display" という名前は、SGSetDisplay() 関数で指定されていると思って下さい。SGSetDisplay() 関数に、hogehoge を設定 した場合は、hogehoge 関数を追加します。main 関数の上に書きましょう。下に書いた場合は、関数の前方宣言が必要になります。 よく分からない場合は、main 関数の上に書けば、問題ありません。ここでは、全文を載せます。
#include "sfcglx.h" void display() { BGColor(200, 200, 200); // 背景の色 SGBeginEdit(); // 形状の描画の開始. SGEndEdit(); // 形状の描画の終了. SGSwapFrames(); // フレームを入れ替える. } int main(int argc, char** argv) { SGInit(argc, argv); // SGL の初期化 // SGLX の初期化 SGLXInit("C:\\Users\\Akito\\Documents\\MediaDesign3D\\1"); SGOpenWindow(0,0,500,500); // 500x500のウィンドウ SGSetDisplay(display); // 描画 SGCallBack(); // コールバック関数を登録 return 0; }
ソースコードは以上です。早速、保存し、コンパイルし、実行してみましょう。下図のような灰色のウィンドウが表示されれば成功です。
お疲れ様でした。