ページ

2013年5月31日金曜日

ArchiCAD GDLラベルでこんなこと!?「梁ラベル、勾配のレベル表示!」


今日は、ラベルGDLでこんなこと!?の紹介をします。




「梁ラベル、勾配のレベル表示!」を作成してみます!!







梁を勾配にして描いた時の、「上部の上端レベル」と「下部の上端レベル」を表示してみましょう!
デフォルトの梁ラベルは、傾斜角度で勾配で描いても、「基準レベル」のレベルしか表示されません。。。



勾配で梁を描いても、



ラベルで表示されるレベルは、設定画面の「基準レベル」の数値となる。。。
(すみません、分かりずらいですが、この例の断面では、1階で配置しており1階の階高が3000となっています。)


目指すレベル表示は「30004818」ですね。

しかし、一発でもう片方のレベルを知ることはできません。。。

そこで、梁の設定画面に、「傾斜角度」がありますので、これを利用してラベルの中で計算させて表示することにします。
GDLリファレンスガイド」(ArchiCAD16用)では、P246~「その他」の「グローバル変数」に主要な変数はあるのですが、肝心の梁の「傾斜角度」変数がみあたりません。。。

そこで!!

ArchiCADの各要素などのパラメータ変数を知りたいときは、以下のいいURLページがありますよ!!
です!!
こで以下の個所にいくと、梁の勾配設定の変数値が分かります!
梁の「傾斜角度」の変数は、「ac_beam_inclination」であることが分かりました!!

あっ、 三角関数で計算することになりますので、「梁の長さ」も知る必要がありますね。

この「梁の長さ」は幸いにも「GDLリファレンスガイド」にありますよ!
GDLリファレンスガイド」(ArchiCAD16用)では、P259にありますね。

基準線の右側か左側、の長さしかありませんので、芯で拾うとすると平均値とする必要はあります。

これらを利用して、ラベルのスクリプト内で計算させれば、以下のように梁のレベル範囲が表示できます!!
今週の記事や5回連載した免震ゴム作成の記事を習得すれば、皆さんも必ずできます!

これで今週のGDLラベル特集は終わりにしたいと思います!
先日エクスナレッジさんから発売された、『やさしく学ぶArchiCAD GDLプログラミング (著 平沢岳人)』の本も参考にすると、より分かりやすいですよ!



アマゾンでは、ここです↓


著者の平沢先生は、千葉大学の先生です。

千葉大学 平沢研究室 HPは↓

またそのうち、GDLを使った事例を紹介したいと思いますので、お楽しみに!!

FH

◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇


2013年5月30日木曜日

ArchiCAD GDL 要素の様々な情報をラベルで表示する方法! 第4回目



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

◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇









2013年5月29日水曜日

ArchiCAD GDL 要素の様々な情報をラベルで表示する方法! 第3回目

ArchiCAD GDL 要素の様々な情報をラベルで表示する方法! 第3回目



第3回目の今日は、

文字の調整方法

についてです。!!



第3回目:文字の調整方法



スクリプトに、以下のように、文字の設定を定義するものを一番最初の所に入力してみましょう。




define style "aaa" "MS ゴシック",fts,1,0」・・・"aaa"という名前の文字スタイル定義
                    "MS ゴシック"・・・文字のフォント

                    fts・・・文字の大きさ(パラメータ画面にこの変数が必要!)

                    1・・・文字の位置

                    0・・・太字、斜字などの設定


set style "aaa"」・・・"aaa"という名前の文字スタイルを適用



以下のように、パラメータ画面に文字の大きさの変数「fts」を追加します!






上書き保存し、平面ビューで確認します。




文字が小さくなってますね!!



次は、文字の間隔も調整してみましょう!

ちょっと面倒ですが、よく見てやってみましょうね!



まず、「tem = request ("Height_of_style","aaa",zz)」を「set style」の後に追加しましょう。

tem」は適当な変数です。他のものでも構いません。

request」以下は、”aaa”という文字スタイル名の文字の高さ(”Height_of_style”)を「zz」という変数に入れる、という意味です。

ちょっと難しいかも知れませんが。。。

AC16GDLリファレンスガイドのP280に説明が載っています。)

その後に、「sHeight = zz/1000*GLOB_SCALE」と入力します。

sHeight」は適当な変数です。

zz」は先程の、文字スタイル”aaa”の文字高さですね。

/1000*GLOB_SCALE」は平面ビューの尺度に応じて、文字高さ間隔を合わせるようにするために入れています。これが無いと、文字の高さ間隔が尺度を変えると広くなったり小さくなったりしてしまいます。!

これで「sHeight」が尺度に対応した文字高さ間隔となりました。




続いて文字の位置座標を調整します。

text2 xx,yy,~~」の「xx」、「yy」は文字位置のXY座標ですので、Y座標をこの文字高さで調整します。

「壁厚さ」「壁高さ」「壁下端」のY座標を「-1」「-2」「-3」から変えてみます。















上書き保存し、平面ビューで確認しましょう。





良さそうですね!

ちなみに尺度を変えてみると、






尺度が変わっても、文字間隔がしっかりしています。



今日はここまでとします!

次回の明日は、文字の部分に透明の塗りつぶしを配置する方法を紹介致します!

この塗りつぶしがあると、ラベルをマウス選択するときに、選択しやすくなりますよ!



ではまた次回!!

FH

◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇





2013年5月28日火曜日

ArchiCAD GDL 要素の様々な情報をラベルで表示する方法! 第2回目

ArchiCAD GDL 要素の様々な情報をラベルで表示する方法! 第2回目



第2回目の今日は、
「壁厚さ」「壁高さ」「壁下端」の表示
についてです。!!

第2回目:「壁厚さ」「壁高さ」「壁下端」の表示

 


「壁厚さ」「壁高さ」「壁下端」の変数について、「GDLリファレンスガイド」を見てみましょう!!

GDLリファレンスガイド」は、ArchiCAD16のヘルプにありますよ!!)

「壁厚さ」「壁高さ」については、P254(ArchiCAD16用)にありますね!







「壁下端」については、「GDLリファレンスガイド」のP249に「要素の基準高さ」とありますが、これがそのことになります。







では、試しにスクリプトに入力し、表示を確かめてみましょう!!


上書き保存し、平面ビューのラベルを見てみましょう。
壁の設定画面を確認してみると、確かに合っているのが分かると思います。






しかし、「ミリ」単位が「メートル」単位で表示されていますね!

ですので、スクリプトを1000倍してみます。






上書き保存して、再度平面ビューのラベルを見てみます。
今度はきちんと表示されていますね!!

次に、この数字の前に、昨日の第1回目で紹介したように、文字を追加してみます。


普通は、「text2 0, -1, WALL_THICKNESS*1000」でしたら、

「WALL_THICKNESS*1000」「"壁厚さ"+WALL_THICKNESS*1000」

のように「"(文字)"」「+」を付けていくだけで良いのですが、「文字同士」「数値同士」でないとこれが成立しないのです!!!


ですので、数値を文字列に変換する関数を使って、この問題をクリアしていきます。

「str(文字列,aa,bb)」------aa:最低確保する文字数枠数、bb:小数点以下bbまで表示

を使います。

ま、あまり深く考えずに、以下のように入力してみましょう!





上書き保存し、平面ビューのラベルを見てみます。





はいっ!きちんと出来ていますね!?

同じように「壁高さ」「壁下端」も入力してみましょう!!





上書き保存し、平面ビューのラベルを見ます。
はいはい、来てます!出来てますよ!!

今日はここまで!!

第3回目の明日は、この文字の大きさなどの調整の仕方をやりますよ!

ではまた次回!!

FH
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇

2013年5月27日月曜日

ArchiCAD GDL 要素の様々な情報をラベルで表示する方法! 第1回目

ArchiCAD GDL 要素の様々な情報をラベルで表示する方法! 第1回目




さて、今週は、ラベルのカスタマイズについてやっていこうと思います
、実はGDLで出来ているのですよ!
ってことは、自分の欲しい要素の様々な情報をラベルに表示できる、ってことです!
まずはこのようなラベルを作ってみましょうか。






このラベルはどこからの情報を表示しているのか確認してみましょう。



壁の設定画面を開いて、「複合構造の名前」「壁の厚さ」「壁の高さ」「壁下のレベル」の情報を表示するようにしています





   第1回目:ラベルの新規作成~複合構造の名前の表示
   第2回目:「壁厚さ」「壁高さ」「壁下端」の表示
   第3回目:文字の調整方法

   第4回目:文字部分に透明塗りつぶしを作成
の4回続けての連載と致します!!

早速作成に入りたいと思います!!

第1回目:ラベルの新規作成複合構造の名前の表示

「ファイル」-「ライブラリとオブジェクト」-「新規オブジェクト」します。






するとこのような画面が出ますので、「サブタイプを選択」をクリックします。

「サブタイプ階層」という画面で、「Drawing Symbol」-「Label」を選び、「選択」をクリックします。
「ファイル」-「名前を付けて保存」しておきましょう。
適当な名前を付けて、今回は「埋め込みライブラリ」として、「保存」します。
「埋め込みライブラリ」とすると、今のPLNファイル内に作成されますので、PLNファイルも保存しなければオブジェクトの更新状態で保存されませんのでご注意を!!
「選択されたフォルダのファイル」とすると、PLNファイル内ではなく、任意のフォルダを指定してそこに保存されます。

メインウィンドウの「2D」横のボタンをクリックして、スクリプトを書いていきましょう。
そこに以下のように1行入力してみましょう。
「text2 0,0,WALL_COMPS_NAME」

これは、ArchiCAD16のヘルプの中に、「GDLリファレンスガイド」というものがありますが、ここのP254に説明が書いてありますよ!!
「壁の複合構造または断面形状の名前」のことですね!!
(ArchiCAD15とか別バージョンですと、ページ数は違いますが書いてありますよ!!)






「上書き保存」し、平面ビューで適当に「複合構造の壁」を描いてください。
その時に、「壁ラベル」を表示させてくださいね
複合構造でないと、このラベルでは何も表示できませんので、ご注意を!!
するとこのようになりますね?複合構造の名前が表示されます。






1回目の今日はここまでとします!!
ではまた明日!!
FH
◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇