面積を表示(4) スクリプトでタグを作成
これまで面積表示機能をデータタグとスペースの2つで紹介しました。今回はスクリプトを使って自由に面積タグを作ってみたいと思います。
複製の説明でスクリプトを紹介しましたが、今回はもう少し手順を踏んで説明します。
<スクリプトのメリット>
- Fundamentals でも作成できる
- m2 / 坪 併記できる
- 自由自在に作成できる
<デメリット>
- 覚えることが大変
- 管理が難しい
スクリプトの準備
プログラミングの紹介などでは、実行環境の構築が最初に描かれるケースがほとんどです。Vectorworksやライノセラス(グラスホッパー)などでは、アプリが実行環境なので、特に必要ありません。
リソースマネージャからスクリプトを作る
リソースマネージャ>スクリプト> 新規スクリプト でスクリプトを作成します。
パレットとスクリプト名を入力>スクリプトエディタ のダイアログが表示されます。スクリプトエディタでスクリプト言語:pythonに変更して以下の内容を入力します。
import vs # Vectorworksでスクリプトをpythonで行います。
vs.CreateText('テキストを入力します')
リソースマネージャからスクリプトをダブルクリックで実行すると、「テキストを入力します」と表示されます。
import vs : 必ず最初に書きます。pythonをVectorworksで使いますと言った意味です。
vs.CreateText('文字の内容'):'' の中身の テキストが作成されます。これらはVectorworksが用意した関数(処理を実行する文言)で、メーカーHP から確認することができます。
選択した図形の中心に面積を記入する方法は以下の通りです。 #以降が各行の解説です。
import vs #Vectorworksでスクリプトをします。
target = vs.FSActLayer() #選択図形をtargetにする
area = round(vs.ObjAreaN(target),1) #targetの面積をareaとします。小数点1桁にします。
cent = vs.HCenter(target) #targetの中心をcent とします。
vs.MoveTo(cent) #centに移動します。
vs.CreateText(str(area) + 'm2') #テキストツールで面積をつくります。
ただし図形を変更しても、タグは追従しないので工夫が必要です。次回以降に説明したいと思います。