今年もよろしくお願いします。
かなりニッチなブログですが、閲覧してくださっている方々の役に立つ情報を発信できるように、日々頑張っていきたいと思います。
GDLのホットスポットが重い時
機能がリッチになり過ぎて、ホットスポットでの編集時に動作が重くなってしまうことがあると思います。これの対処法ですが、結論から言うとGLOB_FEEDBACK_MODEというグローバル変数を使うと便利です。
GLOB_FEEDBACK_MODEは編集の進行中の表示を制御できます。
以下の動画を見て比較していただくととても分かりやすいと思います。
重い場合
軽くした場合
軽くした場合の時は、編集中に円柱ではなく単線が描画されています。
下のスクリプトを見ていただくと分かりますが、
編集中はcylindコマンドではなくlin_コマンドを使っています。
軽くなった理由はそういう訳です。
GLOB_FEEDBACK_MODE
仕組みは簡単で、GLOB_FEEDBACK_MODE=1(編集中の時)と、GLOB_FEEDBACK_MODE=0(そうでない時)で場合分けをして考えてあげれば良いです。
今回は以下のスクリプトのように場合分けをし、動きを軽くしてみました。
パラメータリスト |
3Dスクリプト
unID=3000 hotspot 0 , 0, 0, unID, w, 1+128 :unID=unID+1 hotspot w , 0, 0, unID, w, 2 :unID=unID+1 hotspot -1 , 0, 0, unID, w, 3 :unID=unID+1 hotspot 0, 0 , 0, unID, d, 1+128 :unID=unID+1 hotspot 0, d , 0, unID, d, 2 :unID=unID+1 hotspot 0 , -1, 0, unID, d, 3 :unID=unID+1 if GLOB_FEEDBACK_MODE then for i=1 to int(w/0.5) for j=1 to int(d/0.5) add 0.5*(i-1), 0.5*(j-1), 0 lin_ 0, 0, 0, 0, 0, 1 del 1 next j next i else for i=1 to int(w/0.5) for j=1 to int(d/0.5) add 0.5*(i-1), 0.5*(j-1), 0 cylind 1, 0.1 del 1 next j next i endif
他にも、resolコマンドを使ったり、編集中には描画不要と思うものを除いたり、工夫次第でかなり完全できると思います。
今回はGLOB_FEEDBACK_MODE を使用した方法の紹介でしたが、
mvoで編集モードを作成したり、そもそものポリゴン数を減らしてみたり、
軽くする工夫はいろいろあると思いますので、是非試してみてください。
なお、基本的なGDLの学習はこちらの教材がおすすめです!
GDLリファレンスがgraphisoftが用意していますが、初見では理解しづらいので、
簡単にまとめられたやさしく学ぶArchiCAD GDLプログラミングという本で基礎をしっかり学びましょう!
また、ココナラでのサポートサービスも始めましたので、
ご活用いただければと思います。
1日GDL作成やArchiCAD関連の相談のります 自分でGDLを作成している方へ【お知らせ】
Xのアカウントを作成しましたので、ぜひフォロー頂けると嬉しいです。
アカウントはこちらから⇨https://x.com/BIM_arekore
世界の建設業従事者、BIM推進者と繋がりたいです。よろしくお願いします。
0 件のコメント:
コメントを投稿
何でも気軽にコメントください。