■103847 / inTopicNo.42) |
Re[23]: Visual Basicで簡易CADを作成 |
□投稿者/ shiro (21回)-(2025/08/18(Mon) 12:41:14)
|
■No103825 (魔界の仮面弁士 さん) に返信
> ■No103822 (shiro さん) に返信
魔界の仮面弁士 様
Dictionaryや新しいFloorクラスを設定するなど、混乱しそうでしたので次のように処理してみました。
Form1でコンボボックスで階を切り替えるようにし、1,2階用にListを分けました。
また、下記の計算のため、braceListも追加しました。Wallクラスを使用してみました。
新たにBraceクラスを設けるか悩みました。
'1階用
Private pillarList As New List(Of Pillar)
Private wallList As New List(Of Wall)
Private braceList As New List(Of Wall)
'2階用
Private pillarList2 As New List(Of Pillar)
Private wallList2 As New List(Of Wall)
Private braceList2 As New List(Of Wall)
elementにbraceを追加し、MouseUPでWallと違うStiff値2.0を設定しました。
Dim newWall As New Wall(startPoint, endPoint, 2.0) '新しい壁を準備
braceList.Add(newWall) 'それを壁一覧に加える
Dim newWall2 As New Wall(startPoint, endPoint, 2.0) '新しい壁を準備
braceList2.Add(newWall2) 'それを壁一覧に加える
出力でWallとBraceのStiffの違いに応じた結果を出力できました。
W 1 40 40 80 40 2.5
W 2 120 40 200 40 2.5
W 3 200 40 240 40 2.5
W 4 240 40 320 40 2.5
B 5 320 120 280 120 2
B 6 40 40 40 80 2
B 7 40 240 40 200 2
B 8 200 240 200 200 2
以上により、初歩的ですが階毎に図面が切り替わり、また1つ目の計算したい内容も正しく計算出来ました。
2つめの計算したい内容について、どのように処理すれば上手く計算できるかご知見を頂ければ有難いです。
実施したい内容は下記のとおりです。
A1,A2の係数で、筋かいの場合は補正した数値としなければならず、そのため、Wallとは別にBraceを設けました。
先の事例では、Stiff=2とした場合(筋交い45*90)です。
対象とする柱の片側だけに筋交いが付く場合、柱頭なら+0.5,柱脚なら-0.5を2に加算します。
処理的には次のような方法が考えられます。
@各階で壁倍率(Stiff)の差Aの算出:検討する柱の両側に取り付く耐力壁の倍率の差Aを求める。
A補正値の決定(筋かいの場合)
B係数B、Lの決定:柱が出隅かどうかを確認し、係数B、Lを決定する。
C1階の耐力壁を持つ柱の上に、2階の耐力壁を持つ柱があるか探す。
D2階がある場合、1階のみの場合に分けて計算式に当てはめてN値を算出。:一つの柱についてX・Y両方向のN値を求め、大きい方を選ぶ。
E柱頭・柱脚の接合金物の選択:Dで求めたN値以上の許容耐力を持つ接合金物等を選ぶ。
下記の「計算事例」にあるとおり計算自体は簡単です。
ExcelなどではVlookupなどを使用して計算を実施していました。
しかしVBで実施するとなると処理が大変そうだと感じました。
最初に、Pillarクラスに「出隅かその他」を判別するために、「sumi」を設け、
出隅なら1,その他なら0としてelementで設定出来るようにした方が良いのかなど。
そして、
For Each pillar In pillarList ループで、
pillarListの座標と、wallListのstartPoint座標が合致すれば、柱の右側にStiffが存在、
endPoint座標が合致すれば、柱の左側にStiffが存在、とするなど。
同様に、braceListのstartPoint座標が合致すれば、柱脚に接続。
endPoint座標が合致すれば、柱頭に接続とするなど。
ただこの場合、向きが左側と右側の2通りあるため処理が難しそうです。
そして、2階部分の柱も検索し、計算を実施しないといけません。
ボタンをクリックすると計算が実行されるようにしたいです。
手計算では分かり易いですが柱の数が多く煩雑です。
Excelでは計算可能ですがテキスト入力のため操作性が乏しいです。
VBの簡易CADだと、柱や壁を配置するだけで、ボタンを押すと計算が実行され便利です。
さらに、削除や追加による検討が容易で便利です。
記
・N値計算
https://kakunin-shinsei.com/n-value-calculation-method/
・計算事例
https://stmaki.com/2025kaberyou-005/#:~:text=%E5%80%A4%E8%A8%88%E7%AE%97%E5%81%8F%EF%BC%89-,%EF%BC%AE%E5%80%A4%E8%A8%88%E7%AE%97%E3%81%AE%E6%89%8B%E9%A0%86,%E5%8F%B7%E3%81%8B%E3%82%89%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%BE%E3%81%99%E3%80%82
|
|