黄金文字オブジェクト(2)
最も美しいとされる比、1:1.6180339887...の文字を描画するプログラムです。
第2章 解説
このプログラムは2点型オブジェクトによる任意の長さを使って、黄金文字を作るオブジェクトです。

パラメータのそれぞれの意味は以下のようになっています。
タイプで横長とした場合、長さを1.618...の側とします、文字の高さを自動計算します。
タイプで縦長とした場合、長さを1の側とします。文字列の幅を自動計算します。
方向は四角形を、描いた線の右側に描くか左側に描くかを選びます。
角度は1点目のクリック位置と2点目のクリック位置の角度です。

長さはプログラム内では PLineLength を使います。
タイプはプログラム内では PDirection を使います。
方向はプログラム内では Pside を使います。
文字列はプログラム内では Ptext を使います。

GetCustomObjectInfoで自身のハンドルをとります。
SetObjectVariableBooleanでオブジェクトの800を真に設定することで、フォントメニューの設定を利用することができます。
{
名称 黄金文字(goldenratiotext.vso)
2009年 6月 8日-1.0
著作・製作 Vectorworks Japan 研究開発室
}
PROCEDURE GoldenRatioText;
VAR
objectName : STRING;
objectHand, recordHand, wallHand : HANDLE;
BoxWidth : REAL;
textH, polyGroupHandle : HANDLE;
dummyL : LONGINT;
boo : BOOLEAN;
p1X, p1Y, p2X, p2Y : REAL;
BEGIN
boo := GetCustomObjectInfo( objectName, objectHand, recordHand, wallHand );
SetObjectVariableBoolean( objectHand, 800, TRUE );