ArchiCAD GDL 要素の様々な情報をラベルで表示する方法! 第4回目
第4回目の今日は、
文字部分に透明塗りつぶしを作成
についてです!!!
第4回目:文字部分に透明塗りつぶしを作成
さあ、今日は文字の部分に透明の塗りつぶしを作成する方法をご紹介します。
この目的は、ラベルを選択しやすくするためです!
自分はこれをあまりやっていなかったのですが、やはりラベルを選択しずらくて。。。
ということで、是非皆さんも試して頂けたらと思います。
では行きますよ!
まず、これをやるために、文字の長さを取得する必要があります。
「壁厚さ」「壁高さ」「壁下端」の文字列に変数を割り当てます。
なぜかというと、「+」を使って文字を組み合わせているので、これをひと塊にして、その文字の長さを取得するとやりやすいからです。
壁厚さのテキスト文の前に以下のように、文字列に変数「kabet」を付けます。
テキスト文の中も、その変数に置き換えましょう。
同様に、「壁高さ」「壁下端」にも変数を割り当てましょう。
以下の通りです。
次に、各テキストの文字列の長さを取得します。
複合構造名の文字列からいきます。
そのために、変数「box_w1」を作り、
box_w1
= stw(WALL_COMPS_NAME) / 1000*GLOB_SCALE
を入力します。
「stw(~~)」は、~~の文字列の長さを取得する命令文です。ちょっと難しいですが。。。
他のテキストも同様に入力します。
次に、塗りつぶしを定義します。
「FILL
gs_fill_type」を入力します。
「gs_fill_type」は変数なので、パラメータ画面で追加しましょう。
「タイプ」は以下のように「塗りつぶし」を選びますよ。
「名前」は適当に分かりやすい名前としてください。
「値」は「65」となっていますが、右の三角印をクリックして「背景」を選ぶとそうなります。
以下のようにします。
あと、塗りつぶしのペンの色を指定する必要があります。
パラメータ画面で、「gs_fill_pen」と「gs_back_pen」のペンのパラメータを追加します。
「gs_fill_pen」は白色(ここでは19)、「gs_back_pen」は透過(0)とします。
以下のようにします。
いよいよ、これで最後です!!
次は、塗りつぶす範囲を入力します。
「POLY2_b」という命令文を使います。
これは座標値で塗りつぶす範囲を指定し、塗りつぶしを施す命令文です。
座標値は先程変数で取得した、「文字の高さ(sHeight)」「文字列の長さ(box_w1など)」を使います。
以下のように入力してみましょう。
ここで上書き保存し、平面ビューで作成中のラベルを選択してみましょう。
すると、一番上のテキストが透明に塗りつぶされているのが分かりますね!?
ラベルを選択する時に、この塗りつぶし部分をマウスクリックすると選択できるようになりました!!
同じように、他のテキストの部分も2Dスクリプトに入力します。
ただ、この時に、座標位置をYのマイナス方向に文字の高さ分、移動させていますので要注意!!!
上書き保存し、平面ビューでラベルを選択してみましょう。
テキスト部分が全て塗りつぶされているのが分かりますね!?
以上で完成です!!
今回は少し難しいかったかもしれませんが、一度理解すれば全てに応用できますので、習得してください!
これで今回の4回連載は終了です。
次回の明日は、「ラベルでこんなこと!?」を紹介したいと思います!
お楽しみに!!
FH
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇
0 件のコメント:
コメントを投稿