足場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推進者と繋がりたいです。よろしくお願いします。
0 件のコメント:
コメントを投稿
何でも気軽にコメントください。