ArchiCAD 次世代足場GDLの作成~ブレース~

2024年9月9日月曜日

atn GDL sqr 足場

t f B! P L
前回はアンチを作成しましたが、今回は先行ブレースについて考えていきたいと思います。

ブレースGDLイメージ
イメージと変数

  1. !----------------------------------
  2. !ブレース
  3. !----------------------------------
  4. brace_D = 100/t !支柱芯からの距離
  5. braceX = A - brace_D*2                 !斜材のX距離
  6. braceY = 0.95         !斜材のY距離
  7. brace_L = sqr(braceX**2 + braceY**2) !斜材の長さ
  8. brace_R = 22/(2*t)         !斜材の半径
マスタースクリプト

  1. !----------------------------------
  2. !ブレース
  3. !----------------------------------
  4.  
  5. "ブレース":
  6. addy brace_R
  7. gosub "ブレース斜材"
  8. del 1
  9. gosub "ブレース上爪"
  10. gosub "ブレース下爪"
  11.  
  12. addx A
  13. mulx -1
  14. gosub "ブレース上爪"
  15. gosub "ブレース下爪"
  16. addy -brace_R
  17. gosub "ブレース斜材"
  18. del 3
  19.  
  20. gosub "ブレース手摺"
  21. return
  22.  
  23. "ブレース斜材":
  24. addx brace_D
  25. roty 90 - atn(braceY/braceX)
  26.  
  27. gosub "斜材カット両側"
  28. addz brace_L
  29. mulz -1
  30. gosub "斜材カット両側"
  31. del 2
  32.  
  33. cylind brace_L, brace_R
  34. for i = 1 to 4
  35. cutend
  36. next i
  37.  
  38. del 2
  39. return
  40.  
  41. "斜材カット両側":
  42. gosub "斜材カット片側"
  43. rotz 180
  44. gosub "斜材カット片側"
  45. del 1
  46. return
  47.  
  48. "斜材カット片側":
  49. rotz 90
  50. rotx 90
  51. cutpolya 4, 1, 0,
  52. brace_R, 0, 0,
  53. brace_R - 0.007, 0, 0,
  54. brace_R - 0.007, 0.1, 0,
  55. brace_R, 0.15, 0
  56. del 2
  57. return
  58.  
  59. "ブレース上爪":
  60. addz braceY
  61. ruledsegmented 10, 1+2+4+16,
  62. brace_D-0.065, 0.006, -0.02, 0,
  63. brace_D-0.06, 0.006, 0, 0,
  64. brace_D-0.06, 0.006, 0.008, 0,
  65. brace_D-0.05, 0.006, 0.008, 0,
  66. brace_D-0.02, 0.006, -0.02, 0,
  67. brace_D+0.01, 0.006, -0.02, 0,
  68. brace_D+0.02, 0.006, 0.008, 0,
  69. brace_D+0.01, 0.006, 0.036, 0,
  70. pillar_R + 0.002, 0.006, 0.036, 0,
  71. pillar_R + 0.002, 0.006, -0.02, 0,
  72. brace_D-0.065,-0.006, -0.02,
  73. brace_D-0.06, -0.006, 0,
  74. brace_D-0.06, -0.006, 0.008,
  75. brace_D-0.05, -0.006, 0.008,
  76. brace_D-0.02, -0.006, -0.02,
  77. brace_D+0.01, -0.006, -0.02,
  78. brace_D+0.02, -0.006, 0.008,
  79. brace_D+0.01, -0.006, 0.036,
  80. pillar_R + 0.002, -0.006, 0.036,
  81. pillar_R + 0.002, -0.006, -0.02
  82.  
  83. del 1
  84. return
  85.  
  86. "ブレース手摺":
  87. add brace_D - 0.05, 0, braceY + 0.07
  88. roty 90
  89. cylind braceX + 0.1, brace_R
  90. del 2
  91. return
  92.  
  93. "ブレース下爪":
  94. ruledsegmented 5, 1+2+4+16,
  95. brace_D-0.03, 0.006, -0.015, 0,
  96. brace_D-0.03, 0.006, 0.015, 0,
  97. brace_D+0.01, 0.006, 0.015, 0,
  98. brace_D+0.02, 0.006, 0.0, 0,
  99. brace_D+0.01, 0.006, -0.015, 0,
  100. brace_D-0.03, -0.006, -0.015,
  101. brace_D-0.03, -0.006, 0.015,
  102. brace_D+0.01, -0.006, 0.015,
  103. brace_D+0.02, -0.006, 0.0,
  104. brace_D+0.01, -0.006, -0.015
  105.  
  106. ruledsegmented 8, 1+2+4+16,
  107. brace_D-0.075, 0.006, -0.02, 0,
  108. brace_D-0.075, 0.006, -0.015, 0,
  109. brace_D-0.035, 0.006, -0.015, 0,
  110. brace_D-0.035, 0.006, 0.015, 0,
  111. brace_D-0.075, 0.006, 0.015, 0,
  112. brace_D-0.075, 0.006, 0.02, 0,
  113. brace_D-0.03, 0.006, 0.02, 0,
  114. brace_D-0.03, 0.006, -0.02, 0,
  115. brace_D-0.075, -0.006, -0.02,
  116. brace_D-0.075, -0.006, -0.015,
  117. brace_D-0.035, -0.006, -0.015,
  118. brace_D-0.035, -0.006, 0.015,
  119. brace_D-0.075, -0.006, 0.015,
  120. brace_D-0.075, -0.006, 0.02,
  121. brace_D-0.03, -0.006, 0.02,
  122. brace_D-0.03, -0.006, -0.02
  123.  
  124. gosub "楔"
  125. return
3Dスクリプト

三角関数の利用

今回は、上図で示したように斜めの部材を配置する必要があります。この斜材は、桁行方向の寸法(パラメータ "A")によって長さや角度(θ)が変わってきます。そこで、三平方の定理や三角関数を用いてこれらの値を導き出していきます。

まずは図のように braceXbraceY という変数を定義し、三角形の底辺と高さに相当する部分を考えます。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を作成できるようになるでしょう。

ブレースGDL
ブレースの作成

だいぶ形になってきたので、次の記事ではおさらいとして今までのスクリプトを貼りたいと思います。その後、階段や梁枠などの部材を追加し、数量算出や2D表現などの機能を強化していく流れを目標に進めていきたいと考えています。


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

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


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


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

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

自己紹介

自分の写真
初めまして。 BIM活用のあれこれ運営人です。 普段はBIM界隈で働いております。皆さんに役立つ情報を提供できればと思っております。BIMマネやBIMオペ、開発、プログラミング、BIMコンサル、技術営業等様々な業務をおこなっております。 GDL作成などBIM活用のお仕事のご相談お待ちしております。 #ゼネコン出身 #施工管理 #生産設計 #BIM開発 #ソフトウェアベンダー #ArchiCAD API #GDL #ArchiCAD python #Revit API #Dynamo

メール

bim.arekore@gmail.com

検索

GDLオブジェクト

ブログ アーカイブ

ArchiCADのGDLをコスパよく作成します ArchiCADユーザーでGDL作成を外部委託されている方へ

QooQ