教育・トレーニング

第9弾
APA スペシャルWebセミナー開催ー【プログラミング編】ー

APA(A&A Vectorworksプロフェッショナルアドバイザー)が講師となってインターネット上で行うスペシャルWebセミナー第9弾の終了レポートです。

APA スペシャルWebセミナー【プログラミング編】

『VectorScript実践セミナー』
     第2回【図形データの操作方法】

開催日:第2回:4月10日(金)
時 間: 10:00〜11:30・13:30〜15:00 (各回共通)

講 師:株式会社治郎吉商店 白石 亘 氏 (APAメンバーページ)

第2回目は、「CADのデータ構造」、「ハンドル移動ルーチン」、「無限ループ」についての解説と体験を実施しました。

冒頭に前回の復習を兼ねてVectorScriptのレファレンスの見方や A&AのホームページのVectorScript情報ページの他、VectorScript Language Guide(ランゲージガイドPDFのダウンロード) についてご紹介されました。

Vectorworksのフォルダ内にあるVWHelpのScriptFunctionReferenceの見方として、例えば、
「FLayer」(エフレイヤ)とは何か、と検索して確認します。
コマンドの意味はわかっても、それはどんな時に使えばいいのか分からないということがあります。
さらにどうすれば、この「FLayer」に辿り着けるのか?という疑問が出てくると思います。
正直、それはすごく難しいことです。我々も複数あるレイヤのコマンドからこれらの名前、中身、それぞれの機能をひとつづつ確認して、「どうやら これらしい」とプログラミングしていく作業をしています。
と言うと大変な作業でとても敷居が高いなと感じられるかもしれませんが、慣れれば大丈夫です。基本パターンを覚えてまずはやってみる。困ったときはファンクションリファレンスを引いてみる。そこからプログラミングの世界に入るきっかけにしていただければと思います。と実務経験を例に、和やかにスタートしました。
 
【CADのデータ構造について】
Vectorworksにはレイヤがあります。レイヤには前後関係があり、同一レイヤ内での図形にも前後関係があります。
例えば「円がいくつ作図されているのか」「ある指定の四角形に色をつけたい」というようなことをプログラムで実行させたいと考えた時に、「どのレイヤにあるか」、「レイヤの中の図形にどうやってアクセスするのか」と意識する必要があります。
Vectorworksではレイヤ1、レイヤ2、フォルダ、グループ、シンボル・・・という情報の入れ物(ブロック)があります。これらを総称して「コンテナ」と呼びます。
コンテナには図形があり、コンテナに前後関係があるように、図形にもコンテナの中で前後関係があります。このようなモデルをメモリ上に展開する方法として、Linkedlist:リンクトリスト(連結リスト)というデータ構造がありCADでは一般的なメモリの使い方になっています。
 

【ハンドル移動ルーチン】

たとえば請求書のようなビジネス的なデータ構造は表計算ソフトで表すことができます。この場合、ひとつのレコードの長さは決まっており、同じ長さのレコードが複数ある構造です。一方CADの場合は、線には2点の情報が必要であり、多角形にはN個の頂点情報が必要です。このように図形によって必要な情報の長さが異なってくるため、表のような形でデータを持たせることができません。メモリ上では、レイヤ1は次のレイヤ2のポインタを持っており、レイヤ2にはレイヤ3のポインタを持っている構造をしています。そのようなデータ構造をプログラミングでたどる方法を「ハンドル移動ルーチン」とよんでいます。
 
 
【無限ループ】
while - do - begin - end の構文で記述された繰り返しの作業をするプログラムです。
このプログラムは、レイヤ1に作図されている図形を描いた順にたどっていき、もうこれ以上その先の図形がない場合は、「実行しました」とメッセージダイアログがでて画面が終了します。
その際に、例えば次のレイヤを取得するためのコマンド「layH:=NextLayer(layH); 」の記述がないと、構文チェックでコンパイルに成功するのですが実行時に無限ループにはまります。このようにプログラムが終わらなくなってしまった場合はVectorworksを強制終了します。試して見てください。while文の中のNextLayerをコメントにしてしまうと簡単にこの状況になります。プログラミングではこの程度のことは日常的に発生します。
ここでは正しくプログラムを記述してあれば、「実行しました」とメッセージダイアログが表示されます。この論理構造だけでなにもしないプログラムをひな形として実行できるということが重要なのです。
 
今回もプログラミングの論理構造をわかりやすくご説明いただき、
「分かり易かったです。ありがとうございました。 」
「今回も、大変勉強になりました。またよろしくお願いします。」
とコメントをいただきました。
プログラムについて全く初めての方には、「難しかった 」と率直なご意見も当然のことで、白石氏も「今回理解できなくてもプログラミングのきっかけにしていただければうれしいです。」とおっしゃっていました。

お忙しい中講師を努めていただきました白石様、ご参加された皆様、ありがとうございました。

次回は、5月13日(水)に第3回【ファイル入出力、レコード】を開催いたします。


 

>>その他のWebセミナー一覧へ