ArchiCAD 次世代足場GDLの作成~おさらい~

2024年9月9日月曜日

GDL 足場

t f B! P L

 足場GDLのスクリプト(参考)

足場GDLの作成はまだ途中ですが、一旦ここで今までのスクリプトをまとめて記載しておきます。
パラメータリスト
パラメータリスト

!mmに統一
t = 1000

!----------------------------------
!支柱設定
!----------------------------------

pillar_R = 48.6/(2*t)	!支柱半径
pillar_H = ZZYZX	!支柱高さ

!----------------------------------
!支柱ピン
!----------------------------------
pin_R = 41.9/(2*t)		!支柱ピン半径
pin_L = 200/t			!支柱ピン長さ
pin_hole = 13/(2*t)		!支柱ピン連結穴

!----------------------------------
!支柱フランジ
!----------------------------------
flange_R = 106/(2*t)	!支柱フランジ半径
flange_thin = 6/t	!支柱フランジ厚み


!----------------------------------
!布材設定
!----------------------------------
ledger_R = 43/(2*t)        !布材半径
ledger_D = 78/t	    !支柱芯からの距離

!----------------------------------
!アンチ
!----------------------------------
anti_W490 = 490/t		!アンチ幅490
anti_W240 = 240/t		!アンチ幅240
anti_D = 70/t			!支柱芯からの距離
anti_H = 50/t			!アンチ板厚み


!----------------------------------
!ブレース
!----------------------------------
brace_D = 100/t		        !支柱芯からの距離
braceX = A - brace_D*2	                !斜材のX距離
braceZ = 0.95			        !斜材のZ距離
brace_L = sqr(braceX**2 + braceZ**2)	!斜材の長さ
brace_R = 22/(2*t)		        !斜材の半径
マスタースクリプト
values "ZZYZX", 1.9	!支柱サイズ

values "A", 1.829, 1.524, 1.219, 0.914, 0.610	!桁行方向サイズ
values "B", 1.219, 0.914, 0.610		!梁間方向サイズ
パラメータスクリプト


unid = 3000

material pillar_mat
gosub "支柱"
add 0, B, 0
gosub "支柱"
del 1

material ledger_mat
add 0, 0, 1.865
rotz 90
gosub "梁間方向布材"
del 2

material anti_mat
gosub "アンチ"

material brace_mat
addz -0.035
gosub "ブレース"
addy B
gosub "ブレース"
del 2

end

!----------------------------------
!支柱
!----------------------------------
"支柱":
	!支柱
	hotspot 0, 0, 0
	cylind pillar_H, pillar_R
	addz pillar_H
	hotspot 0, 0, 0
	del 1

	!ピン
	addz pillar_H - pin_L/2
	gosub "支柱ピン"
	del 1

	!フランジ
	addz -0.035
	for j = 1 to 4
		addz j*0.475
		gosub "支柱フランジ"
		del 1
	next j
	del 1
return

"支柱ピン":
	addz pin_L - 0.03
	rotx 90
	!ピンの連結穴
	cutpolya 2, 1, 0,				
			0, 0, 915,
			pin_hole, 360, 4015
	del 2

	cylind pin_L, pin_R
	cutend
return

"支柱フランジ":
	hotspot 0, 0, 0
	for i=1 to 4
		cutplane 0.0636,0.0636
		cutpolya 2, 1, 0,
				 0.0467, 0.0467, 915,	
				 0.026, 360, 4015
				 
		cutpolya 6, 1, 0,
				 0, -0.0085, 15,
				 0, 0.0085, 15,
				 0.0425, 0.0085, 15,	
				 0.044, 0.006, 15,
				 0.044, -0.006, 15,
				 0.0425, -0.0085, 15	 			 
		rotz 90
	next i
	del 4

	cutpolya 2, 1, 0,
				 0, 0, 915,	
				 pillar_R, 360, 4015

	addz -flange_thin/2
	cylind flange_thin, flange_R
	del 1

	for i=1 to 13
		cutend
	next i
return

!----------------------------------
!布材
!----------------------------------
"梁間方向布材":
	material ledger_mat
	hotspot 0, 0, 0
	revolve 2, 360, 1+2+4+8+16+32,
			ledger_D, ledger_R, 0,
			B - ledger_D, ledger_R, 0

	hotline ledger_D, ledger_R, 0, 
			B - ledger_D, ledger_R, 0, unid	
	unid = unid + 1

	gosub "布材爪"
	add B, 0, 0
	mulx -1
	gosub "布材爪"
	del 2
return

"布材爪":
	rotx 90
	cutpolya 6, 1, 0,
		0, 0.005, 15,
		0.055, 0.005, 15,
		0.06, 0.001, 1015,
		0.06, -0.001, 15,
		0.055, -0.005, 1015,
		0, -0.005, 15
	del 1
	
	revolve 6, 360, 1+2+4+8+16+32,
			0.025, 0.018, 0, 
			0.027, 0.020, 0,
			0.042, 0.020, 0,
			0.071, 0.020, 0,
			0.076, 0.018, 0,
			ledger_D, 0.018, 0
	cutend

	gosub "楔"
return

"楔":
	!楔
	ruledsegmented 4, 1+2+4+16,
		0.03, -0.002, 0.03, 0,
		0.04, -0.002, 0.03, 0,
		0.035, -0.002, -0.03, 1000,
		0.03, -0.002, -0.03, 0,
		0.03, 0.002, 0.03,
		0.04, 0.002, 0.03,
		0.035, 0.002, -0.03,
		0.03, 0.002, -0.03
return

!----------------------------------
!アンチ
!----------------------------------
"アンチ":
	add 0, 0, 1.865

	if B > 1.2 then
		addy 0.362
		gosub "490アンチ"
		del 1

		addy 0.857
		gosub "490アンチ"
		del 1
	endif

	if B < 1.2 & B > 0.9 then
		addy 0.580
		gosub "490アンチ"
		del 1

		addy 0.210
		gosub "240アンチ"
		del 1
	endif

	if B < 0.9 then
		addy 0.305
		gosub "490アンチ"
		del 1
	endif

	hotspot A, 0, 0 
	hotspot A, B, 0 
	hotline A, 0, 0, A, B, 0, unid	:unid=unid+1
	del 1
return

"490アンチ":
	addz -anti_H/3

	prism 4, anti_H,
		anti_D, anti_W490/2,
		anti_D, -anti_W490/2,
		A - anti_D, -anti_W490/2,
		A - anti_D, anti_W490/2
	del 1

	gosub "アンチ爪490"
	add A, -0.008, 0
	mulx -1
	gosub "アンチ爪490"
	del 2
return

"240アンチ":
	addz -anti_H/3

	prism 4, anti_H,
		anti_D, anti_W240/2,
		anti_D, -anti_W240/2,
		A - anti_D, -anti_W240/2,
		A - anti_D, anti_W240/2
	del 1

	gosub "アンチ爪240"
	add A, -0.008, 0
	mulx -1
	gosub "アンチ爪240"
	del 2
return

"アンチ爪":
	prism_ 9, 0.008,		
		anti_D, anti_H*2/3, 15,
		anti_D, -0.012, 15,
		ledger_R + 0.002, -0.012, 15,
		ledger_R + 0.002, 0, 15,
		0,0,915,
		ledger_R + 0.002, 180, 4015,
		-ledger_R - 0.002, -0.012, 15,
		-0.035, -0.012, 1015,
		-0.035, anti_H*2/3, 15
	
return

"アンチ爪490":
	addy -anti_W490/2+0.016
	rotx 90
	gosub "アンチ爪"
	del 2

	addy anti_W490/2
	rotx 90
	gosub "アンチ爪"
	del 2
return

"アンチ爪240":
	addy -anti_W240/2+0.016
	rotx 90
	gosub "アンチ爪"
	del 2

	addy anti_W240/2
	rotx 90
	gosub "アンチ爪"
	del 2
return

!----------------------------------
!ブレース
!----------------------------------

"ブレース":
	addy brace_R
	gosub "ブレース斜材"
	del 1
	gosub "ブレース上爪"
	gosub "ブレース下爪"

	addx A
	mulx -1
	gosub "ブレース上爪"
	gosub "ブレース下爪"
	addy -brace_R
	gosub "ブレース斜材"
	del 3

	gosub "ブレース手摺"
return

"ブレース斜材":
	addx brace_D
	roty 90 - atn(braceZ/braceX)

	gosub "斜材カット両側"
	addz brace_L
	mulz -1
	gosub "斜材カット両側"
	del 2

	cylind brace_L, brace_R
	
	for i = 1 to 4
		cutend
	next i

	del 2
return

"斜材カット両側":
	gosub "斜材カット片側"
	rotz 180
	gosub "斜材カット片側"
	del 1
return

"斜材カット片側":
	rotz 90
	rotx 90
	cutpolya 4, 1, 0,
			brace_R, 0, 0,
			brace_R - 0.007, 0, 0,
			brace_R - 0.007, 0.1, 0,
			brace_R, 0.15, 0
	del 2
return

"ブレース上爪":
	addz braceZ
	ruledsegmented 10, 1+2+4+16,
		brace_D-0.065, 0.006, -0.02, 0,
		brace_D-0.06, 0.006, 0, 0,
		brace_D-0.06, 0.006, 0.008, 0,
		brace_D-0.05, 0.006, 0.008, 0,
		brace_D-0.02, 0.006, -0.02, 0,
		brace_D+0.01, 0.006, -0.02, 0,
		brace_D+0.02, 0.006, 0.008, 0,
		brace_D+0.01, 0.006, 0.036, 0,
		pillar_R + 0.002, 0.006, 0.036, 0,
		pillar_R + 0.002, 0.006, -0.02, 0,
		brace_D-0.065,-0.006, -0.02,
		brace_D-0.06, -0.006, 0,
		brace_D-0.06, -0.006, 0.008, 
		brace_D-0.05, -0.006, 0.008, 
		brace_D-0.02, -0.006, -0.02, 
		brace_D+0.01, -0.006, -0.02, 
		brace_D+0.02, -0.006, 0.008,
		brace_D+0.01, -0.006, 0.036, 
		pillar_R + 0.002, -0.006, 0.036, 
		pillar_R + 0.002, -0.006, -0.02

	del 1
return

"ブレース手摺":
	add brace_D - 0.05, 0, braceZ + 0.07
	roty 90
	cylind braceX + 0.1, brace_R
	del 2
return

"ブレース下爪":
	ruledsegmented 5, 1+2+4+16,
		brace_D-0.03, 0.006, -0.015, 0,
		brace_D-0.03, 0.006, 0.015, 0,
		brace_D+0.01, 0.006, 0.015, 0,
		brace_D+0.02, 0.006, 0.0, 0,
		brace_D+0.01, 0.006, -0.015, 0,
		brace_D-0.03, -0.006, -0.015, 
		brace_D-0.03, -0.006, 0.015, 
		brace_D+0.01, -0.006, 0.015, 
		brace_D+0.02, -0.006, 0.0, 
		brace_D+0.01, -0.006, -0.015

	ruledsegmented 8, 1+2+4+16,
		brace_D-0.075, 0.006, -0.02, 0,
		brace_D-0.075, 0.006, -0.015, 0,
		brace_D-0.035, 0.006, -0.015, 0,
		brace_D-0.035, 0.006, 0.015, 0,
		brace_D-0.075, 0.006, 0.015, 0,
		brace_D-0.075, 0.006, 0.02, 0,
		brace_D-0.03, 0.006, 0.02, 0,
		brace_D-0.03, 0.006, -0.02, 0,	
		brace_D-0.075, -0.006, -0.02, 
		brace_D-0.075, -0.006, -0.015, 
		brace_D-0.035, -0.006, -0.015, 
		brace_D-0.035, -0.006, 0.015, 
		brace_D-0.075, -0.006, 0.015, 
		brace_D-0.075, -0.006, 0.02, 
		brace_D-0.03, -0.006, 0.02,
		brace_D-0.03, -0.006, -0.02

	gosub "楔"
return

3Dスクリプト


3D画像

だいぶ長くなってしまいましたが、それらしい足場の形になってきました。

質問やご意見等ありましたら問い合わせフォームをご利用ください。


足場関連の記事はこちらから


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

また、ココナラでのサポートサービスも始めましたので、
ご活用いただければと思います。
1日GDL作成やArchiCAD関連の相談のります 自分でGDLを作成している方へ


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

世界の建設業従事者、BIM推進者と繋がりたいです。よろしくお願いします。

検索

最新記事

多角形GDLに機能を追加してみる②

GDLオブジェクト

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

ブログ アーカイブ

自己紹介

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

QooQ