ArchiCADで仮設計画〜仮囲いオブジェクト③〜

2024年11月6日水曜日

atn cylind GDL if 仮囲い

t f B! P L
前回に引き続き、仮囲いオブジェクトの機能追加を行います。今回は、ジョイント金具の数量算出機能と単管控えの3D形状の実装に取り組みます。単管控えは、下の画像のようなイメージで、根入れの深さとねがらみの長さを自由に調整できるようにします。

仮囲いオブジェクト
控えの実装

パネル枚数&金具数集計

数量集計機能は、以下のパラメータリストとマスタースクリプトを追加することで実装しました。スクリプトの構成は次の通りです。

  • 15行目~:パネル枚数の計算
  • 18行目~:調整パネル枚数の計算
  • 28行目~:金具の数量の計算

これらは単純な計算で構成されていますが、必要に応じてif文で条件を調整しています。3D表示に合わせた数量が算出されるようになっていますので、ご確認ください。


新規追加パラメータ

マスタースクリプト
eps = 0.0000001

height = panel_h
panel_W = 0.5
panel_t = 0.003

if (scope%panel_W) <= 0.05 then
	parameters scope = panel_W*panel_num
endif

if (scope%panel_W) >= 0.48 then
	parameters scope = panel_W*(panel_num+1)
endif

panel_num = int(scope/panel_W)
parameters panel_num = panel_num

if (scope%panel_W) > 0.05 & (scope%panel_W) <= 0.48 then
	adjust_panel_num = 1
else
	adjust_panel_num = 0
endif
parameters adjust_panel_num = adjust_panel_num

tate_num = int(scope/1.8) + 1
parameters tate_num = tate_num

if int(height)=3 then
	k = 6
	m = 3
else
	k = 4
	m = 2
endif

j_num = panel_num*k
parameters j_num = j_num

l_num = adjust_panel_num*m
parameters l_num = l_num

控えの実装

控えは根入れ深さと根がらみ長さをホットスポットで自由にコントロールできるようにしてみました。挙動は添付の動画をご覧ください。


今回は、アークタンジェント(arctangent)とコサイン(cosine)を用いて斜め単管の長さと回転角度を計算している部分が要点です(35行目~)。具体的には、仮囲いの高さの5分の3の位置を直角三角形の対辺、根がらみの長さを隣辺、そして斜め単管の長さを斜辺として設定しています。

この構成で、atan関数を使用して斜め単管の回転角度を計算し、cos関数で斜辺の長さを求めることで、斜めの角度と位置が正確に調整されるようにしています。

archicad gdl
参考


控え用パラメータ

3Dスクリプト

"控え":
	tankan_l = height + neire
	move = (scope%1.8)/2
	tate_pos = -130.3/1000

	hotspot move, tate_pos, 0	, unid, neire, 1+128 	:unid=unid+1
	hotspot move, tate_pos, -neire  , unid, neire, 2	:unid=unid+1
	hotspot move, tate_pos, 1	, unid, neire, 3	:unid=unid+1

	add move, tate_pos, -neire
	for i = 1 to tate_num
		addx 1.8*(i-1)
		gosub "単管"
		del 1
	next i

	tankan_l = 0.5 + neire
	addy -negarami_len
	for i = 1 to tate_num
		addx 1.8*(i-1)
		gosub "単管"
		del 1
	next i
	
	del 2

	tankan_l = 0.15 + negarami_len
	for i = 1 to tate_num
		add move + 1.8*(i-1) + 0.07, -0.08, 0.2
		rotx 90
		gosub "単管"
		del 2
	next i

	tankan_l = negarami_len/cos(atn((3*height/5)/negarami_len)) + 0.2
	for i = 1 to tate_num
		add move + 1.8*(i-1) + 0.07, tate_pos-negarami_len- 0.1, 0.25
		rotx atn((3*height/5)/negarami_len) - 91	
		gosub "単管"
		del 2
	next i

	tankan_l = scope
	add 0, tate_pos - negarami_len - 0.07, 0.15
	roty 90
	gosub "単管"
	del 2

	hotspot move+0.07, 0, 			      0.2, unid, negarami_len, 1+128  :unid=unid+1
	hotspot move+0.07, tate_pos-negarami_len-0.1,  0.2, unid, negarami_len, 2     :unid=unid+1
	hotspot move+0.07, 1, 			      0.2, unid, negarami_len, 3     :unid=unid+1
return 


今回は以上にしたいと思います。少しずつ形になってきましたが、次はくぐり戸を実装してみたいと思います。


仮囲い関連の記事はこちら


なお、基本的なGDLの学習はこちらの教材がおすすめです!
GDLリファレンスがgraphisoftが用意していますが、初見では理解しづらいので、
簡単にまとめられたやさしく学ぶArchiCAD GDLプログラミングという本で基礎をしっかり学びましょう!

【お知らせ】
Xのアカウントを作成しましたので、ぜひフォロー頂けると嬉しいです。
アカウントはこちらから⇨https://x.com/BIM_arekore

世界の建設業従事者、BIM推進者と繋がりたいです。

検索

GDLオブジェクト

UI (4) ユニーク (1) ラベル (2) 仮囲い (6) 多角形 (3) 小ネタ (4) (7) 椅子 (4) 法規 (1) 無償DL (4) 足場 (15) 足場計画 (4)

ブログ アーカイブ

自己紹介

自分の写真
GDL作成などBIM活用のお仕事の相談お待ちしております。 #中堅ゼネコン出身 #施工管理職 #生産設計部 #BIM開発部門
ArchiCADのGDLをコスパよく作成します ArchiCADユーザーでGDL作成を外部委託されている方へ

QooQ