SlideShare a Scribd company logo
1 of 31
APA スペシャルWebセミナー【プログラミング編】
『VectorScript実践セミナー』
第3回【ファイル入出力、レコード】
2015年5月13日
(株) 治郎吉商店
白石 亘
VectorScriptとは?
VectorScript は、Vectorworks のソフトウェアパッケージ
に含まれるスクリプト言語です。軽量なプログラミング
言語であ
る VectorScript の構文は Pascal と似ており、Pascal の
プログラム要素を多く取り入れています。
VectorScript は実際、Pascal 言語の「スーパーセット」
として、Pascal の基本機能に Vectorworks CAD エンジ
ンの機能にアクセスするための各種 API(アプリケーシ
ョンプログラミングインターフェース)を加えて拡張し
たものです。
VectorScript Language Guideから抜粋
資料
• VectorScript Language Guide
• http://www.aanda.co.jp/develop/VS/index.html
• VectorScript Function Reference
• VectorWorksフォルダに入っている
• サイト
• http://developer.vectorworks.net/index.php/Ve
ctorScript/ja
これだけです。
資料を開いてみよう
• VectorScript Language Guide
• http://www.aanda.co.jp/develop/VS/index.ht
ml
• VectorScript Function Reference
• サイト
• VectorWorksフォルダにも入っている
全3回の内容
• 第1回
• プログラムの基本形
• 変数とデータ型
• 論理構造
• 図形を作成
• 第2回
• 図形情報とハンドル
• ハンドル移動ルーチン
• 無限ループ
• 第3回
• ファイル入出力
• レコード
目標
サイト:
http://developer.vectorworks.net/index.php/Main_Page
多くのコマンドがあります、同じ機能を実現するのにいくつ
かの方法があります。そんな中で、私らのコードは結構パタ
ーン化されています。よく使うコードパターンがあって、そ
れらを組み合わせて使うことで多くの機能を実現することが
できます。
基本となるコードパターンを覚えて、あとは応用で使えるコ
マンドを増やしていきます。このあたりのコツを紹介したい
です。
内容
• CADのデータ構造
• ハンドル変数
• 論理構造(whileによる無限ループ)
• 論理構造(procedureとfunction)
• 図形情報を取得
• 図形情報を変更
• デバッグ
CADのデータ構造
• まずレイヤがあって
• その上に図形がある
• どちらも前後関係がある
CADのデータ構造
• まずレイヤがあって
• その上に図形がある
• どちらも前後関係がある
ハンドル型の変数
• プログラムの中で参照したいレイヤや図形はハンドル
を取得して「ハンドル型の変数」に代入します。
• ハンドルを取得する方法
• レイヤのハンドル
• 図形のハンドル
• そのほか、シンボル定義のハンドルなどなど
ハンドル型の変数
• レイヤのハンドルを取得する方法
• 変数宣言
• layerHandle, layerH, layH, h : handle;
• layH := FLayer;
• ActLayer, LLayer,
• layH := CreateLayer( 'template1', 1 );
• templateという名前でレイヤを作成
ハンドルを取得する方法
• 変数宣言
• layH: handle;
• objH, h : Handle;
• ハンドルを取得
• objH := FActLayer; {アクティブレイヤの最初の図形}
• h := LSActLayer; {アクティブレイヤで選択されている最後の
図形
• layH:= FLayer; {最初のレイヤ}
ハンドル移動ルーチン
• while文でオブジェクトチェーンをたぐ
って目的の図形を見つける
• h := FActLayer; {アクティブレイヤの最初の図形}
• while h <> nil do begin
• {ここで何かする}
• h := NextObj( h );
• end;
ファイル入出力
• テキストファイルに書き出す
• テキストファイルから読み込む
テキストファイルに出力
• PutFile('ファイル名:', fileName,
fileName); {保存ダイアログ}
• ReWrite( fileName );
• WriteLn( tempStr ); {ファイルに1行
書き出す}
• Close( fileName ); {ファイルを閉じる}
シンボルの数を数える
• objType:= GetType( objH );
• if ( objType = 15 ) then begin
• symName:= GetSymName( objH );
• if ( symName = kSYMBOL01 ) then
begin
• gCnt01:= gCnt01 + 1;
• end; {if }
• ….
テキストファイルから読み込
む
• GetFile(fileName); {オープンダイアログ}
• ReadLn(x1,y1,x2,y2); {ファイルから1行
読み込む}
• Close( fileName ); {ファイルを閉じる}
レコードを付ける
• レコードとは?
• 図形にデータを保持させることができ
る
• プラグインオブジェクトで使う
• 図形を選択して、データパレットを開く
レコードを付ける
• ファイルから読み込んで作成した図形に
レコードを付けてみよう
レコードを付ける
• NewField( kREC_NAME, kFIELD_NAME, '',
4, 0 );
• {レコードを作る}
• SetRecord( h, kREC_NAME );
• {レコードをセットする}
• SetRField( h, kREC_NAME, kFIELD_NAME,
'1');
• {フラグフィールドに 1 をセットする}
レコードの値を取得
• レコードの値を取得しよう
• flagValue:= EvalStr(h, data_type.'フラグ');
レコードの値を取得
• プログラムで自動的に作成した図形に、レコ
ードを付けておいて識別できるようにしてお
こう
• プログラムを繰り返し実行する場合、前の実
行で作成した図形は自動的に削除したい
• これ以降は復習
コマンドを作ってみる
• リソースパレット
• 新規スクリプト
• パレットを追加
• コマンドを追加
• スクリプトエディタ
プログラムの基本形
• procedure( myPrg )で始まる
• constで定数を宣言
• varで変数を宣言
• beginとendで囲む
• 行末にセミコロン
• run( myPrg );で終わる runは全体で1カ所だ
け
変数名と予約語
• 宣言に必要な「変数名」はプログラマが決めます。「
データ型」はVectorScriptの中で決まっています。
• 変数名を決めることをネーミングといいます。
• VectorScriptによってすでに意味が決まっている「
VectorScriptキーワード」というのがあります。予約
語と呼ばれます。予約語は変数名に使うことはできま
せん。
• たとえばbeginとか、integer、handle、unit、などな
ど
• VectorScript Language Guide p10 - p11参照
宣言文
• const
• コンストと読む。constantの略。
• 定数変数を宣言するブロックの始まりを意味する
。
• プログラムの中で変更すると構文エラーになる
。
• var
• バーと読む。variableの略。
• 変数を宣言するブロックの始まりを意味する。
論理構造
• 条件分岐
• if - then - else - end
• イフ、ゼン、エルス、エンド
• if 以下の条件文が正しければ続く
実行文を実行、正しくなければ
else に続く実行文を実行
• AlrtDialog:ダイアログを表示する
論理構造
• 繰り返し
• while - do - begin - end
• 条件文が真( true )の間はループ内のコードを実
行、条件文が偽( false )になったらループを終了
• 無限ループです
• 終了条件が成立しないと止まりません
プログラムの構造
• procedure
• 手続き、プロシージャ
• 戻り値がない
• procedure myProc ;
• function
• 関数、ファンクション
• 戻り値がある
• function myFunc : longint ;
終わりに
• ご清聴ありがとうございました。
• VectorScriptプログラミング入門
• 治郎吉商店制作のサンプルコードと解説集
• オンラインショップ「JiroShop」にて発売
中
• 個別のトレーニング、ご相談も承っておりま
す。

More Related Content

Viewers also liked

Diagvnismos logotupou gia to ergo mas 21
Diagvnismos logotupou gia to ergo mas 21Diagvnismos logotupou gia to ergo mas 21
Diagvnismos logotupou gia to ergo mas 21DANAEK1
 
Trabajo práctico n°3 2-1. (10)
Trabajo práctico n°3 2-1. (10)Trabajo práctico n°3 2-1. (10)
Trabajo práctico n°3 2-1. (10)mariangelesf
 
Presentacion jorge
Presentacion jorgePresentacion jorge
Presentacion jorgejorge1092
 
Memoria Consumópolis AUNKE
Memoria Consumópolis AUNKEMemoria Consumópolis AUNKE
Memoria Consumópolis AUNKEmjosebarxas
 
Administracion de justicia (ministerio público)
Administracion de justicia (ministerio público)Administracion de justicia (ministerio público)
Administracion de justicia (ministerio público)Ana Claudia Ballón Zela
 
1 formulas y funciones 1
1 formulas y funciones 11 formulas y funciones 1
1 formulas y funciones 1mishel cevallos
 

Viewers also liked (8)

Gás natural para compagas
Gás natural para compagasGás natural para compagas
Gás natural para compagas
 
Week4
Week4Week4
Week4
 
Diagvnismos logotupou gia to ergo mas 21
Diagvnismos logotupou gia to ergo mas 21Diagvnismos logotupou gia to ergo mas 21
Diagvnismos logotupou gia to ergo mas 21
 
Trabajo práctico n°3 2-1. (10)
Trabajo práctico n°3 2-1. (10)Trabajo práctico n°3 2-1. (10)
Trabajo práctico n°3 2-1. (10)
 
Presentacion jorge
Presentacion jorgePresentacion jorge
Presentacion jorge
 
Memoria Consumópolis AUNKE
Memoria Consumópolis AUNKEMemoria Consumópolis AUNKE
Memoria Consumópolis AUNKE
 
Administracion de justicia (ministerio público)
Administracion de justicia (ministerio público)Administracion de justicia (ministerio público)
Administracion de justicia (ministerio público)
 
1 formulas y funciones 1
1 formulas y funciones 11 formulas y funciones 1
1 formulas y funciones 1
 

Similar to APA01 2015513

『VectorScript実践セミナー』 第2回【図形データの操作方法】
『VectorScript実践セミナー』 第2回【図形データの操作方法】『VectorScript実践セミナー』 第2回【図形データの操作方法】
『VectorScript実践セミナー』 第2回【図形データの操作方法】Wataru Shiraishi
 
『VectorScript実践セミナー』 第1回【プログラムの基本パターン】
『VectorScript実践セミナー』 第1回【プログラムの基本パターン】『VectorScript実践セミナー』 第1回【プログラムの基本パターン】
『VectorScript実践セミナー』 第1回【プログラムの基本パターン】Wataru Shiraishi
 
『VectorScriptをはじめよう』
 『VectorScriptをはじめよう』 『VectorScriptをはじめよう』
『VectorScriptをはじめよう』Wataru Shiraishi
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~Akira Inoue
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminarAtushi Sugiyama
 
コンピュータビジョン7章資料_20140830読書会
コンピュータビジョン7章資料_20140830読書会コンピュータビジョン7章資料_20140830読書会
コンピュータビジョン7章資料_20140830読書会Nao Oec
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...Akira Inoue
 
JAWSUG初心者向けトラック 【Deploy&Ops】
JAWSUG初心者向けトラック 【Deploy&Ops】JAWSUG初心者向けトラック 【Deploy&Ops】
JAWSUG初心者向けトラック 【Deploy&Ops】Yukihiko SAWANOBORI
 
Automatic api document generation 101
Automatic api document generation 101Automatic api document generation 101
Automatic api document generation 101LINE Corporation
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』H2O Space. Co., Ltd.
 
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAmazon Web Services Japan
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Kazumi IWANAGA
 
Dot netcore multiplatform 2
Dot netcore multiplatform 2Dot netcore multiplatform 2
Dot netcore multiplatform 2shozon
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編Daiyu Hatakeyama
 
HTML5-20100626
HTML5-20100626HTML5-20100626
HTML5-20100626Taku AMANO
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するTakahito Tejima
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Akira Inoue
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッションYuichi Hasegawa
 
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】Tomoharu ASAMI
 

Similar to APA01 2015513 (20)

『VectorScript実践セミナー』 第2回【図形データの操作方法】
『VectorScript実践セミナー』 第2回【図形データの操作方法】『VectorScript実践セミナー』 第2回【図形データの操作方法】
『VectorScript実践セミナー』 第2回【図形データの操作方法】
 
『VectorScript実践セミナー』 第1回【プログラムの基本パターン】
『VectorScript実践セミナー』 第1回【プログラムの基本パターン】『VectorScript実践セミナー』 第1回【プログラムの基本パターン】
『VectorScript実践セミナー』 第1回【プログラムの基本パターン】
 
『VectorScriptをはじめよう』
 『VectorScriptをはじめよう』 『VectorScriptをはじめよう』
『VectorScriptをはじめよう』
 
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
 
7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar7/7 WordBench kobe dreamweaver seminar
7/7 WordBench kobe dreamweaver seminar
 
sveltekit-ja.pdf
sveltekit-ja.pdfsveltekit-ja.pdf
sveltekit-ja.pdf
 
コンピュータビジョン7章資料_20140830読書会
コンピュータビジョン7章資料_20140830読書会コンピュータビジョン7章資料_20140830読書会
コンピュータビジョン7章資料_20140830読書会
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
 
JAWSUG初心者向けトラック 【Deploy&Ops】
JAWSUG初心者向けトラック 【Deploy&Ops】JAWSUG初心者向けトラック 【Deploy&Ops】
JAWSUG初心者向けトラック 【Deploy&Ops】
 
Automatic api document generation 101
Automatic api document generation 101Automatic api document generation 101
Automatic api document generation 101
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorksAWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
 
Dot netcore multiplatform 2
Dot netcore multiplatform 2Dot netcore multiplatform 2
Dot netcore multiplatform 2
 
機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編機械学習 / Deep Learning 大全 (5) Tool編
機械学習 / Deep Learning 大全 (5) Tool編
 
HTML5-20100626
HTML5-20100626HTML5-20100626
HTML5-20100626
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
 
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
Visual Studio 2012 Web 開発 ~ One ASP.NET から TypeScript まで ~
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッション
 
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
 

APA01 2015513