祐森建築環境設計室
建築機械設備設計 メニュー/ツールの作成 カスタマイズ 建築意匠設計 建築電気設備設計 パソコンCADシステム リンク メール
プラグインメニュー≪シェアウエア≫ プラグインツール≪シェアウエア≫ プラグインメニュー≪フリーウエア≫

★☆VectorWorksのVectorScriptによるメニューとツールの作成☆★

1.VectorScript で何ができるのでしょうか?

VectorScriptとは、VectorWorksに標準で付属しているプログラム言語です。
追加のインストールをすることなしに、直ちに使用することができます。

VectorScript は Pascal に準拠した言語で、Pascal に似た言語構造をしています。それに VectorWorks のドキュメント(図面)のオブジェクト(図形)を操作する VectorScript 独自の1200を超える組込み関数・手続きがあります。この関数・手続きを利用して、ドキュメント(図面)のオブジェクト(図形)を状況を知り、ドキュメント(図面)にオブジェクト(図形)を作成します。

したがって、VectorScript を使用すると、次のようなことから、任意のメニューコマンドやツールが作成できます。

A.先に図形を選択し、その図形を基準にして必要な図形を作図するもの。
  例えば、畳敷込割付けジグザグ線波形線矩形波形線円筒体円錐体球体コンクリート模様

B.クリックによって複数の図形を指定し、その相互の位置関係から図形を編集し、更に必要な図形を作図するもの。
  例えば、電気配線配管継手

C.クリックによって図形と作図位置を指定し、その位置に図形を作図するもの。
  例えば、配線心数

D.図面の中にどのような図形、文字列があるかを図面内全てに渡って検索するもの。
  例えば、微小図形削除図形の選択と削除...文字列の選択と削除...

E.指定された作図条件、作図属性で図面属性を設定するもの。
  例えば、文字設定...

F.図面内の図形を基準にして、理論計算を行い、その結果をワークシートに入れるもの 。
  ワークシートの各セルも扱えます。

 何れの場合でも、
A.ダイアログボックスから、数値、文字列の入力、作図条件の選択が可能です。
B.条件ファイル、作図データファイルから読み込むことも、書き込むことも、出来ます。
C.ファイル名を指定しての、読み込みも書き込みも出来ます。
D.選択されている図形の図形属性(図形の種類、座標点数値、色、等)の属性を知ることが出来ます。
E.座標点や作図条件によって座標計算を行い、図形の編集や作成が可能となります。
F.クリックによって、新たな図形の追加選択が可能です。
G.ワークシートから座標点等の読み込みも、ワークシートに結果を書き込むことも可能です。

 コマンドやツールとして作成できるものは、繰り返し行われる作業で、その作業に規則性のあるもの、
図形の座標計算が規則的、理論的に行えるものが対象になります。

 逆に、VectorScriptでは実行できないことがあります。
1.複数の図面に渡るもの。現在の図面に対する作図処理だけで、他の図面に対する作図処理を行うことはできません。
2.マルチスレッド機能・同時に複数の処理を行うことはできません。VectorScriptが動作しているときは、他の処理を行うことはできません。


 クリックによって図形を選択するか、または、作図位置を指定することによって作図するようなものは、【ツール】に適しています。
 最初にダイアログボックスを表示して、作図条件の選択や作図データを入力するようなものは、【メニュー】に適しています。
同じ動作をするものを【メニュー】と【ツール】で作成できますが、使い勝手で分けるべきでしょう。


2.データの型

型の名前

内  容

INTEGER 整数型 -32,768 から +32,767 までの範囲の整数。 2バイト長
LONGINT 倍長整数型 -2,147,483,648 から +2,147,483,647 までの範囲の整数。 4バイト長
REAL 実数型 倍精度浮動小数形式。
およそ 1.9E-4951 から 1.1E+4932 までの範囲の数値を表せる。10バイト長
「値の範囲、バイト長は、バージョンアップによって拡張され、Ver12.の段階で上記の範囲、バイト長となっている」
BOOLEAN 論理型 "TRUE" または "FALSE" の2値。 1バイト長
CHAR 文字型 半角1文字の文字。 1バイト長
STRING 文字列型 半角 255 文字までの文字列。 256バイト長
HANDLE ハンドル型 図面内にある図形を識別するためのデータ。各図形に割り付けられた固有のシリアル番号と考えてよい。
「特定の図形を操作するには、ハンドルでその図形を識別する。ただし、新しくScriptを実行した段階で、ハンドルは再度付け直される。実行する度にハンドルは変更される。」
VECTOR ベクタ型 REAL型の3要素をもつ配列。標準的なベクトル演算を利用できる。 24バイト長
POINT ポイント型 REAL型の2要素をもつ配列。2D座標点を表す。(X,Y) 16バイト長
POINT3D 3Dポイント型 REAL型の3要素をもつ配列。3D座標点を表す。(X,Y,Z) 24バイト長
RGBCOLOR RGBカラー型 LONGINT型の3要素をもつ配列。色を表す。(red,green,blue) 12バイト長


3.識別名と予約語
 変数、定数、関数、手続、はそれぞれ固有の名前を付けてます。その名前が 識別名です。 識別名は、次の名前付け規則に従わなければなりません。

1.20文字までの半角英数字と下線( _ )。
  20文字以上の長い文字列も使えますが、識別されるのは、20文字までです。

2.最初は英字(アルファベット)または下線( _ )です。大文字、小文字を区別しません。
  
数字を使用することはできますが、特殊文字、スペースを使用することはできません。

3.一度使用した識別名を、再度別の識別名に使用することはできません。

4.予約語、および、既にVectorScriptの関数・手続きとして使用されているものは、使用できません。

予 約 語 一 覧
・ALOOCATE・AND・ARRAY・BEGIN・BOLEAN
・CASE・CHAR・CONST・DIV・DO
・DOWNTO・DYNARRAY・ELSE・END・FALSE
・FOR・FUNCTION・GOTO・HANDLE・IF
・INTEGER・LABEL・LONGINT・MOD・NIL
・NOT・OF・OR・OTHERWISE・PI
・PROCEDURE・REAL・REPEAT・STRING・STRUCTURE
・THEN・TO・TRUE・TYPE・UNTIL
・VAR・VECTOR・WHILE


4.座標計算
 Ver10.0 から、2本の線分の交点座標、線分と楕円の交点座標、楕円と楕円の交点座標、が関数・手続きによって簡単に計算できるようになりました。

1.2本の線分の交点座標
 Procedure  LineLineIntersection ( L1start : POINT; L1end : POINT; L1start : POINT; L2end : POINTVAR  parallel : BOOLEANVAR intOnLine : BOOLEANVAR secPt : POINT )
L1start 線分1の始点座標 POINT型 与条件
L1end 線分1の終点座標 POINT型 与条件
L2start 線分2の始点座標 POINT型 与条件
L2end 線分2の終点座標 POINT型 与条件
parellel 線分が平行な場合はTRUE BOOLEAN型 計算結果
intOnLine 線分が交差している場合はTRUE BOOLEAN型 計算結果
sectPt 交点の座標 POINT型 計算結果

2.線分と楕円の交点座標
  Procedure  LineEllipseIntersect ( a1: POINT; a2 : POINT; upperRight : POINT; lowerLeft : POINTVAR  int1 : POINTVAR legal1 : BOOLEANVAR int2 : POINTVAR legal2 : BOOLEAN )
a1 線分の始点座標 POINT型 与条件
a2 線分の終点座標 POINT型 与条件
upperRight 楕円に外接する四角形の右上の座標 POINT型 与条件
lowerLeft 楕円に外接する四角形の左下の座標 POINT型 与条件
int1 交点1の座標 POINT型 計算結果
legal1 交点1の有無(有のときTRUE) BOOLEAN型 計算結果
int2 交点2の座標 POINT型 計算結果
legal2 交点2の有無(有のときTRUE) BOOLEAN型 計算結果

3.楕円と楕円の交点座標
  Function EllipseEllipseIntersect ( upperLeft1: POINT; lowerRight1 : POINT; upperLeft2 : POINT; lowerRight2 : POINTVAR  int1 : POINTVAR int2 : POINTVAR  int3 : POINTVAR int4 : POINT ) : INTEGER;
upperLeft1 楕円1に外接する四角形の左上の座標 POINT型 与条件
lowerRight1 楕円1に外接する四角形の右下の座標 POINT型 与条件
upperLeft2 楕円2に外接する四角形の左上の座標 POINT型 与条件
lowerRight2 楕円2に外接する四角形の右下の座標 POINT型 与条件
int1 交点1の座標 POINT型 計算結果
int2 交点2の座標 POINT型 計算結果
int3 交点3の座標 POINT型 計算結果
int4 交点4の座標 POINT型 計算結果

返り値

 求められた交点の数 INTEGER型 計算結果

4.その他、通常の三角関数等が使用できます。


5.繰り返し
1.FOR-TO-DO/FOR-DOWNTO-DO = 単純繰り返し文

FOR 文はカウンタを使用する単純な繰り返しで、カウンタの上限値を指定して、初期値から上限値まで加算すつタイプと、 下限値を指定して、初期値から下限値まで減算するタイプがあります。間隔は ”1” に限定されています。

FOR <カウンタ変数>:=初期値 TO 上限値 DO 実行可能な文;

FOR <カウンタ変数>:=初期値 DOWNTO 下限値 DO 実行可能な文;

カウンタ変数は、INTEGER型、終了後のカウンタの値は保証されていません。


2.REPEAT-UNTL 文

REPEAT と UNTIL の間に挟まれた文を実行します。

REPEAT
 実行可能な文;
 実行可能な文;
 実行可能な文;
 /
 実行可能な文;
UNTIL 論理値を返す式 または、論理変数;

REPEAT と UNTIL に挟まれた実行文は、終了条件である 論理値を返す式 または、論理変数 を評価する前に、まず、実行されます。 したがって、どのような条件であっても、必ず1回は実行されることになります。


3.WHILE-DO 文

最初に 論理値を返す式 または、論理変数 を判断し、合う場合は DO の後の実行分を実行し、合わない場合は、実行しません。

WHILE 論理値を返す式 または、論理変数 DO 実行可能な文;

したがって、条件に合わない場合は、1回も実行されない場合があります。


6.IF条件文

IF条件文は、条件によって実行の順序を変更します。

IF 
論理値を返す式 または、論理変数 THEN 実行可能な文 ELSE 実行可能な文;

論理値を返す式 または、論理変数 を判断し、 TRUE の場合は、 THEN 以下の実行文を実行し、 FALSE の場合は、 ELSE 以下の実行文を実行します。


7.CASE分岐文

CASE分岐文は、整数値を返す式 または、整数型変数 の整数値に応じて区分けされた部分に分岐して、 その部分の実行文を実行します。

CASE 整数値を返す式 または、整数型変数 OF
 CASEラベル整数値:実行可能な文;
 CASEラベル整数値:実行可能な文;
 CASEラベル整数値:実行可能な文;
 /
 CASEラベル整数値:実行可能な文;
 OTHERWISE 実行可能な文;
END;

整数値を返す式 または、整数型変数
を評価し、その結果とCASEラベル整数値が一致する実行可能な文を実行します。
CASEラベル整数値に一致しない時は、 OTHERWISE の後の実行分を実行します。 OTHERWISE が無い場合は何も実行しないで、 END の次の実行文を実行します。


8.GOTO制御文

GOTO制御文は、実行の流れを直接的に変更することができる制御文です。

GOTO ラベル値;

ラベル値は、あらかじめ LABEL 宣言文で宣言されている必要があります。


9.代入文

代入文は、変数に値を代入します。または、変数に式の演算結果を代入します。

<変数名> := <代入する値>;
<変数名> := <算術計算式>;
<変数名> := <論理計算式>;


左辺に置かれた変数名の変数に、右辺の値を代入する。
左辺に置かれた変数名の変数に、右辺の算術計算の計算結果を代入する。
左辺に置かれた変数名の変数に、右辺の論理計算の計算結果を代入する。

使用できる 演 算 子
算術演算 + - * / ** ^ DIV  MOD
比較演算 <= < > >= = <>
論理演算 AND & OR | NOT



【メニュー】と【ツール】を作成致します。ご連絡ください。

弊社は、エーアンドエー社VSoPメンバーに登録されています。


スクリプトについては、次のものを参照してください。

☆Ver12.5 ☆Ver12.0 「操作の手引き」 の 19-1「第19章:スクリプトを使用する」 を参照してください。

☆Ver11.5 ☆Ver11.0 「User's Guide 操作の手引き」 の 19-1「第19章:スクリプトを使用する」 を参照してください。

VectorScriptについて、次のものは【ヘルプ】メニューから参照することが出来ます。

☆Ver12.0、Ver12.5 VectorScript
については、[ヘルプ]-[vectorworksヘルプ(H)] から [VectorScript Guide]
☆Ver12.0、Ver12.5 関数と手続きに関しては、 上記の「VectorScript の概要」 から "VWHelp/VectorScript Reference/VSFunctionReference.himtにあります" を参照

 Ver12 から構成が変わり、[VSBiginnersGuide.pdf] は、上記 [VectorScript Guide] になりました。

☆Ver11.5 [ヘルプ]-[コンテンツ]-[VectorScript Guide](英語版)
☆Ver11.5 [ヘルプ]-[コンテンツ]-[VectorScript Reference] から、"VWHelp/VectorScript Reference/VWFunctionReference.html" を参照(日本語版)

Ver11.0 VectorScript Guide (英語版)
 次のものはインストールされます(HDにコピーされます)が、【ヘルプ】メニューから参照することは出来ません。
[Program Files]-[VectorWorks11J100]-[VWHelp]-[VectorScript Reference]-"VSFunctionReference.html" (英語版)

☆Ver10.1 VectorScript Language Manual [Appendix Manual]-[VectorScript]-"Vector Script language.pdf" (VW10(第4版))
☆Ver10.1 VectorScript Reference Manual [Appendix Manual]-[VectorScript]-[VectorScript Reference]-"VSFunctionReference.html"

<注>上記はバージョンアップ版によります。製品版では異なっているかもしれません。


VectorScriptについて、次のものは、通常のインストールではHDにコピーされません(【ヘルプ】メニューから参照することが出来ません)ので、VWのCD-ROM内の各フォルダーの.pdf、または、.html を参照してください。

 Ver12 から構成が変わり、 .pdf ファイルは付属していません。

☆Ver11.5
 バージョンアップフォルダー[vw115stdW]-[付属マニュアル]-[VectorScript]-[VSBiginnersGuide.pdf] (VW11.5(第6版)

☆Ver11.0 [Appendix Manual]-[VectorScript]-[VSBiginnersGuide.pdf]  (VW11(第5版)

☆Ver10.5 [Appendix Manual]-[VectorScript]-[Vector Script language.pdf] (VW10(第4版))
☆Ver10.5 [Appendix Manual]-[VectorScript]-[VectorScript Reference]-[VSFunctionReference.html]

☆Ver10.1 [Appendix Manual]-[VectorScript]-[Vector Script language.pdf] (VW10(第4版))
☆Ver10.1 [Appendix Manual]-[VectorScript]-[VectorScript Reference]-[VSFunctionReference.html]

☆Ver9.5 [Appendix Manual]-[VectorScript]-[VectorScript PDF Manual]-[VS ランゲージガイド.pdf] (VW9(第3版))
☆Ver9.5 [Appendix Manual]-[VectorScript]-[VectorScript PDF Manual]-[VS リファレンスマニュアル.pdf]
☆Ver9.5 [Appendix Manual]-[VectorScript]-[VectorScript PDF Manual]-[VS 新機能.pdf]
☆Ver9.5 [Appendix Manual]-[VectorScript]-[VectorScript PDF Manual]-[VS 操作マニュアル.pdf] (VW9(第3版))

☆Ver9.1 [Appendix Manual]-[VectorScript]-[VectorScript HTML Manual]-[VS Language Guide]-[VSランゲージガイド.html]
☆Ver9.1 [Appendix Manual]-[VectorScript]-[VectorScript HTML Manual]-[VS Language Guide]-[VS操作マニュアル.html]

☆Ver8.5 [Appendix Manual]-[VectorScript HTML Manual]-[VS Language Guide]-[VS Language Guide.html]
☆Ver8.5 [Appendix Manual]-[VectorScript HTML Manual]-[VS Operation Manual]-[VS Operation Manual.html]

☆Ver8.0 [Appendix Manual]-[VectorScript HTML Manual]-[VS Language Guide]-[VS Language Guide.html]
☆Ver8.0 [Appendix Manual]-[VectorScript HTML Manual]-[VS Operation Manual]-[VS Operation Manual.html]

<注>上記はバージョンアップ版によります。製品版では異なっているかもしれません。


Copyright (C) 1997-2005 YUUMORI Akihiro All Right Reserved