<ARCHICAD23 >
ARCHICADのゾーンスタンプの1つ「基本ゾーンスタンプ」のテキスト位置をゾーンの設定のスタプテキストスタイルの設定と連動させる方法をお伝えします。「基本ゾーンスタンプ」はテキスト位置が左揃えで固定されているので、スクリプトを修正する必要があります。
今回は、左揃え、中央揃え、右揃えに合わせてテキスト配置位置が変わるように修正する方法を記します。
手順
まず、「基本ゾーンスタンプ」オブジェクトを開きます。
2Dスクリプトを開くと下図のスクリプトが表示されます。19行目に「_text_anchor = 1」という値がありますが、こちらがゾーンスタンプのテキストの配置位置を指定している変数になります。
36行目に、Textblockの記述があり、こちらのテキスト配置位置に、_text_anchorが使用されています。
このテキスト配置位置を、ゾーンスタンプテキストスタイルの左揃え、中央揃え、右揃えに合わせて動作するようにします。
ゾーンスタンプの設定のテキストの配置は、スクリプトでは、「AC_TextAlignment_1」で参照されます。こちらは、それぞれ下記の値となります。
- 左揃え: 1
- 中央揃え: 2
- 右揃え: 3
- 両端揃え: 4
これから、1から3の値についてテキストの配置位置が変わるように設定してみます。
AC_TextAlignment_1の結果によって、変数を変更する場合は、IFを使用して、_text_anchorの値を変更します。
19行目の「_text_anchor = 1」の下に、下記のように記述します。
!!! _text_anchor = 1
!!! この下より追加
if AC_TextAlignment_1 = 1 then _text_anchor = 1 endif if AC_TextAlignment_1 = 2 then _text_anchor = 2 endif if AC_TextAlignment_1 = 3 then _text_anchor = 3 endif
これで、テキストの配置に合わせて、文字列の揃えが変わるようになります。
この状態で、上書き保存して中央揃えに変更してみると、文字列の揃えが変わりますが、テキストの配置位置もかわるため、結果としてテキストがずれてしまいます。
塗りつぶしもテキストの配置に合わせて動くよう変更します。スクリプトの「mul2 GLOB_SCALE/1000, 1」の行以下に下記を追加します。
!!! mul2 GLOB_SCALE/1000, 1 !!! この下より追加
_textPOSX = 0 _textPOSY = 0 if _text_anchor = 1 then _textPOSX = 0 _textPOSY = 0 endif if _text_anchor = 2 then _textPOSX = -maxWidth/2 _textPOSY = 0 endif if _text_anchor = 3 then _textPOSX = -maxWidth _textPOSY = 0 endif add2 _textPOSX, _textPOSY
そして、Add2で移動させているので、最後の del 1 を del 2に変更します。
!endif !!! 最後の行 del 1 を del 2に変更 del 2
修正が完了したら、保存します。
最後に、[オプション]>[属性設定]>[ゾーンカテゴリ]で使用するゾーンスタンプを保存したゾーンスタンプに変更します。
変更したゾーンを配置し、左揃え、中央揃え、右揃えとすると、テキストの位置が変更されます。
コメント
0件のコメント
記事コメントは受け付けていません。