- !----------------------------------
- !ブレース
- !----------------------------------
- brace_D = 100/t !支柱芯からの距離
- braceX = A - brace_D*2 !斜材のX距離
- braceY = 0.95 !斜材のY距離
- brace_L = sqr(braceX**2 + braceY**2) !斜材の長さ
- brace_R = 22/(2*t) !斜材の半径
マスタースクリプト
- !----------------------------------
- !ブレース
- !----------------------------------
- "ブレース":
- 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(braceY/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 braceY
- 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, braceY + 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スクリプト
三角関数の利用
今回は、上図で示したように斜めの部材を配置する必要があります。この斜材は、桁行方向の寸法(パラメータ "A")によって長さや角度(θ)が変わってきます。そこで、三平方の定理や三角関数を用いてこれらの値を導き出していきます。
まずは図のように braceX
、braceY
という変数を定義し、三角形の底辺と高さに相当する部分を考えます。braceX
は、支柱から斜材までの距離を考慮するため、(A - brace_D * 2)
という値を取ります。braceY
は支柱のフランジ間隔なので、0.95という定数とします。これで三平方の定理を用いれば、斜材の長さを求めることができます。
式)brace_L = sqr(braceX**2 + braceY**2)
sqr
コマンドは平方根を求めるために使用するコマンドなので、これは必須です。ブレースの長さ(brace_L
)は、上記の式で求めることができます。
atn()コマンド
次に、部材を配置する角度(θ)を求める必要があるため、このケースでは
atn
コマンドを使うことにします。atn
コマンドはアークタンジェント(逆正接)関数を表し、タンジェントの値から角度を求めることができます。3Dスクリプトの「ブレース斜材」ラベル内の2行目に記述している以下のスクリプトのように使うことで、角度を求めて3D形状を回転させることが可能です。roty 90 - atn(braceY/braceX)
このほかにも、
sin
コマンドや cos
コマンドなど、三角関数の計算に役立つコマンドが用意されています。リファレンスで検索すると便利です。また、他にも指数関数や論理和など、計算に役立つコマンドを一通り押さえておくと、より便利なGDLを作成できるようになるでしょう。![]() |
ブレースの作成 |
だいぶ形になってきたので、次の記事ではおさらいとして今までのスクリプトを貼りたいと思います。その後、階段や梁枠などの部材を追加し、数量算出や2D表現などの機能を強化していく流れを目標に進めていきたいと考えています。
足場関連の記事はこちらから
なお、基本的なGDLの学習はこちらの教材がおすすめです!
GDLリファレンスがgraphisoftが用意していますが、初見では理解しづらいので、
簡単にまとめられたやさしく学ぶArchiCAD GDLプログラミングという本で基礎をしっかり学びましょう!
また、ココナラでのサポートサービスも始めましたので、
ご活用いただければと思います。
1日GDL作成やArchiCAD関連の相談のります 自分でGDLを作成している方へ【お知らせ】
Xのアカウントを作成しましたので、ぜひフォロー頂けると嬉しいです。
アカウントはこちらから⇨https://x.com/BIM_arekore
世界の建設業従事者、BIM推進者と繋がりたいです。よろしくお願いします。
0 件のコメント:
コメントを投稿
何でも気軽にコメントください。