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オブジェクト

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

ブログ アーカイブ

自己紹介

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

QooQ