マリオネット・スクリプト解説講座

第37回「プラグインオブジェクト超入門」

FundamentalsArchitectLandmarkSpotlightDesigner2023

マリオネット解説講座はマリオネット・スクリプト解説講座にリニューアルしました。マリオネットだけでなくVectorScriptやPythonなどVectorworksプログラミング全般について、機能の最新情報やテクニックをお伝えしていきます。

今回はスクリプトでプラグインオブジェクトを作ります。オブジェクトのパラメータの設定と、コード内でのパラメータの呼び出し方法を解説します。

37-1. スクリプトの情報

VS(VectorScript)手習い帖

スクリプトってなに?という方は、まずはここから。簡単なメッセージを表示するところから、図形の作図、ワークシートの活用など、章立てして解説していますので、ひと通りの基礎を学ぶことができます。

スクリプトリファレンス

基本的な使い方、書き方を理解されている方は、関数のリファレンスを参照しながらごりごりにコーディングしてください。少しいやらしいですが、97%くらいの関数の情報はリファレンスに載っています。基本的にはリファレンスに書いてないことはできませんし、書いてあることはできます。

私調べですが、Vectorworksプラグインの開発者はエディターの隣にこのリファレンスを置いてコーディングしています。

Developerサイト

Vecrtorworks開発元が運営する開発者向けのサイトです。リファレンスの残りの3%の情報はここにあります。英語の情報ではありますが、関数のリファレンスだけでなく、ユーザーインターフェース構築やイベント処理などの解説やサンプルスクリプトが豊富に用意されています。

ユーザーフォーラム

みんなが疑問に思っていること、便利なテクニックなど意見交換が活発に行われています。マリオネットだけでなく、スクリプト専用のスレッドも用意されています。ここで質問すると世界中の開発者が助けてくれます。

37-2. プラグインを始める

Vectorworksプログラミングのひとつのゴールはマリオネットオブジェクトのように、自作のオブジェクトをVectorworksに実装することでしょうか。

VectorScriptやPythonでは、欲しい機能を書いたスクリプトを固めて、プラグインという位置付けでVectorworks環境に追加でインストールすることで、機能を使うことができるようになります。

それではプラグインマネージャを開いて、プラグイン開発を始めましょう。

ツール > プラグイン > プラグインマネージャ

プラグインマネージャから新しくプラグインを作成する場合は、カスタムプラグインタブを選択します。

新規…ボタンをクリックすると、新規作成のダイアログが表示されます。この画面でこれから作成するプラグインの種類を選択します。

ここでは、スクリプトプラグインの名前に「自作オブジェクト」と入力し、「1点型オブジェクト」にチェックを入れてOKボタンをボタンをクリックします。

カスタムプラグインの一覧に「自作オブジェクト」が追加されました。

続けて、このプラグインにスクリプトを書きこみます。スクリプトの編集…ボタンをクリックしてスクリプトエディタを開きます。

エディター画面で次のスクリプトを入力してください。シンプルな四角形を作図するスクリプトです。

Procedure myobject;
begin
    Rect( -50, 50, 50, -50 );
end;
run( myobject );

Pythonで記述する場合は、スクリプト言語をPythonに設定した上で、次のように書きます。

vs.Rect( (-50,50), (50,-50) )

OKボタンでエディターを閉じます。続けてプラグインマネージャもOKボタンで閉じます。

作成したプラグインを実行するために、作業画面に組み込みます。作業画面の編集を開きます。

ツール > 作業画面 > 現在の作業画面を編集

作成したのはオブジェクトですので、ツールタブを選択して、左の画面「その他」のカテゴリから自作オブジェクトを見つけます。自作オブジェクトを右の画面の任意の場所にドラッグします。ここでは新しくツールパレットを作成して配置しています。

追加できたらOKボタンで編集を確定します。作業画面に新しく自作オブジェクトがツールとして表示されます。

自作オブジェクトツール選択後、図面上をクリックして、挿入点と回転角度を指定します。

四角形が作図されます。オブジェクト情報パレットには、オブジェクトの種類として「自作オブジェクト」が表示されます。

37-3.  パラメータの実装

37-3-1. パラメータの定義

プラグインオブジェクトはすべてパラメトリックなオブジェクトです。プラグインマネージャの定義の編集から、自由にパラメータを設定することができます。

プラグインマネージャから、先ほど作成した自作オブジェクトを選択して、定義の編集画面を開きます。

パラメータタブを選択すると、オブジェクトに定義されているパラメータの一覧が表示されます。現時点では空っぽです。

パラメータを追加してみます。新規…ボタンをクリックします。

パラメータの編集画面が開きます。次のとおり入力してください。

    • パラメータの名前:内部的に使用するパラメータの名前です。半角英数字がベターです。
    • フィールド名:オブジェクト情報パレットに表示されるパラメータの名前です。ユーザーが何の値なのかが分かりやすいように名前をつけます。
    • 型:整数値や座標値、文字列、ポップアップなど入力フィールドのタイプを選択します。Numberは実数値です。
    • 初期値:パラメータのデフォルトの値を入力します。

OKボタンで確定すると、一覧にscaleのパラメータが新たに追加されます。

オブジェクトを配置すると、オブジェクト情報パレットに追加したパラメータ倍率(%)が表示されるようになります。

37-3-2. パラメータの呼び出し

再度、プラグインマネージャから自作オブジェクトのスクリプトの編集画面を開いて、スクリプトからパラメータを呼び出して作図に反映するようにコードを修正していきます。

スクリプトの中でパラメータの値を利用するには、パラメータの名前の頭にPをつけて呼び出します。

scale := Pscale;

Pythonの場合は、vs.Pをつけます。

sacle = vs.Pscale

これでscaleの値を使用できますので、作図に反映させます。ここではscaleの値をHScale2D関数に渡して図形のスケールを変更します。

VectorScript:

Procedure myobject;
begin
    Rect( -50, 50, 50, -50 );
    HScale2D( LNewObj, 0,0, Pscale/100,Pscale/100, False );
end;
run( myobject );

Python:

vs.Rect( (-50,50), (50,-50) )
vs.HScale2D( vs.LNewObj(), 0,0, vs.Pscale/100,vs.Pscale/100, False )

入力できたら編集を確定します。

オブジェクトを配置して、倍率(%)のパラメータを変更します。パラメータの値に応じて図形のスケールが変更されます。

一つのオブジェクトに対してパラメータはいくつでも追加することができます。パラメータと作図をうまく組み合わせて、ユニークなプラグインオブジェクトを作ってみてください。

この機能を利用できる製品

Fundamentals

Vectorworks Fundamentals

2D/3D汎用作図機能に、プレゼンボード作成機能や図面と連動できる表計算機能など、数多くの基本作図機能に加え、高品質レンダリング&3Dビジュアライズ機能を搭載したVectorworksシリーズの基本製品
詳細情報 購入ページ

Architect

Vectorworks Architect

建築設計や内装、ディスプレイデザインに対応した先進的なBIM・インテリア設計支援機能、拡張機能、さらには豊富な建築向けのデータライブラリを搭載した建築/内装業界向け製品
詳細情報 購入ページ

Landmark

Vectorworks Landmark

地形モデルや多彩な植栽、灌水設備計画等に対応するランドスケープデザイン機能、さらには豊富な造園向けのデータライブラリを搭載した都市計画/造園業界向け製品
詳細情報 購入ページ

Spotlight

Vectorworks Spotlight

ステージプランニングやライティング計画に対応した先進的な舞台照明計画支援機能、さらには各種メーカー製のトラスや照明機材、音響機器等の豊富なデータライブラリを搭載したエンタテインメント業界向け製品
詳細情報 購入ページ

Designer

Vectorworks Design Suite

専門分野別(建築設計/ディスプレイデザイン、ランドスケープデザイン、ステージデザイン&スポットライトプランニング)の設計支援機能、拡張機能、さらには豊富なデータライブラリを搭載した最上位の製品
詳細情報 購入ページ