VectorWorksのスクリプトのダイアログでドロップダウンの表示及び、要素を追加する方法
VectorWorksのPythonスクリプトにおいて、ダイアログ内にドロップダウンメニューを表示し、選択肢を追加する方法を解説します。特に、vs.RunLayoutDialogN
のコールバック関数内で選択肢を追加する際のポイントを説明します。
1. ドロップダウンの作成
まず、ダイアログ内にドロップダウンメニューを作成します。以下のコードでは、vs.CreatePullDownMenu
を使用してドロップダウンを作成しています。
vs.CreatePullDownMenu(dialogID, 8, 10)
ここで、dialogID
はダイアログのID、8
はドロップダウンのアイテムID、10
は幅を指定しています。
2. コールバック関数での選択肢追加
ドロップダウンに選択肢を追加する処理は、vs.RunLayoutDialogN
のコールバック関数内で行います。以下のコードでは、item
が12255
のときに選択肢を追加しています。
def CallBack(item, data):
global dialog_values
if item == 12255: # VectorWorksの公式な初期化定数を使用
vs.AddChoice(dialogID, 8, 'A', 0)
vs.AddChoice(dialogID, 8, 'B', 1)
item == 12255
の条件
ポイント1: item
が12255
のときは、ダイアログが初期化されるタイミングです。このタイミングで選択肢を追加することで、コールバックが呼び出されるたびに選択肢が重複して追加されるのを防ぎます。
vs.AddChoice
の使用
ポイント2: vs.AddChoice
を使用して、ドロップダウンに選択肢を追加します。ここでは、'A'
と'B'
の2つの選択肢を追加しています。第4引数には、選択肢のインデックスを指定します。
3. ダイアログの表示
最後に、vs.RunLayoutDialogN
を使用してダイアログを表示します。この関数は、コールバック関数を引数として受け取り、ユーザーの操作に応じてコールバックを呼び出します。
vs.RunLayoutDialogN(dialogID, CallBack, False)
まとめ
vs.RunLayoutDialogN
のコールバック関数内でitem == 12255
の条件を使って選択肢を追加することで、ダイアログの初期化時にのみ選択肢が追加されるように制御できます。これにより、コールバックが呼び出されるたびに選択肢が重複して追加されるのを防ぐことができます。
以上、ドロップダウンの表示と選択肢の追加方法についての解説でした。
Discussion